# Overriding display of composite type

**URL:** <https://discourse.julialang.org/t/overriding-display-of-composite-type/5325>\
**Category:** General Usage\
**Tags:** question\
**Created:** [August 11, 2017, 6:24am UTC](https://discourse.julialang.org/t/overriding-display-of-composite-type/5325 "2017-08-11T06:24:24Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![YongHee-Kim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yonghee-kim/32/5965_2.png) [@YongHee-Kim](https://discourse.julialang.org/u/YongHee-Kim)\
**Post date:** [August 11, 2017, 6:24am UTC](https://discourse.julialang.org/t/overriding-display-of-composite-type/5325/1 "2017-08-11T06:24:24Z")

</div>

I’m trying to do something like this on Atom environment.

```julia
using Juno

struct Foo
    a
    b
end

function Base.show(io::IO, x::Foo) 
    display(Juno.Tree("this is...", [x.a, x.b, "some extra info"]))
end

```

which displays what I expected it to do, but being duplicated like this

![example](https://global.discourse-cdn.com/julialang/original/3X/8/a/8a9a4b9a6f6f07a823df56ef9178702600510d70.gif)  
I know It’s not right to override `display` inside `show` function, but couldn’t figure out proper way to do this.  
What should I do to override tree view like this? Any tip or link to documentation would be greatly appreciated.

Thanks!

---

<div class="post-metadata">

**Author:** ![YongHee-Kim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yonghee-kim/32/5965_2.png) [@YongHee-Kim](https://discourse.julialang.org/u/YongHee-Kim)\
**Post date:** [August 11, 2017, 7:08am UTC](https://discourse.julialang.org/t/overriding-display-of-composite-type/5325/2 "2017-08-11T07:08:15Z")

</div>

I found [solution from google search](http://discuss.junolab.org/t/defining-custom-rendering-is-not-fun/1033/5)

This code works for me

```julia
struct Foo
    a
    b
end

function Media.render(i::Juno.Inline, x::Foo)
    Media.render(i, Juno.Tree("this is...", [x.a, x.b, "some extra info"]))
end

```
