# Print SUnitRange within tuple as is, not as a vector

**URL:** <https://discourse.julialang.org/t/print-sunitrange-within-tuple-as-is-not-as-a-vector/64678>\
**Category:** General Usage\
**Tags:** question\
**Created:** [July 15, 2021, 9:22am UTC](https://discourse.julialang.org/t/print-sunitrange-within-tuple-as-is-not-as-a-vector/64678 "2021-07-15T09:22:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [July 15, 2021, 9:22am UTC](https://discourse.julialang.org/t/print-sunitrange-within-tuple-as-is-not-as-a-vector/64678/1 "2021-07-15T09:22:40Z")

</div>

I am wondering how to coax `show` etc to print a `StaticArrays.SUnitRange` as is, not as a vector of indices. I tried the usual suspects for options in `IOContext`, didn’t work. I am not even sure if this is intended or a bug.

```julia
julia> using StaticArrays: SUnitRange

julia> s1 = SUnitRange{1,2}()
SUnitRange(1,2)

julia> x = (s1,s1)
([1, 2], [1, 2])

julia> show(IOContext(stdout, :compact => false, :limit => false), x)
([1, 2], [1, 2])
julia> x[1] # I want elements printed like this
SUnitRange(1,2)

```

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [July 15, 2021, 9:40am UTC](https://discourse.julialang.org/t/print-sunitrange-within-tuple-as-is-not-as-a-vector/64678/2 "2021-07-15T09:40:19Z")

</div>

`SUnitRange` is not an abstract range so it will fall back to array printing. It prints like `SUnitRange(1,2)` in the REPL because it has an overloaded `MIME"text/plain"` method. I don’t think there is a way for containers to have their elements to print as `MIME"text/plain`.

Perhaps StaticArrays is missing a standard show method for `SUnitRange`?

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [July 15, 2021, 9:43am UTC](https://discourse.julialang.org/t/print-sunitrange-within-tuple-as-is-not-as-a-vector/64678/3 "2021-07-15T09:43:57Z")

</div>

Just playing around:

```julia
julia> Base.show(io::IOContext{Base.TTY},s1::SUnitRange{1,2}) = display(s1)

julia> show(x)
(SUnitRange(1,2)
, SUnitRange(1,2)
)

```

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [July 15, 2021, 9:59am UTC](https://discourse.julialang.org/t/print-sunitrange-within-tuple-as-is-not-as-a-vector/64678/4 "2021-07-15T09:59:00Z")

</div>

> [@oheil](#):
>
> Just playing around:

You probably want:

```julia-auto
function Base.show(io::IO, s::SUnitRange{Start, L}) where {Start, L}
    show(io, MIME"text/plain"(), s)
end

```

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [July 15, 2021, 10:02am UTC](https://discourse.julialang.org/t/print-sunitrange-within-tuple-as-is-not-as-a-vector/64678/5 "2021-07-15T10:02:12Z")

</div>

> [@kristoffer.carlsson](#):
>
> You probably want:

Not me, perhaps Tamas. But exactly I intended that someone builds upon it.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [July 15, 2021, 2:02pm UTC](https://discourse.julialang.org/t/print-sunitrange-within-tuple-as-is-not-as-a-vector/64678/6 "2021-07-15T14:02:46Z")

</div>

> [@kristoffer.carlsson](#):
>
> Perhaps StaticArrays is missing a standard show method for `SUnitRange` ?

Thanks, PR done.

> <https://github.com/JuliaArrays/StaticArrays.jl/pull/936>
>
> This allows recovery of containers etc with \`SUnitRange\` from printed output.
> 
> …
> Cf \[discussion\](https://discourse.julialang.org/t/print-sunitrange-within-tuple-as-is-not-as-a-vector/64678/).
