# Is there a way to have a Variable Explorer in Julia?

**URL:** <https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [February 22, 2022, 8:57am UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891 "2022-02-22T08:57:29Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![Atlas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/atlas/32/34048_2.png) [@Atlas](https://discourse.julialang.org/u/Atlas)\
**Post date:** [February 22, 2022, 8:57am UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/1 "2022-02-22T08:57:29Z")

</div>

Hi there!

I come from Python and more specifically, Spyder. Spyder has a wonderful variable explorer which has really optimized my workflow. Is there something similar for Julia?  
I had a quick look around here and in VS Code’s extensions but I got nothing.

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 22, 2022, 9:01am UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/2 "2022-02-22T09:01:44Z")

</div>

Hello and welcome to the community.  
The variable explorer is available here

 ![image](https://global.discourse-cdn.com/julialang/original/3X/f/7/f7ddd33b3a1ee230e10ff8954920b775f247983a.png)

---

<div class="post-metadata">

**Author:** ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)\
**Post date:** [February 22, 2022, 1:11pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/3 "2022-02-22T13:11:16Z")

</div>

If this is an important aspect for you I suggest to still use Atom/Juno. The variable explorer there is way more well-cured than what is currently available in the VSCode plugin…

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [February 22, 2022, 1:13pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/4 "2022-02-22T13:13:55Z")

</div>

Would be good to know what you’re missing in the VS Code extension compared to Juno.

---

<div class="post-metadata">

**Author:** ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)\
**Post date:** [February 22, 2022, 1:57pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/5 "2022-02-22T13:57:19Z")

</div>

Atom:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/9/3/93a780274163bdc889d5f4baa8cec3449fc53c71.png)

VSCode:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/c/0/c06176f89d899d6a8294979bd5a64597b887de72.png)

Some “features” that I miss is the workspace filtering and the click-to-go-to-definition present in Juno, but mostly is it a matter of readability:

- font size: note how in atom the Workspace font is bigger than the code font, in VSCode is the opposite
- the workspace of VSCode is “polluted” with stuff like `eval`, `include`,
- the icon/symbolism is much more beautiful/make sense in atom: a cube for a module, lambda for a function, n for a value and the list symbol for an array. The different types of parenthesis and the hash symbol in VSCode are both ugly and confusing (of course, this remains subjective…)

That said, VSCode is much faster and more reliable than Juno… but ugly and less ergonomic…

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [February 22, 2022, 2:14pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/6 "2022-02-22T14:14:08Z")

</div>

So I agree that the defaults aren’t particularly pretty in VS Code, but you can configure many of these things:

1. Font size: a combination of `window.zoomLevel` and `editor.fontSize`/`terminal.integrated.fontSize` allows you to increase the UI font size
2. Fair, but also kinda intended.
3. You can use a different product theme
4. There is filtering in all VS Code tree views – just start typing and a pop-up appears in the upper right.

With a bit of config your workspace could look like this:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/8/2/8284e36531b2440ded3ac5dbb50252e47127eacc.png)

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [February 22, 2022, 2:18pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/7 "2022-02-22T14:18:11Z")

</div>

I remember seeing recent announcements of packages that could help with interactive exploration of Julia objects and code. I could only find this one in my quick search now, but there are others:

> [@ANN: InteractiveCodeSearch.jl --- Interactively search Julia code](https://discourse.julialang.org/t/ann-interactivecodesearch-jl-interactively-search-julia-code/17657):
>
> Let me introduce my package [InteractiveCodeSearch.jl](https://github.com/tkf/InteractiveCodeSearch.jl). It helps you searching Julia code. [gif animation] Julia has @edit, @less, etc. which are very handy for reading the implementation of functions. However, you need to specify a “good enough” set of (type) parameters for them to find the location of the code. Instead, InteractiveCodeSearch provides a few macros to interactively choose the code you want to read. Features: Interactively choose a method signature before opening the code lo…

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [February 22, 2022, 2:19pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/8 "2022-02-22T14:19:40Z")

</div>

Eyeball.jl might’ve been the other one:

> [@\[ANN\] Eyeball.jl: An interactive object viewer](https://discourse.julialang.org/t/ann-eyeball-jl-an-interactive-object-viewer/74027):
>
> [https://github.com/tshort/Eyeball.jl](https://github.com/tshort/Eyeball.jl) This was a fun hack over the holidays. This provides eye for interactively viewing objects in the REPL. Use it when you might use dump or varinfo. Browse modules, type trees, expressions, or other complex objects. Use arrow keys to expand subobjects and hit enter to select and return the item. Toggle between showing properties and fields (f). Show documentation (d). Show methodswith on objects (m). Here’s a demo: [eyeball-jl]

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [February 22, 2022, 2:22pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/9 "2022-02-22T14:22:40Z")

</div>

> [@pfitzseb](#):
>
> Would be good to know what you’re missing in the VS Code extension compared to Juno.

I don’t see that `workspace` in mine. Only see `variables` where matrices display like in this (very little usable) form.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/e/0/e014e22616dcd9fc92f2648ec00bd64bc863af0c.png)

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [February 22, 2022, 2:24pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/10 "2022-02-22T14:24:53Z")

</div>

That’s the debugger variables viewer, no? Slightly different code, unfortunately, and slightly less useful in many cases.

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [February 22, 2022, 2:27pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/11 "2022-02-22T14:27:10Z")

</div>

> [@pfitzseb](#):
>
> There is filtering in all VS Code tree views – just start typing and a pop-up appears in the upper right

Note that the vim extension modifies this. You have to type `/` first:

> <https://github.com/VSCodeVim/Vim/issues/3466#issuecomment-461716148>
>
> \*\*Describe the bug\*\*
> If we set "workbench.list.keyboardNavigation" with "filter…" or "highlight" does not work as long as the vim extension is active
> 
> \*\*Screenshots\*\*
> without the vim extension: 
> !\[image\](https://user-images.githubusercontent.com/19764133/52398562-27b97b80-2ac2-11e9-9054-d5f4840886b1.png)
> 
> with the vim extension:
> !\[image\](https://user-images.githubusercontent.com/19764133/52398624-60f1eb80-2ac2-11e9-9d3e-7986dd6fb84c.png)

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [February 22, 2022, 2:27pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/12 "2022-02-22T14:27:34Z")

</div>

> [@pfitzseb](#):
>
> That’s the debugger variables viewer, no?

Yeap, that’s when I need more to see the contents of variables.

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [February 28, 2022, 4:25pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/13 "2022-02-28T16:25:06Z")

</div>

That is so much prettier than the default. Simply making whatever changes you have made the default would already be a huge improvement.

---

<div class="post-metadata">

**Author:** ![brianguenter](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/brianguenter/32/29519_2.png) [@brianguenter](https://discourse.julialang.org/u/brianguenter)\
**Post date:** [February 28, 2022, 4:51pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/14 "2022-02-28T16:51:32Z")

</div>

Is there functionality to the workspace viewer that I’m missing? It shows the classes, variables, etc., in the workspace but you can’t click on those elements to get any further information or to jump to the code. Which makes it not very useful for me.

Is there a way to configure VSCode to enable more functionality in the workspace view?

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [February 28, 2022, 5:29pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/15 "2022-02-28T17:29:43Z")

</div>

The “Workspace” is about runtime state. Check the “Outline” for info on what’s defined in any given file.

---

<div class="post-metadata">

**Author:** ![Iulian.Cioarca](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iulian.cioarca/32/30166_2.png) [@Iulian.Cioarca](https://discourse.julialang.org/u/Iulian.Cioarca)\
**Post date:** [February 28, 2022, 6:34pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/16 "2022-02-28T18:34:37Z")

</div>

Side question: can you explore nested structs/dicts in inline evaluation in VScode as in Juno?  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/4/2/42905c9a739a6ee3325ea96efc4df8dad1677dcc.png)

---

<div class="post-metadata">

**Author:** ![jar1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jar1](https://discourse.julialang.org/u/jar1)\
**Post date:** [February 28, 2022, 8:25pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/17 "2022-02-28T20:25:22Z")

</div>

It would be useful to have some connection from runtime names to the source code of the values. For example, given a function `f`, julia can find `methods(f)` which can find the source locations.

---

<div class="post-metadata">

**Author:** ![Lincoln\_Hannah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lincoln_hannah/32/19198_2.png) [@Lincoln\_Hannah](https://discourse.julialang.org/u/Lincoln_Hannah)\
**Post date:** [March 20, 2023, 5:03am UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/18 "2023-03-20T05:03:53Z")

</div>

Is it possible to make the workspace viewer an expandable tree by type ?

So I could just look at all my DataFrames or Dictionaries for example.

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [March 20, 2023, 1:01pm UTC](https://discourse.julialang.org/t/is-there-a-way-to-have-a-variable-explorer-in-julia/76891/19 "2023-03-20T13:01:15Z")

</div>

Not the same but you might like `Eyeball.jl`
