diff --git a/dev/changelog/index.html b/dev/changelog/index.html index 175d241..9fbe4af 100644 --- a/dev/changelog/index.html +++ b/dev/changelog/index.html @@ -1,2 +1,2 @@ -Change Log · Julia in VS Code

Change Log

All notable changes to the Julia extension will be documented in this file.

The format is based on Keep a Changelog.

[Unreleased]

Added

  • Inline results now support markdown-show methods (#2933)
  • The Julia REPL works with VS Code's shell integration feature (#2941)
  • It's now possible to add a special ALL_MODULES_EXCEPT_MAIN token to the list of compiled modules when debugging (#61)

Changed

  • The language server now uses incremental sync (#1105)

Fixed

  • Assigned but not used linter annotations are now slightly more correct (#339)
  • Actually fixed that issue with copying Exprs while debugging (#60)
  • Fixed when clauses of some keybindings that caused incorrect matches when editorLangId != julia (#2971)

[1.6.25] - 2022-06-17

Changed

  • Inline results and inline profile traces are now themeable (#2897)
  • Inline evaluation now works in plain markdown files (#2920)

Fixed

  • Restored a check (and notification) as to whether the Julia path is valid (#2923)
  • Erroneous .JuliaFormatter.tomls no longer cause the language server to crash (#1101)

[1.6.23] - 2022-05-24

Added

  • Integrated the new allocation profiler (#2890)
  • The linter now warns when indexing into arrys with for i in 1:length(A) (#338)
  • Added a code action for adding a SPDX header to files (#1075)
  • Added a code action for organizing using/import statements (#1076)
  • Added a code action for converting string to raw strings and back (#1082)
  • Added a code action for adding a docstring template for function definitions (#1084)

Changed

  • Switched to LSP 3.17 (#2886)

Fixed

  • Made the workspace even more robust. For real this time. (#2892)
  • Various parser fixes (#338)
  • Fixed an issue with multiple "missing reference" actions being applied at the same time (#1089)

[1.6.22] - 2022-05-04

Added

  • Modules can now be hidden in the workspace (#2887)

[1.6.18] - 2022-05-04

Added

  • The profile pane now has a button to save the current profile to a file (#2847)
  • Added a Julia: New Julia File command (#1509, #2877)
  • Cell evaluation now shows inline results for all top-level code blocks when the julia.execution.inlineResultsForCellEvaluation setting is enabled (#2866)
  • Added a code action to replace ==/!= with ===/!== for comarisons with nothing (#1048)
  • Added completions for string macros (#1046)
  • Added a code action for replacing unused assignments/arguments with an underscore (#1065, #1072)

Changed

  • The Julia version is now appended to the REPL title (#2857)
  • The extension is now only auto-activated when a Project.toml is in the workspace, not any arbitrary .jl file (#2850)
  • Plot navigator screenshots were removed due to performance issues (#2869)
  • Improved documentation search scoring algorithm (#1057)
  • Some code actions are now marked as preferred, which makes applying them easier (#1063)
  • Code action kinds are now set appropriately when applicable (#1062)
  • Improved auto completion presentation (#1052)
  • Snippet completions now have their kind set to snippet, as is appropriate (#1067)

Fixed

  • Internal modules are now correctly loaded on all processes (#2845)
  • Big tables originating from notebooks are now correctly displayed (#2848)
  • Nested progress bars are more robust in the presence of multiple tasks (#2845)
  • The Language Server is now properly restatable again (#2859)
  • Notebook internals are now hidden in stacktraces (#2862)
  • Terminal link handler now properly works for Base-internal code (#2865)
  • ans assignment is now more robust, which fixes an issue when IJulia.jl is loaded (#2867)
  • Lines are now broken properly in the documentation browser (#2870)
  • args can now be specified in the Julia launch configuration (#2872)
  • const fields in mutable structs are now parsed correctly (#336)
  • Fixed a race condition when downloading symbol server cache files (#251)
  • Package resolution now works properly for 1.7-style Manifests (#252)
  • Placeholder paths replacement in symbol server cache files now works more robustly (#253)
  • Fixed an issue with deepcopying Exprs in the debugger (#58)
  • Code actions triggers are no longer off by one character (#1050)

[1.6.17] - 2022-04-06

Fixed

  • Slightly better check for displaying objects in the workspace (#2833)

[1.6.16] - 2022-04-06

Fixed

  • Fix a problem when trying to display missings in the workspace (#2831)
  • The x == nothing linter pass now also detects nothings on the LHD (#334)

[1.6.15] - 2022-04-03

Fixed

  • Notebooks now start properly in empty VS Code workspaces (#2828)

[1.6.14] - 2022-04-01

Added

  • More notebook startup diagnostics.

[1.6.13] - 2022-04-01

Added

  • "Go to defintion" button for some workspace items (#2815)

Fixed

  • @edit is now much more robust (#2823)
  • Fixed a formatting crash (#1045)

[1.6.11] - 2022-03-28

Fixed

  • Fixed another bug in notebook error handling (#2803)
  • Persistent REPL is no more killed on window reload (#2807)
  • LOAD_PATH is now correctly set in notebooks (#2810)
  • Trying to display an empty profile trace now shows a warning instead of emitting a scary looking error (#2809)
  • Latex completions are now more robust (#1042)

[1.6.8] - 2022-03-23

Fixed

  • Toolbar icon now works properly in Chromium based browsers (#2794)
  • juliaup integration is now more robust (#2796)
  • Inline diagnostics are now also displayed in the REPL (#2797)
  • Fix for dev'ed package with relative paths (#2798)
  • The language server now handles exit notifications correctly (#1039)

[1.6.5] - 2022-03-20

Fixed

  • Inline error are now handled better during debugging (#56)
  • Fixed an issue with generator linting (#1037)
  • Fixed an issue with autocompletions containing multi-byte characters (#1035)
  • Fixed a LSP spec violation (#1038)

[1.6.4] - 2022-03-17

Changed

  • The default formatting style now does not surround kwargs = with whitespace (#1033)

Fixed

  • Errors in notebooks are now handled more robustly (#2781, #2783)
  • Revise.revise is now called in the most recent world during inline evaluation (#2782)

[1.6.2] - 2022-03-11

Fixed

  • The table viewer is now available even when TableTraits is loaded before we connect to the Julia session, e.g. because it's compiled into the sysimage (#2775)
  • Fixed an issue where breakpoints would not get removed from the backend in some circumstancs (#53)

[1.6.1] - 2022-03-10

Added

  • "Always copy" option for "Connect to external REPL" command (#2759)

Changed

  • Flame graph viewer improvements (scroll up now moves to the parent node, better macOS compatiblity).
  • Julia REPL is now properly marked as transient on supported VS Code versions (#2764)

Fixed

  • Julia-specific notebook toolbar icons now only show up for notebooks with Julia kernels (#2758)
  • Fixed version incompatibility in debugger (#52)
  • Fixed certain @doc parsing issues (#329, #330)
  • Only pass on valid options to JuliaFormatter (#1030)

[1.6.0] - 2022-02-22

Added

  • New profile viewer with inline annotations (#2674)
  • "Execute Code Block in REPL" in editor context menu (#2667)
  • Support for --threads=auto setting (#2666)

Changed

  • Add config "julia.execution.saveOnEval" to allow auto saving before execution (#2727)
  • Add restart REPL command and always stop persistent session option(#2720)
  • The julia.NumThreads setting now allows for a value of auto if your Julia versions supports it (#2666)
  • Better enum rendering (#2620)
  • Improved various notebook functionality (#2742)
  • Added stop/restart buttons to REPL workspace (#2746)
  • The table viewer now shows the actual Julia type when hovering over the colum header (#2749)

Fixed

  • Weave preview background now follow theme color (#2740)
  • Notebooks now respect the thread setting (#2747)
  • Fixed rendering of large stacktraces (especially with repeated frames) (#2746)
  • LoadErrors are now properly unwrapped in the REPL (#2754)
  • Inline errors are now properly shown even when the line ends with a ; (#2748)

[1.5.11] - 2022-01-17

Fixed

  • Fixed a grammar issue when using VS Code 1.64.x (#2730)
  • Fixed inline result hovers for VS Code 1.64 and newer (#2716)
  • Fixed a Julia REPL crash when getting runtime completions for uninitialized fields (#2686)

Changed

  • Removed some superfluous plot pane related keybindings (#2704)

[1.5.10] - 2022-01-17

Fixed

  • Fix plot pane location and focus issue, again (hopefully for real this time) (#2676)

[1.5.9] - 2022-01-05

Fixed

  • Plot pane position is now stable and interactive plots now render properly if the plot pane wasn't opened previously (#2662)
  • Fixed various issues with finding the Julia binary (#2647, #2642, #2658)
  • Fixed a command registration issue if the Julia binary changes while the language server is starting (#2663)

[1.5.8] - 2021-12-21

Fixed

  • juliaup integration now works properly (#2374)

[1.5.7] - 2021-12-14

Fixed

  • Code execution in Julia markdown files should now work as intended (#2584)
  • Plot pane is now properly confined to its view column (#2611)
  • System image building now supports the new manifest format (#2617)
  • =/in normalization for iteration over ranges is now disabled by default (#1006)

Changed

  • Pixelated rendering mode is only active when zooming into an image now (#2602)

[1.5.6] - 2021-11-20

Changed

  • Cell delimiters for Julia files are now configurable and include #- by default (#2567)
  • Use pixelated rendering mode for images in the plot pane, in the same way VS Code renders images. (#2570)

Fixed

  • Package tagging should now work again.

[1.5.5] - 2021-11-16

Fixed

  • Runtime completions can now be properly disabled (#2551)
  • Code execution keybindings are now consistent for Weave files (#2551)
  • Introduced a helpful warning when @profview failed to collect any traces (#2551)
  • The REPL is now terminated when VS Code is closed, which should work around issues introduced by the terminal.integrated.enablePersistentSessions setting (#2551)
  • Fixed various issues with the integrated table viewer (#2551)
  • It's now once again possible to use the Run/Debug in New Process commands concurrently (#2551)

[1.5.4] - 2021-11-11

Changed

  • The plot pane now prefers png over svg plots for performance reasons (#2475)

[1.5.3] - 2021-11-11

Fixed

  • Execute File now works properly for Weave files (#2540)
  • "s are now correctly escaped in the Julia command (#2546)

Changed

  • Improved messaging around LS startup failures (#2542)
  • Added a setting for the symbol cache server (#2547)
  • Improvements to SymbolServer cache and download responsiveness and performance (#243, #244)

[1.5.2] - 2021-11-06

Changed

  • Debugging or running a file in a new process now uses only one terminal (#2539)

[1.5.0] - 2021-11-05

Fixed

  • InteractiveUtils is now properly loaded in notebooks (#2457)
  • Runtime diagnostics are now displayed in the REPL in some circumstances (#2536)
  • Progress ETA will no longer show NaN or Inf sometimes (#2536)
  • Notebook kernels now load the user's startup.jl (#2536)
  • JULIA_NUM_THREADS and JULIA_EDITOR are now correctly set for existing tmux sessions (#2534)
  • Inline results now behave properly with CRLF linendings and aren't as easily invalidated by unrelated changes (#2535)
  • The error message as now once again properly displayed in notebooks (#2509)
  • Fixed various parser issues (#313, #315)
  • Fixed an erroneous method call error annotation (#307)
  • Fixed a stack overflow in the linter (#308)
  • Fixed a method error in the auto-completion code (#983)
  • Functors are now correctly displayed in the outline (#990, #995)
  • Fixed an issue with runtime diagnostics crashing the language server (#996)
  • Various fixes related to inline evaluation (#2467)
  • Improved auto-indentation behaviour (#2459)

Changed

  • Improved table viewer UX; added filtering and sorting as well as asynchronous loading of big tables (#2415)
  • System image building now excludes development packages (e.g. added by dev) (#2488).
  • Extension views are now hidden until the extension is activated (#2530)
  • Reduced invalidation in CSTParser.jl, which might improve performance (#312)
  • Majorly improvements to symbol cache loading performance and responsiveness (#240, #241)
  • Language server initialization is now reported much more granularly (#994)
  • Improved tmux session handling: Julia: Stop REPL now shows a prompt for closing the tmux session; also added a Julia: Disconnect external REPL command (#2532)
  • Julia keybindings now work properly in Weave files (#2467)
  • Plot pane interaction now requires the user to hold Alt/Option to avoid conflicts in plot's own mouse event handling (#2450)
  • Changed default keybindings for inline/cell evaluation to more closely match the notebook experience (#2296)
  • Code formatting is now powered by the excellent JuliaFormatter.jl, which should be much more reliable and configurable than the previous formatter (#2335, #972)

Added

  • Allow customising precompile statements and execution files for system image building based on a ./.vscode/JuliaSysimage.toml file inside the project root folder (#2488).
  • tmux session names can now include $[workspace] which will be replaced with the name of the current file's workspace when the REPL is first opened. (This allows for multiple persistent sessions across different VSCode windows). (#2504)
  • vscodedisplay now takes an additional title argument, which will be displayed in the tab title for tables (#2415)
  • @vscodedisplay will automatically put the input expression as the table viewer tab title (#2533)
  • Quickaction for removing unused function argument names (#981)
  • Some runtime-based auto-completions are provided (e.g. for field names and indexing) (#1507)

[1.4.3] - 2021-09-15

Changed

  • Cursor now changes to indicate that plots are zoomable/panable (#2445)
  • Notebook metadata is now properly saved. We've therefore enabled the pure-Julia notebook provider by default and removed the julia.notebookController setting (#2424)

[1.4.2] - 2021-09-10

Fixed

  • Vega and VegaLite plots are now zoomable/panable (#2443)

[1.4.1] - 2021-09-10

Fixed

  • SVG output is now properly rendered in all cases (2442)

[1.4.0] - 2021-09-08

Added

  • Export Plot(save/copy) buttons to plot pane(#2267)
  • Interactive(zoomable/pannable) Plots #2273
  • Add executeInREPL to exported API (#2402)
  • Added a menu item for enabling/disabling the plot pane (#2346)
  • Added support for the custom application/vnd.julia-vscode.trace MIME type to display custom runtime diagnostics (e.g. JET.jl output) in the editor (#2329)

Changed

  • executablePath is now once again machine-overridable thanks to the introduction of trusted workspaces (#2379)

Fixed

  • Julia paths are now properly deduplicated (#2428)
  • The extension is now activated when Julia specific toolbar items are shown (#2430)
  • The play button to run the current file now uses the editor content instead of the file content (#2431)
  • Indentation will behave correctly when end appears in a for loop definition, e.g. for i in nums[2:end] (#2459)

[1.3.34] - 2021-09-03

Changed

  • Improved error handling for finding the environment path (#2408)
  • Limit supported file schemes (#2410)
  • Inline evaluation of code blocks ending with a semicolon now don't produce any output (#2409)
  • Revert the workaround from 1.3.30 and require VSCode v1.60.0 (#2394)

[1.3.33] - 2021-08-26

Changed

  • Update vendored plotly to v2.3.1 (#2376)
  • Reintroduced getJuliaPath to exported API (#2399)

Fixed

  • Images in the plot pane are now correctly down-sized to fit the plot pane again (#2362)

[1.3.32] - 2021-08-23

Fixed

  • Fixed more argument handling issues when starting Julia processes (#2372)

[1.3.31] - 2021-08-23

Changed

  • Mention marketplace link in readme (#2368)

Fixed

  • Resolved ambiguity in gridviewer code (#2382)
  • Improved argument handling when starting Julia processes (#2372)

[1.3.30] - 2021-08-15

Fixed

  • Work around an upstream error related to stating the executable in VSCode tasks (#2371)

[1.3.29] - 2021-08-14

Fixed

  • Correctness fix for finding the Julia executable (#2364)
  • Fix logic for "Open Settings" button in notifications (#2354)
  • Reduced bundle size (#2357)

[1.3.28] - 2021-08-06

Changed

  • Improved code for searching the Julia executable (#2341)
  • Add Revise.jl support for notebook evaluation (#2347)

Fixed

  • Notebook execution now correctly uses the same softscope transforms as in Jupyter or the REPL (#2327)
  • Internal strict typing improvements (#2342)

[1.3.27] - 2021-07-29

Changed

  • Improved notebook kernel selection strategy (#2315)

Fixed

  • Notebook restart logic (#2322)

[1.3.26] - 2021-07-27

Changed

  • Updated dependencies.

[1.3.23] - 2021-07-26

Fixed

  • REPL prompt hiding logic for inline execution is now more correct (#2316)

[1.3.20] - 2021-07-25

Changed

  • Native notebook support is now hidden behind the notebookController setting because of upstream issues (#2307)
  • Better labels for notebook kernels (#2309)
  • Notebook cell output is now cleared during re-execution (#2306)

[1.3.20] - 2021-07-23

Fixed

  • File path is now correctly set for notebooks (#2305)

[1.3.18] - 2021-07-22

Changed

  • display calls that go to alternative displays (like the plot pane) are now more responsive (#2301)
  • Download of SymbolServer cache files is now configurable (#2298)
  • Improved error message when LS fails to start (#2295)
  • Changed the default values of the completionmode and execution.resultType settings (#2297)

Fixed

  • All logging messages now go to stderr, which fixes communication issues on some Julia 1.7 pre-release versions (#2302)

[1.3.17] - 2021-07-17

Changed

  • Updated dependencies and required VSCode version to v1.58.1

[1.3.15] - 2021-07-17

Changed

  • Improve Julia notbeook kernel name (#2275)

[1.3.14] - 2021-07-17

Added

  • Support for preferred kernels (#2271)

Chaged

  • Notebook kernels are now reused after a notebook was closed (#2257)
  • Improved notebook display logic (#2260)
  • Rely on os.homedir() instead of custom ENV logic (#2263)
  • Added broadcasting to the list of interpreted Base functions (#2290)

[1.3.13] - 2021-07-01

Changed

  • Moved to GitHub actions for CI and release pipelines.

[1.3.2] - 2021-06-30

Fixed

  • Fixed REPL stacktraces file path links for Windows. Paths with tilda symbol now expand to the correct HOMEPATH. Paths with spaces are handled correctly (#2261)

[1.3.0] - 2021-06-29

Added

  • Native notebook support (#2217 and others)

Changed

  • Environment variables are now resolved in the julia.environmentPath and julia.executablePath settings (#2153)

Fixed

  • Julia 1.6 paths on Windows are now correct (#2251)
  • Fixed various packaging issues (#2229)

[1.2.5] - 2021-06-18

Fixed

  • Compiled modules/mode/functions are now set properly in the out-of-process deubugger (#2226)
  • Improved plot navigator robustness (#2221)

[1.2.4] - 2021-06-09

Changed

  • Update various dependencies

[1.2.3] - 2021-06-07

Fixed

  • Various debugging related issues (#39, #2190)
  • Plot assets are now correctly loaded (#2200)

[1.2.2] - 2021-06-01

Changed

  • Julia: Connect external REPL now gives feedback when connected (#2182)

Fixed

  • Tilde-expansion now properly works in terminal links (#2185)
  • REPL hooks are now properly installed when connecting to already running processes (#2182)
  • tmux integration and connecting to an external process now properly work on Windows (#2182)

[1.2.1] - 2021-05-27

Fixed

  • tmux integration now works (#2177)
  • Fixed a crash in the new multi-environment support (#945)
  • The plots pane and navigator now (mostly) keeps focus where it was before (#2172)

[1.2.0] - 2021-05-26

Fixed

  • Non-debugging Julia sessions no longer pretend they are debug sessions (#2155)
  • Loading internal code now works better when multiple processes have been added in startup.jl (#2147)

Changed

  • Workspace panel now shows #properties for AbstractrArrays and AbstractDicts (#1927)
  • Clicking on a symbol now highlights only references to that symbol, instead of all symbols with the same name (#908)

Added

  • Added a sidebar element to quickly switch between differen plots (#1932)
  • Added integration for persistent tmux sessions, especially useful together with the Remote Editing extension (#1893)
  • Ship CoverageTools.jl as part of the extension so that test runs with coverage always work (#1928)
  • Add option to delete .cov files after test runs (on by default) (#1928)
  • Add new completion modes for unexported variables (#1963, #892)
  • New option for showing results inline but echoing errors into the REPL (#2121)
  • New UI for setting compiled/interpreted methods for the debugger, which can allow for a significantly faster debugging experience (#1888, #31)
  • Auto-completion of un-exported symbols can now optionally insert the appropriate using statement (#892)

[1.1.39] - 2021-05-06

Fixed

  • Inline stacktraces are now rendered properly on Julia 1.6 (#2091)
  • Weaving a document now respects the current env (#2130)
  • ARGS are now properly cleared of extension internals (#2090)
  • External Julia processes now respect the number of threads setting (#2141)
  • URIs in markdown hovers (e.g. in stacktraces) now properly link to the right line (#932)

Changed

  • Added support for the error stacks introduced in Julia 1.5 (#2142)
  • Improvements to the package tagging functionality (which is now also limited to Julia 1.6) (#2144)

Added

  • The linter now understands the new import Foo as Bar syntax (#276)

[1.1.38] - 2021-03-29

Fixed

  • Path for auto-detecting Julia 1.6 binaries on Windows are now correct (#2086)
  • Added auto-dection for 1.6.1 (#2076)
  • Setting JULIA_EDITOR should now be more robust (#2067)

Changed

  • Auto-completions now allow for a certain degree of fuzzyiness (#906)

Added

  • The LS now support selection range requests (use Shift-Alt-Right/Shift-Alt-Left to expand/reduce the "smart selection" in VSCode) (#893)

[1.1.37] - 2021-03-17

Fixed

  • Fixed a security vulnerability related to the Julia path setting (#2062)
  • We should not leave any more orphaned processes behind when VSCode is closed unexpectedly (#48)

[1.1.35] - 2021-03-12

Changed

  • The Julia grammar is now shipped by VSCode and therefore removed from this package (#1998)
  • Error handling for internal Julia code should now be more robust (#2015)

[1.1.34] - 2021-03-09

Fixed

  • Work around a Base issue when displaying certain types in the REPL (#2010)
  • Fixed certain debugger commands not working properly (#2008)

[1.1.33] - 2021-03-06

Fixed

  • Step Into Target now works properly for top-level frames (#34)

Changed

  • "Run Code" commands now conform to the VSCode guidelines (#1999)

[1.1.32] - 2021-03-03

Changed

  • Pipes for communication between the VSCode extension host and various Julia processes are now guaranteed to be unique (#1980)
  • REPL output form activating a new environment via the GUI now doesn't display a Julia prompt (#1981)
  • Better crash reporting when commands fail (#1985)

[1.1.29] - 2021-02-23

Fixed

  • Fixed a typo that made the more robust REPL hooks not very robust at all (#1973)
  • Fixed a rare bug where showing variables while debugging might result in a crash (#32)

[1.1.28] - 2021-02-23

Fixed

  • LaTeX-rendered equations are now properly hidden behind the search bar in the docs pane(#1970)
  • REPL hooks are now more robust (#1968)

[1.1.26] - 2021-02-20

Fixed

  • Unparametrize the wrapper introduced in #1943 (#1957)

Changed

  • Debugger is no longer marked as experimental (#1965)
  • We now use the ast_transforms machinery introduced in Julia 1.5 when appicable (#1959)

[1.1.19 - 1.1.25] - 2021-02-17

Changed

  • Fixes to our Azure Pipelines infracstructure

[1.1.18] - 2021-02-15

Fixed

  • Fixed a regression when displaying SVGs in the plot pane (#1939)
  • Fix an issue with displaying values with incorrect convert methods (#1943)

Changed

  • Explorer context menu entries are now only shown when a REPL is running (#1933)

[1.1.16] - 2021-02-09

Added

  • Julia 1.6 binaries are now auto-detected (#1918)

[1.1.14] - 2021-02-03

Fixed

  • Removed references to outdated Julia syntax that caused incorrect auto-indentation (#1910)
  • Stacktraces should now be properly truncated again (#1912)

Changed

  • Updated the vendored Plotly and fixed auto-resizing for Plotly and VegaLite plots (#1911)

[1.1.13] - 2021-02-03

Fixed

  • Relative environment paths are now persisted properly (#1905)
  • User supplied environment paths are now checked for validity (#1907)

[1.1.12] - 2021-02-02

Fixed

  • Corrected environment handling in certaing cases (#1903)

Changed

  • Live testing is disabled until it can be fixed (#1902)

[1.1.11] - 2021-01-31

Fixed

  • Getting the module at the current cursor position now no longer waits until the LS is started (#1892)

[1.1.10] - 2021-01-28

Fixed

  • Stop throwing an error instead of waiting for the LS being ready (#1889).
  • Fixed an issue with formatting if conditions (#124).

[1.1.9] - 2021-01-26

Fixed

  • Displaying profiler results now works again (#1887).

[1.1.7] - 2021-01-26

Fixed

  • pwd is now properly set for the live unit testing task (#1886).

[1.1.6] - 2021-01-25

Changed

  • The plot pane now properly scales images (#1882).

Fixed

  • The LS now correctly handles the $/setTrace notification (#868).

[1.1.0] - 2021-01-23

Changed

  • The progress bar now shows an estimate of the remaining time (#1868).

[1.0.15] - 2021-01-23

Added

  • Progress logging can now be disabled in the settings (#1867).
  • The Julia explorer sidebar element now contains a documentation browser (#1458).
  • Added a command for tagging new package versions (#1870).
  • Added a task for live unit testing (#1872).

Changed

  • The LS depot path is now located in the extension global storage instead of the extension's install directory, which allows the latter to be read-only (#1863).
  • Improve docstring formatting (#122).

Fixed

  • Comments and whitespace in multi-line tuples are no longer removed when formatting a file (#121).

[1.0.14] - 2021-01-16

Changed

  • Removed the telemtry nag message (#1676).
  • Removed @ and ! from the list of non-word characters, so double clicking @foo! now selects the whole macro (#1861).

Fixed

  • Improved the algorithm for finding the current code block (#860).
  • Fixed jmd parsing (#859).
  • THe linter now doesn't attribute every eval call to Core.eval (#237).

[1.0.13] - 2021-01-13

Added

  • It is now possible to customize the look of inline results (#1846).
  • Support for the upcoming import Foo as Bar syntax (#220).

Changed

  • Switched to a new symbol store format (#1857).
  • Major rewrite for CSTParser (#190).
  • StaticLint.jl now supports Julia >= v1.6 (#227).
  • Added additional type inference for the linter (#234).

Fixed

  • We now use the correct binary when setting the JULIA_EDITOR on MacOS for users of VSCode insiders (#1852).
  • Base.displayble is now correctly extended instead of creating a local version (#1856).
  • Conditions for line breakpoints now work again (#26).
  • Debugger now correctly unwraps UnionAlls when collecting global refs (#27).
  • The Linter now correctly handles Base.@kwdef (#233).

[1.0.12] - 2021-01-05

Added

  • Commands for moving between code cells (#1828).

Fixed

  • Backtraces are now properly truncated in the REPL (#1841).

[1.0.11] - 2020-12-15

Added

  • Debugging or launching a file now works in workspaces with more than one directory (#1789).
  • Pressing ^C more than three times in one second now sends a SIGINT to the Julia process (on non-Windows OSs), which should make for more robust interrupts (#1775).

Changed

  • Inline evaluation now waits for the LS to start up instead of throwing an error (#1760).
  • julia.environmentPath needs a REPL restart, so added a note to that effect (#1778).
  • The language-julia.executeFile command can now be called with a string argument for easy integration with custom keybindings (#1779).
  • Commands that require finding Julia environment files now don't need a running REPL (#1757).
  • When using inline evaluation commands that move the cursor after evaluation, the cursor is now only moved if the user hasn't interacted with it (#1774).
  • Debugging in a new process now properly loads the user's startup.jl (#1806).
  • Update to JuliaInterpreter.jl 0.8 (#24).

Fixed

  • There can only be one LS startup notification (#1798).
  • Plots are now properly displayed when the plot pane is disabled and only inline results are enabled (#1795).
  • Added some error handling when displaying error stacktraces inline (#1802).
  • The attached debugger now properly sets tls[:source_path] and doesn't crash the Julia REPL on errors (#1804).
  • Staktraces are now properly truncated for inline results (#1812).
  • Progress messages are now properly flushed, so that the progress monitoring is always be up-to-date (#1805).
  • Fixed an issue with parsing kwfuncs using where (#212).
  • Added missing nothing checks that could cause issues when linting files (#221, #223).

[1.0.10] - 2020-11-13

Added

  • Support for Julia 1.5.3 and 1.5.4 default installation paths (#1755, #1759).
  • New up-to-date changelog (#1750).

Changed

  • Inline evaluation now adds the evaluated code to the REPL history if the julia.codeInREPL options is set (#1754).
  • The extension now watches the global Manifest as well as Manifests in the workspace for changes and prompts the LS to re-index accordingly (#1756).

Fixed

  • Push internal Julia modules to the front of LOAD_PATH to prevent loading code from the workspace instead (#1747).
  • Fixed a typo in the tableviewer code (#1749).
  • Evaluation now uses unbuffered channels for communication, which might fix a rare off-by-one-result bug (#1762).

[1.0.9] - 2020-11-04

Added

  • The workspace now shows errors encountered while rendering the tree view. Furthermore, it now only special cases Array and Dict instead of their Abstract... supertypes (#1709).
  • Inline evaluation and the REPL can now be interrupted with the Julia: Interrupt Execution comamnd (or its default keyboard binding <kbd>ctrl+c</kbd>) (#1690).
  • ProgressLogging.jl's progress bars are now displayed in the editor (1579).
  • The language server process is now started with the JULIA_LANGUAGESERVER environment variable set to 1 (#1707).
  • Added commands to re-start the LS or re-index the symbol cache (#1721).
  • @edit now works properly on code-server instances (#1737).
  • Added commands to cd to the current directory, Pkg.activate the current directory, or Pkg.activate the current files nearest project. These commands are also available in the file explorer (#1743).

Changed

  • Updated some JS dependencies.
  • The plot pane is now opened in a new column by default, but also remembers it's last position (#1554).
  • The julia.NumThreads setting is now machine-overrideable (#1714).
  • Updated the Julia grammar definition (#1720), which fixed various bugs.
  • julia.usePlotPane can now be changed without requiring the Julia process to be restarted. Additionally, the related display machinery is now much more robust (#1729).
  • The "play" button in the editor toolbar now runs the file in the integrated REPL process (#1728).
  • All inline results are now removed when the REPL process exits (#1738).

Fixed

  • Stracktraces are now rendered properly (i.e. with linebreaks) once again (#1692).
  • The module indicator is now correctly initialized (instead of Main) (#1516).

[1.0.8] - 2020-10-16

Changed

  • Both inline evaluation and the REPL now follow the changed soft-scope rules for Julia 1.5 and newer (#1665).

[1.0.7] - 2020-10-05

Changed

  • Updated JS dependencies.
  • We now show an error message when both insiders and the regular extension are loaded.

[1.0.6] - 2020-09-29

Changed

  • Updated JS dependencies.

[1.0.5] - 2020-09-27

Added

  • Default paths for Julia 1.5.1 and 1.5.2.

[1.0.4] - 2020-09-18

Added

  • JULIA_PKG_SERVER is now an exposed setting.
  • Julia: Stop REPL command.

Changed

  • Toolbar icon now follows the style guide (outline instead of filled).

Fixed

  • Run/Debug commands now work when invoked from the command palette.

[1.0.3] - 2020-09-06

Fixed

  • ARGS now no longer contains extension internals.
  • Use correct default path for Julia 1.5.
  • Fixed a world age error when using the integrated table viewer.

Changed

  • Revise is now loaded without stealing the REPL backend for newer Julia versions.
  • #%% and # %% are now valid cell seperators.
  • Improved crash reporting.

[1.0.2] - 2020-09-01

Changed

  • Improved Azure build pipeline
  • Updated some JS dependencies

[1.0.1] - 2020-08-31

Added

[1.0.0] - 2020-08-28

This is identical to the latest 0.17 release.

[0.17]

  • Global variable support in the debugger variable explorer
  • Debug and run buttons above Julia files
  • Support for step in targets in the debugger
  • Profile viewing support
  • Stackframe highlighting for inline evaluations
  • Configuration option to exclude folders from linting
  • Add an extension API

[0.16]

  • Inline display of evaluation results
  • Workspace view

[0.15]

  • Add an experimental debugger
  • Improve cell delimiter regex so that it won't recognize YAS-style section headers as cell separator anymore (#1256, #1259)

[0.14]

  • Make Language Server indexing async
  • New linting capabilities: call checks, static if blocks, unused free parameters, unhandled include statements, clashing module names, and pirates.
  • Enable Code Actions: explicit re-export, replace qualified names with using statements
  • Add support for Julia 1.4/5-DEV
  • Improved robustness, e.g. handling of unicode
  • Better presentation of documentation
  • Fully implement LSP 3.14
  • StaticLint: improved path handling (file tree), extended macro handling, handle local/global variables, general refactor with speed/robustness improvements

[0.13.1]

  • Update CHANGELOG

[0.13.0]

  • Support for Julia 1.3
  • Configuration options for the code formatter
  • Bug fixes

[0.12.3]

  • Add support for running a selection with Alt+Enter
  • Fix a bug in the LS when an environment path doesn't exist
  • Clean up labeling of commands

[0.12.2]

  • Various bug fixes

[0.12.1]

  • Various bug fixes

[0.12.0]

  • Add vscodedisplay() function for a grid view of tables
  • Add a command to delete all plots from the plot pane
  • Store Julia environment choice in settings
  • Auto detect Julia environments
  • Change how execute block sends code to the REPL
  • Preserve focus of REPL when plot pane is shown
  • Fix weave preview
  • Make tasks work with julia environments
  • Add a test task that outputs coverage information
  • Open docs after build task
  • Support vega 3, 4 and 5, and vega-lite 2 and 3
  • Allow paths starting with ~ for julia bin location
  • Fix JULIA_EDITOR integration on Mac
  • Add support for custom sysimages
  • Reworked syntax highlighting
  • Add support for code cell execution with Shift+Enter

[0.11.6]

  • Add option to permanently opt out of crash reporting
  • Fix bug related to Revise integration
  • Add option for passing command line arguments to julia REPL process
  • Rework communication between REPL and extension
  • Auto-detect julia 1.1.1 and 1.2.0

[0.11.5]

  • Fix julia 1.1 compat issue in SymbolServer
  • Update vega-lite to 3.0 and vega to 5.2

[0.11.4]

  • Fix another julia 1.1 compat issue

[0.11.3]

  • Fix julia 1.1 compat issue

[0.11.2]

  • Various bug fixes
  • Add option to enable/disable plot pane
  • Search for julia 1.0.4 and 1.1

[0.11.1]

  • Update CHANGELOG

[0.11.0]

  • Add julia 1.0 support, drop julia 0.6 support
  • Add support for interactive Plotly figures
  • Various bugfixes

[0.10.2]

  • Fix automatic julia detection on Mac

[0.10.1]

  • Fix some small bugs

[0.10.0]

  • Auto-detect julia installation
  • Telemetry support
  • Crash reporting
  • Fix weave support
  • Various bug fixes

[0.9.1]

  • Update changelog

[0.9.0]

  • Enable multi-root workspace support
  • Bug fixes

[0.8.0]

  • Add eval into module option to REPL
  • Add toggle lint command
  • Add toggle log command
  • Add execute file command
  • Add execute block command
  • Add support for region folding
  • Bug fixes

[0.7.0]

  • Use VS Code tasks for build, test and benchmark
  • Add reload modules command
  • Add rename command
  • Bug fixes

[0.6.2]

  • Bug fixes
  • Language server status bar icon
  • julia 0.6 syntax highlighting

[0.6.1]

  • Bug fixes

[0.6.0]

  • Use LanguageServer.jl
  • Format Document command
  • Actionable diagnostics
  • Support for .jmd files
  • Plot pane
  • Run package tests command
  • Lint package command

[0.5.1]

  • Scope Ctrl+Enter to julia files
  • Fix whitespace bug on Windows

[0.5.0]

  • Migrate to a language server protocol design
  • Add completion provider
  • Add definition provider
  • Add hover provider
  • Add signature provider
  • Add integrated julia terminal

[0.4.2]

  • julia 0.5 compatibility

[0.4.1]

  • Update README

[0.4.0]

  • Add linter support

[0.3.1]

  • Patch release to test upgrade procedure

[0.3.0]

  • Add latex completion

[0.2.0]

  • Add "Open Package Directory in New Window" command

[0.1.1]

  • Update project home URLs

[0.1.0]

  • Initial release
+Change Log · Julia in VS Code

Change Log

All notable changes to the Julia extension will be documented in this file.

The format is based on Keep a Changelog.

[Unreleased]

Added

  • Inline results now support markdown-show methods (#2933)
  • The Julia REPL works with VS Code's shell integration feature (#2941)
  • It's now possible to add a special ALL_MODULES_EXCEPT_MAIN token to the list of compiled modules when debugging (#61)

Changed

  • The language server now uses incremental sync (#1105)

Fixed

  • Assigned but not used linter annotations are now slightly more correct (#339)
  • Actually fixed that issue with copying Exprs while debugging (#60)
  • Fixed when clauses of some keybindings that caused incorrect matches when editorLangId != julia (#2971)

[1.6.25] - 2022-06-17

Changed

  • Inline results and inline profile traces are now themeable (#2897)
  • Inline evaluation now works in plain markdown files (#2920)

Fixed

  • Restored a check (and notification) as to whether the Julia path is valid (#2923)
  • Erroneous .JuliaFormatter.tomls no longer cause the language server to crash (#1101)

[1.6.23] - 2022-05-24

Added

  • Integrated the new allocation profiler (#2890)
  • The linter now warns when indexing into arrys with for i in 1:length(A) (#338)
  • Added a code action for adding a SPDX header to files (#1075)
  • Added a code action for organizing using/import statements (#1076)
  • Added a code action for converting string to raw strings and back (#1082)
  • Added a code action for adding a docstring template for function definitions (#1084)

Changed

  • Switched to LSP 3.17 (#2886)

Fixed

  • Made the workspace even more robust. For real this time. (#2892)
  • Various parser fixes (#338)
  • Fixed an issue with multiple "missing reference" actions being applied at the same time (#1089)

[1.6.22] - 2022-05-04

Added

  • Modules can now be hidden in the workspace (#2887)

[1.6.18] - 2022-05-04

Added

  • The profile pane now has a button to save the current profile to a file (#2847)
  • Added a Julia: New Julia File command (#1509, #2877)
  • Cell evaluation now shows inline results for all top-level code blocks when the julia.execution.inlineResultsForCellEvaluation setting is enabled (#2866)
  • Added a code action to replace ==/!= with ===/!== for comarisons with nothing (#1048)
  • Added completions for string macros (#1046)
  • Added a code action for replacing unused assignments/arguments with an underscore (#1065, #1072)

Changed

  • The Julia version is now appended to the REPL title (#2857)
  • The extension is now only auto-activated when a Project.toml is in the workspace, not any arbitrary .jl file (#2850)
  • Plot navigator screenshots were removed due to performance issues (#2869)
  • Improved documentation search scoring algorithm (#1057)
  • Some code actions are now marked as preferred, which makes applying them easier (#1063)
  • Code action kinds are now set appropriately when applicable (#1062)
  • Improved auto completion presentation (#1052)
  • Snippet completions now have their kind set to snippet, as is appropriate (#1067)

Fixed

  • Internal modules are now correctly loaded on all processes (#2845)
  • Big tables originating from notebooks are now correctly displayed (#2848)
  • Nested progress bars are more robust in the presence of multiple tasks (#2845)
  • The Language Server is now properly restatable again (#2859)
  • Notebook internals are now hidden in stacktraces (#2862)
  • Terminal link handler now properly works for Base-internal code (#2865)
  • ans assignment is now more robust, which fixes an issue when IJulia.jl is loaded (#2867)
  • Lines are now broken properly in the documentation browser (#2870)
  • args can now be specified in the Julia launch configuration (#2872)
  • const fields in mutable structs are now parsed correctly (#336)
  • Fixed a race condition when downloading symbol server cache files (#251)
  • Package resolution now works properly for 1.7-style Manifests (#252)
  • Placeholder paths replacement in symbol server cache files now works more robustly (#253)
  • Fixed an issue with deepcopying Exprs in the debugger (#58)
  • Code actions triggers are no longer off by one character (#1050)

[1.6.17] - 2022-04-06

Fixed

  • Slightly better check for displaying objects in the workspace (#2833)

[1.6.16] - 2022-04-06

Fixed

  • Fix a problem when trying to display missings in the workspace (#2831)
  • The x == nothing linter pass now also detects nothings on the LHD (#334)

[1.6.15] - 2022-04-03

Fixed

  • Notebooks now start properly in empty VS Code workspaces (#2828)

[1.6.14] - 2022-04-01

Added

  • More notebook startup diagnostics.

[1.6.13] - 2022-04-01

Added

  • "Go to defintion" button for some workspace items (#2815)

Fixed

  • @edit is now much more robust (#2823)
  • Fixed a formatting crash (#1045)

[1.6.11] - 2022-03-28

Fixed

  • Fixed another bug in notebook error handling (#2803)
  • Persistent REPL is no more killed on window reload (#2807)
  • LOAD_PATH is now correctly set in notebooks (#2810)
  • Trying to display an empty profile trace now shows a warning instead of emitting a scary looking error (#2809)
  • Latex completions are now more robust (#1042)

[1.6.8] - 2022-03-23

Fixed

  • Toolbar icon now works properly in Chromium based browsers (#2794)
  • juliaup integration is now more robust (#2796)
  • Inline diagnostics are now also displayed in the REPL (#2797)
  • Fix for dev'ed package with relative paths (#2798)
  • The language server now handles exit notifications correctly (#1039)

[1.6.5] - 2022-03-20

Fixed

  • Inline error are now handled better during debugging (#56)
  • Fixed an issue with generator linting (#1037)
  • Fixed an issue with autocompletions containing multi-byte characters (#1035)
  • Fixed a LSP spec violation (#1038)

[1.6.4] - 2022-03-17

Changed

  • The default formatting style now does not surround kwargs = with whitespace (#1033)

Fixed

  • Errors in notebooks are now handled more robustly (#2781, #2783)
  • Revise.revise is now called in the most recent world during inline evaluation (#2782)

[1.6.2] - 2022-03-11

Fixed

  • The table viewer is now available even when TableTraits is loaded before we connect to the Julia session, e.g. because it's compiled into the sysimage (#2775)
  • Fixed an issue where breakpoints would not get removed from the backend in some circumstancs (#53)

[1.6.1] - 2022-03-10

Added

  • "Always copy" option for "Connect to external REPL" command (#2759)

Changed

  • Flame graph viewer improvements (scroll up now moves to the parent node, better macOS compatiblity).
  • Julia REPL is now properly marked as transient on supported VS Code versions (#2764)

Fixed

  • Julia-specific notebook toolbar icons now only show up for notebooks with Julia kernels (#2758)
  • Fixed version incompatibility in debugger (#52)
  • Fixed certain @doc parsing issues (#329, #330)
  • Only pass on valid options to JuliaFormatter (#1030)

[1.6.0] - 2022-02-22

Added

  • New profile viewer with inline annotations (#2674)
  • "Execute Code Block in REPL" in editor context menu (#2667)
  • Support for --threads=auto setting (#2666)

Changed

  • Add config "julia.execution.saveOnEval" to allow auto saving before execution (#2727)
  • Add restart REPL command and always stop persistent session option(#2720)
  • The julia.NumThreads setting now allows for a value of auto if your Julia versions supports it (#2666)
  • Better enum rendering (#2620)
  • Improved various notebook functionality (#2742)
  • Added stop/restart buttons to REPL workspace (#2746)
  • The table viewer now shows the actual Julia type when hovering over the colum header (#2749)

Fixed

  • Weave preview background now follow theme color (#2740)
  • Notebooks now respect the thread setting (#2747)
  • Fixed rendering of large stacktraces (especially with repeated frames) (#2746)
  • LoadErrors are now properly unwrapped in the REPL (#2754)
  • Inline errors are now properly shown even when the line ends with a ; (#2748)

[1.5.11] - 2022-01-17

Fixed

  • Fixed a grammar issue when using VS Code 1.64.x (#2730)
  • Fixed inline result hovers for VS Code 1.64 and newer (#2716)
  • Fixed a Julia REPL crash when getting runtime completions for uninitialized fields (#2686)

Changed

  • Removed some superfluous plot pane related keybindings (#2704)

[1.5.10] - 2022-01-17

Fixed

  • Fix plot pane location and focus issue, again (hopefully for real this time) (#2676)

[1.5.9] - 2022-01-05

Fixed

  • Plot pane position is now stable and interactive plots now render properly if the plot pane wasn't opened previously (#2662)
  • Fixed various issues with finding the Julia binary (#2647, #2642, #2658)
  • Fixed a command registration issue if the Julia binary changes while the language server is starting (#2663)

[1.5.8] - 2021-12-21

Fixed

  • juliaup integration now works properly (#2374)

[1.5.7] - 2021-12-14

Fixed

  • Code execution in Julia markdown files should now work as intended (#2584)
  • Plot pane is now properly confined to its view column (#2611)
  • System image building now supports the new manifest format (#2617)
  • =/in normalization for iteration over ranges is now disabled by default (#1006)

Changed

  • Pixelated rendering mode is only active when zooming into an image now (#2602)

[1.5.6] - 2021-11-20

Changed

  • Cell delimiters for Julia files are now configurable and include #- by default (#2567)
  • Use pixelated rendering mode for images in the plot pane, in the same way VS Code renders images. (#2570)

Fixed

  • Package tagging should now work again.

[1.5.5] - 2021-11-16

Fixed

  • Runtime completions can now be properly disabled (#2551)
  • Code execution keybindings are now consistent for Weave files (#2551)
  • Introduced a helpful warning when @profview failed to collect any traces (#2551)
  • The REPL is now terminated when VS Code is closed, which should work around issues introduced by the terminal.integrated.enablePersistentSessions setting (#2551)
  • Fixed various issues with the integrated table viewer (#2551)
  • It's now once again possible to use the Run/Debug in New Process commands concurrently (#2551)

[1.5.4] - 2021-11-11

Changed

  • The plot pane now prefers png over svg plots for performance reasons (#2475)

[1.5.3] - 2021-11-11

Fixed

  • Execute File now works properly for Weave files (#2540)
  • "s are now correctly escaped in the Julia command (#2546)

Changed

  • Improved messaging around LS startup failures (#2542)
  • Added a setting for the symbol cache server (#2547)
  • Improvements to SymbolServer cache and download responsiveness and performance (#243, #244)

[1.5.2] - 2021-11-06

Changed

  • Debugging or running a file in a new process now uses only one terminal (#2539)

[1.5.0] - 2021-11-05

Fixed

  • InteractiveUtils is now properly loaded in notebooks (#2457)
  • Runtime diagnostics are now displayed in the REPL in some circumstances (#2536)
  • Progress ETA will no longer show NaN or Inf sometimes (#2536)
  • Notebook kernels now load the user's startup.jl (#2536)
  • JULIA_NUM_THREADS and JULIA_EDITOR are now correctly set for existing tmux sessions (#2534)
  • Inline results now behave properly with CRLF linendings and aren't as easily invalidated by unrelated changes (#2535)
  • The error message as now once again properly displayed in notebooks (#2509)
  • Fixed various parser issues (#313, #315)
  • Fixed an erroneous method call error annotation (#307)
  • Fixed a stack overflow in the linter (#308)
  • Fixed a method error in the auto-completion code (#983)
  • Functors are now correctly displayed in the outline (#990, #995)
  • Fixed an issue with runtime diagnostics crashing the language server (#996)
  • Various fixes related to inline evaluation (#2467)
  • Improved auto-indentation behaviour (#2459)

Changed

  • Improved table viewer UX; added filtering and sorting as well as asynchronous loading of big tables (#2415)
  • System image building now excludes development packages (e.g. added by dev) (#2488).
  • Extension views are now hidden until the extension is activated (#2530)
  • Reduced invalidation in CSTParser.jl, which might improve performance (#312)
  • Majorly improvements to symbol cache loading performance and responsiveness (#240, #241)
  • Language server initialization is now reported much more granularly (#994)
  • Improved tmux session handling: Julia: Stop REPL now shows a prompt for closing the tmux session; also added a Julia: Disconnect external REPL command (#2532)
  • Julia keybindings now work properly in Weave files (#2467)
  • Plot pane interaction now requires the user to hold Alt/Option to avoid conflicts in plot's own mouse event handling (#2450)
  • Changed default keybindings for inline/cell evaluation to more closely match the notebook experience (#2296)
  • Code formatting is now powered by the excellent JuliaFormatter.jl, which should be much more reliable and configurable than the previous formatter (#2335, #972)

Added

  • Allow customising precompile statements and execution files for system image building based on a ./.vscode/JuliaSysimage.toml file inside the project root folder (#2488).
  • tmux session names can now include $[workspace] which will be replaced with the name of the current file's workspace when the REPL is first opened. (This allows for multiple persistent sessions across different VSCode windows). (#2504)
  • vscodedisplay now takes an additional title argument, which will be displayed in the tab title for tables (#2415)
  • @vscodedisplay will automatically put the input expression as the table viewer tab title (#2533)
  • Quickaction for removing unused function argument names (#981)
  • Some runtime-based auto-completions are provided (e.g. for field names and indexing) (#1507)

[1.4.3] - 2021-09-15

Changed

  • Cursor now changes to indicate that plots are zoomable/panable (#2445)
  • Notebook metadata is now properly saved. We've therefore enabled the pure-Julia notebook provider by default and removed the julia.notebookController setting (#2424)

[1.4.2] - 2021-09-10

Fixed

  • Vega and VegaLite plots are now zoomable/panable (#2443)

[1.4.1] - 2021-09-10

Fixed

  • SVG output is now properly rendered in all cases (2442)

[1.4.0] - 2021-09-08

Added

  • Export Plot(save/copy) buttons to plot pane(#2267)
  • Interactive(zoomable/pannable) Plots #2273
  • Add executeInREPL to exported API (#2402)
  • Added a menu item for enabling/disabling the plot pane (#2346)
  • Added support for the custom application/vnd.julia-vscode.trace MIME type to display custom runtime diagnostics (e.g. JET.jl output) in the editor (#2329)

Changed

  • executablePath is now once again machine-overridable thanks to the introduction of trusted workspaces (#2379)

Fixed

  • Julia paths are now properly deduplicated (#2428)
  • The extension is now activated when Julia specific toolbar items are shown (#2430)
  • The play button to run the current file now uses the editor content instead of the file content (#2431)
  • Indentation will behave correctly when end appears in a for loop definition, e.g. for i in nums[2:end] (#2459)

[1.3.34] - 2021-09-03

Changed

  • Improved error handling for finding the environment path (#2408)
  • Limit supported file schemes (#2410)
  • Inline evaluation of code blocks ending with a semicolon now don't produce any output (#2409)
  • Revert the workaround from 1.3.30 and require VSCode v1.60.0 (#2394)

[1.3.33] - 2021-08-26

Changed

  • Update vendored plotly to v2.3.1 (#2376)
  • Reintroduced getJuliaPath to exported API (#2399)

Fixed

  • Images in the plot pane are now correctly down-sized to fit the plot pane again (#2362)

[1.3.32] - 2021-08-23

Fixed

  • Fixed more argument handling issues when starting Julia processes (#2372)

[1.3.31] - 2021-08-23

Changed

  • Mention marketplace link in readme (#2368)

Fixed

  • Resolved ambiguity in gridviewer code (#2382)
  • Improved argument handling when starting Julia processes (#2372)

[1.3.30] - 2021-08-15

Fixed

  • Work around an upstream error related to stating the executable in VSCode tasks (#2371)

[1.3.29] - 2021-08-14

Fixed

  • Correctness fix for finding the Julia executable (#2364)
  • Fix logic for "Open Settings" button in notifications (#2354)
  • Reduced bundle size (#2357)

[1.3.28] - 2021-08-06

Changed

  • Improved code for searching the Julia executable (#2341)
  • Add Revise.jl support for notebook evaluation (#2347)

Fixed

  • Notebook execution now correctly uses the same softscope transforms as in Jupyter or the REPL (#2327)
  • Internal strict typing improvements (#2342)

[1.3.27] - 2021-07-29

Changed

  • Improved notebook kernel selection strategy (#2315)

Fixed

  • Notebook restart logic (#2322)

[1.3.26] - 2021-07-27

Changed

  • Updated dependencies.

[1.3.23] - 2021-07-26

Fixed

  • REPL prompt hiding logic for inline execution is now more correct (#2316)

[1.3.20] - 2021-07-25

Changed

  • Native notebook support is now hidden behind the notebookController setting because of upstream issues (#2307)
  • Better labels for notebook kernels (#2309)
  • Notebook cell output is now cleared during re-execution (#2306)

[1.3.20] - 2021-07-23

Fixed

  • File path is now correctly set for notebooks (#2305)

[1.3.18] - 2021-07-22

Changed

  • display calls that go to alternative displays (like the plot pane) are now more responsive (#2301)
  • Download of SymbolServer cache files is now configurable (#2298)
  • Improved error message when LS fails to start (#2295)
  • Changed the default values of the completionmode and execution.resultType settings (#2297)

Fixed

  • All logging messages now go to stderr, which fixes communication issues on some Julia 1.7 pre-release versions (#2302)

[1.3.17] - 2021-07-17

Changed

  • Updated dependencies and required VSCode version to v1.58.1

[1.3.15] - 2021-07-17

Changed

  • Improve Julia notbeook kernel name (#2275)

[1.3.14] - 2021-07-17

Added

  • Support for preferred kernels (#2271)

Chaged

  • Notebook kernels are now reused after a notebook was closed (#2257)
  • Improved notebook display logic (#2260)
  • Rely on os.homedir() instead of custom ENV logic (#2263)
  • Added broadcasting to the list of interpreted Base functions (#2290)

[1.3.13] - 2021-07-01

Changed

  • Moved to GitHub actions for CI and release pipelines.

[1.3.2] - 2021-06-30

Fixed

  • Fixed REPL stacktraces file path links for Windows. Paths with tilda symbol now expand to the correct HOMEPATH. Paths with spaces are handled correctly (#2261)

[1.3.0] - 2021-06-29

Added

  • Native notebook support (#2217 and others)

Changed

  • Environment variables are now resolved in the julia.environmentPath and julia.executablePath settings (#2153)

Fixed

  • Julia 1.6 paths on Windows are now correct (#2251)
  • Fixed various packaging issues (#2229)

[1.2.5] - 2021-06-18

Fixed

  • Compiled modules/mode/functions are now set properly in the out-of-process deubugger (#2226)
  • Improved plot navigator robustness (#2221)

[1.2.4] - 2021-06-09

Changed

  • Update various dependencies

[1.2.3] - 2021-06-07

Fixed

  • Various debugging related issues (#39, #2190)
  • Plot assets are now correctly loaded (#2200)

[1.2.2] - 2021-06-01

Changed

  • Julia: Connect external REPL now gives feedback when connected (#2182)

Fixed

  • Tilde-expansion now properly works in terminal links (#2185)
  • REPL hooks are now properly installed when connecting to already running processes (#2182)
  • tmux integration and connecting to an external process now properly work on Windows (#2182)

[1.2.1] - 2021-05-27

Fixed

  • tmux integration now works (#2177)
  • Fixed a crash in the new multi-environment support (#945)
  • The plots pane and navigator now (mostly) keeps focus where it was before (#2172)

[1.2.0] - 2021-05-26

Fixed

  • Non-debugging Julia sessions no longer pretend they are debug sessions (#2155)
  • Loading internal code now works better when multiple processes have been added in startup.jl (#2147)

Changed

  • Workspace panel now shows #properties for AbstractrArrays and AbstractDicts (#1927)
  • Clicking on a symbol now highlights only references to that symbol, instead of all symbols with the same name (#908)

Added

  • Added a sidebar element to quickly switch between differen plots (#1932)
  • Added integration for persistent tmux sessions, especially useful together with the Remote Editing extension (#1893)
  • Ship CoverageTools.jl as part of the extension so that test runs with coverage always work (#1928)
  • Add option to delete .cov files after test runs (on by default) (#1928)
  • Add new completion modes for unexported variables (#1963, #892)
  • New option for showing results inline but echoing errors into the REPL (#2121)
  • New UI for setting compiled/interpreted methods for the debugger, which can allow for a significantly faster debugging experience (#1888, #31)
  • Auto-completion of un-exported symbols can now optionally insert the appropriate using statement (#892)

[1.1.39] - 2021-05-06

Fixed

  • Inline stacktraces are now rendered properly on Julia 1.6 (#2091)
  • Weaving a document now respects the current env (#2130)
  • ARGS are now properly cleared of extension internals (#2090)
  • External Julia processes now respect the number of threads setting (#2141)
  • URIs in markdown hovers (e.g. in stacktraces) now properly link to the right line (#932)

Changed

  • Added support for the error stacks introduced in Julia 1.5 (#2142)
  • Improvements to the package tagging functionality (which is now also limited to Julia 1.6) (#2144)

Added

  • The linter now understands the new import Foo as Bar syntax (#276)

[1.1.38] - 2021-03-29

Fixed

  • Path for auto-detecting Julia 1.6 binaries on Windows are now correct (#2086)
  • Added auto-dection for 1.6.1 (#2076)
  • Setting JULIA_EDITOR should now be more robust (#2067)

Changed

  • Auto-completions now allow for a certain degree of fuzzyiness (#906)

Added

  • The LS now support selection range requests (use Shift-Alt-Right/Shift-Alt-Left to expand/reduce the "smart selection" in VSCode) (#893)

[1.1.37] - 2021-03-17

Fixed

  • Fixed a security vulnerability related to the Julia path setting (#2062)
  • We should not leave any more orphaned processes behind when VSCode is closed unexpectedly (#48)

[1.1.35] - 2021-03-12

Changed

  • The Julia grammar is now shipped by VSCode and therefore removed from this package (#1998)
  • Error handling for internal Julia code should now be more robust (#2015)

[1.1.34] - 2021-03-09

Fixed

  • Work around a Base issue when displaying certain types in the REPL (#2010)
  • Fixed certain debugger commands not working properly (#2008)

[1.1.33] - 2021-03-06

Fixed

  • Step Into Target now works properly for top-level frames (#34)

Changed

  • "Run Code" commands now conform to the VSCode guidelines (#1999)

[1.1.32] - 2021-03-03

Changed

  • Pipes for communication between the VSCode extension host and various Julia processes are now guaranteed to be unique (#1980)
  • REPL output form activating a new environment via the GUI now doesn't display a Julia prompt (#1981)
  • Better crash reporting when commands fail (#1985)

[1.1.29] - 2021-02-23

Fixed

  • Fixed a typo that made the more robust REPL hooks not very robust at all (#1973)
  • Fixed a rare bug where showing variables while debugging might result in a crash (#32)

[1.1.28] - 2021-02-23

Fixed

  • LaTeX-rendered equations are now properly hidden behind the search bar in the docs pane(#1970)
  • REPL hooks are now more robust (#1968)

[1.1.26] - 2021-02-20

Fixed

  • Unparametrize the wrapper introduced in #1943 (#1957)

Changed

  • Debugger is no longer marked as experimental (#1965)
  • We now use the ast_transforms machinery introduced in Julia 1.5 when appicable (#1959)

[1.1.19 - 1.1.25] - 2021-02-17

Changed

  • Fixes to our Azure Pipelines infracstructure

[1.1.18] - 2021-02-15

Fixed

  • Fixed a regression when displaying SVGs in the plot pane (#1939)
  • Fix an issue with displaying values with incorrect convert methods (#1943)

Changed

  • Explorer context menu entries are now only shown when a REPL is running (#1933)

[1.1.16] - 2021-02-09

Added

  • Julia 1.6 binaries are now auto-detected (#1918)

[1.1.14] - 2021-02-03

Fixed

  • Removed references to outdated Julia syntax that caused incorrect auto-indentation (#1910)
  • Stacktraces should now be properly truncated again (#1912)

Changed

  • Updated the vendored Plotly and fixed auto-resizing for Plotly and VegaLite plots (#1911)

[1.1.13] - 2021-02-03

Fixed

  • Relative environment paths are now persisted properly (#1905)
  • User supplied environment paths are now checked for validity (#1907)

[1.1.12] - 2021-02-02

Fixed

  • Corrected environment handling in certaing cases (#1903)

Changed

  • Live testing is disabled until it can be fixed (#1902)

[1.1.11] - 2021-01-31

Fixed

  • Getting the module at the current cursor position now no longer waits until the LS is started (#1892)

[1.1.10] - 2021-01-28

Fixed

  • Stop throwing an error instead of waiting for the LS being ready (#1889).
  • Fixed an issue with formatting if conditions (#124).

[1.1.9] - 2021-01-26

Fixed

  • Displaying profiler results now works again (#1887).

[1.1.7] - 2021-01-26

Fixed

  • pwd is now properly set for the live unit testing task (#1886).

[1.1.6] - 2021-01-25

Changed

  • The plot pane now properly scales images (#1882).

Fixed

  • The LS now correctly handles the $/setTrace notification (#868).

[1.1.0] - 2021-01-23

Changed

  • The progress bar now shows an estimate of the remaining time (#1868).

[1.0.15] - 2021-01-23

Added

  • Progress logging can now be disabled in the settings (#1867).
  • The Julia explorer sidebar element now contains a documentation browser (#1458).
  • Added a command for tagging new package versions (#1870).
  • Added a task for live unit testing (#1872).

Changed

  • The LS depot path is now located in the extension global storage instead of the extension's install directory, which allows the latter to be read-only (#1863).
  • Improve docstring formatting (#122).

Fixed

  • Comments and whitespace in multi-line tuples are no longer removed when formatting a file (#121).

[1.0.14] - 2021-01-16

Changed

  • Removed the telemtry nag message (#1676).
  • Removed @ and ! from the list of non-word characters, so double clicking @foo! now selects the whole macro (#1861).

Fixed

  • Improved the algorithm for finding the current code block (#860).
  • Fixed jmd parsing (#859).
  • THe linter now doesn't attribute every eval call to Core.eval (#237).

[1.0.13] - 2021-01-13

Added

  • It is now possible to customize the look of inline results (#1846).
  • Support for the upcoming import Foo as Bar syntax (#220).

Changed

  • Switched to a new symbol store format (#1857).
  • Major rewrite for CSTParser (#190).
  • StaticLint.jl now supports Julia >= v1.6 (#227).
  • Added additional type inference for the linter (#234).

Fixed

  • We now use the correct binary when setting the JULIA_EDITOR on MacOS for users of VSCode insiders (#1852).
  • Base.displayble is now correctly extended instead of creating a local version (#1856).
  • Conditions for line breakpoints now work again (#26).
  • Debugger now correctly unwraps UnionAlls when collecting global refs (#27).
  • The Linter now correctly handles Base.@kwdef (#233).

[1.0.12] - 2021-01-05

Added

  • Commands for moving between code cells (#1828).

Fixed

  • Backtraces are now properly truncated in the REPL (#1841).

[1.0.11] - 2020-12-15

Added

  • Debugging or launching a file now works in workspaces with more than one directory (#1789).
  • Pressing ^C more than three times in one second now sends a SIGINT to the Julia process (on non-Windows OSs), which should make for more robust interrupts (#1775).

Changed

  • Inline evaluation now waits for the LS to start up instead of throwing an error (#1760).
  • julia.environmentPath needs a REPL restart, so added a note to that effect (#1778).
  • The language-julia.executeFile command can now be called with a string argument for easy integration with custom keybindings (#1779).
  • Commands that require finding Julia environment files now don't need a running REPL (#1757).
  • When using inline evaluation commands that move the cursor after evaluation, the cursor is now only moved if the user hasn't interacted with it (#1774).
  • Debugging in a new process now properly loads the user's startup.jl (#1806).
  • Update to JuliaInterpreter.jl 0.8 (#24).

Fixed

  • There can only be one LS startup notification (#1798).
  • Plots are now properly displayed when the plot pane is disabled and only inline results are enabled (#1795).
  • Added some error handling when displaying error stacktraces inline (#1802).
  • The attached debugger now properly sets tls[:source_path] and doesn't crash the Julia REPL on errors (#1804).
  • Staktraces are now properly truncated for inline results (#1812).
  • Progress messages are now properly flushed, so that the progress monitoring is always be up-to-date (#1805).
  • Fixed an issue with parsing kwfuncs using where (#212).
  • Added missing nothing checks that could cause issues when linting files (#221, #223).

[1.0.10] - 2020-11-13

Added

  • Support for Julia 1.5.3 and 1.5.4 default installation paths (#1755, #1759).
  • New up-to-date changelog (#1750).

Changed

  • Inline evaluation now adds the evaluated code to the REPL history if the julia.codeInREPL options is set (#1754).
  • The extension now watches the global Manifest as well as Manifests in the workspace for changes and prompts the LS to re-index accordingly (#1756).

Fixed

  • Push internal Julia modules to the front of LOAD_PATH to prevent loading code from the workspace instead (#1747).
  • Fixed a typo in the tableviewer code (#1749).
  • Evaluation now uses unbuffered channels for communication, which might fix a rare off-by-one-result bug (#1762).

[1.0.9] - 2020-11-04

Added

  • The workspace now shows errors encountered while rendering the tree view. Furthermore, it now only special cases Array and Dict instead of their Abstract... supertypes (#1709).
  • Inline evaluation and the REPL can now be interrupted with the Julia: Interrupt Execution comamnd (or its default keyboard binding <kbd>ctrl+c</kbd>) (#1690).
  • ProgressLogging.jl's progress bars are now displayed in the editor (1579).
  • The language server process is now started with the JULIA_LANGUAGESERVER environment variable set to 1 (#1707).
  • Added commands to re-start the LS or re-index the symbol cache (#1721).
  • @edit now works properly on code-server instances (#1737).
  • Added commands to cd to the current directory, Pkg.activate the current directory, or Pkg.activate the current files nearest project. These commands are also available in the file explorer (#1743).

Changed

  • Updated some JS dependencies.
  • The plot pane is now opened in a new column by default, but also remembers it's last position (#1554).
  • The julia.NumThreads setting is now machine-overrideable (#1714).
  • Updated the Julia grammar definition (#1720), which fixed various bugs.
  • julia.usePlotPane can now be changed without requiring the Julia process to be restarted. Additionally, the related display machinery is now much more robust (#1729).
  • The "play" button in the editor toolbar now runs the file in the integrated REPL process (#1728).
  • All inline results are now removed when the REPL process exits (#1738).

Fixed

  • Stracktraces are now rendered properly (i.e. with linebreaks) once again (#1692).
  • The module indicator is now correctly initialized (instead of Main) (#1516).

[1.0.8] - 2020-10-16

Changed

  • Both inline evaluation and the REPL now follow the changed soft-scope rules for Julia 1.5 and newer (#1665).

[1.0.7] - 2020-10-05

Changed

  • Updated JS dependencies.
  • We now show an error message when both insiders and the regular extension are loaded.

[1.0.6] - 2020-09-29

Changed

  • Updated JS dependencies.

[1.0.5] - 2020-09-27

Added

  • Default paths for Julia 1.5.1 and 1.5.2.

[1.0.4] - 2020-09-18

Added

  • JULIA_PKG_SERVER is now an exposed setting.
  • Julia: Stop REPL command.

Changed

  • Toolbar icon now follows the style guide (outline instead of filled).

Fixed

  • Run/Debug commands now work when invoked from the command palette.

[1.0.3] - 2020-09-06

Fixed

  • ARGS now no longer contains extension internals.
  • Use correct default path for Julia 1.5.
  • Fixed a world age error when using the integrated table viewer.

Changed

  • Revise is now loaded without stealing the REPL backend for newer Julia versions.
  • #%% and # %% are now valid cell seperators.
  • Improved crash reporting.

[1.0.2] - 2020-09-01

Changed

  • Improved Azure build pipeline
  • Updated some JS dependencies

[1.0.1] - 2020-08-31

Added

[1.0.0] - 2020-08-28

This is identical to the latest 0.17 release.

[0.17]

  • Global variable support in the debugger variable explorer
  • Debug and run buttons above Julia files
  • Support for step in targets in the debugger
  • Profile viewing support
  • Stackframe highlighting for inline evaluations
  • Configuration option to exclude folders from linting
  • Add an extension API

[0.16]

  • Inline display of evaluation results
  • Workspace view

[0.15]

  • Add an experimental debugger
  • Improve cell delimiter regex so that it won't recognize YAS-style section headers as cell separator anymore (#1256, #1259)

[0.14]

  • Make Language Server indexing async
  • New linting capabilities: call checks, static if blocks, unused free parameters, unhandled include statements, clashing module names, and pirates.
  • Enable Code Actions: explicit re-export, replace qualified names with using statements
  • Add support for Julia 1.4/5-DEV
  • Improved robustness, e.g. handling of unicode
  • Better presentation of documentation
  • Fully implement LSP 3.14
  • StaticLint: improved path handling (file tree), extended macro handling, handle local/global variables, general refactor with speed/robustness improvements

[0.13.1]

  • Update CHANGELOG

[0.13.0]

  • Support for Julia 1.3
  • Configuration options for the code formatter
  • Bug fixes

[0.12.3]

  • Add support for running a selection with Alt+Enter
  • Fix a bug in the LS when an environment path doesn't exist
  • Clean up labeling of commands

[0.12.2]

  • Various bug fixes

[0.12.1]

  • Various bug fixes

[0.12.0]

  • Add vscodedisplay() function for a grid view of tables
  • Add a command to delete all plots from the plot pane
  • Store Julia environment choice in settings
  • Auto detect Julia environments
  • Change how execute block sends code to the REPL
  • Preserve focus of REPL when plot pane is shown
  • Fix weave preview
  • Make tasks work with julia environments
  • Add a test task that outputs coverage information
  • Open docs after build task
  • Support vega 3, 4 and 5, and vega-lite 2 and 3
  • Allow paths starting with ~ for julia bin location
  • Fix JULIA_EDITOR integration on Mac
  • Add support for custom sysimages
  • Reworked syntax highlighting
  • Add support for code cell execution with Shift+Enter

[0.11.6]

  • Add option to permanently opt out of crash reporting
  • Fix bug related to Revise integration
  • Add option for passing command line arguments to julia REPL process
  • Rework communication between REPL and extension
  • Auto-detect julia 1.1.1 and 1.2.0

[0.11.5]

  • Fix julia 1.1 compat issue in SymbolServer
  • Update vega-lite to 3.0 and vega to 5.2

[0.11.4]

  • Fix another julia 1.1 compat issue

[0.11.3]

  • Fix julia 1.1 compat issue

[0.11.2]

  • Various bug fixes
  • Add option to enable/disable plot pane
  • Search for julia 1.0.4 and 1.1

[0.11.1]

  • Update CHANGELOG

[0.11.0]

  • Add julia 1.0 support, drop julia 0.6 support
  • Add support for interactive Plotly figures
  • Various bugfixes

[0.10.2]

  • Fix automatic julia detection on Mac

[0.10.1]

  • Fix some small bugs

[0.10.0]

  • Auto-detect julia installation
  • Telemetry support
  • Crash reporting
  • Fix weave support
  • Various bug fixes

[0.9.1]

  • Update changelog

[0.9.0]

  • Enable multi-root workspace support
  • Bug fixes

[0.8.0]

  • Add eval into module option to REPL
  • Add toggle lint command
  • Add toggle log command
  • Add execute file command
  • Add execute block command
  • Add support for region folding
  • Bug fixes

[0.7.0]

  • Use VS Code tasks for build, test and benchmark
  • Add reload modules command
  • Add rename command
  • Bug fixes

[0.6.2]

  • Bug fixes
  • Language server status bar icon
  • julia 0.6 syntax highlighting

[0.6.1]

  • Bug fixes

[0.6.0]

  • Use LanguageServer.jl
  • Format Document command
  • Actionable diagnostics
  • Support for .jmd files
  • Plot pane
  • Run package tests command
  • Lint package command

[0.5.1]

  • Scope Ctrl+Enter to julia files
  • Fix whitespace bug on Windows

[0.5.0]

  • Migrate to a language server protocol design
  • Add completion provider
  • Add definition provider
  • Add hover provider
  • Add signature provider
  • Add integrated julia terminal

[0.4.2]

  • julia 0.5 compatibility

[0.4.1]

  • Update README

[0.4.0]

  • Add linter support

[0.3.1]

  • Patch release to test upgrade procedure

[0.3.0]

  • Add latex completion

[0.2.0]

  • Add "Open Package Directory in New Window" command

[0.1.1]

  • Update project home URLs

[0.1.0]

  • Initial release
diff --git a/dev/devdocs/devdocs/index.html b/dev/devdocs/devdocs/index.html index 7dd9e28..25a1e3c 100644 --- a/dev/devdocs/devdocs/index.html +++ b/dev/devdocs/devdocs/index.html @@ -1,2 +1,2 @@ -Overview · Julia in VS Code
+Overview · Julia in VS Code
diff --git a/dev/faq/index.html b/dev/faq/index.html index 85c4537..88cca57 100644 --- a/dev/faq/index.html +++ b/dev/faq/index.html @@ -1,4 +1,4 @@ FAQ · Julia in VS Code

Frequently Asked Questions

The language server fails to precompile. What can I do about that?

You've probably been directed here by a pop-up like the following LS precompilation failure

Click the Open Logs button or go to Output > Julia Language Server. You should see a message like this, among others:

The Language Server failed to precompile.
 Please make sure you have permissions to write to the LS depot path at
-	/home/pfitzseb/.config/Code/User/globalStorage/julialang.language-julia/lsdepot/v1

Your current account needs to have read/write access to the indicated directory. Also make sure that it isn't on a NFS volume or similar, as that may cause issues.

The integrated REPL closes when the Julia process crashes. How do I get more information on what's going on?

Keeping the integrated terminal open when the underlying process crashes is currently blocked on getting support for this in upstream VS Code. For now, try one of the two following options:

  • On Linux/MacOS, you can try the tmux integration (provided you have tmux installed on your system). That will make sure the underlying process stays alive even when the Julia process is terminated, so you should be able to see the actual error message.
  • Start a new terminal (integrated or external) and manually start Julia within that terminal. Then use the Julia: Connect external REPL command and follow the instructions. After the Julia session is connected to VS Code, run your code as before; the terminal will stay open after Julia closes.
+ /home/pfitzseb/.config/Code/User/globalStorage/julialang.language-julia/lsdepot/v1

Your current account needs to have read/write access to the indicated directory. Also make sure that it isn't on a NFS volume or similar, as that may cause issues.

The integrated REPL closes when the Julia process crashes. How do I get more information on what's going on?

Keeping the integrated terminal open when the underlying process crashes is currently blocked on getting support for this in upstream VS Code. For now, try one of the two following options:

diff --git a/dev/gettingstarted/index.html b/dev/gettingstarted/index.html index f95e23b..9d898ef 100644 --- a/dev/gettingstarted/index.html +++ b/dev/gettingstarted/index.html @@ -1,3 +1,3 @@ Getting Started · Julia in VS Code

Getting Started

This guide is intended for new or beginner-level users who are new to the Visual Studio Code extension. The getting started tasks use the Julia programming language to create a “Hello World” program in VS Code.

Prerequisites

  • Julia
  • VS Code
  • VS Code Julia extension

Installation and Configuration

Installing Julia

Download the latest stable version of Julia, based on the platform you are using, from the Julia homepage.

Installing VS Code

Download and install VS Code, based on the platform you are using, from the VS Code homepage.

Installing the Julia extension

  • Start or open Visual Studio Code.
  • Select View and then click Extensions to open Extension View.
  • Enter the term julia in the marketplace search box. Click the green Install button to download the extension.

Julia VS Code Extension

You successfully downloaded the Julia extension for VS Code.

NOTE: It is recommended that you restart VS Code after installation.

Configuring the Julia extension

If you installed Julia into a standard location on Mac or Windows, or if the Julia binary is on your PATH, the Julia VS Code extension automatically finds your Julia installation. You do not need to configure the extension. Continue onto the next section.

If the VS Code extension does not find your Julia installation automatically, or you want to use a different Julia installation than the default one, use the following steps to configure the extension.

  1. Set the julia.executablePath to the full path of Julia executable that the extension should use.
  2. To edit your configuration settings, select menu Code (on Mac) or File (otherwise), then select Preferences, and then click Settings.
  3. Ensure that your user settings include the julia.executablePath setting.

NOTE: The format of the string should follow your platform specific conventions. Note that the backslash \ is the escape character in JSON, therefore use \\ as the path separator character on Windows.

Creating Your First Julia Hello World program

  1. From the File Explorer toolbar, click the New File button on the Hello folder:

Julia VS Code Extension

  1. Name the file hello.jl, and it automatically opens in the editor.

Julia VS Code Extension

The .jl file extension indicates to VS Code that you interpret this file as a Julia program, therefore it evaluates the contents with the Julia extension and the selected interpreter.

  1. Enter the following source code in hello.jl:
msg = "Hello World"
-println(msg)

Running Hello World program

To run the Hello World program, click Run: Julia File in Terminal play button in the top-right side of the editor.

Julia VS Code Extension

You can see the corresponding output in the terminal.

Julia VS Code Extension

Congratulations! You have just completed your first Julia program.

+println(msg)

Running Hello World program

To run the Hello World program, click Run: Julia File in Terminal play button in the top-right side of the editor.

Julia VS Code Extension

You can see the corresponding output in the terminal.

Julia VS Code Extension

Congratulations! You have just completed your first Julia program.

diff --git a/dev/index.html b/dev/index.html index 387ebcf..7ca0769 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Home · Julia in VS Code

Julia Visual Studio Code Documentation

NOTE: This documentation is currently being updated and revamped. In the meantime, the CHANGELOG and pull requests linked within may serve as a useful reference of as yet undocumented features.

Julia for Visual Studio Code is a powerful, free IDE for the Julia language. Visual Studio Code is a powerful and customizable editor. With a completely live environment, Julia for VS Code aims to take the frustration and guesswork out of programming and put the fun back in. We build on Julia’s unique combination of ease-of-use and performance. Beginners and experts can build better software more quickly, and get to a result faster. Julia is an officially supported language on the VS Code docs.

Installation/Updates

To install and download Julia, VS Code, and the Julia extension, see Installation and Configuration instructions.

Julia VS Code extension release features can be found on our Updates page.

Reporting Issues/Bugs/Discussions

If you have any issues with this setup, check out the FAQ first. If it doesn't help, please do report them on vscode.jl GitHub repository or at Julia Discourse under the Tooling ▶ VS Code category. We'll do our best to help you get going.

User Manual

The following pages are the user manual. These describe how to install and use the Julia extension on VS Code, along with answer questions most new users encounter.

+Home · Julia in VS Code

Julia Visual Studio Code Documentation

NOTE: This documentation is currently being updated and revamped. In the meantime, the CHANGELOG and pull requests linked within may serve as a useful reference of as yet undocumented features.

Julia for Visual Studio Code is a powerful, free IDE for the Julia language. Visual Studio Code is a powerful and customizable editor. With a completely live environment, Julia for VS Code aims to take the frustration and guesswork out of programming and put the fun back in. We build on Julia’s unique combination of ease-of-use and performance. Beginners and experts can build better software more quickly, and get to a result faster. Julia is an officially supported language on the VS Code docs.

Installation/Updates

To install and download Julia, VS Code, and the Julia extension, see Installation and Configuration instructions.

Julia VS Code extension release features can be found on our Updates page.

Reporting Issues/Bugs/Discussions

If you have any issues with this setup, check out the FAQ first. If it doesn't help, please do report them on vscode.jl GitHub repository or at Julia Discourse under the Tooling ▶ VS Code category. We'll do our best to help you get going.

User Manual

The following pages are the user manual. These describe how to install and use the Julia extension on VS Code, along with answer questions most new users encounter.

diff --git a/dev/search/index.html b/dev/search/index.html index 03ce93c..6dab845 100644 --- a/dev/search/index.html +++ b/dev/search/index.html @@ -1,2 +1,2 @@ -Search · Julia in VS Code

Loading search...

    +Search · Julia in VS Code

    Loading search...

      diff --git a/dev/search_index.js b/dev/search_index.js index 3648dc3..fcfdc47 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"userguide/editingcode/#Editing-Code","page":"Editing Code","title":"Editing Code","text":"","category":"section"},{"location":"userguide/editingcode/#Code-completion-(IntelliSense)","page":"Editing Code","title":"Code completion (IntelliSense)","text":"","category":"section"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"You can use the InteliSense for completing codes,","category":"page"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"(Image: code completion)","category":"page"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"printing parameter information,","category":"page"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"(Image: signature completion)","category":"page"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"listing members of a struct, and so on. ","category":"page"},{"location":"userguide/editingcode/#Rename-symbol","page":"Editing Code","title":"Rename symbol","text":"","category":"section"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"You can rename a symbol (variable name, function name, etc) by pressing F2 or from right click -> \"Rename Symbol\".","category":"page"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"(Image: Rename Symbol)","category":"page"},{"location":"devdocs/devdocs/#Developer-Documentation","page":"Overview","title":"Developer Documentation","text":"","category":"section"},{"location":"userguide/compilesysimage/#Compiling-Sysimages","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"","category":"section"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"The Julia VS Code extension enables you to compile a custom sysimage for your Julia environments. The extension automatically uses sysimages for the current environment when it starts a new Julia REPL in VS Code. ","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"Custom sysimages can significantly reduce load times for packages. ","category":"page"},{"location":"userguide/compilesysimage/#Creating-a-sysimage-for-the-active-environment","page":"Compiling Sysimages","title":"Creating a sysimage for the active environment","text":"","category":"section"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"The Julia extension adds a build task for custom sysimages to the Visual Studio Code task system. To run the build task, select the command Tasks: Run Build Task and then select Julia: Build custom sysimage for current environment. ","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"By default, all of the packages defined in the Project.toml file are included in the system image. However, those added by dev are excluded as they are intended for developments and often subject to changes.","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"Additional options can be passed to further tweak the compilation. In particular, one may want to include script containing the precompile statements or a file to execute certain julia function, which can further reduce the first-call latency. Please read the documentation of PackageCompiler.jl for more details.","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"This file should be named ./.vscode/JuliaSysimage.toml and be placed under the project root file. Its content should look like:","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"[sysimage]\nexclude=[\"Pkg1\", \"Pkg2\"] # Additional packages to be excluded in the system image\nstatements_files=[\"relative/path/to/precompile_statements_file.jl\", ]\nexecution_files=[\"relative/path/to/precompile_execution_file.jl\", ]","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"The packages to be excluded have to be separated by commas, each with quotation marks and all inside square brackets. The path should be relative to the currently active folder, which can be selected by the command File: Open Folder.... The statement or execution files can be given as a single relative path, or as a list of relative paths.","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"The statement files should contain precompile statements of the form precompile(Tuple{typeof(Base.sin), Float64}), and the execution files should contain function calls for which the methods should be compiled. ","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"The build task creates a sysimage that includes all packages in the current Julia environment. This sysimage is saved in the same folder where the Project.toml and Manifest.toml of the current Julia environment are stored. The name of the sysimage file will be JuliaSysimage.dll (Windows) or JuliaSysimage.so. ","category":"page"},{"location":"userguide/compilesysimage/#Using-custom-sysimages","page":"Compiling Sysimages","title":"Using custom sysimages","text":"","category":"section"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"When the Julia extension starts a new Julia REPL process, the extension first looks for a custom sysimage file for the current Julia environment. The extension then verifies whether the custom sysimage file is up to date by comparing the last modified date of the sysimage file to the last modified date of the Manifest.toml file. If an up to date sysimage file exists, the Julia extension automatically starts the Julia REPL process with the custom sysimage loaded. This requires the useCustomSysimage field to be set to true in the application settings of the extension.","category":"page"},{"location":"userguide/understandingcode/#Understanding-Code","page":"Understanding Code","title":"Understanding Code","text":"","category":"section"},{"location":"userguide/keyboard/#Keyboard-Shortcuts","page":"Keyboard Shortcuts","title":"Keyboard Shortcuts","text":"","category":"section"},{"location":"userguide/keyboard/","page":"Keyboard Shortcuts","title":"Keyboard Shortcuts","text":"Below are keyboard shortcut reference for three different platforms.","category":"page"},{"location":"userguide/keyboard/#Windows","page":"Keyboard Shortcuts","title":"Windows","text":"","category":"section"},{"location":"userguide/keyboard/","page":"Keyboard Shortcuts","title":"Keyboard Shortcuts","text":"Shortcut Description\nAlt + E Julia: Change Current Environment\nAlt + O Julia: Start REPL\nAlt + K Julia: Stop REPL\nCtrl + Enter Julia: Send Current Line or Selection to REPL\nAlt + Enter Julia: Execute Code And Move\nRightArrow, DownArrow, PageDown Julia: Show Next Plot\nLeftArrow, UpArrow, PageUp Julia: Show Previous Plot\nHome Julia: Show First Plot\nEnd Julia: Show Last Plot\nShift + Delete Julia: Delete All Plots\nShift + Enter Julia: Execute Code Cell And Move\nCtrl + C Julia: Clear Inline Results in Editor\nCtrl + D Julia: Clear Current Inline Result\nAlt + M Julia: Select Current Module","category":"page"},{"location":"userguide/keyboard/#Mac","page":"Keyboard Shortcuts","title":"Mac","text":"","category":"section"},{"location":"userguide/keyboard/","page":"Keyboard Shortcuts","title":"Keyboard Shortcuts","text":"Shortcut Description\nOption + E Julia: Change Current Environment\nOption + O Julia: Start REPL\nOption + K Julia: Stop REPL\nControl + Enter Julia: Send Current Line or Selection to REPL\nOption + Enter Julia: Execute Code And Move\nRightArrow, DownArrow, PageDown Julia: Show Next Plot\nLeftArrow, UpArrow, PageUp Julia: Show Previous Plot\nHome Julia: Show First Plot\nEnd Julia: Show Last Plot\nShift + Delete Julia: Delete All Plots\nShift + Enter Julia: Execute Code Cell And Move\nControl + C Julia: Clear Inline Results in Editor\nControl + D Julia: Clear Current Inline Result\nOption + M Julia: Select Current Module","category":"page"},{"location":"userguide/keyboard/#Linux","page":"Keyboard Shortcuts","title":"Linux","text":"","category":"section"},{"location":"userguide/keyboard/","page":"Keyboard Shortcuts","title":"Keyboard Shortcuts","text":"Shortcut Description\nAlt + E Julia: Change Current Environment\nAlt + O Julia: Start REPL\nAlt + K Julia: Stop REPL\nCtrl + Enter Julia: Send Current Line or Selection to REPL\nAlt + Enter Julia: Execute Code And Move\nRightArrow, DownArrow, PageDown Julia: Show Next Plot\nLeftArrow, UpArrow, PageUp Julia: Show Previous Plot\nHome Julia: Show First Plot\nEnd Julia: Show Last Plot\nShift + Delete Julia: Delete All Plots\nShift + Enter Julia: Execute Code Cell And Move\nCtrl + C Julia: Clear Inline Results in Editor\nCtrl + D Julia: Clear Current Inline Result\nAlt + M Julia: Select Current Module","category":"page"},{"location":"setup/#Setup","page":"Setup","title":"Setup","text":"","category":"section"},{"location":"setup/","page":"Setup","title":"Setup","text":"Getting the Julia extension for VS Code to work involves two steps:","category":"page"},{"location":"setup/","page":"Setup","title":"Setup","text":"Install VS Code and then,\nInstall the Julia extension. ","category":"page"},{"location":"setup/","page":"Setup","title":"Setup","text":"In rare situations you also need to configure the extension to find your Julia installation.","category":"page"},{"location":"setup/#Installing-VS-Code","page":"Setup","title":"Installing VS Code","text":"","category":"section"},{"location":"setup/","page":"Setup","title":"Setup","text":"Just head over to the VS Code homepage. \nFollow the installation instructions for your platform. ","category":"page"},{"location":"setup/","page":"Setup","title":"Setup","text":"At the end of this step you should be able to start VS Code.","category":"page"},{"location":"setup/#Install-the-Julia-extension","page":"Setup","title":"Install the Julia extension","text":"","category":"section"},{"location":"setup/","page":"Setup","title":"Setup","text":"First, start VS Code.\nInside VS Code, go to the extensions view either by executing the View: Show Extensions command (click View->Command Palette...) or by clicking on the extension icon on the left side of the VS Code window.\nIn the extensions view, simply search for the term julia in the marketplace search box, then select the Julia extension and click the install button. \nYou might have to restart VS Code after this step.","category":"page"},{"location":"setup/#Configure-the-Julia-extension","page":"Setup","title":"Configure the Julia extension","text":"","category":"section"},{"location":"setup/","page":"Setup","title":"Setup","text":"If you have installed Julia into a standard location on Mac or Windows, or if the Julia binary is on your PATH, the Julia VS Code extension should automatically find your Julia installation and you should not need to configure anything.\nIf the extension does not find your Julia installation automatically, or if you want to use a different Julia installation than the default one,\nYou can set the julia.executablePath to the full path of Julia executable that the extension should use. In that case the extension will always use that version of Julia.\nTo edit your configuration settings, \nexecute the Preferences: Open User Settings command (you can also access it via the menu File->Preferences->Settings),\nAnd then make sure your user settings include the julia.executablePath setting.\nThe format of the string should follow your platform specific conventions, and be aware that the backlash \\ is the escape character in JSON, so you need to use \\\\ as the path separator character on Windows.","category":"page"},{"location":"userguide/remote/#Remote-Development","page":"Remote Development","title":"Remote Development","text":"","category":"section"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"To execute code on a remote server, you need to:","category":"page"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"Make sure you have SSH access to the server\nInstall the Remote-SSH extension locally in VS Code\nConnect VS Code to the server (using this icon in the bottom left of the VS code window: (Image: Icon looking like vertically misaligned \"><\"))\nInstall the Julia extension on the server through VS Code","category":"page"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"Then, you can execute your code on the server the same way you would locally: (Image: Example of the settings)","category":"page"},{"location":"userguide/remote/#Persistent-server-sessions","page":"Remote Development","title":"Persistent server sessions","text":"","category":"section"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"When you close the VS Code window, the server-side REPL terminates by default. To make the REPL state persistent across sessions, you have to:","category":"page"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"Install tmux, a terminal multiplexer, on the server (e.g. with apt install tmux)\nToggle the julia.persistentSession.enabled setting in the VS Code settings. Note that this setting is available only in the server installation of the Julia extensions, accessible from the \"Remote ...\" tab of settings:","category":"page"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"(Image: Location of the persistent sessions setting)","category":"page"},{"location":"userguide/tasks/#Tasks","page":"Tasks","title":"Tasks","text":"","category":"section"},{"location":"userguide/grid/#Table-Viewer","page":"Table Viewer","title":"Table Viewer","text":"","category":"section"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"All Tables.jl-compatible tables (and more!) can be displayed in the integrated table viewer.","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"You can use the exported vscodedisplay function to display an object directly or use the Open in VS Code button in the workspace:","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"(Image: table viewer)","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"vscodedisplay also takes an optional second argument that allows setting the tab title.","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"Tables can be filtered and sorted in the UI, although that may be slow for medium sized tables and is disabled for big tables (with more than 1e7 elements).","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"Note that not-big tables (by the above definition) are cached. As such, changes to the original data structure won't be reflected in the table viewer until you display the table again.","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"A slightly hidden feature is that you can select rows and copy them into the clipboard with Ctrl-C or the context menu. Note that this will be slow when many rows are selected.","category":"page"},{"location":"userguide/formatter/#Formatting-Code","page":"Formatting Code","title":"Formatting Code","text":"","category":"section"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"Code formatting is powered by JuliaFormatter.jl. Both the Format Document command (Ctrl-Shift-I) and Format Selection (Ctrl-K Ctrl-F) are supported.","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"The default formatting is fairly conservative and unintrusive, but you can customise it with a .JuliaFormatter.toml in your workspace. Check out the relevant documentation here. Note: unlike the standard search rules for JuliaFormatter.jl, VSCode will only check for .JuliaFormatter.toml files within the workspace.","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"Formatting helps to keep code readable by automatically aligning indentations and spaces.","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"The Julia formatter can automatically make this code:","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"f(x)=2x+3\nprint(f'( 2 ))\n\nopen(\"myfile.txt\", \"w\") do io\n\twrite(io, \"Hello world!\")\n end;","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"look like this:","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"f(x) = 2x + 3\nprint(f'(2))\n\nopen(\"myfile.txt\", \"w\") do io\n write(io, \"Hello world!\")\nend;","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"It's the very same code, though now it's much easier to read.","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"In order to format your code press shift + cmd|windows + p to bring up the command palette and search for Format Document","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"(Image: format)","category":"page"},{"location":"faq/#FAQ","page":"FAQ","title":"Frequently Asked Questions","text":"","category":"section"},{"location":"faq/#The-language-server-fails-to-precompile.-What-can-I-do-about-that?","page":"FAQ","title":"The language server fails to precompile. What can I do about that?","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"You've probably been directed here by a pop-up like the following (Image: LS precompilation failure)","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Click the Open Logs button or go to Output > Julia Language Server. You should see a message like this, among others:","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"The Language Server failed to precompile.\nPlease make sure you have permissions to write to the LS depot path at\n\t/home/pfitzseb/.config/Code/User/globalStorage/julialang.language-julia/lsdepot/v1","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Your current account needs to have read/write access to the indicated directory. Also make sure that it isn't on a NFS volume or similar, as that may cause issues.","category":"page"},{"location":"faq/#The-integrated-REPL-closes-when-the-Julia-process-crashes.-How-do-I-get-more-information-on-what's-going-on?","page":"FAQ","title":"The integrated REPL closes when the Julia process crashes. How do I get more information on what's going on?","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Keeping the integrated terminal open when the underlying process crashes is currently blocked on getting support for this in upstream VS Code. For now, try one of the two following options:","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"On Linux/MacOS, you can try the tmux integration (provided you have tmux installed on your system). That will make sure the underlying process stays alive even when the Julia process is terminated, so you should be able to see the actual error message.\nStart a new terminal (integrated or external) and manually start Julia within that terminal. Then use the Julia: Connect external REPL command and follow the instructions. After the Julia session is connected to VS Code, run your code as before; the terminal will stay open after Julia closes.","category":"page"},{"location":"userguide/linter/#Linting-and-Diagnostics","page":"Linter","title":"Linting and Diagnostics","text":"","category":"section"},{"location":"userguide/linter/","page":"Linter","title":"Linter","text":"All Julia code in the workspace is statically linted. You can disable that feature with the julia.lint.run setting or configure it via various options with the julia.lint. prefix.","category":"page"},{"location":"userguide/linter/#Runtime-diagnostics","page":"Linter","title":"Runtime diagnostics","text":"","category":"section"},{"location":"userguide/linter/","page":"Linter","title":"Linter","text":"Packages like JET.jl can analyze code at runtime (for some definition of \"runtime\"): (Image: jet)","category":"page"},{"location":"userguide/linter/","page":"Linter","title":"Linter","text":"You can opt out of this feature with the julia.showRuntimeDiagnostics setting. Use Julia: Clear Runtime Diagnostics or Julia: Clear Runtime Diagnostics by Provider to clear the displayed diagnostics.","category":"page"},{"location":"userguide/linter/","page":"Linter","title":"Linter","text":"Package authors who want to use this feature can simply implement a type that supports the application/vnd.julia-vscode.diagnostics MIME type. Check VSCodeServer.DIAGNOSTIC_MIME in a the integrated Julia REPL for more information on the API.","category":"page"},{"location":"gettingstarted/#Getting-Started","page":"Getting Started","title":"Getting Started","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"This guide is intended for new or beginner-level users who are new to the Visual Studio Code extension. The getting started tasks use the Julia programming language to create a “Hello World” program in VS Code.","category":"page"},{"location":"gettingstarted/#Prerequisites","page":"Getting Started","title":"Prerequisites","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Julia\nVS Code\nVS Code Julia extension","category":"page"},{"location":"gettingstarted/#Installation-and-Configuration","page":"Getting Started","title":"Installation and Configuration","text":"","category":"section"},{"location":"gettingstarted/#Installing-Julia","page":"Getting Started","title":"Installing Julia","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Download the latest stable version of Julia, based on the platform you are using, from the Julia homepage.","category":"page"},{"location":"gettingstarted/#Installing-VS-Code","page":"Getting Started","title":"Installing VS Code","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Download and install VS Code, based on the platform you are using, from the VS Code homepage.","category":"page"},{"location":"gettingstarted/#Installing-the-Julia-extension","page":"Getting Started","title":"Installing the Julia extension","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Start or open Visual Studio Code.\nSelect View and then click Extensions to open Extension View.\nEnter the term julia in the marketplace search box. Click the green Install button to download the extension.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"(Image: Julia VS Code Extension)","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"You successfully downloaded the Julia extension for VS Code.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"NOTE: It is recommended that you restart VS Code after installation.","category":"page"},{"location":"gettingstarted/#Configuring-the-Julia-extension","page":"Getting Started","title":"Configuring the Julia extension","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"If you installed Julia into a standard location on Mac or Windows, or if the Julia binary is on your PATH, the Julia VS Code extension automatically finds your Julia installation. You do not need to configure the extension. Continue onto the next section.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"If the VS Code extension does not find your Julia installation automatically, or you want to use a different Julia installation than the default one, use the following steps to configure the extension.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Set the julia.executablePath to the full path of Julia executable that the extension should use.\nTo edit your configuration settings, select menu Code (on Mac) or File (otherwise), then select Preferences, and then click Settings.\nEnsure that your user settings include the julia.executablePath setting.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"NOTE: The format of the string should follow your platform specific conventions. Note that the backslash \\ is the escape character in JSON, therefore use \\\\ as the path separator character on Windows.","category":"page"},{"location":"gettingstarted/#Creating-Your-First-Julia-Hello-World-program","page":"Getting Started","title":"Creating Your First Julia Hello World program","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"From the File Explorer toolbar, click the New File button on the Hello folder:","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"(Image: Julia VS Code Extension)","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Name the file hello.jl, and it automatically opens in the editor.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"(Image: Julia VS Code Extension)","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"The .jl file extension indicates to VS Code that you interpret this file as a Julia program, therefore it evaluates the contents with the Julia extension and the selected interpreter.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Enter the following source code in hello.jl:","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"msg = \"Hello World\"\nprintln(msg)","category":"page"},{"location":"gettingstarted/#Running-Hello-World-program","page":"Getting Started","title":"Running Hello World program","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"To run the Hello World program, click Run: Julia File in Terminal play button in the top-right side of the editor.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"(Image: Julia VS Code Extension)","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"You can see the corresponding output in the terminal.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"(Image: Julia VS Code Extension)","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Congratulations! You have just completed your first Julia program.","category":"page"},{"location":"changelog/#Change-Log","page":"Change Log","title":"Change Log","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"All notable changes to the Julia extension will be documented in this file.","category":"page"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The format is based on Keep a Changelog.","category":"page"},{"location":"changelog/#[Unreleased]","page":"Change Log","title":"[Unreleased]","text":"","category":"section"},{"location":"changelog/#Added","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline results now support markdown-show methods (#2933)\nThe Julia REPL works with VS Code's shell integration feature (#2941)\nIt's now possible to add a special ALL_MODULES_EXCEPT_MAIN token to the list of compiled modules when debugging (#61)","category":"page"},{"location":"changelog/#Changed","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The language server now uses incremental sync (#1105)","category":"page"},{"location":"changelog/#Fixed","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Assigned but not used linter annotations are now slightly more correct (#339)\nActually fixed that issue with copying Exprs while debugging (#60)\nFixed when clauses of some keybindings that caused incorrect matches when editorLangId != julia (#2971)","category":"page"},{"location":"changelog/#[1.6.25]-2022-06-17","page":"Change Log","title":"[1.6.25] - 2022-06-17","text":"","category":"section"},{"location":"changelog/#Changed-2","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline results and inline profile traces are now themeable (#2897)\nInline evaluation now works in plain markdown files (#2920)","category":"page"},{"location":"changelog/#Fixed-2","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Restored a check (and notification) as to whether the Julia path is valid (#2923)\nErroneous .JuliaFormatter.tomls no longer cause the language server to crash (#1101)","category":"page"},{"location":"changelog/#[1.6.23]-2022-05-24","page":"Change Log","title":"[1.6.23] - 2022-05-24","text":"","category":"section"},{"location":"changelog/#Added-2","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Integrated the new allocation profiler (#2890)\nThe linter now warns when indexing into arrys with for i in 1:length(A) (#338)\nAdded a code action for adding a SPDX header to files (#1075)\nAdded a code action for organizing using/import statements (#1076)\nAdded a code action for converting string to raw strings and back (#1082)\nAdded a code action for adding a docstring template for function definitions (#1084)","category":"page"},{"location":"changelog/#Changed-3","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Switched to LSP 3.17 (#2886)","category":"page"},{"location":"changelog/#Fixed-3","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Made the workspace even more robust. For real this time. (#2892)\nVarious parser fixes (#338)\nFixed an issue with multiple \"missing reference\" actions being applied at the same time (#1089)","category":"page"},{"location":"changelog/#[1.6.22]-2022-05-04","page":"Change Log","title":"[1.6.22] - 2022-05-04","text":"","category":"section"},{"location":"changelog/#Added-3","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Modules can now be hidden in the workspace (#2887)","category":"page"},{"location":"changelog/#[1.6.18]-2022-05-04","page":"Change Log","title":"[1.6.18] - 2022-05-04","text":"","category":"section"},{"location":"changelog/#Added-4","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The profile pane now has a button to save the current profile to a file (#2847)\nAdded a Julia: New Julia File command (#1509, #2877)\nCell evaluation now shows inline results for all top-level code blocks when the julia.execution.inlineResultsForCellEvaluation setting is enabled (#2866)\nAdded a code action to replace ==/!= with ===/!== for comarisons with nothing (#1048)\nAdded completions for string macros (#1046)\nAdded a code action for replacing unused assignments/arguments with an underscore (#1065, #1072)","category":"page"},{"location":"changelog/#Changed-4","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The Julia version is now appended to the REPL title (#2857)\nThe extension is now only auto-activated when a Project.toml is in the workspace, not any arbitrary .jl file (#2850)\nPlot navigator screenshots were removed due to performance issues (#2869)\nImproved documentation search scoring algorithm (#1057)\nSome code actions are now marked as preferred, which makes applying them easier (#1063)\nCode action kinds are now set appropriately when applicable (#1062)\nImproved auto completion presentation (#1052)\nSnippet completions now have their kind set to snippet, as is appropriate (#1067)","category":"page"},{"location":"changelog/#Fixed-4","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Internal modules are now correctly loaded on all processes (#2845)\nBig tables originating from notebooks are now correctly displayed (#2848)\nNested progress bars are more robust in the presence of multiple tasks (#2845)\nThe Language Server is now properly restatable again (#2859)\nNotebook internals are now hidden in stacktraces (#2862)\nTerminal link handler now properly works for Base-internal code (#2865)\nans assignment is now more robust, which fixes an issue when IJulia.jl is loaded (#2867)\nLines are now broken properly in the documentation browser (#2870)\nargs can now be specified in the Julia launch configuration (#2872)\nconst fields in mutable structs are now parsed correctly (#336)\nFixed a race condition when downloading symbol server cache files (#251)\nPackage resolution now works properly for 1.7-style Manifests (#252)\nPlaceholder paths replacement in symbol server cache files now works more robustly (#253)\nFixed an issue with deepcopying Exprs in the debugger (#58)\nCode actions triggers are no longer off by one character (#1050)","category":"page"},{"location":"changelog/#[1.6.17]-2022-04-06","page":"Change Log","title":"[1.6.17] - 2022-04-06","text":"","category":"section"},{"location":"changelog/#Fixed-5","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Slightly better check for displaying objects in the workspace (#2833)","category":"page"},{"location":"changelog/#[1.6.16]-2022-04-06","page":"Change Log","title":"[1.6.16] - 2022-04-06","text":"","category":"section"},{"location":"changelog/#Fixed-6","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix a problem when trying to display missings in the workspace (#2831)\nThe x == nothing linter pass now also detects nothings on the LHD (#334)","category":"page"},{"location":"changelog/#[1.6.15]-2022-04-03","page":"Change Log","title":"[1.6.15] - 2022-04-03","text":"","category":"section"},{"location":"changelog/#Fixed-7","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Notebooks now start properly in empty VS Code workspaces (#2828)","category":"page"},{"location":"changelog/#[1.6.14]-2022-04-01","page":"Change Log","title":"[1.6.14] - 2022-04-01","text":"","category":"section"},{"location":"changelog/#Added-5","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"More notebook startup diagnostics.","category":"page"},{"location":"changelog/#[1.6.13]-2022-04-01","page":"Change Log","title":"[1.6.13] - 2022-04-01","text":"","category":"section"},{"location":"changelog/#Added-6","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"\"Go to defintion\" button for some workspace items (#2815)","category":"page"},{"location":"changelog/#Fixed-8","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"@edit is now much more robust (#2823)\nFixed a formatting crash (#1045)","category":"page"},{"location":"changelog/#[1.6.11]-2022-03-28","page":"Change Log","title":"[1.6.11] - 2022-03-28","text":"","category":"section"},{"location":"changelog/#Fixed-9","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed another bug in notebook error handling (#2803)\nPersistent REPL is no more killed on window reload (#2807)\nLOAD_PATH is now correctly set in notebooks (#2810)\nTrying to display an empty profile trace now shows a warning instead of emitting a scary looking error (#2809)\nLatex completions are now more robust (#1042)","category":"page"},{"location":"changelog/#[1.6.8]-2022-03-23","page":"Change Log","title":"[1.6.8] - 2022-03-23","text":"","category":"section"},{"location":"changelog/#Fixed-10","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Toolbar icon now works properly in Chromium based browsers (#2794)\njuliaup integration is now more robust (#2796)\nInline diagnostics are now also displayed in the REPL (#2797)\nFix for dev'ed package with relative paths (#2798)\nThe language server now handles exit notifications correctly (#1039)","category":"page"},{"location":"changelog/#[1.6.5]-2022-03-20","page":"Change Log","title":"[1.6.5] - 2022-03-20","text":"","category":"section"},{"location":"changelog/#Fixed-11","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline error are now handled better during debugging (#56)\nFixed an issue with generator linting (#1037)\nFixed an issue with autocompletions containing multi-byte characters (#1035)\nFixed a LSP spec violation (#1038)","category":"page"},{"location":"changelog/#[1.6.4]-2022-03-17","page":"Change Log","title":"[1.6.4] - 2022-03-17","text":"","category":"section"},{"location":"changelog/#Changed-5","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The default formatting style now does not surround kwargs = with whitespace (#1033)","category":"page"},{"location":"changelog/#Fixed-12","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Errors in notebooks are now handled more robustly (#2781, #2783)\nRevise.revise is now called in the most recent world during inline evaluation (#2782)","category":"page"},{"location":"changelog/#[1.6.2]-2022-03-11","page":"Change Log","title":"[1.6.2] - 2022-03-11","text":"","category":"section"},{"location":"changelog/#Fixed-13","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The table viewer is now available even when TableTraits is loaded before we connect to the Julia session, e.g. because it's compiled into the sysimage (#2775)\nFixed an issue where breakpoints would not get removed from the backend in some circumstancs (#53)","category":"page"},{"location":"changelog/#[1.6.1]-2022-03-10","page":"Change Log","title":"[1.6.1] - 2022-03-10","text":"","category":"section"},{"location":"changelog/#Added-7","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"\"Always copy\" option for \"Connect to external REPL\" command (#2759)","category":"page"},{"location":"changelog/#Changed-6","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Flame graph viewer improvements (scroll up now moves to the parent node, better macOS compatiblity).\nJulia REPL is now properly marked as transient on supported VS Code versions (#2764)","category":"page"},{"location":"changelog/#Fixed-14","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Julia-specific notebook toolbar icons now only show up for notebooks with Julia kernels (#2758)\nFixed version incompatibility in debugger (#52)\nFixed certain @doc parsing issues (#329, #330)\nOnly pass on valid options to JuliaFormatter (#1030)","category":"page"},{"location":"changelog/#[1.6.0]-2022-02-22","page":"Change Log","title":"[1.6.0] - 2022-02-22","text":"","category":"section"},{"location":"changelog/#Added-8","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"New profile viewer with inline annotations (#2674)\n\"Execute Code Block in REPL\" in editor context menu (#2667)\nSupport for --threads=auto setting (#2666)","category":"page"},{"location":"changelog/#Changed-7","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add config \"julia.execution.saveOnEval\" to allow auto saving before execution (#2727)\nAdd restart REPL command and always stop persistent session option(#2720)\nThe julia.NumThreads setting now allows for a value of auto if your Julia versions supports it (#2666)\nBetter enum rendering (#2620)\nImproved various notebook functionality (#2742)\nAdded stop/restart buttons to REPL workspace (#2746)\nThe table viewer now shows the actual Julia type when hovering over the colum header (#2749)","category":"page"},{"location":"changelog/#Fixed-15","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Weave preview background now follow theme color (#2740)\nNotebooks now respect the thread setting (#2747)\nFixed rendering of large stacktraces (especially with repeated frames) (#2746)\nLoadErrors are now properly unwrapped in the REPL (#2754)\nInline errors are now properly shown even when the line ends with a ; (#2748)","category":"page"},{"location":"changelog/#[1.5.11]-2022-01-17","page":"Change Log","title":"[1.5.11] - 2022-01-17","text":"","category":"section"},{"location":"changelog/#Fixed-16","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed a grammar issue when using VS Code 1.64.x (#2730)\nFixed inline result hovers for VS Code 1.64 and newer (#2716)\nFixed a Julia REPL crash when getting runtime completions for uninitialized fields (#2686)","category":"page"},{"location":"changelog/#Changed-8","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Removed some superfluous plot pane related keybindings (#2704)","category":"page"},{"location":"changelog/#[1.5.10]-2022-01-17","page":"Change Log","title":"[1.5.10] - 2022-01-17","text":"","category":"section"},{"location":"changelog/#Fixed-17","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix plot pane location and focus issue, again (hopefully for real this time) (#2676)","category":"page"},{"location":"changelog/#[1.5.9]-2022-01-05","page":"Change Log","title":"[1.5.9] - 2022-01-05","text":"","category":"section"},{"location":"changelog/#Fixed-18","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Plot pane position is now stable and interactive plots now render properly if the plot pane wasn't opened previously (#2662)\nFixed various issues with finding the Julia binary (#2647, #2642, #2658)\nFixed a command registration issue if the Julia binary changes while the language server is starting (#2663)","category":"page"},{"location":"changelog/#[1.5.8]-2021-12-21","page":"Change Log","title":"[1.5.8] - 2021-12-21","text":"","category":"section"},{"location":"changelog/#Fixed-19","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"juliaup integration now works properly (#2374)","category":"page"},{"location":"changelog/#[1.5.7]-2021-12-14","page":"Change Log","title":"[1.5.7] - 2021-12-14","text":"","category":"section"},{"location":"changelog/#Fixed-20","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Code execution in Julia markdown files should now work as intended (#2584)\nPlot pane is now properly confined to its view column (#2611)\nSystem image building now supports the new manifest format (#2617)\n=/in normalization for iteration over ranges is now disabled by default (#1006)","category":"page"},{"location":"changelog/#Changed-9","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Pixelated rendering mode is only active when zooming into an image now (#2602)","category":"page"},{"location":"changelog/#[1.5.6]-2021-11-20","page":"Change Log","title":"[1.5.6] - 2021-11-20","text":"","category":"section"},{"location":"changelog/#Changed-10","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Cell delimiters for Julia files are now configurable and include #- by default (#2567)\nUse pixelated rendering mode for images in the plot pane, in the same way VS Code renders images. (#2570)","category":"page"},{"location":"changelog/#Fixed-21","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Package tagging should now work again.","category":"page"},{"location":"changelog/#[1.5.5]-2021-11-16","page":"Change Log","title":"[1.5.5] - 2021-11-16","text":"","category":"section"},{"location":"changelog/#Fixed-22","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Runtime completions can now be properly disabled (#2551)\nCode execution keybindings are now consistent for Weave files (#2551)\nIntroduced a helpful warning when @profview failed to collect any traces (#2551)\nThe REPL is now terminated when VS Code is closed, which should work around issues introduced by the terminal.integrated.enablePersistentSessions setting (#2551)\nFixed various issues with the integrated table viewer (#2551)\nIt's now once again possible to use the Run/Debug in New Process commands concurrently (#2551)","category":"page"},{"location":"changelog/#[1.5.4]-2021-11-11","page":"Change Log","title":"[1.5.4] - 2021-11-11","text":"","category":"section"},{"location":"changelog/#Changed-11","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The plot pane now prefers png over svg plots for performance reasons (#2475)","category":"page"},{"location":"changelog/#[1.5.3]-2021-11-11","page":"Change Log","title":"[1.5.3] - 2021-11-11","text":"","category":"section"},{"location":"changelog/#Fixed-23","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Execute File now works properly for Weave files (#2540)\n\"s are now correctly escaped in the Julia command (#2546)","category":"page"},{"location":"changelog/#Changed-12","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved messaging around LS startup failures (#2542)\nAdded a setting for the symbol cache server (#2547)\nImprovements to SymbolServer cache and download responsiveness and performance (#243, #244)","category":"page"},{"location":"changelog/#[1.5.2]-2021-11-06","page":"Change Log","title":"[1.5.2] - 2021-11-06","text":"","category":"section"},{"location":"changelog/#Changed-13","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Debugging or running a file in a new process now uses only one terminal (#2539)","category":"page"},{"location":"changelog/#[1.5.0]-2021-11-05","page":"Change Log","title":"[1.5.0] - 2021-11-05","text":"","category":"section"},{"location":"changelog/#Fixed-24","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"InteractiveUtils is now properly loaded in notebooks (#2457)\nRuntime diagnostics are now displayed in the REPL in some circumstances (#2536)\nProgress ETA will no longer show NaN or Inf sometimes (#2536)\nNotebook kernels now load the user's startup.jl (#2536)\nJULIA_NUM_THREADS and JULIA_EDITOR are now correctly set for existing tmux sessions (#2534)\nInline results now behave properly with CRLF linendings and aren't as easily invalidated by unrelated changes (#2535)\nThe error message as now once again properly displayed in notebooks (#2509)\nFixed various parser issues (#313, #315)\nFixed an erroneous method call error annotation (#307)\nFixed a stack overflow in the linter (#308)\nFixed a method error in the auto-completion code (#983)\nFunctors are now correctly displayed in the outline (#990, #995)\nFixed an issue with runtime diagnostics crashing the language server (#996)\nVarious fixes related to inline evaluation (#2467)\nImproved auto-indentation behaviour (#2459)","category":"page"},{"location":"changelog/#Changed-14","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved table viewer UX; added filtering and sorting as well as asynchronous loading of big tables (#2415)\nSystem image building now excludes development packages (e.g. added by dev) (#2488).\nExtension views are now hidden until the extension is activated (#2530)\nReduced invalidation in CSTParser.jl, which might improve performance (#312)\nMajorly improvements to symbol cache loading performance and responsiveness (#240, #241)\nLanguage server initialization is now reported much more granularly (#994)\nImproved tmux session handling: Julia: Stop REPL now shows a prompt for closing the tmux session; also added a Julia: Disconnect external REPL command (#2532)\nJulia keybindings now work properly in Weave files (#2467)\nPlot pane interaction now requires the user to hold Alt/Option to avoid conflicts in plot's own mouse event handling (#2450)\nChanged default keybindings for inline/cell evaluation to more closely match the notebook experience (#2296)\nCode formatting is now powered by the excellent JuliaFormatter.jl, which should be much more reliable and configurable than the previous formatter (#2335, #972)","category":"page"},{"location":"changelog/#Added-9","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Allow customising precompile statements and execution files for system image building based on a ./.vscode/JuliaSysimage.toml file inside the project root folder (#2488).\ntmux session names can now include $[workspace] which will be replaced with the name of the current file's workspace when the REPL is first opened. (This allows for multiple persistent sessions across different VSCode windows). (#2504)\nvscodedisplay now takes an additional title argument, which will be displayed in the tab title for tables (#2415)\n@vscodedisplay will automatically put the input expression as the table viewer tab title (#2533)\nQuickaction for removing unused function argument names (#981)\nSome runtime-based auto-completions are provided (e.g. for field names and indexing) (#1507)","category":"page"},{"location":"changelog/#[1.4.3]-2021-09-15","page":"Change Log","title":"[1.4.3] - 2021-09-15","text":"","category":"section"},{"location":"changelog/#Changed-15","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Cursor now changes to indicate that plots are zoomable/panable (#2445)\nNotebook metadata is now properly saved. We've therefore enabled the pure-Julia notebook provider by default and removed the julia.notebookController setting (#2424)","category":"page"},{"location":"changelog/#[1.4.2]-2021-09-10","page":"Change Log","title":"[1.4.2] - 2021-09-10","text":"","category":"section"},{"location":"changelog/#Fixed-25","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Vega and VegaLite plots are now zoomable/panable (#2443)","category":"page"},{"location":"changelog/#[1.4.1]-2021-09-10","page":"Change Log","title":"[1.4.1] - 2021-09-10","text":"","category":"section"},{"location":"changelog/#Fixed-26","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"SVG output is now properly rendered in all cases (2442)","category":"page"},{"location":"changelog/#[1.4.0]-2021-09-08","page":"Change Log","title":"[1.4.0] - 2021-09-08","text":"","category":"section"},{"location":"changelog/#Added-10","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Export Plot(save/copy) buttons to plot pane(#2267)\nInteractive(zoomable/pannable) Plots #2273\nAdd executeInREPL to exported API (#2402)\nAdded a menu item for enabling/disabling the plot pane (#2346)\nAdded support for the custom application/vnd.julia-vscode.trace MIME type to display custom runtime diagnostics (e.g. JET.jl output) in the editor (#2329)","category":"page"},{"location":"changelog/#Changed-16","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"executablePath is now once again machine-overridable thanks to the introduction of trusted workspaces (#2379)","category":"page"},{"location":"changelog/#Fixed-27","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Julia paths are now properly deduplicated (#2428)\nThe extension is now activated when Julia specific toolbar items are shown (#2430)\nThe play button to run the current file now uses the editor content instead of the file content (#2431)\nIndentation will behave correctly when end appears in a for loop definition, e.g. for i in nums[2:end] (#2459)","category":"page"},{"location":"changelog/#[1.3.34]-2021-09-03","page":"Change Log","title":"[1.3.34] - 2021-09-03","text":"","category":"section"},{"location":"changelog/#Changed-17","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved error handling for finding the environment path (#2408)\nLimit supported file schemes (#2410)\nInline evaluation of code blocks ending with a semicolon now don't produce any output (#2409)\nRevert the workaround from 1.3.30 and require VSCode v1.60.0 (#2394)","category":"page"},{"location":"changelog/#[1.3.33]-2021-08-26","page":"Change Log","title":"[1.3.33] - 2021-08-26","text":"","category":"section"},{"location":"changelog/#Changed-18","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update vendored plotly to v2.3.1 (#2376)\nReintroduced getJuliaPath to exported API (#2399)","category":"page"},{"location":"changelog/#Fixed-28","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Images in the plot pane are now correctly down-sized to fit the plot pane again (#2362)","category":"page"},{"location":"changelog/#[1.3.32]-2021-08-23","page":"Change Log","title":"[1.3.32] - 2021-08-23","text":"","category":"section"},{"location":"changelog/#Fixed-29","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed more argument handling issues when starting Julia processes (#2372)","category":"page"},{"location":"changelog/#[1.3.31]-2021-08-23","page":"Change Log","title":"[1.3.31] - 2021-08-23","text":"","category":"section"},{"location":"changelog/#Changed-19","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Mention marketplace link in readme (#2368)","category":"page"},{"location":"changelog/#Fixed-30","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Resolved ambiguity in gridviewer code (#2382)\nImproved argument handling when starting Julia processes (#2372)","category":"page"},{"location":"changelog/#[1.3.30]-2021-08-15","page":"Change Log","title":"[1.3.30] - 2021-08-15","text":"","category":"section"},{"location":"changelog/#Fixed-31","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Work around an upstream error related to stating the executable in VSCode tasks (#2371)","category":"page"},{"location":"changelog/#[1.3.29]-2021-08-14","page":"Change Log","title":"[1.3.29] - 2021-08-14","text":"","category":"section"},{"location":"changelog/#Fixed-32","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Correctness fix for finding the Julia executable (#2364)\nFix logic for \"Open Settings\" button in notifications (#2354)\nReduced bundle size (#2357)","category":"page"},{"location":"changelog/#[1.3.28]-2021-08-06","page":"Change Log","title":"[1.3.28] - 2021-08-06","text":"","category":"section"},{"location":"changelog/#Changed-20","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved code for searching the Julia executable (#2341)\nAdd Revise.jl support for notebook evaluation (#2347)","category":"page"},{"location":"changelog/#Fixed-33","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Notebook execution now correctly uses the same softscope transforms as in Jupyter or the REPL (#2327)\nInternal strict typing improvements (#2342)","category":"page"},{"location":"changelog/#[1.3.27]-2021-07-29","page":"Change Log","title":"[1.3.27] - 2021-07-29","text":"","category":"section"},{"location":"changelog/#Changed-21","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved notebook kernel selection strategy (#2315)","category":"page"},{"location":"changelog/#Fixed-34","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Notebook restart logic (#2322)","category":"page"},{"location":"changelog/#[1.3.26]-2021-07-27","page":"Change Log","title":"[1.3.26] - 2021-07-27","text":"","category":"section"},{"location":"changelog/#Changed-22","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated dependencies.","category":"page"},{"location":"changelog/#[1.3.23]-2021-07-26","page":"Change Log","title":"[1.3.23] - 2021-07-26","text":"","category":"section"},{"location":"changelog/#Fixed-35","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"REPL prompt hiding logic for inline execution is now more correct (#2316)","category":"page"},{"location":"changelog/#[1.3.20]-2021-07-25","page":"Change Log","title":"[1.3.20] - 2021-07-25","text":"","category":"section"},{"location":"changelog/#Changed-23","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Native notebook support is now hidden behind the notebookController setting because of upstream issues (#2307)\nBetter labels for notebook kernels (#2309)\nNotebook cell output is now cleared during re-execution (#2306)","category":"page"},{"location":"changelog/#[1.3.20]-2021-07-23","page":"Change Log","title":"[1.3.20] - 2021-07-23","text":"","category":"section"},{"location":"changelog/#Fixed-36","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"File path is now correctly set for notebooks (#2305)","category":"page"},{"location":"changelog/#[1.3.18]-2021-07-22","page":"Change Log","title":"[1.3.18] - 2021-07-22","text":"","category":"section"},{"location":"changelog/#Changed-24","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"display calls that go to alternative displays (like the plot pane) are now more responsive (#2301)\nDownload of SymbolServer cache files is now configurable (#2298)\nImproved error message when LS fails to start (#2295)\nChanged the default values of the completionmode and execution.resultType settings (#2297)","category":"page"},{"location":"changelog/#Fixed-37","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"All logging messages now go to stderr, which fixes communication issues on some Julia 1.7 pre-release versions (#2302)","category":"page"},{"location":"changelog/#[1.3.17]-2021-07-17","page":"Change Log","title":"[1.3.17] - 2021-07-17","text":"","category":"section"},{"location":"changelog/#Changed-25","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated dependencies and required VSCode version to v1.58.1","category":"page"},{"location":"changelog/#[1.3.15]-2021-07-17","page":"Change Log","title":"[1.3.15] - 2021-07-17","text":"","category":"section"},{"location":"changelog/#Changed-26","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improve Julia notbeook kernel name (#2275)","category":"page"},{"location":"changelog/#[1.3.14]-2021-07-17","page":"Change Log","title":"[1.3.14] - 2021-07-17","text":"","category":"section"},{"location":"changelog/#Added-11","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Support for preferred kernels (#2271)","category":"page"},{"location":"changelog/#Chaged","page":"Change Log","title":"Chaged","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Notebook kernels are now reused after a notebook was closed (#2257)\nImproved notebook display logic (#2260)\nRely on os.homedir() instead of custom ENV logic (#2263)\nAdded broadcasting to the list of interpreted Base functions (#2290)","category":"page"},{"location":"changelog/#[1.3.13]-2021-07-01","page":"Change Log","title":"[1.3.13] - 2021-07-01","text":"","category":"section"},{"location":"changelog/#Changed-27","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Moved to GitHub actions for CI and release pipelines.","category":"page"},{"location":"changelog/#[1.3.2]-2021-06-30","page":"Change Log","title":"[1.3.2] - 2021-06-30","text":"","category":"section"},{"location":"changelog/#Fixed-38","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed REPL stacktraces file path links for Windows. Paths with tilda symbol now expand to the correct HOMEPATH. Paths with spaces are handled correctly (#2261)","category":"page"},{"location":"changelog/#[1.3.0]-2021-06-29","page":"Change Log","title":"[1.3.0] - 2021-06-29","text":"","category":"section"},{"location":"changelog/#Added-12","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Native notebook support (#2217 and others)","category":"page"},{"location":"changelog/#Changed-28","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Environment variables are now resolved in the julia.environmentPath and julia.executablePath settings (#2153)","category":"page"},{"location":"changelog/#Fixed-39","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Julia 1.6 paths on Windows are now correct (#2251)\nFixed various packaging issues (#2229)","category":"page"},{"location":"changelog/#[1.2.5]-2021-06-18","page":"Change Log","title":"[1.2.5] - 2021-06-18","text":"","category":"section"},{"location":"changelog/#Fixed-40","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Compiled modules/mode/functions are now set properly in the out-of-process deubugger (#2226)\nImproved plot navigator robustness (#2221)","category":"page"},{"location":"changelog/#[1.2.4]-2021-06-09","page":"Change Log","title":"[1.2.4] - 2021-06-09","text":"","category":"section"},{"location":"changelog/#Changed-29","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update various dependencies","category":"page"},{"location":"changelog/#[1.2.3]-2021-06-07","page":"Change Log","title":"[1.2.3] - 2021-06-07","text":"","category":"section"},{"location":"changelog/#Fixed-41","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Various debugging related issues (#39, #2190)\nPlot assets are now correctly loaded (#2200)","category":"page"},{"location":"changelog/#[1.2.2]-2021-06-01","page":"Change Log","title":"[1.2.2] - 2021-06-01","text":"","category":"section"},{"location":"changelog/#Changed-30","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Julia: Connect external REPL now gives feedback when connected (#2182)","category":"page"},{"location":"changelog/#Fixed-42","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Tilde-expansion now properly works in terminal links (#2185)\nREPL hooks are now properly installed when connecting to already running processes (#2182)\ntmux integration and connecting to an external process now properly work on Windows (#2182)","category":"page"},{"location":"changelog/#[1.2.1]-2021-05-27","page":"Change Log","title":"[1.2.1] - 2021-05-27","text":"","category":"section"},{"location":"changelog/#Fixed-43","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"tmux integration now works (#2177)\nFixed a crash in the new multi-environment support (#945)\nThe plots pane and navigator now (mostly) keeps focus where it was before (#2172)","category":"page"},{"location":"changelog/#[1.2.0]-2021-05-26","page":"Change Log","title":"[1.2.0] - 2021-05-26","text":"","category":"section"},{"location":"changelog/#Fixed-44","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Non-debugging Julia sessions no longer pretend they are debug sessions (#2155)\nLoading internal code now works better when multiple processes have been added in startup.jl (#2147)","category":"page"},{"location":"changelog/#Changed-31","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Workspace panel now shows #properties for AbstractrArrays and AbstractDicts (#1927)\nClicking on a symbol now highlights only references to that symbol, instead of all symbols with the same name (#908)","category":"page"},{"location":"changelog/#Added-13","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Added a sidebar element to quickly switch between differen plots (#1932)\nAdded integration for persistent tmux sessions, especially useful together with the Remote Editing extension (#1893)\nShip CoverageTools.jl as part of the extension so that test runs with coverage always work (#1928)\nAdd option to delete .cov files after test runs (on by default) (#1928)\nAdd new completion modes for unexported variables (#1963, #892)\nNew option for showing results inline but echoing errors into the REPL (#2121)\nNew UI for setting compiled/interpreted methods for the debugger, which can allow for a significantly faster debugging experience (#1888, #31)\nAuto-completion of un-exported symbols can now optionally insert the appropriate using statement (#892)","category":"page"},{"location":"changelog/#[1.1.39]-2021-05-06","page":"Change Log","title":"[1.1.39] - 2021-05-06","text":"","category":"section"},{"location":"changelog/#Fixed-45","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline stacktraces are now rendered properly on Julia 1.6 (#2091)\nWeaving a document now respects the current env (#2130)\nARGS are now properly cleared of extension internals (#2090)\nExternal Julia processes now respect the number of threads setting (#2141)\nURIs in markdown hovers (e.g. in stacktraces) now properly link to the right line (#932)","category":"page"},{"location":"changelog/#Changed-32","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Added support for the error stacks introduced in Julia 1.5 (#2142)\nImprovements to the package tagging functionality (which is now also limited to Julia 1.6) (#2144)","category":"page"},{"location":"changelog/#Added-14","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The linter now understands the new import Foo as Bar syntax (#276)","category":"page"},{"location":"changelog/#[1.1.38]-2021-03-29","page":"Change Log","title":"[1.1.38] - 2021-03-29","text":"","category":"section"},{"location":"changelog/#Fixed-46","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Path for auto-detecting Julia 1.6 binaries on Windows are now correct (#2086)\nAdded auto-dection for 1.6.1 (#2076)\nSetting JULIA_EDITOR should now be more robust (#2067)","category":"page"},{"location":"changelog/#Changed-33","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Auto-completions now allow for a certain degree of fuzzyiness (#906)","category":"page"},{"location":"changelog/#Added-15","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The LS now support selection range requests (use Shift-Alt-Right/Shift-Alt-Left to expand/reduce the \"smart selection\" in VSCode) (#893)","category":"page"},{"location":"changelog/#[1.1.37]-2021-03-17","page":"Change Log","title":"[1.1.37] - 2021-03-17","text":"","category":"section"},{"location":"changelog/#Fixed-47","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed a security vulnerability related to the Julia path setting (#2062)\nWe should not leave any more orphaned processes behind when VSCode is closed unexpectedly (#48)","category":"page"},{"location":"changelog/#[1.1.35]-2021-03-12","page":"Change Log","title":"[1.1.35] - 2021-03-12","text":"","category":"section"},{"location":"changelog/#Changed-34","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The Julia grammar is now shipped by VSCode and therefore removed from this package (#1998)\nError handling for internal Julia code should now be more robust (#2015)","category":"page"},{"location":"changelog/#[1.1.34]-2021-03-09","page":"Change Log","title":"[1.1.34] - 2021-03-09","text":"","category":"section"},{"location":"changelog/#Fixed-48","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Work around a Base issue when displaying certain types in the REPL (#2010)\nFixed certain debugger commands not working properly (#2008)","category":"page"},{"location":"changelog/#[1.1.33]-2021-03-06","page":"Change Log","title":"[1.1.33] - 2021-03-06","text":"","category":"section"},{"location":"changelog/#Fixed-49","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Step Into Target now works properly for top-level frames (#34)","category":"page"},{"location":"changelog/#Changed-35","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"\"Run Code\" commands now conform to the VSCode guidelines (#1999)","category":"page"},{"location":"changelog/#[1.1.32]-2021-03-03","page":"Change Log","title":"[1.1.32] - 2021-03-03","text":"","category":"section"},{"location":"changelog/#Changed-36","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Pipes for communication between the VSCode extension host and various Julia processes are now guaranteed to be unique (#1980)\nREPL output form activating a new environment via the GUI now doesn't display a Julia prompt (#1981)\nBetter crash reporting when commands fail (#1985)","category":"page"},{"location":"changelog/#[1.1.29]-2021-02-23","page":"Change Log","title":"[1.1.29] - 2021-02-23","text":"","category":"section"},{"location":"changelog/#Fixed-50","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed a typo that made the more robust REPL hooks not very robust at all (#1973)\nFixed a rare bug where showing variables while debugging might result in a crash (#32)","category":"page"},{"location":"changelog/#[1.1.28]-2021-02-23","page":"Change Log","title":"[1.1.28] - 2021-02-23","text":"","category":"section"},{"location":"changelog/#Fixed-51","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"LaTeX-rendered equations are now properly hidden behind the search bar in the docs pane(#1970)\nREPL hooks are now more robust (#1968)","category":"page"},{"location":"changelog/#[1.1.26]-2021-02-20","page":"Change Log","title":"[1.1.26] - 2021-02-20","text":"","category":"section"},{"location":"changelog/#Fixed-52","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Unparametrize the wrapper introduced in #1943 (#1957)","category":"page"},{"location":"changelog/#Changed-37","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Debugger is no longer marked as experimental (#1965)\nWe now use the ast_transforms machinery introduced in Julia 1.5 when appicable (#1959)","category":"page"},{"location":"changelog/#[1.1.19-1.1.25]-2021-02-17","page":"Change Log","title":"[1.1.19 - 1.1.25] - 2021-02-17","text":"","category":"section"},{"location":"changelog/#Changed-38","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixes to our Azure Pipelines infracstructure","category":"page"},{"location":"changelog/#[1.1.18]-2021-02-15","page":"Change Log","title":"[1.1.18] - 2021-02-15","text":"","category":"section"},{"location":"changelog/#Fixed-53","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed a regression when displaying SVGs in the plot pane (#1939)\nFix an issue with displaying values with incorrect convert methods (#1943)","category":"page"},{"location":"changelog/#Changed-39","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Explorer context menu entries are now only shown when a REPL is running (#1933)","category":"page"},{"location":"changelog/#[1.1.16]-2021-02-09","page":"Change Log","title":"[1.1.16] - 2021-02-09","text":"","category":"section"},{"location":"changelog/#Added-16","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Julia 1.6 binaries are now auto-detected (#1918)","category":"page"},{"location":"changelog/#[1.1.14]-2021-02-03","page":"Change Log","title":"[1.1.14] - 2021-02-03","text":"","category":"section"},{"location":"changelog/#Fixed-54","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Removed references to outdated Julia syntax that caused incorrect auto-indentation (#1910)\nStacktraces should now be properly truncated again (#1912)","category":"page"},{"location":"changelog/#Changed-40","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated the vendored Plotly and fixed auto-resizing for Plotly and VegaLite plots (#1911)","category":"page"},{"location":"changelog/#[1.1.13]-2021-02-03","page":"Change Log","title":"[1.1.13] - 2021-02-03","text":"","category":"section"},{"location":"changelog/#Fixed-55","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Relative environment paths are now persisted properly (#1905)\nUser supplied environment paths are now checked for validity (#1907)","category":"page"},{"location":"changelog/#[1.1.12]-2021-02-02","page":"Change Log","title":"[1.1.12] - 2021-02-02","text":"","category":"section"},{"location":"changelog/#Fixed-56","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Corrected environment handling in certaing cases (#1903)","category":"page"},{"location":"changelog/#Changed-41","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Live testing is disabled until it can be fixed (#1902)","category":"page"},{"location":"changelog/#[1.1.11]-2021-01-31","page":"Change Log","title":"[1.1.11] - 2021-01-31","text":"","category":"section"},{"location":"changelog/#Fixed-57","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Getting the module at the current cursor position now no longer waits until the LS is started (#1892)","category":"page"},{"location":"changelog/#[1.1.10]-2021-01-28","page":"Change Log","title":"[1.1.10] - 2021-01-28","text":"","category":"section"},{"location":"changelog/#Fixed-58","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Stop throwing an error instead of waiting for the LS being ready (#1889).\nFixed an issue with formatting if conditions (#124).","category":"page"},{"location":"changelog/#[1.1.9]-2021-01-26","page":"Change Log","title":"[1.1.9] - 2021-01-26","text":"","category":"section"},{"location":"changelog/#Fixed-59","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Displaying profiler results now works again (#1887).","category":"page"},{"location":"changelog/#[1.1.7]-2021-01-26","page":"Change Log","title":"[1.1.7] - 2021-01-26","text":"","category":"section"},{"location":"changelog/#Fixed-60","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"pwd is now properly set for the live unit testing task (#1886).","category":"page"},{"location":"changelog/#[1.1.6]-2021-01-25","page":"Change Log","title":"[1.1.6] - 2021-01-25","text":"","category":"section"},{"location":"changelog/#Changed-42","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The plot pane now properly scales images (#1882).","category":"page"},{"location":"changelog/#Fixed-61","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The LS now correctly handles the $/setTrace notification (#868).","category":"page"},{"location":"changelog/#[1.1.0]-2021-01-23","page":"Change Log","title":"[1.1.0] - 2021-01-23","text":"","category":"section"},{"location":"changelog/#Changed-43","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The progress bar now shows an estimate of the remaining time (#1868).","category":"page"},{"location":"changelog/#[1.0.15]-2021-01-23","page":"Change Log","title":"[1.0.15] - 2021-01-23","text":"","category":"section"},{"location":"changelog/#Added-17","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Progress logging can now be disabled in the settings (#1867).\nThe Julia explorer sidebar element now contains a documentation browser (#1458).\nAdded a command for tagging new package versions (#1870).\nAdded a task for live unit testing (#1872).","category":"page"},{"location":"changelog/#Changed-44","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The LS depot path is now located in the extension global storage instead of the extension's install directory, which allows the latter to be read-only (#1863).\nImprove docstring formatting (#122).","category":"page"},{"location":"changelog/#Fixed-62","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Comments and whitespace in multi-line tuples are no longer removed when formatting a file (#121).","category":"page"},{"location":"changelog/#[1.0.14]-2021-01-16","page":"Change Log","title":"[1.0.14] - 2021-01-16","text":"","category":"section"},{"location":"changelog/#Changed-45","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Removed the telemtry nag message (#1676).\nRemoved @ and ! from the list of non-word characters, so double clicking @foo! now selects the whole macro (#1861).","category":"page"},{"location":"changelog/#Fixed-63","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved the algorithm for finding the current code block (#860).\nFixed jmd parsing (#859).\nTHe linter now doesn't attribute every eval call to Core.eval (#237).","category":"page"},{"location":"changelog/#[1.0.13]-2021-01-13","page":"Change Log","title":"[1.0.13] - 2021-01-13","text":"","category":"section"},{"location":"changelog/#Added-18","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"It is now possible to customize the look of inline results (#1846).\nSupport for the upcoming import Foo as Bar syntax (#220).","category":"page"},{"location":"changelog/#Changed-46","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Switched to a new symbol store format (#1857).\nMajor rewrite for CSTParser (#190).\nStaticLint.jl now supports Julia >= v1.6 (#227).\nAdded additional type inference for the linter (#234).","category":"page"},{"location":"changelog/#Fixed-64","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"We now use the correct binary when setting the JULIA_EDITOR on MacOS for users of VSCode insiders (#1852).\nBase.displayble is now correctly extended instead of creating a local version (#1856).\nConditions for line breakpoints now work again (#26).\nDebugger now correctly unwraps UnionAlls when collecting global refs (#27).\nThe Linter now correctly handles Base.@kwdef (#233).","category":"page"},{"location":"changelog/#[1.0.12]-2021-01-05","page":"Change Log","title":"[1.0.12] - 2021-01-05","text":"","category":"section"},{"location":"changelog/#Added-19","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Commands for moving between code cells (#1828).","category":"page"},{"location":"changelog/#Fixed-65","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Backtraces are now properly truncated in the REPL (#1841).","category":"page"},{"location":"changelog/#[1.0.11]-2020-12-15","page":"Change Log","title":"[1.0.11] - 2020-12-15","text":"","category":"section"},{"location":"changelog/#Added-20","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Debugging or launching a file now works in workspaces with more than one directory (#1789).\nPressing ^C more than three times in one second now sends a SIGINT to the Julia process (on non-Windows OSs), which should make for more robust interrupts (#1775).","category":"page"},{"location":"changelog/#Changed-47","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline evaluation now waits for the LS to start up instead of throwing an error (#1760).\njulia.environmentPath needs a REPL restart, so added a note to that effect (#1778).\nThe language-julia.executeFile command can now be called with a string argument for easy integration with custom keybindings (#1779).\nCommands that require finding Julia environment files now don't need a running REPL (#1757).\nWhen using inline evaluation commands that move the cursor after evaluation, the cursor is now only moved if the user hasn't interacted with it (#1774).\nDebugging in a new process now properly loads the user's startup.jl (#1806).\nUpdate to JuliaInterpreter.jl 0.8 (#24).","category":"page"},{"location":"changelog/#Fixed-66","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"There can only be one LS startup notification (#1798).\nPlots are now properly displayed when the plot pane is disabled and only inline results are enabled (#1795).\nAdded some error handling when displaying error stacktraces inline (#1802).\nThe attached debugger now properly sets tls[:source_path] and doesn't crash the Julia REPL on errors (#1804).\nStaktraces are now properly truncated for inline results (#1812).\nProgress messages are now properly flushed, so that the progress monitoring is always be up-to-date (#1805).\nFixed an issue with parsing kwfuncs using where (#212).\nAdded missing nothing checks that could cause issues when linting files (#221, #223).","category":"page"},{"location":"changelog/#[1.0.10]-2020-11-13","page":"Change Log","title":"[1.0.10] - 2020-11-13","text":"","category":"section"},{"location":"changelog/#Added-21","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Support for Julia 1.5.3 and 1.5.4 default installation paths (#1755, #1759).\nNew up-to-date changelog (#1750).","category":"page"},{"location":"changelog/#Changed-48","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline evaluation now adds the evaluated code to the REPL history if the julia.codeInREPL options is set (#1754).\nThe extension now watches the global Manifest as well as Manifests in the workspace for changes and prompts the LS to re-index accordingly (#1756).","category":"page"},{"location":"changelog/#Fixed-67","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Push internal Julia modules to the front of LOAD_PATH to prevent loading code from the workspace instead (#1747).\nFixed a typo in the tableviewer code (#1749).\nEvaluation now uses unbuffered channels for communication, which might fix a rare off-by-one-result bug (#1762).","category":"page"},{"location":"changelog/#[1.0.9]-2020-11-04","page":"Change Log","title":"[1.0.9] - 2020-11-04","text":"","category":"section"},{"location":"changelog/#Added-22","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The workspace now shows errors encountered while rendering the tree view. Furthermore, it now only special cases Array and Dict instead of their Abstract... supertypes (#1709).\nInline evaluation and the REPL can now be interrupted with the Julia: Interrupt Execution comamnd (or its default keyboard binding ctrl+c) (#1690).\nProgressLogging.jl's progress bars are now displayed in the editor (1579).\nThe language server process is now started with the JULIA_LANGUAGESERVER environment variable set to 1 (#1707).\nAdded commands to re-start the LS or re-index the symbol cache (#1721).\n@edit now works properly on code-server instances (#1737).\nAdded commands to cd to the current directory, Pkg.activate the current directory, or Pkg.activate the current files nearest project. These commands are also available in the file explorer (#1743).","category":"page"},{"location":"changelog/#Changed-49","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated some JS dependencies.\nThe plot pane is now opened in a new column by default, but also remembers it's last position (#1554).\nThe julia.NumThreads setting is now machine-overrideable (#1714).\nUpdated the Julia grammar definition (#1720), which fixed various bugs.\njulia.usePlotPane can now be changed without requiring the Julia process to be restarted. Additionally, the related display machinery is now much more robust (#1729).\nThe \"play\" button in the editor toolbar now runs the file in the integrated REPL process (#1728).\nAll inline results are now removed when the REPL process exits (#1738).","category":"page"},{"location":"changelog/#Fixed-68","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Stracktraces are now rendered properly (i.e. with linebreaks) once again (#1692).\nThe module indicator is now correctly initialized (instead of Main) (#1516).","category":"page"},{"location":"changelog/#[1.0.8]-2020-10-16","page":"Change Log","title":"[1.0.8] - 2020-10-16","text":"","category":"section"},{"location":"changelog/#Changed-50","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Both inline evaluation and the REPL now follow the changed soft-scope rules for Julia 1.5 and newer (#1665).","category":"page"},{"location":"changelog/#[1.0.7]-2020-10-05","page":"Change Log","title":"[1.0.7] - 2020-10-05","text":"","category":"section"},{"location":"changelog/#Changed-51","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated JS dependencies.\nWe now show an error message when both insiders and the regular extension are loaded.","category":"page"},{"location":"changelog/#[1.0.6]-2020-09-29","page":"Change Log","title":"[1.0.6] - 2020-09-29","text":"","category":"section"},{"location":"changelog/#Changed-52","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated JS dependencies.","category":"page"},{"location":"changelog/#[1.0.5]-2020-09-27","page":"Change Log","title":"[1.0.5] - 2020-09-27","text":"","category":"section"},{"location":"changelog/#Added-23","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Default paths for Julia 1.5.1 and 1.5.2.","category":"page"},{"location":"changelog/#[1.0.4]-2020-09-18","page":"Change Log","title":"[1.0.4] - 2020-09-18","text":"","category":"section"},{"location":"changelog/#Added-24","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"JULIA_PKG_SERVER is now an exposed setting.\nJulia: Stop REPL command.","category":"page"},{"location":"changelog/#Changed-53","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Toolbar icon now follows the style guide (outline instead of filled).","category":"page"},{"location":"changelog/#Fixed-69","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Run/Debug commands now work when invoked from the command palette.","category":"page"},{"location":"changelog/#[1.0.3]-2020-09-06","page":"Change Log","title":"[1.0.3] - 2020-09-06","text":"","category":"section"},{"location":"changelog/#Fixed-70","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"ARGS now no longer contains extension internals.\nUse correct default path for Julia 1.5.\nFixed a world age error when using the integrated table viewer.","category":"page"},{"location":"changelog/#Changed-54","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Revise is now loaded without stealing the REPL backend for newer Julia versions.\n#%% and # %% are now valid cell seperators.\nImproved crash reporting.","category":"page"},{"location":"changelog/#[1.0.2]-2020-09-01","page":"Change Log","title":"[1.0.2] - 2020-09-01","text":"","category":"section"},{"location":"changelog/#Changed-55","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved Azure build pipeline\nUpdated some JS dependencies","category":"page"},{"location":"changelog/#[1.0.1]-2020-08-31","page":"Change Log","title":"[1.0.1] - 2020-08-31","text":"","category":"section"},{"location":"changelog/#Added-25","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"This plugin is now also available on open-vsx.org","category":"page"},{"location":"changelog/#[1.0.0]-2020-08-28","page":"Change Log","title":"[1.0.0] - 2020-08-28","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"This is identical to the latest 0.17 release.","category":"page"},{"location":"changelog/#[0.17]","page":"Change Log","title":"[0.17]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Global variable support in the debugger variable explorer\nDebug and run buttons above Julia files\nSupport for step in targets in the debugger\nProfile viewing support\nStackframe highlighting for inline evaluations\nConfiguration option to exclude folders from linting\nAdd an extension API","category":"page"},{"location":"changelog/#[0.16]","page":"Change Log","title":"[0.16]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline display of evaluation results\nWorkspace view","category":"page"},{"location":"changelog/#[0.15]","page":"Change Log","title":"[0.15]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add an experimental debugger\nImprove cell delimiter regex so that it won't recognize YAS-style section headers as cell separator anymore (#1256, #1259)","category":"page"},{"location":"changelog/#[0.14]","page":"Change Log","title":"[0.14]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Make Language Server indexing async\nNew linting capabilities: call checks, static if blocks, unused free parameters, unhandled include statements, clashing module names, and pirates.\nEnable Code Actions: explicit re-export, replace qualified names with using statements\nAdd support for Julia 1.4/5-DEV\nImproved robustness, e.g. handling of unicode\nBetter presentation of documentation\nFully implement LSP 3.14\nStaticLint: improved path handling (file tree), extended macro handling, handle local/global variables, general refactor with speed/robustness improvements","category":"page"},{"location":"changelog/#[0.13.1]","page":"Change Log","title":"[0.13.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update CHANGELOG","category":"page"},{"location":"changelog/#[0.13.0]","page":"Change Log","title":"[0.13.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Support for Julia 1.3\nConfiguration options for the code formatter\nBug fixes","category":"page"},{"location":"changelog/#[0.12.3]","page":"Change Log","title":"[0.12.3]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add support for running a selection with Alt+Enter\nFix a bug in the LS when an environment path doesn't exist\nClean up labeling of commands","category":"page"},{"location":"changelog/#[0.12.2]","page":"Change Log","title":"[0.12.2]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Various bug fixes","category":"page"},{"location":"changelog/#[0.12.1]","page":"Change Log","title":"[0.12.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Various bug fixes","category":"page"},{"location":"changelog/#[0.12.0]","page":"Change Log","title":"[0.12.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add vscodedisplay() function for a grid view of tables\nAdd a command to delete all plots from the plot pane\nStore Julia environment choice in settings\nAuto detect Julia environments\nChange how execute block sends code to the REPL\nPreserve focus of REPL when plot pane is shown\nFix weave preview\nMake tasks work with julia environments\nAdd a test task that outputs coverage information\nOpen docs after build task\nSupport vega 3, 4 and 5, and vega-lite 2 and 3\nAllow paths starting with ~ for julia bin location\nFix JULIA_EDITOR integration on Mac\nAdd support for custom sysimages\nReworked syntax highlighting\nAdd support for code cell execution with Shift+Enter","category":"page"},{"location":"changelog/#[0.11.6]","page":"Change Log","title":"[0.11.6]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add option to permanently opt out of crash reporting\nFix bug related to Revise integration\nAdd option for passing command line arguments to julia REPL process\nRework communication between REPL and extension\nAuto-detect julia 1.1.1 and 1.2.0","category":"page"},{"location":"changelog/#[0.11.5]","page":"Change Log","title":"[0.11.5]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix julia 1.1 compat issue in SymbolServer\nUpdate vega-lite to 3.0 and vega to 5.2","category":"page"},{"location":"changelog/#[0.11.4]","page":"Change Log","title":"[0.11.4]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix another julia 1.1 compat issue","category":"page"},{"location":"changelog/#[0.11.3]","page":"Change Log","title":"[0.11.3]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix julia 1.1 compat issue","category":"page"},{"location":"changelog/#[0.11.2]","page":"Change Log","title":"[0.11.2]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Various bug fixes\nAdd option to enable/disable plot pane\nSearch for julia 1.0.4 and 1.1","category":"page"},{"location":"changelog/#[0.11.1]","page":"Change Log","title":"[0.11.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update CHANGELOG","category":"page"},{"location":"changelog/#[0.11.0]","page":"Change Log","title":"[0.11.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add julia 1.0 support, drop julia 0.6 support\nAdd support for interactive Plotly figures\nVarious bugfixes","category":"page"},{"location":"changelog/#[0.10.2]","page":"Change Log","title":"[0.10.2]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix automatic julia detection on Mac","category":"page"},{"location":"changelog/#[0.10.1]","page":"Change Log","title":"[0.10.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix some small bugs","category":"page"},{"location":"changelog/#[0.10.0]","page":"Change Log","title":"[0.10.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Auto-detect julia installation\nTelemetry support\nCrash reporting\nFix weave support\nVarious bug fixes","category":"page"},{"location":"changelog/#[0.9.1]","page":"Change Log","title":"[0.9.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update changelog","category":"page"},{"location":"changelog/#[0.9.0]","page":"Change Log","title":"[0.9.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Enable multi-root workspace support\nBug fixes","category":"page"},{"location":"changelog/#[0.8.0]","page":"Change Log","title":"[0.8.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add eval into module option to REPL\nAdd toggle lint command\nAdd toggle log command\nAdd execute file command\nAdd execute block command\nAdd support for region folding\nBug fixes","category":"page"},{"location":"changelog/#[0.7.0]","page":"Change Log","title":"[0.7.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Use VS Code tasks for build, test and benchmark\nAdd reload modules command\nAdd rename command\nBug fixes","category":"page"},{"location":"changelog/#[0.6.2]","page":"Change Log","title":"[0.6.2]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Bug fixes\nLanguage server status bar icon\njulia 0.6 syntax highlighting","category":"page"},{"location":"changelog/#[0.6.1]","page":"Change Log","title":"[0.6.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Bug fixes","category":"page"},{"location":"changelog/#[0.6.0]","page":"Change Log","title":"[0.6.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Use LanguageServer.jl\nFormat Document command\nActionable diagnostics\nSupport for .jmd files\nPlot pane\nRun package tests command\nLint package command","category":"page"},{"location":"changelog/#[0.5.1]","page":"Change Log","title":"[0.5.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Scope Ctrl+Enter to julia files\nFix whitespace bug on Windows","category":"page"},{"location":"changelog/#[0.5.0]","page":"Change Log","title":"[0.5.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Migrate to a language server protocol design\nAdd completion provider\nAdd definition provider\nAdd hover provider\nAdd signature provider\nAdd integrated julia terminal","category":"page"},{"location":"changelog/#[0.4.2]","page":"Change Log","title":"[0.4.2]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"julia 0.5 compatibility","category":"page"},{"location":"changelog/#[0.4.1]","page":"Change Log","title":"[0.4.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update README","category":"page"},{"location":"changelog/#[0.4.0]","page":"Change Log","title":"[0.4.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add linter support","category":"page"},{"location":"changelog/#[0.3.1]","page":"Change Log","title":"[0.3.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Patch release to test upgrade procedure","category":"page"},{"location":"changelog/#[0.3.0]","page":"Change Log","title":"[0.3.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add latex completion","category":"page"},{"location":"changelog/#[0.2.0]","page":"Change Log","title":"[0.2.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add \"Open Package Directory in New Window\" command","category":"page"},{"location":"changelog/#[0.1.1]","page":"Change Log","title":"[0.1.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update project home URLs","category":"page"},{"location":"changelog/#[0.1.0]","page":"Change Log","title":"[0.1.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Initial release","category":"page"},{"location":"userguide/plotgallery/#Plots","page":"Plots","title":"Plots","text":"","category":"section"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Julia Plots provides us with the capability to create visualizations of data.","category":"page"},{"location":"userguide/plotgallery/#Install-Plots-Package","page":"Plots","title":"Install Plots Package","text":"","category":"section"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"First, Open the Julia Terminal (also known as REPL), you can follow the steps here.","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"At the Julia prompt in the REPL window, type the following:","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"julia> using Pkg","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"This will tell Julia that you are going to use the package manager.","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Then type the following to add Plots package:","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"julia> Pkg.add(\"Plots\")","category":"page"},{"location":"userguide/plotgallery/#Create-Visualization","page":"Plots","title":"Create Visualization","text":"","category":"section"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Remember to keep the REPL open as this is where any output from your program will be printed.","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"The first piece of code that you need to execute is this:","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"using Plots","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"This tells Julia to load the library that we will use to create our visualizations.","category":"page"},{"location":"userguide/plotgallery/#Example","page":"Plots","title":"Example","text":"","category":"section"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Let's walkthrough a simple program to understand this:","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Write the following code.","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"using Plots\nx = 1:10; y = rand(10); # These are the plotting data\nplot(x,y, label=\"my label\")","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Now Run this, you can follow the steps here.","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"You will get something like the following graph as a output in a new tab in VS Code:","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"(Image: Plot Graph)","category":"page"},{"location":"userguide/debugging/#Debugging","page":"Debugging","title":"Debugging","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The Julia extension supports debugging of all types of Julia programs and applications. ","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"For general debugging features such as inspecting variables, setting breakpoints, and other activities that aren't language-dependent, review VS Code debugging. ","category":"page"},{"location":"userguide/debugging/#Example","page":"Debugging","title":"Example","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Open a Julia file in VS Code. \nClick the Run button. You will now see the default debugger start panel:\nClick Run and Debug (or select F5) to run the active Julia file in the debugger. Output is displayed in the Julia Debug terminal. ","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"In this example the whole program ran through in one go and finished without any problem. Lets make this example a bit more useful by setting a breakpoint on line 11. We do this by simple clicking with the mouse in the left most column of the code editor:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The red dot shows us that we have now set a breakpoint. Next we start the program again (either by clicking on Run and Debug or pressing F5). When the program reaches line 11, it will pause:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The yellow line shows us the location that we will execute next if we continue to run the program. We can also see where we are in the call stack and a list of all breakpoints. At the top of the text editor we now see a toolbar with commands for common debug actions: Continue, Step over, Step Into, Step Out etc. Lets click once on Step Over and then Step Into. We are now paused on the first line of the bar function:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The Variables view now shows us what local variables we have in this function and what their current values are. As we step through the program, and eventually reach the end of the bar function, the list of local variables gets longer, i.e. we now also see the values for c and d:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Let us set another breakpoint on line 15 and then continue the program until it hits that breakpoint. Then we click on Debug Console and see a view like this:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"In this view we can evaluate arbitrary Julia code in the context of the current function. For example, we can compute the log of x by running log(x) here:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"We can also change the value of any local variable while the program is paused. For example, to change the value of x, we can double click in the Variables section on the value 27 next to x and then enter any arbitrary Julia expression. The value this expression returns will become the new value for the variable x. In the following example We changed the value of x to a string:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"This concludes the very basic walk through. I’ll now want to highlight some other features.","category":"page"},{"location":"userguide/debugging/#Ways-to-start-the-debugger","page":"Debugging","title":"Ways to start the debugger","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"There are two different ways to start the debugger.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The first you already learned in the walk through: you run a Julia file in the debugger.\nThe second allows you to debug code in the interactive REPL.","category":"page"},{"location":"userguide/debugging/#Running-Julia-files","page":"Debugging","title":"Running Julia files","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"In our example we started the currently active Julia file in the debugger. This is the most basic way to start debugging, but there are many more options that you can configure in a VS Code launch.json file. Examples include setting a fixed Julia file as the startup file, configuring command line arguments etc. The launch.json functionality is described in more detail in the VS Code debugger documentation.","category":"page"},{"location":"userguide/debugging/#Debugging-code-from-the-REPL","page":"Debugging","title":"Debugging code from the REPL","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"You can also start the debugger from the REPL. In that situation the debugger will attach to the already running REPL. To start such a debug session you use two macros in the REPL: the @enter and @run macro. Both are very simple: they will start the debugger on the code that was passed to the macro. The @run macro will run the code until a breakpoint is hit, while the @enter macro will pause the debugger on the first line of the code. For example, you can start debugging the println function from the REPL by entering @enter println(\"Test\")","category":"page"},{"location":"userguide/debugging/#Breakpoints","page":"Debugging","title":"Breakpoints","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"You already learned how you can easily set breakpoints in the source code itself. There are two more options for breakpoints: function breakpoints and condition on breakpoints.","category":"page"},{"location":"userguide/debugging/#Function-breakpoints","page":"Debugging","title":"Function breakpoints","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"If you click on the little + sign in the BREAKPOINTS view, you can add a function breakpoint. Simply enter the name of the function you want to break on. You can also configure it to only break on specific methods by specifying a signature like foo(::String, ::Number).","category":"page"},{"location":"userguide/debugging/#Breakpoint-conditions","page":"Debugging","title":"Breakpoint conditions","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"If you click with the right mouse onto a breakpoint in the editor, you can select an option Edit breakpoint..., and then you can add a condition on the breakpoint. You can enter any valid Julia expression that returns a Bool value here. You have of course full access to all local variables in this expression.","category":"page"},{"location":"userguide/debugging/#Variables-viewer","page":"Debugging","title":"Variables viewer","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Composite variables, arrays and dictionaries have full tree drill down support in the variables viewer:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/#Watch-section","page":"Debugging","title":"Watch section","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The watch section allows you to enter arbitrary Julia expressions that are evaluated whenever the program pauses and the result is shown:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/#Call-stack","page":"Debugging","title":"Call stack","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The call stack section allows you to look at the content of any stack frame, i.e. when you click on a different function there it will show the local variables for the selected stack frame. You can also restart code execution at any stack frame by clicking the small restart icon next to a given entry here:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Note that this last feature can be quite brittle, in particular if your functions modify any global state.","category":"page"},{"location":"userguide/debugging/#Exceptions","page":"Debugging","title":"Exceptions","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"If your code throws an exception, you get a nice exception view:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"You can also configure the behavior of the debugger in the face of exceptions in the BREAKPOINTS part of the UI.","category":"page"},{"location":"userguide/debugging/#Compile-mode","page":"Debugging","title":"Compile mode","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The breakpoints view has another option called Enable compile mode:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The functionality of this option is the following:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"If you select this option, breakpoints that are set in any function that is called from the current stack frame will no longer pause code execution. In our example, if you have paused in function foo and then select this option, a breakpoint in bar would no longer pause execution. Breakpoints in foo would still pause the debugger.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Why would you ever want to use this feature?","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Your code will run a lot faster with this option enabled.","category":"page"},{"location":"userguide/debugging/#Troubleshooting","page":"Debugging","title":"Troubleshooting","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"If you encounter any issue when using the debugger, Please do let us know about it over at the Julia VS Code repository.","category":"page"},{"location":"userguide/debugging/#Settings-to-speed-up-the-debugger","page":"Debugging","title":"Settings to speed-up the debugger","text":"","category":"section"},{"location":"userguide/debugging/#ALL_MODULES_EXCEPT_MAIN","page":"Debugging","title":"ALL_MODULES_EXCEPT_MAIN","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"In order to make the debugger run faster we want to minimize the number of packages/modules which are interpreted. Let's say you need to debug the code you wrote, but also the functionality provided by the package Statistics. Click on the Debugger Default Compiled extension setting.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Configure this setting as follows.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"\"julia.debuggerDefaultCompiled\": [ \n \"ALL_MODULES_EXCEPT_MAIN\", \n \"-Statistics.\", \n ]","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"ALL_MODULES_EXCEPT_MAIN will make all modules run in compiled mode except the Main module, which contains the code you wrote. We also use \"-Statistics.\" to remove this module and all its submodules from the list of compiled modules, such that it will be interpreted. ","category":"page"},{"location":"userguide/debugging/#Use-a-custom-sys-image","page":"Debugging","title":"Use a custom sys image","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Custom julia sys images can also be used when debugging. Go to julia-vscode extension settings and click to edit \"Additional Args\". ","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Once in the settings, use \"-J\" option followed by your path to the custom sys image. Note this \"Additional Args\" settings are currently used only when debugging in the REPL mode, see the @run macron in the example bellow.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"\"julia.additionalArgs\": [\n \"-JC:\\\\temp\\\\sys_custom.so\",\n ],","category":"page"},{"location":"userguide/debugging/#Example-for-fast(er)-debugging","page":"Debugging","title":"Example for fast(er) debugging","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"In the following code we use the packages GLMakie and Statistics. GLMakie is a plotting package and it's known to have a pretty slow time-to-first-plot(TTFP), especially for julia versions older than 1.9. Interpretting GLMakie is definetely not a thing we want to do when debugging. With the settings above, GLMakie is set to run in compile mode and we also load it from the sys image. Make sure you use the @run macro with your root function and debugg in the REPL mode.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"As the debugger hits the desired line of code we can step inside the mean function (Statistics) and debug there.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/profiler/#Profiling-code","page":"Profiler","title":"Profiling code","text":"","category":"section"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"Julia comes with it's own sampling profiler and there are various packages to visualize these profile traces.","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"The VS Code extension comes with it's own profile viewer. Profiling the example function from the ProfileView.jl readme","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"function profile_test(n)\n for i = 1:n\n A = randn(100,100,20)\n m = maximum(A)\n Am = mapslices(sum, A; dims=2)\n B = A[:,:,5]\n Bsort = mapslices(sort, B; dims=1)\n b = rand(100)\n C = B.*b\n end\nend\n\n# compilation\n@profview profile_test(1)\n# pure runtime\n@profview profile_test(10)","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"shows a flame graph and inline annotations: (Image: profiler 1)","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"Clicking on any element in the flamegraph zooms in on that element; double clicking on the background (or using the \"reset view\" button in the upper right) will restore the initial view. Ctrl-Click to open the referenced file.","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"The tooltip will tell you the number of samples collect in a certain frame as well as the percentage of the top-most displayed frame. There are some heuristics for special flags like garbage collection, dynamic dispatch, and more (these are also color coded).","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"(Image: flame graph)","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"The inline view shows you how much of the parent frame's samples originate on which line (and also the flags, as above, when hovering over the start of the inline annotation):","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"(Image: inline)","category":"page"},{"location":"userguide/codenavigation/#Code-Navigation","page":"Code Navigation","title":"Code Navigation","text":"","category":"section"},{"location":"userguide/codenavigation/#Quick-File-Navigation","page":"Code Navigation","title":"Quick File Navigation","text":"","category":"section"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"Tip: Hold Ctrl+P (Quick Open) to open any file by its name.","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"There are two commands which enable you to navigate in and across files with easy-to-use key bindings. ","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"Hold Ctrl and press Tab to view a list of all files open in an editor group. \nTo open one of these files, press Tab again to pick the file you want to navigate to, then release Ctrl to open it.","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"(Image: Code Navigation)","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"Alternatively, you can use Alt+Left and Alt+Right to navigate between files and edit locations. If you are jumping around between different lines of the same file, these shortcuts allow you to navigate between those locations easily.","category":"page"},{"location":"userguide/codenavigation/#Open-Package-Directory","page":"Code Navigation","title":"Open Package Directory","text":"","category":"section"},{"location":"userguide/codenavigation/#Go-to-Definition","page":"Code Navigation","title":"Go to Definition","text":"","category":"section"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"You can go to the definition of a symbol by pressing F12.","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"If you press Ctrl and hover over a symbol, a preview of the declaration will appear:","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"(Image: )","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"Tip: You can jump to the definition with Ctrl+Click or open the definition to the side with Ctrl+Alt+Click.","category":"page"},{"location":"userguide/codenavigation/#Go-to-Symbols","page":"Code Navigation","title":"Go to Symbols","text":"","category":"section"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"You can navigate symbols inside a file with Ctrl+Shift+O. Enter : and the symbols will be grouped by category. Press Up or Down and navigate to the place you want.","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"(Image: )","category":"page"},{"location":"userguide/codenavigation/#Open-Symbol-by-Name","page":"Code Navigation","title":"Open Symbol by Name","text":"","category":"section"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"You can open a particular symbol by its name with Ctrl+T, regardless of which file contains it. Type the name of a symbol you want to navigate to, and press Enter","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"(Image: Open Symbol)","category":"page"},{"location":"userguide/runningcode/#Running-Code","page":"Running Code","title":"Running Code","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The Julia extension provides a number of different ways to run your Julia code. This section describes all these options, except how to run code in the debugger, which is covered in a separate part of the documentation.","category":"page"},{"location":"userguide/runningcode/#Running-a-Julia-file","page":"Running Code","title":"Running a Julia file","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The VS Code command Run: Start Without Debugging (Ctrl+F5) by default starts a new Julia instance and runs the currently active Julia file. The command automatically creates a new VS Code terminal for this Julia process.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Note that the Julia instance that is started by this command is entirely independent from the Julia REPL that the extension also supports.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"You can easily customize the behavior of Run: Start Without Debugging by creating a launch configuration. In many situations it is beneficial to not run the currently active file, but instead configure one file in your workspace as the main entry point for your project that is run when you press Ctrl+F5.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Other customization options include custom working directories, command line arguments or a specific Julia environment (that is distinct from the active Julia environment in the VS Code window). Launch configurations also allow you to configure more complex execution scenarios where multiple Julia and non-Julia scripts are started simultaneously via compound launch configurations.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The Julia extension itself supports the following launch configuration attributes:","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"program: a path to a .jl file. This is the Julia file that will be run when this launch configuration is used. If this attribute is not specified, it defaults to the currently active Julia file in the editor.\ncwd: a path to a folder. The Julia process that is started by the launch configuration will use this path as the initial working directory. If this attribute is not specified, it defaults to the root working folder open in VS Code.\njuliaEnv: a path to a Julia project. The Julia process will be started with this Julia project as the active project. If this attribute is not specified, it defaults to the currently active Julia environment in the VS Code window.\nargs: an array of command line arguments. The values specified in this list will be passed as command line arguments to the Julia process that is started and are available via the Base.ARGS variable in the Julia script. If this attribute is not specified, no command line arguments are passed to the Julia instance.","category":"page"},{"location":"userguide/runningcode/#The-Julia-REPL","page":"Running Code","title":"The Julia REPL","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The Julia extension provides a Julia REPL inside VS Code. You can start this REPL with the Julia: Start REPL command.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The Julia REPL in the extension is identical to the default Julia REPL, but adds a number of additional integrations (plot pane, grid viewer, debugger etc.) that are not part of the standard REPL. Note that only the REPL that you start with the Julia: Start REPL command has these integrations. If you start Julia from a system shell inside VS Code, it won't provide these integration points.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The REPL that is started with the Julia: Start REPL command will have the root folder of the currently active workspace as its working directory, and will be started with the Julia project that is currently active in the VS Code window.","category":"page"},{"location":"userguide/runningcode/#Running-code-in-the-Julia-REPL","page":"Running Code","title":"Running code in the Julia REPL","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"There are four commands that you can use to run code from your editor in the Julia REPL:","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Julia: Execute Code in REPL\nJulia: Execute Code Cell in REPL\nJulia: Execute File in REPL\nJulia: Run File in New Process","category":"page"},{"location":"userguide/runningcode/#Julia:-Execute-Code-in-REPL","page":"Running Code","title":"Julia: Execute Code in REPL","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Whenever, there is some Julia code selected in the currently active editor, this command will execute the selected code. If no text is selected, the command will identify the extent of the top-level language construct that the cursor is located in (except modules) and execute that code block.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"This command will associate location information with code that is executed, include will work correctly with relative paths and macros like @__DIR__ and @__FILE__ work as expected.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"For most users, this should be their default command to run Julia code in the REPL.","category":"page"},{"location":"userguide/runningcode/#Julia:-Execute-Code-Cell-in-REPL","page":"Running Code","title":"Julia: Execute Code Cell in REPL","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The extension provides support for demarking code cells in standard Julia files with a specially formatted comment: ##. This command will identify in which code cell the cursor in the active editor currently is and then execute the code in that cell. If there are no code cells used in the current file, it will execute the entire file.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"This command uses the same code execution techniques as the Julia: Execute Code Block command. Include statements, location information etc. all work as expected, that is run with this command.","category":"page"},{"location":"userguide/runningcode/#Julia:-Execute-File-in-REPL","page":"Running Code","title":"Julia: Execute File in REPL","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"This command runs the entire content of the currently active file in the Julia REPL. It uses the same code execution techniques as the Julia: Execute Code Block command. Include statements, location information etc. all work as expected, that is run with this command.","category":"page"},{"location":"userguide/runningcode/#Julia:-Run-File-in-New-Process","page":"Running Code","title":"Julia: Run File in New Process","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Sometimes it's desirable to run your code in a new process (e.g. if you want to be absolutely sure that no state from previously run code interferes), so this command will spawn a new Julia process and run the active file in it.","category":"page"},{"location":"userguide/weave/#Julia-Markdown-Documents","page":"Julia Markdown Documents","title":"Julia Markdown Documents","text":"","category":"section"},{"location":"userguide/weave/","page":"Julia Markdown Documents","title":"Julia Markdown Documents","text":"The extension supports Weave markdown documents with the .jmd extension. All Julia code evaluation keybindings and commands should work normally, but cells are defined as fenced Julia code blocks instead (the usual ## delimiter has no meaning here).","category":"page"},{"location":"userguide/weave/","page":"Julia Markdown Documents","title":"Julia Markdown Documents","text":"The Julia Weave: Open Preview command to weave the current file to a temporary HTML document, which will then be displayed in the editor. Julia Weave: Save to File... allows you to select the output format and will save the weaved document next to the source file.","category":"page"},{"location":"userguide/keybindings/#Keybindings-and-Commands","page":"Keybindings & Commands","title":"Keybindings & Commands","text":"","category":"section"},{"location":"userguide/keybindings/","page":"Keybindings & Commands","title":"Keybindings & Commands","text":"This page was auto-generated from julia-vscode's package.json version 1.7.12.","category":"page"},{"location":"userguide/keybindings/#Keyboard-shortcuts","page":"Keybindings & Commands","title":"Keyboard shortcuts","text":"","category":"section"},{"location":"userguide/keybindings/","page":"Keybindings & Commands","title":"Keybindings & Commands","text":"","category":"page"},{"location":"userguide/keybindings/#Command-overview","page":"Keybindings & Commands","title":"Command overview","text":"","category":"section"},{"location":"userguide/keybindings/","page":"Keybindings & Commands","title":"Keybindings & Commands","text":"You can discover these yourself by opening the Command Palette with Ctrl/Cmd-Shift-P and searching for \"julia\".","category":"page"},{"location":"userguide/keybindings/","page":"Keybindings & Commands","title":"Keybindings & Commands","text":"Julia: New Julia File (language-julia.newJuliaFile)\nJulia: Re-Index Language Server Cache (language-julia.refreshLanguageServer)\nJulia: Restart Language Server (language-julia.restartLanguageServer)\nJulia: Open Package Directory in New Window (language-julia.openPackageDirectory)\nJulia: Tag new package version (experimental) (language-julia.tagNewPackageVersion)\nJulia: Change Current Environment (language-julia.changeCurrentEnvironment)\nJulia: Start REPL (language-julia.startREPL)\nJulia: Connect external REPL (language-julia.connectREPL)\nJulia: Stop REPL (language-julia.stopREPL)\nJulia: Restart REPL (language-julia.restartREPL)\nJulia: Disconnect external REPL (language-julia.disconnectREPL)\nJulia: Execute Code in REPL (language-julia.executeCodeBlockOrSelection)\nJulia: Send Current Line or Selection to REPL (language-julia.executeJuliaCodeInREPL)\nJulia: Execute Code in REPL and Move (language-julia.executeCodeBlockOrSelectionAndMove)\nJulia: Execute File in REPL (language-julia.executeFile)\nJulia: Execute active File in REPL (language-julia.executeActiveFile)\nJulia: Interrupt Execution (language-julia.interrupt)\nJulia: Toggle Linter (language-julia.toggleLinter)\nJulia Weave: Open Preview (language-julia.weave-open-preview)\nJulia Weave: Open Preview to the Side (language-julia.weave-open-preview-side)\nJulia Weave: Save to File... (language-julia.weave-save)\nJulia: Show Documentation (language-julia.show-documentation)\nJulia: Show Documentation Pane (language-julia.show-documentation-pane)\nJulia: Show Profiler (language-julia.openProfiler)\nJulia: Next Profiler (language-julia.nextProfile)\nJulia: Previous Profile (language-julia.previousProfile)\nJulia: Delete Profile (language-julia.deleteProfile)\nJulia: Delete All Profiles (language-julia.deleteAllProfiles)\nJulia: Save Profile (language-julia.saveProfileToFile)\nJulia: Show Plot Navigator (language-julia.show-plot-navigator)\nJulia: Browse Back Documentation (language-julia.browse-back-documentation)\nJulia: Browse Forward Documentation (language-julia.browse-forward-documentation)\nJulia: Show Plot (language-julia.show-plotpane)\nJulia: Show Next Plot (language-julia.plotpane-next)\nJulia: Show Previous Plot (language-julia.plotpane-previous)\nJulia: Show First Plot (language-julia.plotpane-first)\nJulia: Enable Plot Pane (language-julia.plotpane-enable)\nJulia: Disable Plot Pane (language-julia.plotpane-disable)\nJulia: Show Last Plot (language-julia.plotpane-last)\nJulia: Delete plot (language-julia.plotpane-delete)\nJulia: Copy Plot (language-julia.copy-plot)\nJulia: Save Plot (language-julia.save-plot)\nJulia: Delete All Plots (language-julia.plotpane-delete-all)\nJulia: Execute Code Cell in REPL (language-julia.executeCell)\nJulia: Execute Code Cell in REPL and Move (language-julia.executeCellAndMove)\nJulia: Move to Previous Cell (language-julia.moveCellUp)\nJulia: Move to Next Cell (language-julia.moveCellDown)\nJulia: Select Code Block (language-julia.selectBlock)\nOpen in VS Code (language-julia.showInVSCode)\nGo to definition (language-julia.workspaceGoToFile)\nJulia: Clear All Inline Results (language-julia.clearAllInlineResults)\nJulia: Clear Inline Results In Editor (language-julia.clearAllInlineResultsInEditor)\nJulia: Clear Current Inline Result (language-julia.clearCurrentInlineResult)\nJulia: Select Current Module (language-julia.chooseModule)\nJulia: Run File in New Process (language-julia.runEditorContents)\nJulia: Debug File in New Process (language-julia.debugEditorContents)\nJulia: Change to This Directory (language-julia.cdHere)\nJulia: Activate This Environment (language-julia.activateHere)\nJulia: Activate Parent Environment (language-julia.activateFromDir)\nJulia: Clear Runtime Diagnostics (language-julia.clearRuntimeDiagnostics)\nJulia: Clear Runtime Diagnostics by Provider (language-julia.clearRuntimeDiagnosticsByProvider)\nRemove from compiled modules/functions (language-julia.switchToInterpreted)\nJulia: Add to compiled modules/functions (language-julia.switchToCompiled)\nJulia: Switch all to interpreted (language-julia.switchAllToInterpreted)\nJulia: Switch all to compiled (language-julia.switchAllToCompiled)\nJulia: Apply default compiled modules/functions (language-julia.apply-compiled-defaults)\nJulia: Clear compiled modules/functions (language-julia.reset-compiled)\nJulia: Refresh Compiled/Interpreted Pane (language-julia.refreshCompiled)\nJulia: Add symbol to compiled modules/functions (language-julia.set-compiled-for-name)\nJulia: Set current compiled modules/functions as default (language-julia.set-current-as-default-compiled)\nJulia: Enable Compiled Mode for the debugger (language-julia.enable-compiled-mode)\nJulia: Disable Compiled Mode for the debugger (language-julia.disable-compiled-mode)\nRestart (language-julia.restartKernel)\nStop (language-julia.stopKernel)\nShow modules in Workspace (language-julia.showModules)\nHide modules in Workspace (language-julia.hideModules)","category":"page"},{"location":"userguide/privacy/#Privacy","page":"Privacy","title":"Privacy","text":"","category":"section"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"You can help improve the Julia VS Code extension by sending usage statistics and exceptions to the development team. By default, telemetry and crash report data are not collected, but rather the user has to opt-in to have their data sent. ","category":"page"},{"location":"userguide/privacy/#Opt-In-Policy","page":"Privacy","title":"Opt-In Policy","text":"","category":"section"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"By default both juliaenableTelemetry and juliaenableCrashReporter are set to null. With the null setting, no data is sent to the development team. The UI does send a prompt asking the user to agree to enabling the settings for telemetry and crash report. Without opting in, your data is not sent to the development team. ","category":"page"},{"location":"userguide/privacy/#Collecting-Data","page":"Privacy","title":"Collecting Data","text":"","category":"section"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"If the juliaenableTelemetry setting is configured to be true, anonymous, non-identifying usage and error data is sent to the development team.","category":"page"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"When the juliaenableCrashReporter setting is configured to be true, stack traces from errors in the extension are sent to the development team. Those stack traces can contain identifying information, for example filenames.","category":"page"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"This information is collected and sent via Azure Application Insights.","category":"page"},{"location":"userguide/privacy/#Disabling-Telemetry","page":"Privacy","title":"Disabling Telemetry","text":"","category":"section"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"To disable telemetry and not report any usage data or crash reports, set the juliaenableTelemetry and juliaenableCrashReporter setting to false.","category":"page"},{"location":"userguide/privacy/#Using-Collected-Data","page":"Privacy","title":"Using Collected Data","text":"","category":"section"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"The collected data is used to improve the julia VS Code extension. We don't sell the information. We might sometimes publish anonymous statistics (for example number of users etc.)","category":"page"},{"location":"#Julia-Visual-Studio-Code-Documentation","page":"Home","title":"Julia Visual Studio Code Documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"NOTE: This documentation is currently being updated and revamped. In the meantime, the CHANGELOG and pull requests linked within may serve as a useful reference of as yet undocumented features.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Julia for Visual Studio Code is a powerful, free IDE for the Julia language. Visual Studio Code is a powerful and customizable editor. With a completely live environment, Julia for VS Code aims to take the frustration and guesswork out of programming and put the fun back in. We build on Julia’s unique combination of ease-of-use and performance. Beginners and experts can build better software more quickly, and get to a result faster. Julia is an officially supported language on the VS Code docs.","category":"page"},{"location":"#Installation/Updates","page":"Home","title":"Installation/Updates","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"To install and download Julia, VS Code, and the Julia extension, see Installation and Configuration instructions.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Julia VS Code extension release features can be found on our Updates page.","category":"page"},{"location":"#Reporting-Issues/Bugs/Discussions","page":"Home","title":"Reporting Issues/Bugs/Discussions","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"If you have any issues with this setup, check out the FAQ first. If it doesn't help, please do report them on vscode.jl GitHub repository or at Julia Discourse under the Tooling ▶ VS Code category. We'll do our best to help you get going.","category":"page"},{"location":"#User-Manual","page":"Home","title":"User Manual","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The following pages are the user manual. These describe how to install and use the Julia extension on VS Code, along with answer questions most new users encounter.","category":"page"},{"location":"userguide/settings/#Settings","page":"Settings","title":"Settings","text":"","category":"section"},{"location":"userguide/env/#Julia-Environments","page":"Julia Environments","title":"Julia Environments","text":"","category":"section"},{"location":"userguide/env/","page":"Julia Environments","title":"Julia Environments","text":"The Julia VSCode Extension provides support for managing and switching your current Julia environment. You can click the \"Julia env\" button as shown below to select which environment you want to use:","category":"page"},{"location":"userguide/env/","page":"Julia Environments","title":"Julia Environments","text":"(Image: Env selection)","category":"page"},{"location":"userguide/env/","page":"Julia Environments","title":"Julia Environments","text":"If your active directory (shown on the left side of VSCode) contains a Julia environment and you try to switch to an alternate environment, you will be prompted with the message shown below:","category":"page"},{"location":"userguide/env/","page":"Julia Environments","title":"Julia Environments","text":"(Image: Alternate Env selection)","category":"page"}] +[{"location":"userguide/editingcode/#Editing-Code","page":"Editing Code","title":"Editing Code","text":"","category":"section"},{"location":"userguide/editingcode/#Code-completion-(IntelliSense)","page":"Editing Code","title":"Code completion (IntelliSense)","text":"","category":"section"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"You can use the InteliSense for completing codes,","category":"page"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"(Image: code completion)","category":"page"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"printing parameter information,","category":"page"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"(Image: signature completion)","category":"page"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"listing members of a struct, and so on. ","category":"page"},{"location":"userguide/editingcode/#Rename-symbol","page":"Editing Code","title":"Rename symbol","text":"","category":"section"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"You can rename a symbol (variable name, function name, etc) by pressing F2 or from right click -> \"Rename Symbol\".","category":"page"},{"location":"userguide/editingcode/","page":"Editing Code","title":"Editing Code","text":"(Image: Rename Symbol)","category":"page"},{"location":"devdocs/devdocs/#Developer-Documentation","page":"Overview","title":"Developer Documentation","text":"","category":"section"},{"location":"userguide/compilesysimage/#Compiling-Sysimages","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"","category":"section"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"The Julia VS Code extension enables you to compile a custom sysimage for your Julia environments. The extension automatically uses sysimages for the current environment when it starts a new Julia REPL in VS Code. ","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"Custom sysimages can significantly reduce load times for packages. ","category":"page"},{"location":"userguide/compilesysimage/#Creating-a-sysimage-for-the-active-environment","page":"Compiling Sysimages","title":"Creating a sysimage for the active environment","text":"","category":"section"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"The Julia extension adds a build task for custom sysimages to the Visual Studio Code task system. To run the build task, select the command Tasks: Run Build Task and then select Julia: Build custom sysimage for current environment. ","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"By default, all of the packages defined in the Project.toml file are included in the system image. However, those added by dev are excluded as they are intended for developments and often subject to changes.","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"Additional options can be passed to further tweak the compilation. In particular, one may want to include script containing the precompile statements or a file to execute certain julia function, which can further reduce the first-call latency. Please read the documentation of PackageCompiler.jl for more details.","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"This file should be named ./.vscode/JuliaSysimage.toml and be placed under the project root file. Its content should look like:","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"[sysimage]\nexclude=[\"Pkg1\", \"Pkg2\"] # Additional packages to be excluded in the system image\nstatements_files=[\"relative/path/to/precompile_statements_file.jl\", ]\nexecution_files=[\"relative/path/to/precompile_execution_file.jl\", ]","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"The packages to be excluded have to be separated by commas, each with quotation marks and all inside square brackets. The path should be relative to the currently active folder, which can be selected by the command File: Open Folder.... The statement or execution files can be given as a single relative path, or as a list of relative paths.","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"The statement files should contain precompile statements of the form precompile(Tuple{typeof(Base.sin), Float64}), and the execution files should contain function calls for which the methods should be compiled. ","category":"page"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"The build task creates a sysimage that includes all packages in the current Julia environment. This sysimage is saved in the same folder where the Project.toml and Manifest.toml of the current Julia environment are stored. The name of the sysimage file will be JuliaSysimage.dll (Windows) or JuliaSysimage.so. ","category":"page"},{"location":"userguide/compilesysimage/#Using-custom-sysimages","page":"Compiling Sysimages","title":"Using custom sysimages","text":"","category":"section"},{"location":"userguide/compilesysimage/","page":"Compiling Sysimages","title":"Compiling Sysimages","text":"When the Julia extension starts a new Julia REPL process, the extension first looks for a custom sysimage file for the current Julia environment. The extension then verifies whether the custom sysimage file is up to date by comparing the last modified date of the sysimage file to the last modified date of the Manifest.toml file. If an up to date sysimage file exists, the Julia extension automatically starts the Julia REPL process with the custom sysimage loaded. This requires the useCustomSysimage field to be set to true in the application settings of the extension.","category":"page"},{"location":"userguide/understandingcode/#Understanding-Code","page":"Understanding Code","title":"Understanding Code","text":"","category":"section"},{"location":"userguide/keyboard/#Keyboard-Shortcuts","page":"Keyboard Shortcuts","title":"Keyboard Shortcuts","text":"","category":"section"},{"location":"userguide/keyboard/","page":"Keyboard Shortcuts","title":"Keyboard Shortcuts","text":"Below are keyboard shortcut reference for three different platforms.","category":"page"},{"location":"userguide/keyboard/#Windows","page":"Keyboard Shortcuts","title":"Windows","text":"","category":"section"},{"location":"userguide/keyboard/","page":"Keyboard Shortcuts","title":"Keyboard Shortcuts","text":"Shortcut Description\nAlt + E Julia: Change Current Environment\nAlt + O Julia: Start REPL\nAlt + K Julia: Stop REPL\nCtrl + Enter Julia: Send Current Line or Selection to REPL\nAlt + Enter Julia: Execute Code And Move\nRightArrow, DownArrow, PageDown Julia: Show Next Plot\nLeftArrow, UpArrow, PageUp Julia: Show Previous Plot\nHome Julia: Show First Plot\nEnd Julia: Show Last Plot\nShift + Delete Julia: Delete All Plots\nAlt + Enter Julia: Execute Code Cell\nAlt + Shift + Enter Julia: Execute Code Cell And Move\nCtrl + C Julia: Clear Inline Results in Editor\nCtrl + D Julia: Clear Current Inline Result\nAlt + M Julia: Select Current Module","category":"page"},{"location":"userguide/keyboard/#Mac","page":"Keyboard Shortcuts","title":"Mac","text":"","category":"section"},{"location":"userguide/keyboard/","page":"Keyboard Shortcuts","title":"Keyboard Shortcuts","text":"Shortcut Description\nOption + E Julia: Change Current Environment\nOption + O Julia: Start REPL\nOption + K Julia: Stop REPL\nControl + Enter Julia: Send Current Line or Selection to REPL\nOption + Enter Julia: Execute Code And Move\nRightArrow, DownArrow, PageDown Julia: Show Next Plot\nLeftArrow, UpArrow, PageUp Julia: Show Previous Plot\nHome Julia: Show First Plot\nEnd Julia: Show Last Plot\nShift + Delete Julia: Delete All Plots\nOption + Enter Julia: Execute Code Cell\nOption + Shift + Enter Julia: Execute Code Cell And Move\nControl + C Julia: Clear Inline Results in Editor\nControl + D Julia: Clear Current Inline Result\nOption + M Julia: Select Current Module","category":"page"},{"location":"userguide/keyboard/#Linux","page":"Keyboard Shortcuts","title":"Linux","text":"","category":"section"},{"location":"userguide/keyboard/","page":"Keyboard Shortcuts","title":"Keyboard Shortcuts","text":"Shortcut Description\nAlt + E Julia: Change Current Environment\nAlt + O Julia: Start REPL\nAlt + K Julia: Stop REPL\nCtrl + Enter Julia: Send Current Line or Selection to REPL\nAlt + Enter Julia: Execute Code And Move\nRightArrow, DownArrow, PageDown Julia: Show Next Plot\nLeftArrow, UpArrow, PageUp Julia: Show Previous Plot\nHome Julia: Show First Plot\nEnd Julia: Show Last Plot\nShift + Delete Julia: Delete All Plots\nAlt + Enter Julia: Execute Code Cell\nShift + Alt + Enter Julia: Execute Code Cell And Move\nCtrl + C Julia: Clear Inline Results in Editor\nCtrl + D Julia: Clear Current Inline Result\nAlt + M Julia: Select Current Module","category":"page"},{"location":"setup/#Setup","page":"Setup","title":"Setup","text":"","category":"section"},{"location":"setup/","page":"Setup","title":"Setup","text":"Getting the Julia extension for VS Code to work involves two steps:","category":"page"},{"location":"setup/","page":"Setup","title":"Setup","text":"Install VS Code and then,\nInstall the Julia extension. ","category":"page"},{"location":"setup/","page":"Setup","title":"Setup","text":"In rare situations you also need to configure the extension to find your Julia installation.","category":"page"},{"location":"setup/#Installing-VS-Code","page":"Setup","title":"Installing VS Code","text":"","category":"section"},{"location":"setup/","page":"Setup","title":"Setup","text":"Just head over to the VS Code homepage. \nFollow the installation instructions for your platform. ","category":"page"},{"location":"setup/","page":"Setup","title":"Setup","text":"At the end of this step you should be able to start VS Code.","category":"page"},{"location":"setup/#Install-the-Julia-extension","page":"Setup","title":"Install the Julia extension","text":"","category":"section"},{"location":"setup/","page":"Setup","title":"Setup","text":"First, start VS Code.\nInside VS Code, go to the extensions view either by executing the View: Show Extensions command (click View->Command Palette...) or by clicking on the extension icon on the left side of the VS Code window.\nIn the extensions view, simply search for the term julia in the marketplace search box, then select the Julia extension and click the install button. \nYou might have to restart VS Code after this step.","category":"page"},{"location":"setup/#Configure-the-Julia-extension","page":"Setup","title":"Configure the Julia extension","text":"","category":"section"},{"location":"setup/","page":"Setup","title":"Setup","text":"If you have installed Julia into a standard location on Mac or Windows, or if the Julia binary is on your PATH, the Julia VS Code extension should automatically find your Julia installation and you should not need to configure anything.\nIf the extension does not find your Julia installation automatically, or if you want to use a different Julia installation than the default one,\nYou can set the julia.executablePath to the full path of Julia executable that the extension should use. In that case the extension will always use that version of Julia.\nTo edit your configuration settings, \nexecute the Preferences: Open User Settings command (you can also access it via the menu File->Preferences->Settings),\nAnd then make sure your user settings include the julia.executablePath setting.\nThe format of the string should follow your platform specific conventions, and be aware that the backlash \\ is the escape character in JSON, so you need to use \\\\ as the path separator character on Windows.","category":"page"},{"location":"userguide/remote/#Remote-Development","page":"Remote Development","title":"Remote Development","text":"","category":"section"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"To execute code on a remote server, you need to:","category":"page"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"Make sure you have SSH access to the server\nInstall the Remote-SSH extension locally in VS Code\nConnect VS Code to the server (using this icon in the bottom left of the VS code window: (Image: Icon looking like vertically misaligned \"><\"))\nInstall the Julia extension on the server through VS Code","category":"page"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"Then, you can execute your code on the server the same way you would locally: (Image: Example of the settings)","category":"page"},{"location":"userguide/remote/#Persistent-server-sessions","page":"Remote Development","title":"Persistent server sessions","text":"","category":"section"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"When you close the VS Code window, the server-side REPL terminates by default. To make the REPL state persistent across sessions, you have to:","category":"page"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"Install tmux, a terminal multiplexer, on the server (e.g. with apt install tmux)\nToggle the julia.persistentSession.enabled setting in the VS Code settings. Note that this setting is available only in the server installation of the Julia extensions, accessible from the \"Remote ...\" tab of settings:","category":"page"},{"location":"userguide/remote/","page":"Remote Development","title":"Remote Development","text":"(Image: Location of the persistent sessions setting)","category":"page"},{"location":"userguide/tasks/#Tasks","page":"Tasks","title":"Tasks","text":"","category":"section"},{"location":"userguide/grid/#Table-Viewer","page":"Table Viewer","title":"Table Viewer","text":"","category":"section"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"All Tables.jl-compatible tables (and more!) can be displayed in the integrated table viewer.","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"You can use the exported vscodedisplay function to display an object directly or use the Open in VS Code button in the workspace:","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"(Image: table viewer)","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"vscodedisplay also takes an optional second argument that allows setting the tab title.","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"Tables can be filtered and sorted in the UI, although that may be slow for medium sized tables and is disabled for big tables (with more than 1e7 elements).","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"Note that not-big tables (by the above definition) are cached. As such, changes to the original data structure won't be reflected in the table viewer until you display the table again.","category":"page"},{"location":"userguide/grid/","page":"Table Viewer","title":"Table Viewer","text":"A slightly hidden feature is that you can select rows and copy them into the clipboard with Ctrl-C or the context menu. Note that this will be slow when many rows are selected.","category":"page"},{"location":"userguide/formatter/#Formatting-Code","page":"Formatting Code","title":"Formatting Code","text":"","category":"section"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"Code formatting is powered by JuliaFormatter.jl. Both the Format Document command (Ctrl-Shift-I) and Format Selection (Ctrl-K Ctrl-F) are supported.","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"The default formatting is fairly conservative and unintrusive, but you can customise it with a .JuliaFormatter.toml in your workspace. Check out the relevant documentation here. Note: unlike the standard search rules for JuliaFormatter.jl, VSCode will only check for .JuliaFormatter.toml files within the workspace.","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"Formatting helps to keep code readable by automatically aligning indentations and spaces.","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"The Julia formatter can automatically make this code:","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"f(x)=2x+3\nprint(f'( 2 ))\n\nopen(\"myfile.txt\", \"w\") do io\n\twrite(io, \"Hello world!\")\n end;","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"look like this:","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"f(x) = 2x + 3\nprint(f'(2))\n\nopen(\"myfile.txt\", \"w\") do io\n write(io, \"Hello world!\")\nend;","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"It's the very same code, though now it's much easier to read.","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"In order to format your code press shift + cmd|windows + p to bring up the command palette and search for Format Document","category":"page"},{"location":"userguide/formatter/","page":"Formatting Code","title":"Formatting Code","text":"(Image: format)","category":"page"},{"location":"faq/#FAQ","page":"FAQ","title":"Frequently Asked Questions","text":"","category":"section"},{"location":"faq/#The-language-server-fails-to-precompile.-What-can-I-do-about-that?","page":"FAQ","title":"The language server fails to precompile. What can I do about that?","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"You've probably been directed here by a pop-up like the following (Image: LS precompilation failure)","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Click the Open Logs button or go to Output > Julia Language Server. You should see a message like this, among others:","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"The Language Server failed to precompile.\nPlease make sure you have permissions to write to the LS depot path at\n\t/home/pfitzseb/.config/Code/User/globalStorage/julialang.language-julia/lsdepot/v1","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Your current account needs to have read/write access to the indicated directory. Also make sure that it isn't on a NFS volume or similar, as that may cause issues.","category":"page"},{"location":"faq/#The-integrated-REPL-closes-when-the-Julia-process-crashes.-How-do-I-get-more-information-on-what's-going-on?","page":"FAQ","title":"The integrated REPL closes when the Julia process crashes. How do I get more information on what's going on?","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Keeping the integrated terminal open when the underlying process crashes is currently blocked on getting support for this in upstream VS Code. For now, try one of the two following options:","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"On Linux/MacOS, you can try the tmux integration (provided you have tmux installed on your system). That will make sure the underlying process stays alive even when the Julia process is terminated, so you should be able to see the actual error message.\nStart a new terminal (integrated or external) and manually start Julia within that terminal. Then use the Julia: Connect external REPL command and follow the instructions. After the Julia session is connected to VS Code, run your code as before; the terminal will stay open after Julia closes.","category":"page"},{"location":"userguide/linter/#Linting-and-Diagnostics","page":"Linter","title":"Linting and Diagnostics","text":"","category":"section"},{"location":"userguide/linter/","page":"Linter","title":"Linter","text":"All Julia code in the workspace is statically linted. You can disable that feature with the julia.lint.run setting or configure it via various options with the julia.lint. prefix.","category":"page"},{"location":"userguide/linter/#Runtime-diagnostics","page":"Linter","title":"Runtime diagnostics","text":"","category":"section"},{"location":"userguide/linter/","page":"Linter","title":"Linter","text":"Packages like JET.jl can analyze code at runtime (for some definition of \"runtime\"): (Image: jet)","category":"page"},{"location":"userguide/linter/","page":"Linter","title":"Linter","text":"You can opt out of this feature with the julia.showRuntimeDiagnostics setting. Use Julia: Clear Runtime Diagnostics or Julia: Clear Runtime Diagnostics by Provider to clear the displayed diagnostics.","category":"page"},{"location":"userguide/linter/","page":"Linter","title":"Linter","text":"Package authors who want to use this feature can simply implement a type that supports the application/vnd.julia-vscode.diagnostics MIME type. Check VSCodeServer.DIAGNOSTIC_MIME in a the integrated Julia REPL for more information on the API.","category":"page"},{"location":"gettingstarted/#Getting-Started","page":"Getting Started","title":"Getting Started","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"This guide is intended for new or beginner-level users who are new to the Visual Studio Code extension. The getting started tasks use the Julia programming language to create a “Hello World” program in VS Code.","category":"page"},{"location":"gettingstarted/#Prerequisites","page":"Getting Started","title":"Prerequisites","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Julia\nVS Code\nVS Code Julia extension","category":"page"},{"location":"gettingstarted/#Installation-and-Configuration","page":"Getting Started","title":"Installation and Configuration","text":"","category":"section"},{"location":"gettingstarted/#Installing-Julia","page":"Getting Started","title":"Installing Julia","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Download the latest stable version of Julia, based on the platform you are using, from the Julia homepage.","category":"page"},{"location":"gettingstarted/#Installing-VS-Code","page":"Getting Started","title":"Installing VS Code","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Download and install VS Code, based on the platform you are using, from the VS Code homepage.","category":"page"},{"location":"gettingstarted/#Installing-the-Julia-extension","page":"Getting Started","title":"Installing the Julia extension","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Start or open Visual Studio Code.\nSelect View and then click Extensions to open Extension View.\nEnter the term julia in the marketplace search box. Click the green Install button to download the extension.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"(Image: Julia VS Code Extension)","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"You successfully downloaded the Julia extension for VS Code.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"NOTE: It is recommended that you restart VS Code after installation.","category":"page"},{"location":"gettingstarted/#Configuring-the-Julia-extension","page":"Getting Started","title":"Configuring the Julia extension","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"If you installed Julia into a standard location on Mac or Windows, or if the Julia binary is on your PATH, the Julia VS Code extension automatically finds your Julia installation. You do not need to configure the extension. Continue onto the next section.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"If the VS Code extension does not find your Julia installation automatically, or you want to use a different Julia installation than the default one, use the following steps to configure the extension.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Set the julia.executablePath to the full path of Julia executable that the extension should use.\nTo edit your configuration settings, select menu Code (on Mac) or File (otherwise), then select Preferences, and then click Settings.\nEnsure that your user settings include the julia.executablePath setting.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"NOTE: The format of the string should follow your platform specific conventions. Note that the backslash \\ is the escape character in JSON, therefore use \\\\ as the path separator character on Windows.","category":"page"},{"location":"gettingstarted/#Creating-Your-First-Julia-Hello-World-program","page":"Getting Started","title":"Creating Your First Julia Hello World program","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"From the File Explorer toolbar, click the New File button on the Hello folder:","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"(Image: Julia VS Code Extension)","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Name the file hello.jl, and it automatically opens in the editor.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"(Image: Julia VS Code Extension)","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"The .jl file extension indicates to VS Code that you interpret this file as a Julia program, therefore it evaluates the contents with the Julia extension and the selected interpreter.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Enter the following source code in hello.jl:","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"msg = \"Hello World\"\nprintln(msg)","category":"page"},{"location":"gettingstarted/#Running-Hello-World-program","page":"Getting Started","title":"Running Hello World program","text":"","category":"section"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"To run the Hello World program, click Run: Julia File in Terminal play button in the top-right side of the editor.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"(Image: Julia VS Code Extension)","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"You can see the corresponding output in the terminal.","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"(Image: Julia VS Code Extension)","category":"page"},{"location":"gettingstarted/","page":"Getting Started","title":"Getting Started","text":"Congratulations! You have just completed your first Julia program.","category":"page"},{"location":"changelog/#Change-Log","page":"Change Log","title":"Change Log","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"All notable changes to the Julia extension will be documented in this file.","category":"page"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The format is based on Keep a Changelog.","category":"page"},{"location":"changelog/#[Unreleased]","page":"Change Log","title":"[Unreleased]","text":"","category":"section"},{"location":"changelog/#Added","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline results now support markdown-show methods (#2933)\nThe Julia REPL works with VS Code's shell integration feature (#2941)\nIt's now possible to add a special ALL_MODULES_EXCEPT_MAIN token to the list of compiled modules when debugging (#61)","category":"page"},{"location":"changelog/#Changed","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The language server now uses incremental sync (#1105)","category":"page"},{"location":"changelog/#Fixed","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Assigned but not used linter annotations are now slightly more correct (#339)\nActually fixed that issue with copying Exprs while debugging (#60)\nFixed when clauses of some keybindings that caused incorrect matches when editorLangId != julia (#2971)","category":"page"},{"location":"changelog/#[1.6.25]-2022-06-17","page":"Change Log","title":"[1.6.25] - 2022-06-17","text":"","category":"section"},{"location":"changelog/#Changed-2","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline results and inline profile traces are now themeable (#2897)\nInline evaluation now works in plain markdown files (#2920)","category":"page"},{"location":"changelog/#Fixed-2","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Restored a check (and notification) as to whether the Julia path is valid (#2923)\nErroneous .JuliaFormatter.tomls no longer cause the language server to crash (#1101)","category":"page"},{"location":"changelog/#[1.6.23]-2022-05-24","page":"Change Log","title":"[1.6.23] - 2022-05-24","text":"","category":"section"},{"location":"changelog/#Added-2","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Integrated the new allocation profiler (#2890)\nThe linter now warns when indexing into arrys with for i in 1:length(A) (#338)\nAdded a code action for adding a SPDX header to files (#1075)\nAdded a code action for organizing using/import statements (#1076)\nAdded a code action for converting string to raw strings and back (#1082)\nAdded a code action for adding a docstring template for function definitions (#1084)","category":"page"},{"location":"changelog/#Changed-3","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Switched to LSP 3.17 (#2886)","category":"page"},{"location":"changelog/#Fixed-3","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Made the workspace even more robust. For real this time. (#2892)\nVarious parser fixes (#338)\nFixed an issue with multiple \"missing reference\" actions being applied at the same time (#1089)","category":"page"},{"location":"changelog/#[1.6.22]-2022-05-04","page":"Change Log","title":"[1.6.22] - 2022-05-04","text":"","category":"section"},{"location":"changelog/#Added-3","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Modules can now be hidden in the workspace (#2887)","category":"page"},{"location":"changelog/#[1.6.18]-2022-05-04","page":"Change Log","title":"[1.6.18] - 2022-05-04","text":"","category":"section"},{"location":"changelog/#Added-4","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The profile pane now has a button to save the current profile to a file (#2847)\nAdded a Julia: New Julia File command (#1509, #2877)\nCell evaluation now shows inline results for all top-level code blocks when the julia.execution.inlineResultsForCellEvaluation setting is enabled (#2866)\nAdded a code action to replace ==/!= with ===/!== for comarisons with nothing (#1048)\nAdded completions for string macros (#1046)\nAdded a code action for replacing unused assignments/arguments with an underscore (#1065, #1072)","category":"page"},{"location":"changelog/#Changed-4","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The Julia version is now appended to the REPL title (#2857)\nThe extension is now only auto-activated when a Project.toml is in the workspace, not any arbitrary .jl file (#2850)\nPlot navigator screenshots were removed due to performance issues (#2869)\nImproved documentation search scoring algorithm (#1057)\nSome code actions are now marked as preferred, which makes applying them easier (#1063)\nCode action kinds are now set appropriately when applicable (#1062)\nImproved auto completion presentation (#1052)\nSnippet completions now have their kind set to snippet, as is appropriate (#1067)","category":"page"},{"location":"changelog/#Fixed-4","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Internal modules are now correctly loaded on all processes (#2845)\nBig tables originating from notebooks are now correctly displayed (#2848)\nNested progress bars are more robust in the presence of multiple tasks (#2845)\nThe Language Server is now properly restatable again (#2859)\nNotebook internals are now hidden in stacktraces (#2862)\nTerminal link handler now properly works for Base-internal code (#2865)\nans assignment is now more robust, which fixes an issue when IJulia.jl is loaded (#2867)\nLines are now broken properly in the documentation browser (#2870)\nargs can now be specified in the Julia launch configuration (#2872)\nconst fields in mutable structs are now parsed correctly (#336)\nFixed a race condition when downloading symbol server cache files (#251)\nPackage resolution now works properly for 1.7-style Manifests (#252)\nPlaceholder paths replacement in symbol server cache files now works more robustly (#253)\nFixed an issue with deepcopying Exprs in the debugger (#58)\nCode actions triggers are no longer off by one character (#1050)","category":"page"},{"location":"changelog/#[1.6.17]-2022-04-06","page":"Change Log","title":"[1.6.17] - 2022-04-06","text":"","category":"section"},{"location":"changelog/#Fixed-5","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Slightly better check for displaying objects in the workspace (#2833)","category":"page"},{"location":"changelog/#[1.6.16]-2022-04-06","page":"Change Log","title":"[1.6.16] - 2022-04-06","text":"","category":"section"},{"location":"changelog/#Fixed-6","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix a problem when trying to display missings in the workspace (#2831)\nThe x == nothing linter pass now also detects nothings on the LHD (#334)","category":"page"},{"location":"changelog/#[1.6.15]-2022-04-03","page":"Change Log","title":"[1.6.15] - 2022-04-03","text":"","category":"section"},{"location":"changelog/#Fixed-7","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Notebooks now start properly in empty VS Code workspaces (#2828)","category":"page"},{"location":"changelog/#[1.6.14]-2022-04-01","page":"Change Log","title":"[1.6.14] - 2022-04-01","text":"","category":"section"},{"location":"changelog/#Added-5","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"More notebook startup diagnostics.","category":"page"},{"location":"changelog/#[1.6.13]-2022-04-01","page":"Change Log","title":"[1.6.13] - 2022-04-01","text":"","category":"section"},{"location":"changelog/#Added-6","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"\"Go to defintion\" button for some workspace items (#2815)","category":"page"},{"location":"changelog/#Fixed-8","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"@edit is now much more robust (#2823)\nFixed a formatting crash (#1045)","category":"page"},{"location":"changelog/#[1.6.11]-2022-03-28","page":"Change Log","title":"[1.6.11] - 2022-03-28","text":"","category":"section"},{"location":"changelog/#Fixed-9","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed another bug in notebook error handling (#2803)\nPersistent REPL is no more killed on window reload (#2807)\nLOAD_PATH is now correctly set in notebooks (#2810)\nTrying to display an empty profile trace now shows a warning instead of emitting a scary looking error (#2809)\nLatex completions are now more robust (#1042)","category":"page"},{"location":"changelog/#[1.6.8]-2022-03-23","page":"Change Log","title":"[1.6.8] - 2022-03-23","text":"","category":"section"},{"location":"changelog/#Fixed-10","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Toolbar icon now works properly in Chromium based browsers (#2794)\njuliaup integration is now more robust (#2796)\nInline diagnostics are now also displayed in the REPL (#2797)\nFix for dev'ed package with relative paths (#2798)\nThe language server now handles exit notifications correctly (#1039)","category":"page"},{"location":"changelog/#[1.6.5]-2022-03-20","page":"Change Log","title":"[1.6.5] - 2022-03-20","text":"","category":"section"},{"location":"changelog/#Fixed-11","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline error are now handled better during debugging (#56)\nFixed an issue with generator linting (#1037)\nFixed an issue with autocompletions containing multi-byte characters (#1035)\nFixed a LSP spec violation (#1038)","category":"page"},{"location":"changelog/#[1.6.4]-2022-03-17","page":"Change Log","title":"[1.6.4] - 2022-03-17","text":"","category":"section"},{"location":"changelog/#Changed-5","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The default formatting style now does not surround kwargs = with whitespace (#1033)","category":"page"},{"location":"changelog/#Fixed-12","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Errors in notebooks are now handled more robustly (#2781, #2783)\nRevise.revise is now called in the most recent world during inline evaluation (#2782)","category":"page"},{"location":"changelog/#[1.6.2]-2022-03-11","page":"Change Log","title":"[1.6.2] - 2022-03-11","text":"","category":"section"},{"location":"changelog/#Fixed-13","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The table viewer is now available even when TableTraits is loaded before we connect to the Julia session, e.g. because it's compiled into the sysimage (#2775)\nFixed an issue where breakpoints would not get removed from the backend in some circumstancs (#53)","category":"page"},{"location":"changelog/#[1.6.1]-2022-03-10","page":"Change Log","title":"[1.6.1] - 2022-03-10","text":"","category":"section"},{"location":"changelog/#Added-7","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"\"Always copy\" option for \"Connect to external REPL\" command (#2759)","category":"page"},{"location":"changelog/#Changed-6","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Flame graph viewer improvements (scroll up now moves to the parent node, better macOS compatiblity).\nJulia REPL is now properly marked as transient on supported VS Code versions (#2764)","category":"page"},{"location":"changelog/#Fixed-14","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Julia-specific notebook toolbar icons now only show up for notebooks with Julia kernels (#2758)\nFixed version incompatibility in debugger (#52)\nFixed certain @doc parsing issues (#329, #330)\nOnly pass on valid options to JuliaFormatter (#1030)","category":"page"},{"location":"changelog/#[1.6.0]-2022-02-22","page":"Change Log","title":"[1.6.0] - 2022-02-22","text":"","category":"section"},{"location":"changelog/#Added-8","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"New profile viewer with inline annotations (#2674)\n\"Execute Code Block in REPL\" in editor context menu (#2667)\nSupport for --threads=auto setting (#2666)","category":"page"},{"location":"changelog/#Changed-7","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add config \"julia.execution.saveOnEval\" to allow auto saving before execution (#2727)\nAdd restart REPL command and always stop persistent session option(#2720)\nThe julia.NumThreads setting now allows for a value of auto if your Julia versions supports it (#2666)\nBetter enum rendering (#2620)\nImproved various notebook functionality (#2742)\nAdded stop/restart buttons to REPL workspace (#2746)\nThe table viewer now shows the actual Julia type when hovering over the colum header (#2749)","category":"page"},{"location":"changelog/#Fixed-15","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Weave preview background now follow theme color (#2740)\nNotebooks now respect the thread setting (#2747)\nFixed rendering of large stacktraces (especially with repeated frames) (#2746)\nLoadErrors are now properly unwrapped in the REPL (#2754)\nInline errors are now properly shown even when the line ends with a ; (#2748)","category":"page"},{"location":"changelog/#[1.5.11]-2022-01-17","page":"Change Log","title":"[1.5.11] - 2022-01-17","text":"","category":"section"},{"location":"changelog/#Fixed-16","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed a grammar issue when using VS Code 1.64.x (#2730)\nFixed inline result hovers for VS Code 1.64 and newer (#2716)\nFixed a Julia REPL crash when getting runtime completions for uninitialized fields (#2686)","category":"page"},{"location":"changelog/#Changed-8","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Removed some superfluous plot pane related keybindings (#2704)","category":"page"},{"location":"changelog/#[1.5.10]-2022-01-17","page":"Change Log","title":"[1.5.10] - 2022-01-17","text":"","category":"section"},{"location":"changelog/#Fixed-17","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix plot pane location and focus issue, again (hopefully for real this time) (#2676)","category":"page"},{"location":"changelog/#[1.5.9]-2022-01-05","page":"Change Log","title":"[1.5.9] - 2022-01-05","text":"","category":"section"},{"location":"changelog/#Fixed-18","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Plot pane position is now stable and interactive plots now render properly if the plot pane wasn't opened previously (#2662)\nFixed various issues with finding the Julia binary (#2647, #2642, #2658)\nFixed a command registration issue if the Julia binary changes while the language server is starting (#2663)","category":"page"},{"location":"changelog/#[1.5.8]-2021-12-21","page":"Change Log","title":"[1.5.8] - 2021-12-21","text":"","category":"section"},{"location":"changelog/#Fixed-19","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"juliaup integration now works properly (#2374)","category":"page"},{"location":"changelog/#[1.5.7]-2021-12-14","page":"Change Log","title":"[1.5.7] - 2021-12-14","text":"","category":"section"},{"location":"changelog/#Fixed-20","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Code execution in Julia markdown files should now work as intended (#2584)\nPlot pane is now properly confined to its view column (#2611)\nSystem image building now supports the new manifest format (#2617)\n=/in normalization for iteration over ranges is now disabled by default (#1006)","category":"page"},{"location":"changelog/#Changed-9","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Pixelated rendering mode is only active when zooming into an image now (#2602)","category":"page"},{"location":"changelog/#[1.5.6]-2021-11-20","page":"Change Log","title":"[1.5.6] - 2021-11-20","text":"","category":"section"},{"location":"changelog/#Changed-10","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Cell delimiters for Julia files are now configurable and include #- by default (#2567)\nUse pixelated rendering mode for images in the plot pane, in the same way VS Code renders images. (#2570)","category":"page"},{"location":"changelog/#Fixed-21","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Package tagging should now work again.","category":"page"},{"location":"changelog/#[1.5.5]-2021-11-16","page":"Change Log","title":"[1.5.5] - 2021-11-16","text":"","category":"section"},{"location":"changelog/#Fixed-22","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Runtime completions can now be properly disabled (#2551)\nCode execution keybindings are now consistent for Weave files (#2551)\nIntroduced a helpful warning when @profview failed to collect any traces (#2551)\nThe REPL is now terminated when VS Code is closed, which should work around issues introduced by the terminal.integrated.enablePersistentSessions setting (#2551)\nFixed various issues with the integrated table viewer (#2551)\nIt's now once again possible to use the Run/Debug in New Process commands concurrently (#2551)","category":"page"},{"location":"changelog/#[1.5.4]-2021-11-11","page":"Change Log","title":"[1.5.4] - 2021-11-11","text":"","category":"section"},{"location":"changelog/#Changed-11","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The plot pane now prefers png over svg plots for performance reasons (#2475)","category":"page"},{"location":"changelog/#[1.5.3]-2021-11-11","page":"Change Log","title":"[1.5.3] - 2021-11-11","text":"","category":"section"},{"location":"changelog/#Fixed-23","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Execute File now works properly for Weave files (#2540)\n\"s are now correctly escaped in the Julia command (#2546)","category":"page"},{"location":"changelog/#Changed-12","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved messaging around LS startup failures (#2542)\nAdded a setting for the symbol cache server (#2547)\nImprovements to SymbolServer cache and download responsiveness and performance (#243, #244)","category":"page"},{"location":"changelog/#[1.5.2]-2021-11-06","page":"Change Log","title":"[1.5.2] - 2021-11-06","text":"","category":"section"},{"location":"changelog/#Changed-13","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Debugging or running a file in a new process now uses only one terminal (#2539)","category":"page"},{"location":"changelog/#[1.5.0]-2021-11-05","page":"Change Log","title":"[1.5.0] - 2021-11-05","text":"","category":"section"},{"location":"changelog/#Fixed-24","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"InteractiveUtils is now properly loaded in notebooks (#2457)\nRuntime diagnostics are now displayed in the REPL in some circumstances (#2536)\nProgress ETA will no longer show NaN or Inf sometimes (#2536)\nNotebook kernels now load the user's startup.jl (#2536)\nJULIA_NUM_THREADS and JULIA_EDITOR are now correctly set for existing tmux sessions (#2534)\nInline results now behave properly with CRLF linendings and aren't as easily invalidated by unrelated changes (#2535)\nThe error message as now once again properly displayed in notebooks (#2509)\nFixed various parser issues (#313, #315)\nFixed an erroneous method call error annotation (#307)\nFixed a stack overflow in the linter (#308)\nFixed a method error in the auto-completion code (#983)\nFunctors are now correctly displayed in the outline (#990, #995)\nFixed an issue with runtime diagnostics crashing the language server (#996)\nVarious fixes related to inline evaluation (#2467)\nImproved auto-indentation behaviour (#2459)","category":"page"},{"location":"changelog/#Changed-14","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved table viewer UX; added filtering and sorting as well as asynchronous loading of big tables (#2415)\nSystem image building now excludes development packages (e.g. added by dev) (#2488).\nExtension views are now hidden until the extension is activated (#2530)\nReduced invalidation in CSTParser.jl, which might improve performance (#312)\nMajorly improvements to symbol cache loading performance and responsiveness (#240, #241)\nLanguage server initialization is now reported much more granularly (#994)\nImproved tmux session handling: Julia: Stop REPL now shows a prompt for closing the tmux session; also added a Julia: Disconnect external REPL command (#2532)\nJulia keybindings now work properly in Weave files (#2467)\nPlot pane interaction now requires the user to hold Alt/Option to avoid conflicts in plot's own mouse event handling (#2450)\nChanged default keybindings for inline/cell evaluation to more closely match the notebook experience (#2296)\nCode formatting is now powered by the excellent JuliaFormatter.jl, which should be much more reliable and configurable than the previous formatter (#2335, #972)","category":"page"},{"location":"changelog/#Added-9","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Allow customising precompile statements and execution files for system image building based on a ./.vscode/JuliaSysimage.toml file inside the project root folder (#2488).\ntmux session names can now include $[workspace] which will be replaced with the name of the current file's workspace when the REPL is first opened. (This allows for multiple persistent sessions across different VSCode windows). (#2504)\nvscodedisplay now takes an additional title argument, which will be displayed in the tab title for tables (#2415)\n@vscodedisplay will automatically put the input expression as the table viewer tab title (#2533)\nQuickaction for removing unused function argument names (#981)\nSome runtime-based auto-completions are provided (e.g. for field names and indexing) (#1507)","category":"page"},{"location":"changelog/#[1.4.3]-2021-09-15","page":"Change Log","title":"[1.4.3] - 2021-09-15","text":"","category":"section"},{"location":"changelog/#Changed-15","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Cursor now changes to indicate that plots are zoomable/panable (#2445)\nNotebook metadata is now properly saved. We've therefore enabled the pure-Julia notebook provider by default and removed the julia.notebookController setting (#2424)","category":"page"},{"location":"changelog/#[1.4.2]-2021-09-10","page":"Change Log","title":"[1.4.2] - 2021-09-10","text":"","category":"section"},{"location":"changelog/#Fixed-25","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Vega and VegaLite plots are now zoomable/panable (#2443)","category":"page"},{"location":"changelog/#[1.4.1]-2021-09-10","page":"Change Log","title":"[1.4.1] - 2021-09-10","text":"","category":"section"},{"location":"changelog/#Fixed-26","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"SVG output is now properly rendered in all cases (2442)","category":"page"},{"location":"changelog/#[1.4.0]-2021-09-08","page":"Change Log","title":"[1.4.0] - 2021-09-08","text":"","category":"section"},{"location":"changelog/#Added-10","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Export Plot(save/copy) buttons to plot pane(#2267)\nInteractive(zoomable/pannable) Plots #2273\nAdd executeInREPL to exported API (#2402)\nAdded a menu item for enabling/disabling the plot pane (#2346)\nAdded support for the custom application/vnd.julia-vscode.trace MIME type to display custom runtime diagnostics (e.g. JET.jl output) in the editor (#2329)","category":"page"},{"location":"changelog/#Changed-16","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"executablePath is now once again machine-overridable thanks to the introduction of trusted workspaces (#2379)","category":"page"},{"location":"changelog/#Fixed-27","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Julia paths are now properly deduplicated (#2428)\nThe extension is now activated when Julia specific toolbar items are shown (#2430)\nThe play button to run the current file now uses the editor content instead of the file content (#2431)\nIndentation will behave correctly when end appears in a for loop definition, e.g. for i in nums[2:end] (#2459)","category":"page"},{"location":"changelog/#[1.3.34]-2021-09-03","page":"Change Log","title":"[1.3.34] - 2021-09-03","text":"","category":"section"},{"location":"changelog/#Changed-17","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved error handling for finding the environment path (#2408)\nLimit supported file schemes (#2410)\nInline evaluation of code blocks ending with a semicolon now don't produce any output (#2409)\nRevert the workaround from 1.3.30 and require VSCode v1.60.0 (#2394)","category":"page"},{"location":"changelog/#[1.3.33]-2021-08-26","page":"Change Log","title":"[1.3.33] - 2021-08-26","text":"","category":"section"},{"location":"changelog/#Changed-18","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update vendored plotly to v2.3.1 (#2376)\nReintroduced getJuliaPath to exported API (#2399)","category":"page"},{"location":"changelog/#Fixed-28","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Images in the plot pane are now correctly down-sized to fit the plot pane again (#2362)","category":"page"},{"location":"changelog/#[1.3.32]-2021-08-23","page":"Change Log","title":"[1.3.32] - 2021-08-23","text":"","category":"section"},{"location":"changelog/#Fixed-29","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed more argument handling issues when starting Julia processes (#2372)","category":"page"},{"location":"changelog/#[1.3.31]-2021-08-23","page":"Change Log","title":"[1.3.31] - 2021-08-23","text":"","category":"section"},{"location":"changelog/#Changed-19","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Mention marketplace link in readme (#2368)","category":"page"},{"location":"changelog/#Fixed-30","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Resolved ambiguity in gridviewer code (#2382)\nImproved argument handling when starting Julia processes (#2372)","category":"page"},{"location":"changelog/#[1.3.30]-2021-08-15","page":"Change Log","title":"[1.3.30] - 2021-08-15","text":"","category":"section"},{"location":"changelog/#Fixed-31","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Work around an upstream error related to stating the executable in VSCode tasks (#2371)","category":"page"},{"location":"changelog/#[1.3.29]-2021-08-14","page":"Change Log","title":"[1.3.29] - 2021-08-14","text":"","category":"section"},{"location":"changelog/#Fixed-32","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Correctness fix for finding the Julia executable (#2364)\nFix logic for \"Open Settings\" button in notifications (#2354)\nReduced bundle size (#2357)","category":"page"},{"location":"changelog/#[1.3.28]-2021-08-06","page":"Change Log","title":"[1.3.28] - 2021-08-06","text":"","category":"section"},{"location":"changelog/#Changed-20","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved code for searching the Julia executable (#2341)\nAdd Revise.jl support for notebook evaluation (#2347)","category":"page"},{"location":"changelog/#Fixed-33","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Notebook execution now correctly uses the same softscope transforms as in Jupyter or the REPL (#2327)\nInternal strict typing improvements (#2342)","category":"page"},{"location":"changelog/#[1.3.27]-2021-07-29","page":"Change Log","title":"[1.3.27] - 2021-07-29","text":"","category":"section"},{"location":"changelog/#Changed-21","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved notebook kernel selection strategy (#2315)","category":"page"},{"location":"changelog/#Fixed-34","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Notebook restart logic (#2322)","category":"page"},{"location":"changelog/#[1.3.26]-2021-07-27","page":"Change Log","title":"[1.3.26] - 2021-07-27","text":"","category":"section"},{"location":"changelog/#Changed-22","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated dependencies.","category":"page"},{"location":"changelog/#[1.3.23]-2021-07-26","page":"Change Log","title":"[1.3.23] - 2021-07-26","text":"","category":"section"},{"location":"changelog/#Fixed-35","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"REPL prompt hiding logic for inline execution is now more correct (#2316)","category":"page"},{"location":"changelog/#[1.3.20]-2021-07-25","page":"Change Log","title":"[1.3.20] - 2021-07-25","text":"","category":"section"},{"location":"changelog/#Changed-23","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Native notebook support is now hidden behind the notebookController setting because of upstream issues (#2307)\nBetter labels for notebook kernels (#2309)\nNotebook cell output is now cleared during re-execution (#2306)","category":"page"},{"location":"changelog/#[1.3.20]-2021-07-23","page":"Change Log","title":"[1.3.20] - 2021-07-23","text":"","category":"section"},{"location":"changelog/#Fixed-36","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"File path is now correctly set for notebooks (#2305)","category":"page"},{"location":"changelog/#[1.3.18]-2021-07-22","page":"Change Log","title":"[1.3.18] - 2021-07-22","text":"","category":"section"},{"location":"changelog/#Changed-24","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"display calls that go to alternative displays (like the plot pane) are now more responsive (#2301)\nDownload of SymbolServer cache files is now configurable (#2298)\nImproved error message when LS fails to start (#2295)\nChanged the default values of the completionmode and execution.resultType settings (#2297)","category":"page"},{"location":"changelog/#Fixed-37","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"All logging messages now go to stderr, which fixes communication issues on some Julia 1.7 pre-release versions (#2302)","category":"page"},{"location":"changelog/#[1.3.17]-2021-07-17","page":"Change Log","title":"[1.3.17] - 2021-07-17","text":"","category":"section"},{"location":"changelog/#Changed-25","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated dependencies and required VSCode version to v1.58.1","category":"page"},{"location":"changelog/#[1.3.15]-2021-07-17","page":"Change Log","title":"[1.3.15] - 2021-07-17","text":"","category":"section"},{"location":"changelog/#Changed-26","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improve Julia notbeook kernel name (#2275)","category":"page"},{"location":"changelog/#[1.3.14]-2021-07-17","page":"Change Log","title":"[1.3.14] - 2021-07-17","text":"","category":"section"},{"location":"changelog/#Added-11","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Support for preferred kernels (#2271)","category":"page"},{"location":"changelog/#Chaged","page":"Change Log","title":"Chaged","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Notebook kernels are now reused after a notebook was closed (#2257)\nImproved notebook display logic (#2260)\nRely on os.homedir() instead of custom ENV logic (#2263)\nAdded broadcasting to the list of interpreted Base functions (#2290)","category":"page"},{"location":"changelog/#[1.3.13]-2021-07-01","page":"Change Log","title":"[1.3.13] - 2021-07-01","text":"","category":"section"},{"location":"changelog/#Changed-27","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Moved to GitHub actions for CI and release pipelines.","category":"page"},{"location":"changelog/#[1.3.2]-2021-06-30","page":"Change Log","title":"[1.3.2] - 2021-06-30","text":"","category":"section"},{"location":"changelog/#Fixed-38","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed REPL stacktraces file path links for Windows. Paths with tilda symbol now expand to the correct HOMEPATH. Paths with spaces are handled correctly (#2261)","category":"page"},{"location":"changelog/#[1.3.0]-2021-06-29","page":"Change Log","title":"[1.3.0] - 2021-06-29","text":"","category":"section"},{"location":"changelog/#Added-12","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Native notebook support (#2217 and others)","category":"page"},{"location":"changelog/#Changed-28","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Environment variables are now resolved in the julia.environmentPath and julia.executablePath settings (#2153)","category":"page"},{"location":"changelog/#Fixed-39","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Julia 1.6 paths on Windows are now correct (#2251)\nFixed various packaging issues (#2229)","category":"page"},{"location":"changelog/#[1.2.5]-2021-06-18","page":"Change Log","title":"[1.2.5] - 2021-06-18","text":"","category":"section"},{"location":"changelog/#Fixed-40","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Compiled modules/mode/functions are now set properly in the out-of-process deubugger (#2226)\nImproved plot navigator robustness (#2221)","category":"page"},{"location":"changelog/#[1.2.4]-2021-06-09","page":"Change Log","title":"[1.2.4] - 2021-06-09","text":"","category":"section"},{"location":"changelog/#Changed-29","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update various dependencies","category":"page"},{"location":"changelog/#[1.2.3]-2021-06-07","page":"Change Log","title":"[1.2.3] - 2021-06-07","text":"","category":"section"},{"location":"changelog/#Fixed-41","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Various debugging related issues (#39, #2190)\nPlot assets are now correctly loaded (#2200)","category":"page"},{"location":"changelog/#[1.2.2]-2021-06-01","page":"Change Log","title":"[1.2.2] - 2021-06-01","text":"","category":"section"},{"location":"changelog/#Changed-30","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Julia: Connect external REPL now gives feedback when connected (#2182)","category":"page"},{"location":"changelog/#Fixed-42","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Tilde-expansion now properly works in terminal links (#2185)\nREPL hooks are now properly installed when connecting to already running processes (#2182)\ntmux integration and connecting to an external process now properly work on Windows (#2182)","category":"page"},{"location":"changelog/#[1.2.1]-2021-05-27","page":"Change Log","title":"[1.2.1] - 2021-05-27","text":"","category":"section"},{"location":"changelog/#Fixed-43","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"tmux integration now works (#2177)\nFixed a crash in the new multi-environment support (#945)\nThe plots pane and navigator now (mostly) keeps focus where it was before (#2172)","category":"page"},{"location":"changelog/#[1.2.0]-2021-05-26","page":"Change Log","title":"[1.2.0] - 2021-05-26","text":"","category":"section"},{"location":"changelog/#Fixed-44","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Non-debugging Julia sessions no longer pretend they are debug sessions (#2155)\nLoading internal code now works better when multiple processes have been added in startup.jl (#2147)","category":"page"},{"location":"changelog/#Changed-31","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Workspace panel now shows #properties for AbstractrArrays and AbstractDicts (#1927)\nClicking on a symbol now highlights only references to that symbol, instead of all symbols with the same name (#908)","category":"page"},{"location":"changelog/#Added-13","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Added a sidebar element to quickly switch between differen plots (#1932)\nAdded integration for persistent tmux sessions, especially useful together with the Remote Editing extension (#1893)\nShip CoverageTools.jl as part of the extension so that test runs with coverage always work (#1928)\nAdd option to delete .cov files after test runs (on by default) (#1928)\nAdd new completion modes for unexported variables (#1963, #892)\nNew option for showing results inline but echoing errors into the REPL (#2121)\nNew UI for setting compiled/interpreted methods for the debugger, which can allow for a significantly faster debugging experience (#1888, #31)\nAuto-completion of un-exported symbols can now optionally insert the appropriate using statement (#892)","category":"page"},{"location":"changelog/#[1.1.39]-2021-05-06","page":"Change Log","title":"[1.1.39] - 2021-05-06","text":"","category":"section"},{"location":"changelog/#Fixed-45","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline stacktraces are now rendered properly on Julia 1.6 (#2091)\nWeaving a document now respects the current env (#2130)\nARGS are now properly cleared of extension internals (#2090)\nExternal Julia processes now respect the number of threads setting (#2141)\nURIs in markdown hovers (e.g. in stacktraces) now properly link to the right line (#932)","category":"page"},{"location":"changelog/#Changed-32","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Added support for the error stacks introduced in Julia 1.5 (#2142)\nImprovements to the package tagging functionality (which is now also limited to Julia 1.6) (#2144)","category":"page"},{"location":"changelog/#Added-14","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The linter now understands the new import Foo as Bar syntax (#276)","category":"page"},{"location":"changelog/#[1.1.38]-2021-03-29","page":"Change Log","title":"[1.1.38] - 2021-03-29","text":"","category":"section"},{"location":"changelog/#Fixed-46","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Path for auto-detecting Julia 1.6 binaries on Windows are now correct (#2086)\nAdded auto-dection for 1.6.1 (#2076)\nSetting JULIA_EDITOR should now be more robust (#2067)","category":"page"},{"location":"changelog/#Changed-33","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Auto-completions now allow for a certain degree of fuzzyiness (#906)","category":"page"},{"location":"changelog/#Added-15","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The LS now support selection range requests (use Shift-Alt-Right/Shift-Alt-Left to expand/reduce the \"smart selection\" in VSCode) (#893)","category":"page"},{"location":"changelog/#[1.1.37]-2021-03-17","page":"Change Log","title":"[1.1.37] - 2021-03-17","text":"","category":"section"},{"location":"changelog/#Fixed-47","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed a security vulnerability related to the Julia path setting (#2062)\nWe should not leave any more orphaned processes behind when VSCode is closed unexpectedly (#48)","category":"page"},{"location":"changelog/#[1.1.35]-2021-03-12","page":"Change Log","title":"[1.1.35] - 2021-03-12","text":"","category":"section"},{"location":"changelog/#Changed-34","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The Julia grammar is now shipped by VSCode and therefore removed from this package (#1998)\nError handling for internal Julia code should now be more robust (#2015)","category":"page"},{"location":"changelog/#[1.1.34]-2021-03-09","page":"Change Log","title":"[1.1.34] - 2021-03-09","text":"","category":"section"},{"location":"changelog/#Fixed-48","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Work around a Base issue when displaying certain types in the REPL (#2010)\nFixed certain debugger commands not working properly (#2008)","category":"page"},{"location":"changelog/#[1.1.33]-2021-03-06","page":"Change Log","title":"[1.1.33] - 2021-03-06","text":"","category":"section"},{"location":"changelog/#Fixed-49","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Step Into Target now works properly for top-level frames (#34)","category":"page"},{"location":"changelog/#Changed-35","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"\"Run Code\" commands now conform to the VSCode guidelines (#1999)","category":"page"},{"location":"changelog/#[1.1.32]-2021-03-03","page":"Change Log","title":"[1.1.32] - 2021-03-03","text":"","category":"section"},{"location":"changelog/#Changed-36","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Pipes for communication between the VSCode extension host and various Julia processes are now guaranteed to be unique (#1980)\nREPL output form activating a new environment via the GUI now doesn't display a Julia prompt (#1981)\nBetter crash reporting when commands fail (#1985)","category":"page"},{"location":"changelog/#[1.1.29]-2021-02-23","page":"Change Log","title":"[1.1.29] - 2021-02-23","text":"","category":"section"},{"location":"changelog/#Fixed-50","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed a typo that made the more robust REPL hooks not very robust at all (#1973)\nFixed a rare bug where showing variables while debugging might result in a crash (#32)","category":"page"},{"location":"changelog/#[1.1.28]-2021-02-23","page":"Change Log","title":"[1.1.28] - 2021-02-23","text":"","category":"section"},{"location":"changelog/#Fixed-51","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"LaTeX-rendered equations are now properly hidden behind the search bar in the docs pane(#1970)\nREPL hooks are now more robust (#1968)","category":"page"},{"location":"changelog/#[1.1.26]-2021-02-20","page":"Change Log","title":"[1.1.26] - 2021-02-20","text":"","category":"section"},{"location":"changelog/#Fixed-52","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Unparametrize the wrapper introduced in #1943 (#1957)","category":"page"},{"location":"changelog/#Changed-37","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Debugger is no longer marked as experimental (#1965)\nWe now use the ast_transforms machinery introduced in Julia 1.5 when appicable (#1959)","category":"page"},{"location":"changelog/#[1.1.19-1.1.25]-2021-02-17","page":"Change Log","title":"[1.1.19 - 1.1.25] - 2021-02-17","text":"","category":"section"},{"location":"changelog/#Changed-38","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixes to our Azure Pipelines infracstructure","category":"page"},{"location":"changelog/#[1.1.18]-2021-02-15","page":"Change Log","title":"[1.1.18] - 2021-02-15","text":"","category":"section"},{"location":"changelog/#Fixed-53","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fixed a regression when displaying SVGs in the plot pane (#1939)\nFix an issue with displaying values with incorrect convert methods (#1943)","category":"page"},{"location":"changelog/#Changed-39","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Explorer context menu entries are now only shown when a REPL is running (#1933)","category":"page"},{"location":"changelog/#[1.1.16]-2021-02-09","page":"Change Log","title":"[1.1.16] - 2021-02-09","text":"","category":"section"},{"location":"changelog/#Added-16","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Julia 1.6 binaries are now auto-detected (#1918)","category":"page"},{"location":"changelog/#[1.1.14]-2021-02-03","page":"Change Log","title":"[1.1.14] - 2021-02-03","text":"","category":"section"},{"location":"changelog/#Fixed-54","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Removed references to outdated Julia syntax that caused incorrect auto-indentation (#1910)\nStacktraces should now be properly truncated again (#1912)","category":"page"},{"location":"changelog/#Changed-40","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated the vendored Plotly and fixed auto-resizing for Plotly and VegaLite plots (#1911)","category":"page"},{"location":"changelog/#[1.1.13]-2021-02-03","page":"Change Log","title":"[1.1.13] - 2021-02-03","text":"","category":"section"},{"location":"changelog/#Fixed-55","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Relative environment paths are now persisted properly (#1905)\nUser supplied environment paths are now checked for validity (#1907)","category":"page"},{"location":"changelog/#[1.1.12]-2021-02-02","page":"Change Log","title":"[1.1.12] - 2021-02-02","text":"","category":"section"},{"location":"changelog/#Fixed-56","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Corrected environment handling in certaing cases (#1903)","category":"page"},{"location":"changelog/#Changed-41","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Live testing is disabled until it can be fixed (#1902)","category":"page"},{"location":"changelog/#[1.1.11]-2021-01-31","page":"Change Log","title":"[1.1.11] - 2021-01-31","text":"","category":"section"},{"location":"changelog/#Fixed-57","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Getting the module at the current cursor position now no longer waits until the LS is started (#1892)","category":"page"},{"location":"changelog/#[1.1.10]-2021-01-28","page":"Change Log","title":"[1.1.10] - 2021-01-28","text":"","category":"section"},{"location":"changelog/#Fixed-58","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Stop throwing an error instead of waiting for the LS being ready (#1889).\nFixed an issue with formatting if conditions (#124).","category":"page"},{"location":"changelog/#[1.1.9]-2021-01-26","page":"Change Log","title":"[1.1.9] - 2021-01-26","text":"","category":"section"},{"location":"changelog/#Fixed-59","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Displaying profiler results now works again (#1887).","category":"page"},{"location":"changelog/#[1.1.7]-2021-01-26","page":"Change Log","title":"[1.1.7] - 2021-01-26","text":"","category":"section"},{"location":"changelog/#Fixed-60","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"pwd is now properly set for the live unit testing task (#1886).","category":"page"},{"location":"changelog/#[1.1.6]-2021-01-25","page":"Change Log","title":"[1.1.6] - 2021-01-25","text":"","category":"section"},{"location":"changelog/#Changed-42","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The plot pane now properly scales images (#1882).","category":"page"},{"location":"changelog/#Fixed-61","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The LS now correctly handles the $/setTrace notification (#868).","category":"page"},{"location":"changelog/#[1.1.0]-2021-01-23","page":"Change Log","title":"[1.1.0] - 2021-01-23","text":"","category":"section"},{"location":"changelog/#Changed-43","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The progress bar now shows an estimate of the remaining time (#1868).","category":"page"},{"location":"changelog/#[1.0.15]-2021-01-23","page":"Change Log","title":"[1.0.15] - 2021-01-23","text":"","category":"section"},{"location":"changelog/#Added-17","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Progress logging can now be disabled in the settings (#1867).\nThe Julia explorer sidebar element now contains a documentation browser (#1458).\nAdded a command for tagging new package versions (#1870).\nAdded a task for live unit testing (#1872).","category":"page"},{"location":"changelog/#Changed-44","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The LS depot path is now located in the extension global storage instead of the extension's install directory, which allows the latter to be read-only (#1863).\nImprove docstring formatting (#122).","category":"page"},{"location":"changelog/#Fixed-62","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Comments and whitespace in multi-line tuples are no longer removed when formatting a file (#121).","category":"page"},{"location":"changelog/#[1.0.14]-2021-01-16","page":"Change Log","title":"[1.0.14] - 2021-01-16","text":"","category":"section"},{"location":"changelog/#Changed-45","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Removed the telemtry nag message (#1676).\nRemoved @ and ! from the list of non-word characters, so double clicking @foo! now selects the whole macro (#1861).","category":"page"},{"location":"changelog/#Fixed-63","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved the algorithm for finding the current code block (#860).\nFixed jmd parsing (#859).\nTHe linter now doesn't attribute every eval call to Core.eval (#237).","category":"page"},{"location":"changelog/#[1.0.13]-2021-01-13","page":"Change Log","title":"[1.0.13] - 2021-01-13","text":"","category":"section"},{"location":"changelog/#Added-18","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"It is now possible to customize the look of inline results (#1846).\nSupport for the upcoming import Foo as Bar syntax (#220).","category":"page"},{"location":"changelog/#Changed-46","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Switched to a new symbol store format (#1857).\nMajor rewrite for CSTParser (#190).\nStaticLint.jl now supports Julia >= v1.6 (#227).\nAdded additional type inference for the linter (#234).","category":"page"},{"location":"changelog/#Fixed-64","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"We now use the correct binary when setting the JULIA_EDITOR on MacOS for users of VSCode insiders (#1852).\nBase.displayble is now correctly extended instead of creating a local version (#1856).\nConditions for line breakpoints now work again (#26).\nDebugger now correctly unwraps UnionAlls when collecting global refs (#27).\nThe Linter now correctly handles Base.@kwdef (#233).","category":"page"},{"location":"changelog/#[1.0.12]-2021-01-05","page":"Change Log","title":"[1.0.12] - 2021-01-05","text":"","category":"section"},{"location":"changelog/#Added-19","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Commands for moving between code cells (#1828).","category":"page"},{"location":"changelog/#Fixed-65","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Backtraces are now properly truncated in the REPL (#1841).","category":"page"},{"location":"changelog/#[1.0.11]-2020-12-15","page":"Change Log","title":"[1.0.11] - 2020-12-15","text":"","category":"section"},{"location":"changelog/#Added-20","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Debugging or launching a file now works in workspaces with more than one directory (#1789).\nPressing ^C more than three times in one second now sends a SIGINT to the Julia process (on non-Windows OSs), which should make for more robust interrupts (#1775).","category":"page"},{"location":"changelog/#Changed-47","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline evaluation now waits for the LS to start up instead of throwing an error (#1760).\njulia.environmentPath needs a REPL restart, so added a note to that effect (#1778).\nThe language-julia.executeFile command can now be called with a string argument for easy integration with custom keybindings (#1779).\nCommands that require finding Julia environment files now don't need a running REPL (#1757).\nWhen using inline evaluation commands that move the cursor after evaluation, the cursor is now only moved if the user hasn't interacted with it (#1774).\nDebugging in a new process now properly loads the user's startup.jl (#1806).\nUpdate to JuliaInterpreter.jl 0.8 (#24).","category":"page"},{"location":"changelog/#Fixed-66","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"There can only be one LS startup notification (#1798).\nPlots are now properly displayed when the plot pane is disabled and only inline results are enabled (#1795).\nAdded some error handling when displaying error stacktraces inline (#1802).\nThe attached debugger now properly sets tls[:source_path] and doesn't crash the Julia REPL on errors (#1804).\nStaktraces are now properly truncated for inline results (#1812).\nProgress messages are now properly flushed, so that the progress monitoring is always be up-to-date (#1805).\nFixed an issue with parsing kwfuncs using where (#212).\nAdded missing nothing checks that could cause issues when linting files (#221, #223).","category":"page"},{"location":"changelog/#[1.0.10]-2020-11-13","page":"Change Log","title":"[1.0.10] - 2020-11-13","text":"","category":"section"},{"location":"changelog/#Added-21","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Support for Julia 1.5.3 and 1.5.4 default installation paths (#1755, #1759).\nNew up-to-date changelog (#1750).","category":"page"},{"location":"changelog/#Changed-48","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline evaluation now adds the evaluated code to the REPL history if the julia.codeInREPL options is set (#1754).\nThe extension now watches the global Manifest as well as Manifests in the workspace for changes and prompts the LS to re-index accordingly (#1756).","category":"page"},{"location":"changelog/#Fixed-67","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Push internal Julia modules to the front of LOAD_PATH to prevent loading code from the workspace instead (#1747).\nFixed a typo in the tableviewer code (#1749).\nEvaluation now uses unbuffered channels for communication, which might fix a rare off-by-one-result bug (#1762).","category":"page"},{"location":"changelog/#[1.0.9]-2020-11-04","page":"Change Log","title":"[1.0.9] - 2020-11-04","text":"","category":"section"},{"location":"changelog/#Added-22","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"The workspace now shows errors encountered while rendering the tree view. Furthermore, it now only special cases Array and Dict instead of their Abstract... supertypes (#1709).\nInline evaluation and the REPL can now be interrupted with the Julia: Interrupt Execution comamnd (or its default keyboard binding ctrl+c) (#1690).\nProgressLogging.jl's progress bars are now displayed in the editor (1579).\nThe language server process is now started with the JULIA_LANGUAGESERVER environment variable set to 1 (#1707).\nAdded commands to re-start the LS or re-index the symbol cache (#1721).\n@edit now works properly on code-server instances (#1737).\nAdded commands to cd to the current directory, Pkg.activate the current directory, or Pkg.activate the current files nearest project. These commands are also available in the file explorer (#1743).","category":"page"},{"location":"changelog/#Changed-49","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated some JS dependencies.\nThe plot pane is now opened in a new column by default, but also remembers it's last position (#1554).\nThe julia.NumThreads setting is now machine-overrideable (#1714).\nUpdated the Julia grammar definition (#1720), which fixed various bugs.\njulia.usePlotPane can now be changed without requiring the Julia process to be restarted. Additionally, the related display machinery is now much more robust (#1729).\nThe \"play\" button in the editor toolbar now runs the file in the integrated REPL process (#1728).\nAll inline results are now removed when the REPL process exits (#1738).","category":"page"},{"location":"changelog/#Fixed-68","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Stracktraces are now rendered properly (i.e. with linebreaks) once again (#1692).\nThe module indicator is now correctly initialized (instead of Main) (#1516).","category":"page"},{"location":"changelog/#[1.0.8]-2020-10-16","page":"Change Log","title":"[1.0.8] - 2020-10-16","text":"","category":"section"},{"location":"changelog/#Changed-50","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Both inline evaluation and the REPL now follow the changed soft-scope rules for Julia 1.5 and newer (#1665).","category":"page"},{"location":"changelog/#[1.0.7]-2020-10-05","page":"Change Log","title":"[1.0.7] - 2020-10-05","text":"","category":"section"},{"location":"changelog/#Changed-51","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated JS dependencies.\nWe now show an error message when both insiders and the regular extension are loaded.","category":"page"},{"location":"changelog/#[1.0.6]-2020-09-29","page":"Change Log","title":"[1.0.6] - 2020-09-29","text":"","category":"section"},{"location":"changelog/#Changed-52","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Updated JS dependencies.","category":"page"},{"location":"changelog/#[1.0.5]-2020-09-27","page":"Change Log","title":"[1.0.5] - 2020-09-27","text":"","category":"section"},{"location":"changelog/#Added-23","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Default paths for Julia 1.5.1 and 1.5.2.","category":"page"},{"location":"changelog/#[1.0.4]-2020-09-18","page":"Change Log","title":"[1.0.4] - 2020-09-18","text":"","category":"section"},{"location":"changelog/#Added-24","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"JULIA_PKG_SERVER is now an exposed setting.\nJulia: Stop REPL command.","category":"page"},{"location":"changelog/#Changed-53","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Toolbar icon now follows the style guide (outline instead of filled).","category":"page"},{"location":"changelog/#Fixed-69","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Run/Debug commands now work when invoked from the command palette.","category":"page"},{"location":"changelog/#[1.0.3]-2020-09-06","page":"Change Log","title":"[1.0.3] - 2020-09-06","text":"","category":"section"},{"location":"changelog/#Fixed-70","page":"Change Log","title":"Fixed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"ARGS now no longer contains extension internals.\nUse correct default path for Julia 1.5.\nFixed a world age error when using the integrated table viewer.","category":"page"},{"location":"changelog/#Changed-54","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Revise is now loaded without stealing the REPL backend for newer Julia versions.\n#%% and # %% are now valid cell seperators.\nImproved crash reporting.","category":"page"},{"location":"changelog/#[1.0.2]-2020-09-01","page":"Change Log","title":"[1.0.2] - 2020-09-01","text":"","category":"section"},{"location":"changelog/#Changed-55","page":"Change Log","title":"Changed","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Improved Azure build pipeline\nUpdated some JS dependencies","category":"page"},{"location":"changelog/#[1.0.1]-2020-08-31","page":"Change Log","title":"[1.0.1] - 2020-08-31","text":"","category":"section"},{"location":"changelog/#Added-25","page":"Change Log","title":"Added","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"This plugin is now also available on open-vsx.org","category":"page"},{"location":"changelog/#[1.0.0]-2020-08-28","page":"Change Log","title":"[1.0.0] - 2020-08-28","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"This is identical to the latest 0.17 release.","category":"page"},{"location":"changelog/#[0.17]","page":"Change Log","title":"[0.17]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Global variable support in the debugger variable explorer\nDebug and run buttons above Julia files\nSupport for step in targets in the debugger\nProfile viewing support\nStackframe highlighting for inline evaluations\nConfiguration option to exclude folders from linting\nAdd an extension API","category":"page"},{"location":"changelog/#[0.16]","page":"Change Log","title":"[0.16]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Inline display of evaluation results\nWorkspace view","category":"page"},{"location":"changelog/#[0.15]","page":"Change Log","title":"[0.15]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add an experimental debugger\nImprove cell delimiter regex so that it won't recognize YAS-style section headers as cell separator anymore (#1256, #1259)","category":"page"},{"location":"changelog/#[0.14]","page":"Change Log","title":"[0.14]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Make Language Server indexing async\nNew linting capabilities: call checks, static if blocks, unused free parameters, unhandled include statements, clashing module names, and pirates.\nEnable Code Actions: explicit re-export, replace qualified names with using statements\nAdd support for Julia 1.4/5-DEV\nImproved robustness, e.g. handling of unicode\nBetter presentation of documentation\nFully implement LSP 3.14\nStaticLint: improved path handling (file tree), extended macro handling, handle local/global variables, general refactor with speed/robustness improvements","category":"page"},{"location":"changelog/#[0.13.1]","page":"Change Log","title":"[0.13.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update CHANGELOG","category":"page"},{"location":"changelog/#[0.13.0]","page":"Change Log","title":"[0.13.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Support for Julia 1.3\nConfiguration options for the code formatter\nBug fixes","category":"page"},{"location":"changelog/#[0.12.3]","page":"Change Log","title":"[0.12.3]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add support for running a selection with Alt+Enter\nFix a bug in the LS when an environment path doesn't exist\nClean up labeling of commands","category":"page"},{"location":"changelog/#[0.12.2]","page":"Change Log","title":"[0.12.2]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Various bug fixes","category":"page"},{"location":"changelog/#[0.12.1]","page":"Change Log","title":"[0.12.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Various bug fixes","category":"page"},{"location":"changelog/#[0.12.0]","page":"Change Log","title":"[0.12.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add vscodedisplay() function for a grid view of tables\nAdd a command to delete all plots from the plot pane\nStore Julia environment choice in settings\nAuto detect Julia environments\nChange how execute block sends code to the REPL\nPreserve focus of REPL when plot pane is shown\nFix weave preview\nMake tasks work with julia environments\nAdd a test task that outputs coverage information\nOpen docs after build task\nSupport vega 3, 4 and 5, and vega-lite 2 and 3\nAllow paths starting with ~ for julia bin location\nFix JULIA_EDITOR integration on Mac\nAdd support for custom sysimages\nReworked syntax highlighting\nAdd support for code cell execution with Shift+Enter","category":"page"},{"location":"changelog/#[0.11.6]","page":"Change Log","title":"[0.11.6]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add option to permanently opt out of crash reporting\nFix bug related to Revise integration\nAdd option for passing command line arguments to julia REPL process\nRework communication between REPL and extension\nAuto-detect julia 1.1.1 and 1.2.0","category":"page"},{"location":"changelog/#[0.11.5]","page":"Change Log","title":"[0.11.5]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix julia 1.1 compat issue in SymbolServer\nUpdate vega-lite to 3.0 and vega to 5.2","category":"page"},{"location":"changelog/#[0.11.4]","page":"Change Log","title":"[0.11.4]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix another julia 1.1 compat issue","category":"page"},{"location":"changelog/#[0.11.3]","page":"Change Log","title":"[0.11.3]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix julia 1.1 compat issue","category":"page"},{"location":"changelog/#[0.11.2]","page":"Change Log","title":"[0.11.2]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Various bug fixes\nAdd option to enable/disable plot pane\nSearch for julia 1.0.4 and 1.1","category":"page"},{"location":"changelog/#[0.11.1]","page":"Change Log","title":"[0.11.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update CHANGELOG","category":"page"},{"location":"changelog/#[0.11.0]","page":"Change Log","title":"[0.11.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add julia 1.0 support, drop julia 0.6 support\nAdd support for interactive Plotly figures\nVarious bugfixes","category":"page"},{"location":"changelog/#[0.10.2]","page":"Change Log","title":"[0.10.2]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix automatic julia detection on Mac","category":"page"},{"location":"changelog/#[0.10.1]","page":"Change Log","title":"[0.10.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Fix some small bugs","category":"page"},{"location":"changelog/#[0.10.0]","page":"Change Log","title":"[0.10.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Auto-detect julia installation\nTelemetry support\nCrash reporting\nFix weave support\nVarious bug fixes","category":"page"},{"location":"changelog/#[0.9.1]","page":"Change Log","title":"[0.9.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update changelog","category":"page"},{"location":"changelog/#[0.9.0]","page":"Change Log","title":"[0.9.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Enable multi-root workspace support\nBug fixes","category":"page"},{"location":"changelog/#[0.8.0]","page":"Change Log","title":"[0.8.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add eval into module option to REPL\nAdd toggle lint command\nAdd toggle log command\nAdd execute file command\nAdd execute block command\nAdd support for region folding\nBug fixes","category":"page"},{"location":"changelog/#[0.7.0]","page":"Change Log","title":"[0.7.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Use VS Code tasks for build, test and benchmark\nAdd reload modules command\nAdd rename command\nBug fixes","category":"page"},{"location":"changelog/#[0.6.2]","page":"Change Log","title":"[0.6.2]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Bug fixes\nLanguage server status bar icon\njulia 0.6 syntax highlighting","category":"page"},{"location":"changelog/#[0.6.1]","page":"Change Log","title":"[0.6.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Bug fixes","category":"page"},{"location":"changelog/#[0.6.0]","page":"Change Log","title":"[0.6.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Use LanguageServer.jl\nFormat Document command\nActionable diagnostics\nSupport for .jmd files\nPlot pane\nRun package tests command\nLint package command","category":"page"},{"location":"changelog/#[0.5.1]","page":"Change Log","title":"[0.5.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Scope Ctrl+Enter to julia files\nFix whitespace bug on Windows","category":"page"},{"location":"changelog/#[0.5.0]","page":"Change Log","title":"[0.5.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Migrate to a language server protocol design\nAdd completion provider\nAdd definition provider\nAdd hover provider\nAdd signature provider\nAdd integrated julia terminal","category":"page"},{"location":"changelog/#[0.4.2]","page":"Change Log","title":"[0.4.2]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"julia 0.5 compatibility","category":"page"},{"location":"changelog/#[0.4.1]","page":"Change Log","title":"[0.4.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update README","category":"page"},{"location":"changelog/#[0.4.0]","page":"Change Log","title":"[0.4.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add linter support","category":"page"},{"location":"changelog/#[0.3.1]","page":"Change Log","title":"[0.3.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Patch release to test upgrade procedure","category":"page"},{"location":"changelog/#[0.3.0]","page":"Change Log","title":"[0.3.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add latex completion","category":"page"},{"location":"changelog/#[0.2.0]","page":"Change Log","title":"[0.2.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Add \"Open Package Directory in New Window\" command","category":"page"},{"location":"changelog/#[0.1.1]","page":"Change Log","title":"[0.1.1]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Update project home URLs","category":"page"},{"location":"changelog/#[0.1.0]","page":"Change Log","title":"[0.1.0]","text":"","category":"section"},{"location":"changelog/","page":"Change Log","title":"Change Log","text":"Initial release","category":"page"},{"location":"userguide/plotgallery/#Plots","page":"Plots","title":"Plots","text":"","category":"section"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Julia Plots provides us with the capability to create visualizations of data.","category":"page"},{"location":"userguide/plotgallery/#Install-Plots-Package","page":"Plots","title":"Install Plots Package","text":"","category":"section"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"First, Open the Julia Terminal (also known as REPL), you can follow the steps here.","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"At the Julia prompt in the REPL window, type the following:","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"julia> using Pkg","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"This will tell Julia that you are going to use the package manager.","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Then type the following to add Plots package:","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"julia> Pkg.add(\"Plots\")","category":"page"},{"location":"userguide/plotgallery/#Create-Visualization","page":"Plots","title":"Create Visualization","text":"","category":"section"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Remember to keep the REPL open as this is where any output from your program will be printed.","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"The first piece of code that you need to execute is this:","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"using Plots","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"This tells Julia to load the library that we will use to create our visualizations.","category":"page"},{"location":"userguide/plotgallery/#Example","page":"Plots","title":"Example","text":"","category":"section"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Let's walkthrough a simple program to understand this:","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Write the following code.","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"using Plots\nx = 1:10; y = rand(10); # These are the plotting data\nplot(x,y, label=\"my label\")","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"Now Run this, you can follow the steps here.","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"You will get something like the following graph as a output in a new tab in VS Code:","category":"page"},{"location":"userguide/plotgallery/","page":"Plots","title":"Plots","text":"(Image: Plot Graph)","category":"page"},{"location":"userguide/debugging/#Debugging","page":"Debugging","title":"Debugging","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The Julia extension supports debugging of all types of Julia programs and applications. ","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"For general debugging features such as inspecting variables, setting breakpoints, and other activities that aren't language-dependent, review VS Code debugging. ","category":"page"},{"location":"userguide/debugging/#Example","page":"Debugging","title":"Example","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Open a Julia file in VS Code. \nClick the Run button. You will now see the default debugger start panel:\nClick Run and Debug (or select F5) to run the active Julia file in the debugger. Output is displayed in the Julia Debug terminal. ","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"In this example the whole program ran through in one go and finished without any problem. Lets make this example a bit more useful by setting a breakpoint on line 11. We do this by simple clicking with the mouse in the left most column of the code editor:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The red dot shows us that we have now set a breakpoint. Next we start the program again (either by clicking on Run and Debug or pressing F5). When the program reaches line 11, it will pause:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The yellow line shows us the location that we will execute next if we continue to run the program. We can also see where we are in the call stack and a list of all breakpoints. At the top of the text editor we now see a toolbar with commands for common debug actions: Continue, Step over, Step Into, Step Out etc. Lets click once on Step Over and then Step Into. We are now paused on the first line of the bar function:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The Variables view now shows us what local variables we have in this function and what their current values are. As we step through the program, and eventually reach the end of the bar function, the list of local variables gets longer, i.e. we now also see the values for c and d:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Let us set another breakpoint on line 15 and then continue the program until it hits that breakpoint. Then we click on Debug Console and see a view like this:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"In this view we can evaluate arbitrary Julia code in the context of the current function. For example, we can compute the log of x by running log(x) here:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"We can also change the value of any local variable while the program is paused. For example, to change the value of x, we can double click in the Variables section on the value 27 next to x and then enter any arbitrary Julia expression. The value this expression returns will become the new value for the variable x. In the following example We changed the value of x to a string:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"This concludes the very basic walk through. I’ll now want to highlight some other features.","category":"page"},{"location":"userguide/debugging/#Ways-to-start-the-debugger","page":"Debugging","title":"Ways to start the debugger","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"There are two different ways to start the debugger.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The first you already learned in the walk through: you run a Julia file in the debugger.\nThe second allows you to debug code in the interactive REPL.","category":"page"},{"location":"userguide/debugging/#Running-Julia-files","page":"Debugging","title":"Running Julia files","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"In our example we started the currently active Julia file in the debugger. This is the most basic way to start debugging, but there are many more options that you can configure in a VS Code launch.json file. Examples include setting a fixed Julia file as the startup file, configuring command line arguments etc. The launch.json functionality is described in more detail in the VS Code debugger documentation.","category":"page"},{"location":"userguide/debugging/#Debugging-code-from-the-REPL","page":"Debugging","title":"Debugging code from the REPL","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"You can also start the debugger from the REPL. In that situation the debugger will attach to the already running REPL. To start such a debug session you use two macros in the REPL: the @enter and @run macro. Both are very simple: they will start the debugger on the code that was passed to the macro. The @run macro will run the code until a breakpoint is hit, while the @enter macro will pause the debugger on the first line of the code. For example, you can start debugging the println function from the REPL by entering @enter println(\"Test\")","category":"page"},{"location":"userguide/debugging/#Breakpoints","page":"Debugging","title":"Breakpoints","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"You already learned how you can easily set breakpoints in the source code itself. There are two more options for breakpoints: function breakpoints and condition on breakpoints.","category":"page"},{"location":"userguide/debugging/#Function-breakpoints","page":"Debugging","title":"Function breakpoints","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"If you click on the little + sign in the BREAKPOINTS view, you can add a function breakpoint. Simply enter the name of the function you want to break on. You can also configure it to only break on specific methods by specifying a signature like foo(::String, ::Number).","category":"page"},{"location":"userguide/debugging/#Breakpoint-conditions","page":"Debugging","title":"Breakpoint conditions","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"If you click with the right mouse onto a breakpoint in the editor, you can select an option Edit breakpoint..., and then you can add a condition on the breakpoint. You can enter any valid Julia expression that returns a Bool value here. You have of course full access to all local variables in this expression.","category":"page"},{"location":"userguide/debugging/#Variables-viewer","page":"Debugging","title":"Variables viewer","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Composite variables, arrays and dictionaries have full tree drill down support in the variables viewer:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/#Watch-section","page":"Debugging","title":"Watch section","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The watch section allows you to enter arbitrary Julia expressions that are evaluated whenever the program pauses and the result is shown:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/#Call-stack","page":"Debugging","title":"Call stack","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The call stack section allows you to look at the content of any stack frame, i.e. when you click on a different function there it will show the local variables for the selected stack frame. You can also restart code execution at any stack frame by clicking the small restart icon next to a given entry here:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Note that this last feature can be quite brittle, in particular if your functions modify any global state.","category":"page"},{"location":"userguide/debugging/#Exceptions","page":"Debugging","title":"Exceptions","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"If your code throws an exception, you get a nice exception view:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"You can also configure the behavior of the debugger in the face of exceptions in the BREAKPOINTS part of the UI.","category":"page"},{"location":"userguide/debugging/#Compile-mode","page":"Debugging","title":"Compile mode","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The breakpoints view has another option called Enable compile mode:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"The functionality of this option is the following:","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"If you select this option, breakpoints that are set in any function that is called from the current stack frame will no longer pause code execution. In our example, if you have paused in function foo and then select this option, a breakpoint in bar would no longer pause execution. Breakpoints in foo would still pause the debugger.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Why would you ever want to use this feature?","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Your code will run a lot faster with this option enabled.","category":"page"},{"location":"userguide/debugging/#Troubleshooting","page":"Debugging","title":"Troubleshooting","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"If you encounter any issue when using the debugger, Please do let us know about it over at the Julia VS Code repository.","category":"page"},{"location":"userguide/debugging/#Settings-to-speed-up-the-debugger","page":"Debugging","title":"Settings to speed-up the debugger","text":"","category":"section"},{"location":"userguide/debugging/#ALL_MODULES_EXCEPT_MAIN","page":"Debugging","title":"ALL_MODULES_EXCEPT_MAIN","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"In order to make the debugger run faster we want to minimize the number of packages/modules which are interpreted. Let's say you need to debug the code you wrote, but also the functionality provided by the package Statistics. Click on the Debugger Default Compiled extension setting.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Configure this setting as follows.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"\"julia.debuggerDefaultCompiled\": [ \n \"ALL_MODULES_EXCEPT_MAIN\", \n \"-Statistics.\", \n ]","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"ALL_MODULES_EXCEPT_MAIN will make all modules run in compiled mode except the Main module, which contains the code you wrote. We also use \"-Statistics.\" to remove this module and all its submodules from the list of compiled modules, such that it will be interpreted. ","category":"page"},{"location":"userguide/debugging/#Use-a-custom-sys-image","page":"Debugging","title":"Use a custom sys image","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Custom julia sys images can also be used when debugging. Go to julia-vscode extension settings and click to edit \"Additional Args\". ","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"Once in the settings, use \"-J\" option followed by your path to the custom sys image. Note this \"Additional Args\" settings are currently used only when debugging in the REPL mode, see the @run macron in the example bellow.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"\"julia.additionalArgs\": [\n \"-JC:\\\\temp\\\\sys_custom.so\",\n ],","category":"page"},{"location":"userguide/debugging/#Example-for-fast(er)-debugging","page":"Debugging","title":"Example for fast(er) debugging","text":"","category":"section"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"In the following code we use the packages GLMakie and Statistics. GLMakie is a plotting package and it's known to have a pretty slow time-to-first-plot(TTFP), especially for julia versions older than 1.9. Interpretting GLMakie is definetely not a thing we want to do when debugging. With the settings above, GLMakie is set to run in compile mode and we also load it from the sys image. Make sure you use the @run macro with your root function and debugg in the REPL mode.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"As the debugger hits the desired line of code we can step inside the mean function (Statistics) and debug there.","category":"page"},{"location":"userguide/debugging/","page":"Debugging","title":"Debugging","text":"(Image: Debugger)","category":"page"},{"location":"userguide/profiler/#Profiling-code","page":"Profiler","title":"Profiling code","text":"","category":"section"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"Julia comes with it's own sampling profiler and there are various packages to visualize these profile traces.","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"The VS Code extension comes with it's own profile viewer. Profiling the example function from the ProfileView.jl readme","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"function profile_test(n)\n for i = 1:n\n A = randn(100,100,20)\n m = maximum(A)\n Am = mapslices(sum, A; dims=2)\n B = A[:,:,5]\n Bsort = mapslices(sort, B; dims=1)\n b = rand(100)\n C = B.*b\n end\nend\n\n# compilation\n@profview profile_test(1)\n# pure runtime\n@profview profile_test(10)","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"shows a flame graph and inline annotations: (Image: profiler 1)","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"Clicking on any element in the flamegraph zooms in on that element; double clicking on the background (or using the \"reset view\" button in the upper right) will restore the initial view. Ctrl-Click to open the referenced file.","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"The tooltip will tell you the number of samples collect in a certain frame as well as the percentage of the top-most displayed frame. There are some heuristics for special flags like garbage collection, dynamic dispatch, and more (these are also color coded).","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"(Image: flame graph)","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"The inline view shows you how much of the parent frame's samples originate on which line (and also the flags, as above, when hovering over the start of the inline annotation):","category":"page"},{"location":"userguide/profiler/","page":"Profiler","title":"Profiler","text":"(Image: inline)","category":"page"},{"location":"userguide/codenavigation/#Code-Navigation","page":"Code Navigation","title":"Code Navigation","text":"","category":"section"},{"location":"userguide/codenavigation/#Quick-File-Navigation","page":"Code Navigation","title":"Quick File Navigation","text":"","category":"section"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"Tip: Hold Ctrl+P (Quick Open) to open any file by its name.","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"There are two commands which enable you to navigate in and across files with easy-to-use key bindings. ","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"Hold Ctrl and press Tab to view a list of all files open in an editor group. \nTo open one of these files, press Tab again to pick the file you want to navigate to, then release Ctrl to open it.","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"(Image: Code Navigation)","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"Alternatively, you can use Alt+Left and Alt+Right to navigate between files and edit locations. If you are jumping around between different lines of the same file, these shortcuts allow you to navigate between those locations easily.","category":"page"},{"location":"userguide/codenavigation/#Open-Package-Directory","page":"Code Navigation","title":"Open Package Directory","text":"","category":"section"},{"location":"userguide/codenavigation/#Go-to-Definition","page":"Code Navigation","title":"Go to Definition","text":"","category":"section"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"You can go to the definition of a symbol by pressing F12.","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"If you press Ctrl and hover over a symbol, a preview of the declaration will appear:","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"(Image: )","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"Tip: You can jump to the definition with Ctrl+Click or open the definition to the side with Ctrl+Alt+Click.","category":"page"},{"location":"userguide/codenavigation/#Go-to-Symbols","page":"Code Navigation","title":"Go to Symbols","text":"","category":"section"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"You can navigate symbols inside a file with Ctrl+Shift+O. Enter : and the symbols will be grouped by category. Press Up or Down and navigate to the place you want.","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"(Image: )","category":"page"},{"location":"userguide/codenavigation/#Open-Symbol-by-Name","page":"Code Navigation","title":"Open Symbol by Name","text":"","category":"section"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"You can open a particular symbol by its name with Ctrl+T, regardless of which file contains it. Type the name of a symbol you want to navigate to, and press Enter","category":"page"},{"location":"userguide/codenavigation/","page":"Code Navigation","title":"Code Navigation","text":"(Image: Open Symbol)","category":"page"},{"location":"userguide/runningcode/#Running-Code","page":"Running Code","title":"Running Code","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The Julia extension provides a number of different ways to run your Julia code. This section describes all these options, except how to run code in the debugger, which is covered in a separate part of the documentation.","category":"page"},{"location":"userguide/runningcode/#Running-a-Julia-file","page":"Running Code","title":"Running a Julia file","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The VS Code command Run: Start Without Debugging (Ctrl+F5) by default starts a new Julia instance and runs the currently active Julia file. The command automatically creates a new VS Code terminal for this Julia process.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Note that the Julia instance that is started by this command is entirely independent from the Julia REPL that the extension also supports.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"You can easily customize the behavior of Run: Start Without Debugging by creating a launch configuration. In many situations it is beneficial to not run the currently active file, but instead configure one file in your workspace as the main entry point for your project that is run when you press Ctrl+F5.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Other customization options include custom working directories, command line arguments or a specific Julia environment (that is distinct from the active Julia environment in the VS Code window). Launch configurations also allow you to configure more complex execution scenarios where multiple Julia and non-Julia scripts are started simultaneously via compound launch configurations.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The Julia extension itself supports the following launch configuration attributes:","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"program: a path to a .jl file. This is the Julia file that will be run when this launch configuration is used. If this attribute is not specified, it defaults to the currently active Julia file in the editor.\ncwd: a path to a folder. The Julia process that is started by the launch configuration will use this path as the initial working directory. If this attribute is not specified, it defaults to the root working folder open in VS Code.\njuliaEnv: a path to a Julia project. The Julia process will be started with this Julia project as the active project. If this attribute is not specified, it defaults to the currently active Julia environment in the VS Code window.\nargs: an array of command line arguments. The values specified in this list will be passed as command line arguments to the Julia process that is started and are available via the Base.ARGS variable in the Julia script. If this attribute is not specified, no command line arguments are passed to the Julia instance.","category":"page"},{"location":"userguide/runningcode/#The-Julia-REPL","page":"Running Code","title":"The Julia REPL","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The Julia extension provides a Julia REPL inside VS Code. You can start this REPL with the Julia: Start REPL command.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The Julia REPL in the extension is identical to the default Julia REPL, but adds a number of additional integrations (plot pane, grid viewer, debugger etc.) that are not part of the standard REPL. Note that only the REPL that you start with the Julia: Start REPL command has these integrations. If you start Julia from a system shell inside VS Code, it won't provide these integration points.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The REPL that is started with the Julia: Start REPL command will have the root folder of the currently active workspace as its working directory, and will be started with the Julia project that is currently active in the VS Code window.","category":"page"},{"location":"userguide/runningcode/#Running-code-in-the-Julia-REPL","page":"Running Code","title":"Running code in the Julia REPL","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"There are four commands that you can use to run code from your editor in the Julia REPL:","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Julia: Execute Code in REPL\nJulia: Execute Code Cell in REPL / Julia: Execute Code Cell in REPL and Move\nJulia: Execute File in REPL\nJulia: Run File in New Process","category":"page"},{"location":"userguide/runningcode/#Julia:-Execute-Code-in-REPL","page":"Running Code","title":"Julia: Execute Code in REPL","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Whenever, there is some Julia code selected in the currently active editor, this command will execute the selected code. If no text is selected, the command will identify the extent of the top-level language construct that the cursor is located in (except modules) and execute that code block.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"This command will associate location information with code that is executed, include will work correctly with relative paths and macros like @__DIR__ and @__FILE__ work as expected.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"For most users, this should be their default command to run Julia code in the REPL.","category":"page"},{"location":"userguide/runningcode/#Julia:-Execute-Code-Cell-in-REPL","page":"Running Code","title":"Julia: Execute Code Cell in REPL","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"The extension provides support for demarking code cells in standard Julia files with a specially formatted comment: ## or # %%. Either symbol must occur the start of a line and can be followed by text. This command will identify in which code cell the cursor in the active editor currently is and then execute the code in that cell. If there are no code cells used in the current file, it will execute the entire file.","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Cell delimiters can be specified as regex expressions with the julia.cellDelimiters user setting. The default being `[\"^##(?!#)\", \"^#(\\s?)%%\", \"^#-\"].","category":"page"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"This command uses the same code execution techniques as the Julia: Execute Code Block command. Include statements, location information etc. all work as expected, that is run with this command.","category":"page"},{"location":"userguide/runningcode/#Julia:-Execute-File-in-REPL","page":"Running Code","title":"Julia: Execute File in REPL","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"This command runs the entire content of the currently active file in the Julia REPL. It uses the same code execution techniques as the Julia: Execute Code Block command. Include statements, location information etc. all work as expected, that is run with this command.","category":"page"},{"location":"userguide/runningcode/#Julia:-Run-File-in-New-Process","page":"Running Code","title":"Julia: Run File in New Process","text":"","category":"section"},{"location":"userguide/runningcode/","page":"Running Code","title":"Running Code","text":"Sometimes it's desirable to run your code in a new process (e.g. if you want to be absolutely sure that no state from previously run code interferes), so this command will spawn a new Julia process and run the active file in it.","category":"page"},{"location":"userguide/weave/#Julia-Markdown-Documents","page":"Julia Markdown Documents","title":"Julia Markdown Documents","text":"","category":"section"},{"location":"userguide/weave/","page":"Julia Markdown Documents","title":"Julia Markdown Documents","text":"The extension supports Weave markdown documents with the .jmd extension. All Julia code evaluation keybindings and commands should work normally, but cells are defined as fenced Julia code blocks instead (the usual ##/# %% delimiters have no meaning here).","category":"page"},{"location":"userguide/weave/","page":"Julia Markdown Documents","title":"Julia Markdown Documents","text":"The Julia Weave: Open Preview command to weave the current file to a temporary HTML document, which will then be displayed in the editor. Julia Weave: Save to File... allows you to select the output format and will save the weaved document next to the source file.","category":"page"},{"location":"userguide/keybindings/#Keybindings-and-Commands","page":"Keybindings & Commands","title":"Keybindings & Commands","text":"","category":"section"},{"location":"userguide/keybindings/","page":"Keybindings & Commands","title":"Keybindings & Commands","text":"This page was auto-generated from julia-vscode's package.json version 1.7.12.","category":"page"},{"location":"userguide/keybindings/#Keyboard-shortcuts","page":"Keybindings & Commands","title":"Keyboard shortcuts","text":"","category":"section"},{"location":"userguide/keybindings/","page":"Keybindings & Commands","title":"Keybindings & Commands","text":"","category":"page"},{"location":"userguide/keybindings/#Command-overview","page":"Keybindings & Commands","title":"Command overview","text":"","category":"section"},{"location":"userguide/keybindings/","page":"Keybindings & Commands","title":"Keybindings & Commands","text":"You can discover these yourself by opening the Command Palette with Ctrl/Cmd-Shift-P and searching for \"julia\".","category":"page"},{"location":"userguide/keybindings/","page":"Keybindings & Commands","title":"Keybindings & Commands","text":"Julia: New Julia File (language-julia.newJuliaFile)\nJulia: Re-Index Language Server Cache (language-julia.refreshLanguageServer)\nJulia: Restart Language Server (language-julia.restartLanguageServer)\nJulia: Open Package Directory in New Window (language-julia.openPackageDirectory)\nJulia: Tag new package version (experimental) (language-julia.tagNewPackageVersion)\nJulia: Change Current Environment (language-julia.changeCurrentEnvironment)\nJulia: Start REPL (language-julia.startREPL)\nJulia: Connect external REPL (language-julia.connectREPL)\nJulia: Stop REPL (language-julia.stopREPL)\nJulia: Restart REPL (language-julia.restartREPL)\nJulia: Disconnect external REPL (language-julia.disconnectREPL)\nJulia: Execute Code in REPL (language-julia.executeCodeBlockOrSelection)\nJulia: Send Current Line or Selection to REPL (language-julia.executeJuliaCodeInREPL)\nJulia: Execute Code in REPL and Move (language-julia.executeCodeBlockOrSelectionAndMove)\nJulia: Execute File in REPL (language-julia.executeFile)\nJulia: Execute active File in REPL (language-julia.executeActiveFile)\nJulia: Interrupt Execution (language-julia.interrupt)\nJulia: Toggle Linter (language-julia.toggleLinter)\nJulia Weave: Open Preview (language-julia.weave-open-preview)\nJulia Weave: Open Preview to the Side (language-julia.weave-open-preview-side)\nJulia Weave: Save to File... (language-julia.weave-save)\nJulia: Show Documentation (language-julia.show-documentation)\nJulia: Show Documentation Pane (language-julia.show-documentation-pane)\nJulia: Show Profiler (language-julia.openProfiler)\nJulia: Next Profiler (language-julia.nextProfile)\nJulia: Previous Profile (language-julia.previousProfile)\nJulia: Delete Profile (language-julia.deleteProfile)\nJulia: Delete All Profiles (language-julia.deleteAllProfiles)\nJulia: Save Profile (language-julia.saveProfileToFile)\nJulia: Show Plot Navigator (language-julia.show-plot-navigator)\nJulia: Browse Back Documentation (language-julia.browse-back-documentation)\nJulia: Browse Forward Documentation (language-julia.browse-forward-documentation)\nJulia: Show Plot (language-julia.show-plotpane)\nJulia: Show Next Plot (language-julia.plotpane-next)\nJulia: Show Previous Plot (language-julia.plotpane-previous)\nJulia: Show First Plot (language-julia.plotpane-first)\nJulia: Enable Plot Pane (language-julia.plotpane-enable)\nJulia: Disable Plot Pane (language-julia.plotpane-disable)\nJulia: Show Last Plot (language-julia.plotpane-last)\nJulia: Delete plot (language-julia.plotpane-delete)\nJulia: Copy Plot (language-julia.copy-plot)\nJulia: Save Plot (language-julia.save-plot)\nJulia: Delete All Plots (language-julia.plotpane-delete-all)\nJulia: Execute Code Cell in REPL (language-julia.executeCell)\nJulia: Execute Code Cell in REPL and Move (language-julia.executeCellAndMove)\nJulia: Move to Previous Cell (language-julia.moveCellUp)\nJulia: Move to Next Cell (language-julia.moveCellDown)\nJulia: Select Code Block (language-julia.selectBlock)\nOpen in VS Code (language-julia.showInVSCode)\nGo to definition (language-julia.workspaceGoToFile)\nJulia: Clear All Inline Results (language-julia.clearAllInlineResults)\nJulia: Clear Inline Results In Editor (language-julia.clearAllInlineResultsInEditor)\nJulia: Clear Current Inline Result (language-julia.clearCurrentInlineResult)\nJulia: Select Current Module (language-julia.chooseModule)\nJulia: Run File in New Process (language-julia.runEditorContents)\nJulia: Debug File in New Process (language-julia.debugEditorContents)\nJulia: Change to This Directory (language-julia.cdHere)\nJulia: Activate This Environment (language-julia.activateHere)\nJulia: Activate Parent Environment (language-julia.activateFromDir)\nJulia: Clear Runtime Diagnostics (language-julia.clearRuntimeDiagnostics)\nJulia: Clear Runtime Diagnostics by Provider (language-julia.clearRuntimeDiagnosticsByProvider)\nRemove from compiled modules/functions (language-julia.switchToInterpreted)\nJulia: Add to compiled modules/functions (language-julia.switchToCompiled)\nJulia: Switch all to interpreted (language-julia.switchAllToInterpreted)\nJulia: Switch all to compiled (language-julia.switchAllToCompiled)\nJulia: Apply default compiled modules/functions (language-julia.apply-compiled-defaults)\nJulia: Clear compiled modules/functions (language-julia.reset-compiled)\nJulia: Refresh Compiled/Interpreted Pane (language-julia.refreshCompiled)\nJulia: Add symbol to compiled modules/functions (language-julia.set-compiled-for-name)\nJulia: Set current compiled modules/functions as default (language-julia.set-current-as-default-compiled)\nJulia: Enable Compiled Mode for the debugger (language-julia.enable-compiled-mode)\nJulia: Disable Compiled Mode for the debugger (language-julia.disable-compiled-mode)\nRestart (language-julia.restartKernel)\nStop (language-julia.stopKernel)\nShow modules in Workspace (language-julia.showModules)\nHide modules in Workspace (language-julia.hideModules)","category":"page"},{"location":"userguide/privacy/#Privacy","page":"Privacy","title":"Privacy","text":"","category":"section"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"You can help improve the Julia VS Code extension by sending usage statistics and exceptions to the development team. By default, telemetry and crash report data are not collected, but rather the user has to opt-in to have their data sent. ","category":"page"},{"location":"userguide/privacy/#Opt-In-Policy","page":"Privacy","title":"Opt-In Policy","text":"","category":"section"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"By default both juliaenableTelemetry and juliaenableCrashReporter are set to null. With the null setting, no data is sent to the development team. The UI does send a prompt asking the user to agree to enabling the settings for telemetry and crash report. Without opting in, your data is not sent to the development team. ","category":"page"},{"location":"userguide/privacy/#Collecting-Data","page":"Privacy","title":"Collecting Data","text":"","category":"section"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"If the juliaenableTelemetry setting is configured to be true, anonymous, non-identifying usage and error data is sent to the development team.","category":"page"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"When the juliaenableCrashReporter setting is configured to be true, stack traces from errors in the extension are sent to the development team. Those stack traces can contain identifying information, for example filenames.","category":"page"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"This information is collected and sent via Azure Application Insights.","category":"page"},{"location":"userguide/privacy/#Disabling-Telemetry","page":"Privacy","title":"Disabling Telemetry","text":"","category":"section"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"To disable telemetry and not report any usage data or crash reports, set the juliaenableTelemetry and juliaenableCrashReporter setting to false.","category":"page"},{"location":"userguide/privacy/#Using-Collected-Data","page":"Privacy","title":"Using Collected Data","text":"","category":"section"},{"location":"userguide/privacy/","page":"Privacy","title":"Privacy","text":"The collected data is used to improve the julia VS Code extension. We don't sell the information. We might sometimes publish anonymous statistics (for example number of users etc.)","category":"page"},{"location":"#Julia-Visual-Studio-Code-Documentation","page":"Home","title":"Julia Visual Studio Code Documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"NOTE: This documentation is currently being updated and revamped. In the meantime, the CHANGELOG and pull requests linked within may serve as a useful reference of as yet undocumented features.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Julia for Visual Studio Code is a powerful, free IDE for the Julia language. Visual Studio Code is a powerful and customizable editor. With a completely live environment, Julia for VS Code aims to take the frustration and guesswork out of programming and put the fun back in. We build on Julia’s unique combination of ease-of-use and performance. Beginners and experts can build better software more quickly, and get to a result faster. Julia is an officially supported language on the VS Code docs.","category":"page"},{"location":"#Installation/Updates","page":"Home","title":"Installation/Updates","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"To install and download Julia, VS Code, and the Julia extension, see Installation and Configuration instructions.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Julia VS Code extension release features can be found on our Updates page.","category":"page"},{"location":"#Reporting-Issues/Bugs/Discussions","page":"Home","title":"Reporting Issues/Bugs/Discussions","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"If you have any issues with this setup, check out the FAQ first. If it doesn't help, please do report them on vscode.jl GitHub repository or at Julia Discourse under the Tooling ▶ VS Code category. We'll do our best to help you get going.","category":"page"},{"location":"#User-Manual","page":"Home","title":"User Manual","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The following pages are the user manual. These describe how to install and use the Julia extension on VS Code, along with answer questions most new users encounter.","category":"page"},{"location":"userguide/settings/#Settings","page":"Settings","title":"Settings","text":"","category":"section"},{"location":"userguide/env/#Julia-Environments","page":"Julia Environments","title":"Julia Environments","text":"","category":"section"},{"location":"userguide/env/","page":"Julia Environments","title":"Julia Environments","text":"The Julia VSCode Extension provides support for managing and switching your current Julia environment. You can click the \"Julia env\" button as shown below to select which environment you want to use:","category":"page"},{"location":"userguide/env/","page":"Julia Environments","title":"Julia Environments","text":"(Image: Env selection)","category":"page"},{"location":"userguide/env/","page":"Julia Environments","title":"Julia Environments","text":"If your active directory (shown on the left side of VSCode) contains a Julia environment and you try to switch to an alternate environment, you will be prompted with the message shown below:","category":"page"},{"location":"userguide/env/","page":"Julia Environments","title":"Julia Environments","text":"(Image: Alternate Env selection)","category":"page"}] } diff --git a/dev/setup/index.html b/dev/setup/index.html index d434561..3ee0c1e 100644 --- a/dev/setup/index.html +++ b/dev/setup/index.html @@ -1,2 +1,2 @@ -Setup · Julia in VS Code

      Setup

      Getting the Julia extension for VS Code to work involves two steps:

      1. Install VS Code and then,
      2. Install the Julia extension.

      In rare situations you also need to configure the extension to find your Julia installation.

      Installing VS Code

      • Just head over to the VS Code homepage.
      • Follow the installation instructions for your platform.

      At the end of this step you should be able to start VS Code.

      Install the Julia extension

      • First, start VS Code.
      • Inside VS Code, go to the extensions view either by executing the View: Show Extensions command (click View->Command Palette...) or by clicking on the extension icon on the left side of the VS Code window.
      • In the extensions view, simply search for the term julia in the marketplace search box, then select the Julia extension and click the install button.
      • You might have to restart VS Code after this step.

      Configure the Julia extension

      • If you have installed Julia into a standard location on Mac or Windows, or if the Julia binary is on your PATH, the Julia VS Code extension should automatically find your Julia installation and you should not need to configure anything.

      • If the extension does not find your Julia installation automatically, or if you want to use a different Julia installation than the default one,

        • You can set the julia.executablePath to the full path of Julia executable that the extension should use. In that case the extension will always use that version of Julia.
        • To edit your configuration settings,
          • execute the Preferences: Open User Settings command (you can also access it via the menu File->Preferences->Settings),
          • And then make sure your user settings include the julia.executablePath setting.
          The format of the string should follow your platform specific conventions, and be aware that the backlash \ is the escape character in JSON, so you need to use \\ as the path separator character on Windows.
      +Setup · Julia in VS Code

      Setup

      Getting the Julia extension for VS Code to work involves two steps:

      1. Install VS Code and then,
      2. Install the Julia extension.

      In rare situations you also need to configure the extension to find your Julia installation.

      Installing VS Code

      • Just head over to the VS Code homepage.
      • Follow the installation instructions for your platform.

      At the end of this step you should be able to start VS Code.

      Install the Julia extension

      • First, start VS Code.
      • Inside VS Code, go to the extensions view either by executing the View: Show Extensions command (click View->Command Palette...) or by clicking on the extension icon on the left side of the VS Code window.
      • In the extensions view, simply search for the term julia in the marketplace search box, then select the Julia extension and click the install button.
      • You might have to restart VS Code after this step.

      Configure the Julia extension

      • If you have installed Julia into a standard location on Mac or Windows, or if the Julia binary is on your PATH, the Julia VS Code extension should automatically find your Julia installation and you should not need to configure anything.

      • If the extension does not find your Julia installation automatically, or if you want to use a different Julia installation than the default one,

        • You can set the julia.executablePath to the full path of Julia executable that the extension should use. In that case the extension will always use that version of Julia.
        • To edit your configuration settings,
          • execute the Preferences: Open User Settings command (you can also access it via the menu File->Preferences->Settings),
          • And then make sure your user settings include the julia.executablePath setting.
          The format of the string should follow your platform specific conventions, and be aware that the backlash \ is the escape character in JSON, so you need to use \\ as the path separator character on Windows.
      diff --git a/dev/userguide/codenavigation/index.html b/dev/userguide/codenavigation/index.html index 7c5c0a3..18908cf 100644 --- a/dev/userguide/codenavigation/index.html +++ b/dev/userguide/codenavigation/index.html @@ -1,2 +1,2 @@ -Code Navigation · Julia in VS Code

      Code Navigation

      Quick File Navigation

      Tip: Hold Ctrl+P (Quick Open) to open any file by its name.

      There are two commands which enable you to navigate in and across files with easy-to-use key bindings.

      • Hold Ctrl and press Tab to view a list of all files open in an editor group.
      • To open one of these files, press Tab again to pick the file you want to navigate to, then release Ctrl to open it.

      Code Navigation

      Alternatively, you can use Alt+Left and Alt+Right to navigate between files and edit locations. If you are jumping around between different lines of the same file, these shortcuts allow you to navigate between those locations easily.

      Open Package Directory

      Go to Definition

      You can go to the definition of a symbol by pressing F12.

      If you press Ctrl and hover over a symbol, a preview of the declaration will appear:

      Tip: You can jump to the definition with Ctrl+Click or open the definition to the side with Ctrl+Alt+Click.

      Go to Symbols

      You can navigate symbols inside a file with Ctrl+Shift+O. Enter : and the symbols will be grouped by category. Press Up or Down and navigate to the place you want.

      Open Symbol by Name

      You can open a particular symbol by its name with Ctrl+T, regardless of which file contains it. Type the name of a symbol you want to navigate to, and press Enter

      Open Symbol

      +Code Navigation · Julia in VS Code

      Code Navigation

      Quick File Navigation

      Tip: Hold Ctrl+P (Quick Open) to open any file by its name.

      There are two commands which enable you to navigate in and across files with easy-to-use key bindings.

      • Hold Ctrl and press Tab to view a list of all files open in an editor group.
      • To open one of these files, press Tab again to pick the file you want to navigate to, then release Ctrl to open it.

      Code Navigation

      Alternatively, you can use Alt+Left and Alt+Right to navigate between files and edit locations. If you are jumping around between different lines of the same file, these shortcuts allow you to navigate between those locations easily.

      Open Package Directory

      Go to Definition

      You can go to the definition of a symbol by pressing F12.

      If you press Ctrl and hover over a symbol, a preview of the declaration will appear:

      Tip: You can jump to the definition with Ctrl+Click or open the definition to the side with Ctrl+Alt+Click.

      Go to Symbols

      You can navigate symbols inside a file with Ctrl+Shift+O. Enter : and the symbols will be grouped by category. Press Up or Down and navigate to the place you want.

      Open Symbol by Name

      You can open a particular symbol by its name with Ctrl+T, regardless of which file contains it. Type the name of a symbol you want to navigate to, and press Enter

      Open Symbol

      diff --git a/dev/userguide/compilesysimage/index.html b/dev/userguide/compilesysimage/index.html index 3deff5c..a8bb855 100644 --- a/dev/userguide/compilesysimage/index.html +++ b/dev/userguide/compilesysimage/index.html @@ -2,4 +2,4 @@ Compiling Sysimages · Julia in VS Code

      Compiling Sysimages

      The Julia VS Code extension enables you to compile a custom sysimage for your Julia environments. The extension automatically uses sysimages for the current environment when it starts a new Julia REPL in VS Code.

      Custom sysimages can significantly reduce load times for packages.

      Creating a sysimage for the active environment

      The Julia extension adds a build task for custom sysimages to the Visual Studio Code task system. To run the build task, select the command Tasks: Run Build Task and then select Julia: Build custom sysimage for current environment.

      By default, all of the packages defined in the Project.toml file are included in the system image. However, those added by dev are excluded as they are intended for developments and often subject to changes.

      Additional options can be passed to further tweak the compilation. In particular, one may want to include script containing the precompile statements or a file to execute certain julia function, which can further reduce the first-call latency. Please read the documentation of PackageCompiler.jl for more details.

      This file should be named ./.vscode/JuliaSysimage.toml and be placed under the project root file. Its content should look like:

      [sysimage]
       exclude=["Pkg1", "Pkg2"]   # Additional packages to be excluded in the system image
       statements_files=["relative/path/to/precompile_statements_file.jl", ]
      -execution_files=["relative/path/to/precompile_execution_file.jl", ]

      The packages to be excluded have to be separated by commas, each with quotation marks and all inside square brackets. The path should be relative to the currently active folder, which can be selected by the command File: Open Folder.... The statement or execution files can be given as a single relative path, or as a list of relative paths.

      The statement files should contain precompile statements of the form precompile(Tuple{typeof(Base.sin), Float64}), and the execution files should contain function calls for which the methods should be compiled.

      The build task creates a sysimage that includes all packages in the current Julia environment. This sysimage is saved in the same folder where the Project.toml and Manifest.toml of the current Julia environment are stored. The name of the sysimage file will be JuliaSysimage.dll (Windows) or JuliaSysimage.so.

      Using custom sysimages

      When the Julia extension starts a new Julia REPL process, the extension first looks for a custom sysimage file for the current Julia environment. The extension then verifies whether the custom sysimage file is up to date by comparing the last modified date of the sysimage file to the last modified date of the Manifest.toml file. If an up to date sysimage file exists, the Julia extension automatically starts the Julia REPL process with the custom sysimage loaded. This requires the useCustomSysimage field to be set to true in the application settings of the extension.

      +execution_files=["relative/path/to/precompile_execution_file.jl", ]

      The packages to be excluded have to be separated by commas, each with quotation marks and all inside square brackets. The path should be relative to the currently active folder, which can be selected by the command File: Open Folder.... The statement or execution files can be given as a single relative path, or as a list of relative paths.

      The statement files should contain precompile statements of the form precompile(Tuple{typeof(Base.sin), Float64}), and the execution files should contain function calls for which the methods should be compiled.

      The build task creates a sysimage that includes all packages in the current Julia environment. This sysimage is saved in the same folder where the Project.toml and Manifest.toml of the current Julia environment are stored. The name of the sysimage file will be JuliaSysimage.dll (Windows) or JuliaSysimage.so.

      Using custom sysimages

      When the Julia extension starts a new Julia REPL process, the extension first looks for a custom sysimage file for the current Julia environment. The extension then verifies whether the custom sysimage file is up to date by comparing the last modified date of the sysimage file to the last modified date of the Manifest.toml file. If an up to date sysimage file exists, the Julia extension automatically starts the Julia REPL process with the custom sysimage loaded. This requires the useCustomSysimage field to be set to true in the application settings of the extension.

      diff --git a/dev/userguide/debugging/index.html b/dev/userguide/debugging/index.html index 791f20c..2428be0 100644 --- a/dev/userguide/debugging/index.html +++ b/dev/userguide/debugging/index.html @@ -4,4 +4,4 @@ "-Statistics.", ]

      ALL_MODULES_EXCEPT_MAIN will make all modules run in compiled mode except the Main module, which contains the code you wrote. We also use "-Statistics." to remove this module and all its submodules from the list of compiled modules, such that it will be interpreted.

      Use a custom sys image

      Custom julia sys images can also be used when debugging. Go to julia-vscode extension settings and click to edit "Additional Args".

      Debugger

      Once in the settings, use "-J" option followed by your path to the custom sys image. Note this "Additional Args" settings are currently used only when debugging in the REPL mode, see the @run macron in the example bellow.

      "julia.additionalArgs": [
               "-JC:\\temp\\sys_custom.so",
      -    ],

      Example for fast(er) debugging

      In the following code we use the packages GLMakie and Statistics. GLMakie is a plotting package and it's known to have a pretty slow time-to-first-plot(TTFP), especially for julia versions older than 1.9. Interpretting GLMakie is definetely not a thing we want to do when debugging. With the settings above, GLMakie is set to run in compile mode and we also load it from the sys image. Make sure you use the @run macro with your root function and debugg in the REPL mode.

      Debugger

      As the debugger hits the desired line of code we can step inside the mean function (Statistics) and debug there.

      Debugger

      + ],

      Example for fast(er) debugging

      In the following code we use the packages GLMakie and Statistics. GLMakie is a plotting package and it's known to have a pretty slow time-to-first-plot(TTFP), especially for julia versions older than 1.9. Interpretting GLMakie is definetely not a thing we want to do when debugging. With the settings above, GLMakie is set to run in compile mode and we also load it from the sys image. Make sure you use the @run macro with your root function and debugg in the REPL mode.

      Debugger

      As the debugger hits the desired line of code we can step inside the mean function (Statistics) and debug there.

      Debugger

      diff --git a/dev/userguide/editingcode/index.html b/dev/userguide/editingcode/index.html index ffd5642..b72de65 100644 --- a/dev/userguide/editingcode/index.html +++ b/dev/userguide/editingcode/index.html @@ -1,2 +1,2 @@ -Editing Code · Julia in VS Code

      Editing Code

      Code completion (IntelliSense)

      You can use the InteliSense for completing codes,

      code completion

      printing parameter information,

      signature completion

      listing members of a struct, and so on.

      Rename symbol

      You can rename a symbol (variable name, function name, etc) by pressing F2 or from right click -> "Rename Symbol".

      Rename Symbol

      +Editing Code · Julia in VS Code

      Editing Code

      Code completion (IntelliSense)

      You can use the InteliSense for completing codes,

      code completion

      printing parameter information,

      signature completion

      listing members of a struct, and so on.

      Rename symbol

      You can rename a symbol (variable name, function name, etc) by pressing F2 or from right click -> "Rename Symbol".

      Rename Symbol

      diff --git a/dev/userguide/env/index.html b/dev/userguide/env/index.html index 436ad68..35b1f7f 100644 --- a/dev/userguide/env/index.html +++ b/dev/userguide/env/index.html @@ -1,2 +1,2 @@ -Julia Environments · Julia in VS Code

      Julia Environments

      The Julia VSCode Extension provides support for managing and switching your current Julia environment. You can click the "Julia env" button as shown below to select which environment you want to use:

      Env selection

      If your active directory (shown on the left side of VSCode) contains a Julia environment and you try to switch to an alternate environment, you will be prompted with the message shown below:

      Alternate Env selection

      +Julia Environments · Julia in VS Code

      Julia Environments

      The Julia VSCode Extension provides support for managing and switching your current Julia environment. You can click the "Julia env" button as shown below to select which environment you want to use:

      Env selection

      If your active directory (shown on the left side of VSCode) contains a Julia environment and you try to switch to an alternate environment, you will be prompted with the message shown below:

      Alternate Env selection

      diff --git a/dev/userguide/formatter/index.html b/dev/userguide/formatter/index.html index 65c8f43..27fe3c8 100644 --- a/dev/userguide/formatter/index.html +++ b/dev/userguide/formatter/index.html @@ -9,4 +9,4 @@ open("myfile.txt", "w") do io write(io, "Hello world!") -end;

      It's the very same code, though now it's much easier to read.

      In order to format your code press shift + cmd|windows + p to bring up the command palette and search for Format Document

      format

      +end;

      It's the very same code, though now it's much easier to read.

      In order to format your code press shift + cmd|windows + p to bring up the command palette and search for Format Document

      format

      diff --git a/dev/userguide/grid/index.html b/dev/userguide/grid/index.html index 08e7283..d94d09c 100644 --- a/dev/userguide/grid/index.html +++ b/dev/userguide/grid/index.html @@ -1,2 +1,2 @@ -Table Viewer · Julia in VS Code

      Table Viewer

      All Tables.jl-compatible tables (and more!) can be displayed in the integrated table viewer.

      You can use the exported vscodedisplay function to display an object directly or use the Open in VS Code button in the workspace:

      table viewer

      vscodedisplay also takes an optional second argument that allows setting the tab title.

      Tables can be filtered and sorted in the UI, although that may be slow for medium sized tables and is disabled for big tables (with more than 1e7 elements).

      Note that not-big tables (by the above definition) are cached. As such, changes to the original data structure won't be reflected in the table viewer until you display the table again.

      A slightly hidden feature is that you can select rows and copy them into the clipboard with Ctrl-C or the context menu. Note that this will be slow when many rows are selected.

      +Table Viewer · Julia in VS Code

      Table Viewer

      All Tables.jl-compatible tables (and more!) can be displayed in the integrated table viewer.

      You can use the exported vscodedisplay function to display an object directly or use the Open in VS Code button in the workspace:

      table viewer

      vscodedisplay also takes an optional second argument that allows setting the tab title.

      Tables can be filtered and sorted in the UI, although that may be slow for medium sized tables and is disabled for big tables (with more than 1e7 elements).

      Note that not-big tables (by the above definition) are cached. As such, changes to the original data structure won't be reflected in the table viewer until you display the table again.

      A slightly hidden feature is that you can select rows and copy them into the clipboard with Ctrl-C or the context menu. Note that this will be slow when many rows are selected.

      diff --git a/dev/userguide/keybindings/index.html b/dev/userguide/keybindings/index.html index 288e7b2..501d9ca 100644 --- a/dev/userguide/keybindings/index.html +++ b/dev/userguide/keybindings/index.html @@ -25,4 +25,4 @@
    • Julia: Show Last Plot: End
    • Julia: Delete plot: Delete
    • Julia: Delete All Plots: Shift+Delete
    • -

      Command overview

      You can discover these yourself by opening the Command Palette with Ctrl/Cmd-Shift-P and searching for "julia".

      +

      Command overview

      You can discover these yourself by opening the Command Palette with Ctrl/Cmd-Shift-P and searching for "julia".

      diff --git a/dev/userguide/keyboard/index.html b/dev/userguide/keyboard/index.html index 96d378d..a1ead3a 100644 --- a/dev/userguide/keyboard/index.html +++ b/dev/userguide/keyboard/index.html @@ -1,2 +1,2 @@ -Keyboard Shortcuts · Julia in VS Code

      Keyboard Shortcuts

      Below are keyboard shortcut reference for three different platforms.

      Windows

      ShortcutDescription
      Alt + EJulia: Change Current Environment
      Alt + OJulia: Start REPL
      Alt + KJulia: Stop REPL
      Ctrl + EnterJulia: Send Current Line or Selection to REPL
      Alt + EnterJulia: Execute Code And Move
      RightArrow, DownArrow, PageDownJulia: Show Next Plot
      LeftArrow, UpArrow, PageUpJulia: Show Previous Plot
      HomeJulia: Show First Plot
      EndJulia: Show Last Plot
      Shift + DeleteJulia: Delete All Plots
      Shift + EnterJulia: Execute Code Cell And Move
      Ctrl + CJulia: Clear Inline Results in Editor
      Ctrl + DJulia: Clear Current Inline Result
      Alt + MJulia: Select Current Module

      Mac

      ShortcutDescription
      Option + EJulia: Change Current Environment
      Option + OJulia: Start REPL
      Option + KJulia: Stop REPL
      Control + EnterJulia: Send Current Line or Selection to REPL
      Option + EnterJulia: Execute Code And Move
      RightArrow, DownArrow, PageDownJulia: Show Next Plot
      LeftArrow, UpArrow, PageUpJulia: Show Previous Plot
      HomeJulia: Show First Plot
      EndJulia: Show Last Plot
      Shift + DeleteJulia: Delete All Plots
      Shift + EnterJulia: Execute Code Cell And Move
      Control + CJulia: Clear Inline Results in Editor
      Control + DJulia: Clear Current Inline Result
      Option + MJulia: Select Current Module

      Linux

      ShortcutDescription
      Alt + EJulia: Change Current Environment
      Alt + OJulia: Start REPL
      Alt + KJulia: Stop REPL
      Ctrl + EnterJulia: Send Current Line or Selection to REPL
      Alt + EnterJulia: Execute Code And Move
      RightArrow, DownArrow, PageDownJulia: Show Next Plot
      LeftArrow, UpArrow, PageUpJulia: Show Previous Plot
      HomeJulia: Show First Plot
      EndJulia: Show Last Plot
      Shift + DeleteJulia: Delete All Plots
      Shift + EnterJulia: Execute Code Cell And Move
      Ctrl + CJulia: Clear Inline Results in Editor
      Ctrl + DJulia: Clear Current Inline Result
      Alt + MJulia: Select Current Module
      +Keyboard Shortcuts · Julia in VS Code

      Keyboard Shortcuts

      Below are keyboard shortcut reference for three different platforms.

      Windows

      ShortcutDescription
      Alt + EJulia: Change Current Environment
      Alt + OJulia: Start REPL
      Alt + KJulia: Stop REPL
      Ctrl + EnterJulia: Send Current Line or Selection to REPL
      Alt + EnterJulia: Execute Code And Move
      RightArrow, DownArrow, PageDownJulia: Show Next Plot
      LeftArrow, UpArrow, PageUpJulia: Show Previous Plot
      HomeJulia: Show First Plot
      EndJulia: Show Last Plot
      Shift + DeleteJulia: Delete All Plots
      Alt + EnterJulia: Execute Code Cell
      Alt + Shift + EnterJulia: Execute Code Cell And Move
      Ctrl + CJulia: Clear Inline Results in Editor
      Ctrl + DJulia: Clear Current Inline Result
      Alt + MJulia: Select Current Module

      Mac

      ShortcutDescription
      Option + EJulia: Change Current Environment
      Option + OJulia: Start REPL
      Option + KJulia: Stop REPL
      Control + EnterJulia: Send Current Line or Selection to REPL
      Option + EnterJulia: Execute Code And Move
      RightArrow, DownArrow, PageDownJulia: Show Next Plot
      LeftArrow, UpArrow, PageUpJulia: Show Previous Plot
      HomeJulia: Show First Plot
      EndJulia: Show Last Plot
      Shift + DeleteJulia: Delete All Plots
      Option + EnterJulia: Execute Code Cell
      Option + Shift + EnterJulia: Execute Code Cell And Move
      Control + CJulia: Clear Inline Results in Editor
      Control + DJulia: Clear Current Inline Result
      Option + MJulia: Select Current Module

      Linux

      ShortcutDescription
      Alt + EJulia: Change Current Environment
      Alt + OJulia: Start REPL
      Alt + KJulia: Stop REPL
      Ctrl + EnterJulia: Send Current Line or Selection to REPL
      Alt + EnterJulia: Execute Code And Move
      RightArrow, DownArrow, PageDownJulia: Show Next Plot
      LeftArrow, UpArrow, PageUpJulia: Show Previous Plot
      HomeJulia: Show First Plot
      EndJulia: Show Last Plot
      Shift + DeleteJulia: Delete All Plots
      Alt + EnterJulia: Execute Code Cell
      Shift + Alt + EnterJulia: Execute Code Cell And Move
      Ctrl + CJulia: Clear Inline Results in Editor
      Ctrl + DJulia: Clear Current Inline Result
      Alt + MJulia: Select Current Module
      diff --git a/dev/userguide/linter/index.html b/dev/userguide/linter/index.html index a9e366a..a8c0915 100644 --- a/dev/userguide/linter/index.html +++ b/dev/userguide/linter/index.html @@ -1,2 +1,2 @@ -Linter · Julia in VS Code

      Linting and Diagnostics

      All Julia code in the workspace is statically linted. You can disable that feature with the julia.lint.run setting or configure it via various options with the julia.lint. prefix.

      Runtime diagnostics

      Packages like JET.jl can analyze code at runtime (for some definition of "runtime"): jet

      You can opt out of this feature with the julia.showRuntimeDiagnostics setting. Use Julia: Clear Runtime Diagnostics or Julia: Clear Runtime Diagnostics by Provider to clear the displayed diagnostics.

      Package authors who want to use this feature can simply implement a type that supports the application/vnd.julia-vscode.diagnostics MIME type. Check VSCodeServer.DIAGNOSTIC_MIME in a the integrated Julia REPL for more information on the API.

      +Linter · Julia in VS Code

      Linting and Diagnostics

      All Julia code in the workspace is statically linted. You can disable that feature with the julia.lint.run setting or configure it via various options with the julia.lint. prefix.

      Runtime diagnostics

      Packages like JET.jl can analyze code at runtime (for some definition of "runtime"): jet

      You can opt out of this feature with the julia.showRuntimeDiagnostics setting. Use Julia: Clear Runtime Diagnostics or Julia: Clear Runtime Diagnostics by Provider to clear the displayed diagnostics.

      Package authors who want to use this feature can simply implement a type that supports the application/vnd.julia-vscode.diagnostics MIME type. Check VSCodeServer.DIAGNOSTIC_MIME in a the integrated Julia REPL for more information on the API.

      diff --git a/dev/userguide/plotgallery/index.html b/dev/userguide/plotgallery/index.html index a79a89f..7816e2b 100644 --- a/dev/userguide/plotgallery/index.html +++ b/dev/userguide/plotgallery/index.html @@ -1,4 +1,4 @@ Plots · Julia in VS Code

      Plots

      Julia Plots provides us with the capability to create visualizations of data.

      Install Plots Package

      First, Open the Julia Terminal (also known as REPL), you can follow the steps here.

      At the Julia prompt in the REPL window, type the following:

      julia> using Pkg

      This will tell Julia that you are going to use the package manager.

      Then type the following to add Plots package:

      julia> Pkg.add("Plots")

      Create Visualization

      Remember to keep the REPL open as this is where any output from your program will be printed.

      The first piece of code that you need to execute is this:

      using Plots

      This tells Julia to load the library that we will use to create our visualizations.

      Example

      Let's walkthrough a simple program to understand this:

      Write the following code.

      using Plots
       x = 1:10; y = rand(10); # These are the plotting data
      -plot(x,y, label="my label")

      Now Run this, you can follow the steps here.

      You will get something like the following graph as a output in a new tab in VS Code:

      Plot Graph

      +plot(x,y, label="my label")

      Now Run this, you can follow the steps here.

      You will get something like the following graph as a output in a new tab in VS Code:

      Plot Graph

      diff --git a/dev/userguide/privacy/index.html b/dev/userguide/privacy/index.html index dbbcb53..6db086e 100644 --- a/dev/userguide/privacy/index.html +++ b/dev/userguide/privacy/index.html @@ -1,2 +1,2 @@ -Privacy · Julia in VS Code

      Privacy

      You can help improve the Julia VS Code extension by sending usage statistics and exceptions to the development team. By default, telemetry and crash report data are not collected, but rather the user has to opt-in to have their data sent.

      Opt-In Policy

      By default both $julia.enableTelemetry$ and $julia.enableCrashReporter$ are set to $null$. With the null setting, no data is sent to the development team. The UI does send a prompt asking the user to agree to enabling the settings for telemetry and crash report. Without opting in, your data is not sent to the development team.

      Collecting Data

      If the $julia.enableTelemetry$ setting is configured to be $true$, anonymous, non-identifying usage and error data is sent to the development team.

      When the $julia.enableCrashReporter$ setting is configured to be $true$, stack traces from errors in the extension are sent to the development team. Those stack traces can contain identifying information, for example filenames.

      This information is collected and sent via Azure Application Insights.

      Disabling Telemetry

      To disable telemetry and not report any usage data or crash reports, set the $julia.enableTelemetry$ and $julia.enableCrashReporter$ setting to $false$.

      Using Collected Data

      The collected data is used to improve the julia VS Code extension. We don't sell the information. We might sometimes publish anonymous statistics (for example number of users etc.)

      +Privacy · Julia in VS Code

      Privacy

      You can help improve the Julia VS Code extension by sending usage statistics and exceptions to the development team. By default, telemetry and crash report data are not collected, but rather the user has to opt-in to have their data sent.

      Opt-In Policy

      By default both $julia.enableTelemetry$ and $julia.enableCrashReporter$ are set to $null$. With the null setting, no data is sent to the development team. The UI does send a prompt asking the user to agree to enabling the settings for telemetry and crash report. Without opting in, your data is not sent to the development team.

      Collecting Data

      If the $julia.enableTelemetry$ setting is configured to be $true$, anonymous, non-identifying usage and error data is sent to the development team.

      When the $julia.enableCrashReporter$ setting is configured to be $true$, stack traces from errors in the extension are sent to the development team. Those stack traces can contain identifying information, for example filenames.

      This information is collected and sent via Azure Application Insights.

      Disabling Telemetry

      To disable telemetry and not report any usage data or crash reports, set the $julia.enableTelemetry$ and $julia.enableCrashReporter$ setting to $false$.

      Using Collected Data

      The collected data is used to improve the julia VS Code extension. We don't sell the information. We might sometimes publish anonymous statistics (for example number of users etc.)

      diff --git a/dev/userguide/profiler/index.html b/dev/userguide/profiler/index.html index 405cd9f..9a830ea 100644 --- a/dev/userguide/profiler/index.html +++ b/dev/userguide/profiler/index.html @@ -14,4 +14,4 @@ # compilation @profview profile_test(1) # pure runtime -@profview profile_test(10)

      shows a flame graph and inline annotations: profiler 1

      Clicking on any element in the flamegraph zooms in on that element; double clicking on the background (or using the "reset view" button in the upper right) will restore the initial view. Ctrl-Click to open the referenced file.

      The tooltip will tell you the number of samples collect in a certain frame as well as the percentage of the top-most displayed frame. There are some heuristics for special flags like garbage collection, dynamic dispatch, and more (these are also color coded).

      flame graph

      The inline view shows you how much of the parent frame's samples originate on which line (and also the flags, as above, when hovering over the start of the inline annotation):

      inline

      +@profview profile_test(10)

      shows a flame graph and inline annotations: profiler 1

      Clicking on any element in the flamegraph zooms in on that element; double clicking on the background (or using the "reset view" button in the upper right) will restore the initial view. Ctrl-Click to open the referenced file.

      The tooltip will tell you the number of samples collect in a certain frame as well as the percentage of the top-most displayed frame. There are some heuristics for special flags like garbage collection, dynamic dispatch, and more (these are also color coded).

      flame graph

      The inline view shows you how much of the parent frame's samples originate on which line (and also the flags, as above, when hovering over the start of the inline annotation):

      inline

      diff --git a/dev/userguide/remote/index.html b/dev/userguide/remote/index.html index 33b7a1f..8ca98be 100644 --- a/dev/userguide/remote/index.html +++ b/dev/userguide/remote/index.html @@ -1,2 +1,2 @@ -Remote Development · Julia in VS Code

      Remote Development

      To execute code on a remote server, you need to:

      1. Make sure you have SSH access to the server
      2. Install the Remote-SSH extension locally in VS Code
      3. Connect VS Code to the server (using this icon in the bottom left of the VS code window: Icon looking like vertically misaligned "><")
      4. Install the Julia extension on the server through VS Code

      Then, you can execute your code on the server the same way you would locally: Example of the settings

      Persistent server sessions

      When you close the VS Code window, the server-side REPL terminates by default. To make the REPL state persistent across sessions, you have to:

      1. Install tmux, a terminal multiplexer, on the server (e.g. with apt install tmux)
      2. Toggle the julia.persistentSession.enabled setting in the VS Code settings. Note that this setting is available only in the server installation of the Julia extensions, accessible from the "Remote ..." tab of settings:

      Location of the persistent sessions setting

      +Remote Development · Julia in VS Code

      Remote Development

      To execute code on a remote server, you need to:

      1. Make sure you have SSH access to the server
      2. Install the Remote-SSH extension locally in VS Code
      3. Connect VS Code to the server (using this icon in the bottom left of the VS code window: Icon looking like vertically misaligned "><")
      4. Install the Julia extension on the server through VS Code

      Then, you can execute your code on the server the same way you would locally: Example of the settings

      Persistent server sessions

      When you close the VS Code window, the server-side REPL terminates by default. To make the REPL state persistent across sessions, you have to:

      1. Install tmux, a terminal multiplexer, on the server (e.g. with apt install tmux)
      2. Toggle the julia.persistentSession.enabled setting in the VS Code settings. Note that this setting is available only in the server installation of the Julia extensions, accessible from the "Remote ..." tab of settings:

      Location of the persistent sessions setting

      diff --git a/dev/userguide/runningcode/index.html b/dev/userguide/runningcode/index.html index fbe3b03..8235d32 100644 --- a/dev/userguide/runningcode/index.html +++ b/dev/userguide/runningcode/index.html @@ -1,2 +1,2 @@ -Running Code · Julia in VS Code

      Running Code

      The Julia extension provides a number of different ways to run your Julia code. This section describes all these options, except how to run code in the debugger, which is covered in a separate part of the documentation.

      Running a Julia file

      The VS Code command Run: Start Without Debugging (Ctrl+F5) by default starts a new Julia instance and runs the currently active Julia file. The command automatically creates a new VS Code terminal for this Julia process.

      Note that the Julia instance that is started by this command is entirely independent from the Julia REPL that the extension also supports.

      You can easily customize the behavior of Run: Start Without Debugging by creating a launch configuration. In many situations it is beneficial to not run the currently active file, but instead configure one file in your workspace as the main entry point for your project that is run when you press Ctrl+F5.

      Other customization options include custom working directories, command line arguments or a specific Julia environment (that is distinct from the active Julia environment in the VS Code window). Launch configurations also allow you to configure more complex execution scenarios where multiple Julia and non-Julia scripts are started simultaneously via compound launch configurations.

      The Julia extension itself supports the following launch configuration attributes:

      • program: a path to a .jl file. This is the Julia file that will be run when this launch configuration is used. If this attribute is not specified, it defaults to the currently active Julia file in the editor.
      • cwd: a path to a folder. The Julia process that is started by the launch configuration will use this path as the initial working directory. If this attribute is not specified, it defaults to the root working folder open in VS Code.
      • juliaEnv: a path to a Julia project. The Julia process will be started with this Julia project as the active project. If this attribute is not specified, it defaults to the currently active Julia environment in the VS Code window.
      • args: an array of command line arguments. The values specified in this list will be passed as command line arguments to the Julia process that is started and are available via the Base.ARGS variable in the Julia script. If this attribute is not specified, no command line arguments are passed to the Julia instance.

      The Julia REPL

      The Julia extension provides a Julia REPL inside VS Code. You can start this REPL with the Julia: Start REPL command.

      The Julia REPL in the extension is identical to the default Julia REPL, but adds a number of additional integrations (plot pane, grid viewer, debugger etc.) that are not part of the standard REPL. Note that only the REPL that you start with the Julia: Start REPL command has these integrations. If you start Julia from a system shell inside VS Code, it won't provide these integration points.

      The REPL that is started with the Julia: Start REPL command will have the root folder of the currently active workspace as its working directory, and will be started with the Julia project that is currently active in the VS Code window.

      Running code in the Julia REPL

      There are four commands that you can use to run code from your editor in the Julia REPL:

      • Julia: Execute Code in REPL
      • Julia: Execute Code Cell in REPL
      • Julia: Execute File in REPL
      • Julia: Run File in New Process

      Julia: Execute Code in REPL

      Whenever, there is some Julia code selected in the currently active editor, this command will execute the selected code. If no text is selected, the command will identify the extent of the top-level language construct that the cursor is located in (except modules) and execute that code block.

      This command will associate location information with code that is executed, include will work correctly with relative paths and macros like @__DIR__ and @__FILE__ work as expected.

      For most users, this should be their default command to run Julia code in the REPL.

      Julia: Execute Code Cell in REPL

      The extension provides support for demarking code cells in standard Julia files with a specially formatted comment: ##. This command will identify in which code cell the cursor in the active editor currently is and then execute the code in that cell. If there are no code cells used in the current file, it will execute the entire file.

      This command uses the same code execution techniques as the Julia: Execute Code Block command. Include statements, location information etc. all work as expected, that is run with this command.

      Julia: Execute File in REPL

      This command runs the entire content of the currently active file in the Julia REPL. It uses the same code execution techniques as the Julia: Execute Code Block command. Include statements, location information etc. all work as expected, that is run with this command.

      Julia: Run File in New Process

      Sometimes it's desirable to run your code in a new process (e.g. if you want to be absolutely sure that no state from previously run code interferes), so this command will spawn a new Julia process and run the active file in it.

      +Running Code · Julia in VS Code

      Running Code

      The Julia extension provides a number of different ways to run your Julia code. This section describes all these options, except how to run code in the debugger, which is covered in a separate part of the documentation.

      Running a Julia file

      The VS Code command Run: Start Without Debugging (Ctrl+F5) by default starts a new Julia instance and runs the currently active Julia file. The command automatically creates a new VS Code terminal for this Julia process.

      Note that the Julia instance that is started by this command is entirely independent from the Julia REPL that the extension also supports.

      You can easily customize the behavior of Run: Start Without Debugging by creating a launch configuration. In many situations it is beneficial to not run the currently active file, but instead configure one file in your workspace as the main entry point for your project that is run when you press Ctrl+F5.

      Other customization options include custom working directories, command line arguments or a specific Julia environment (that is distinct from the active Julia environment in the VS Code window). Launch configurations also allow you to configure more complex execution scenarios where multiple Julia and non-Julia scripts are started simultaneously via compound launch configurations.

      The Julia extension itself supports the following launch configuration attributes:

      • program: a path to a .jl file. This is the Julia file that will be run when this launch configuration is used. If this attribute is not specified, it defaults to the currently active Julia file in the editor.
      • cwd: a path to a folder. The Julia process that is started by the launch configuration will use this path as the initial working directory. If this attribute is not specified, it defaults to the root working folder open in VS Code.
      • juliaEnv: a path to a Julia project. The Julia process will be started with this Julia project as the active project. If this attribute is not specified, it defaults to the currently active Julia environment in the VS Code window.
      • args: an array of command line arguments. The values specified in this list will be passed as command line arguments to the Julia process that is started and are available via the Base.ARGS variable in the Julia script. If this attribute is not specified, no command line arguments are passed to the Julia instance.

      The Julia REPL

      The Julia extension provides a Julia REPL inside VS Code. You can start this REPL with the Julia: Start REPL command.

      The Julia REPL in the extension is identical to the default Julia REPL, but adds a number of additional integrations (plot pane, grid viewer, debugger etc.) that are not part of the standard REPL. Note that only the REPL that you start with the Julia: Start REPL command has these integrations. If you start Julia from a system shell inside VS Code, it won't provide these integration points.

      The REPL that is started with the Julia: Start REPL command will have the root folder of the currently active workspace as its working directory, and will be started with the Julia project that is currently active in the VS Code window.

      Running code in the Julia REPL

      There are four commands that you can use to run code from your editor in the Julia REPL:

      • Julia: Execute Code in REPL
      • Julia: Execute Code Cell in REPL / Julia: Execute Code Cell in REPL and Move
      • Julia: Execute File in REPL
      • Julia: Run File in New Process

      Julia: Execute Code in REPL

      Whenever, there is some Julia code selected in the currently active editor, this command will execute the selected code. If no text is selected, the command will identify the extent of the top-level language construct that the cursor is located in (except modules) and execute that code block.

      This command will associate location information with code that is executed, include will work correctly with relative paths and macros like @__DIR__ and @__FILE__ work as expected.

      For most users, this should be their default command to run Julia code in the REPL.

      Julia: Execute Code Cell in REPL

      The extension provides support for demarking code cells in standard Julia files with a specially formatted comment: ## or # %%. Either symbol must occur the start of a line and can be followed by text. This command will identify in which code cell the cursor in the active editor currently is and then execute the code in that cell. If there are no code cells used in the current file, it will execute the entire file.

      Cell delimiters can be specified as regex expressions with the julia.cellDelimiters user setting. The default being `["^##(?!#)", "^#(\s?)%%", "^#-"].

      This command uses the same code execution techniques as the Julia: Execute Code Block command. Include statements, location information etc. all work as expected, that is run with this command.

      Julia: Execute File in REPL

      This command runs the entire content of the currently active file in the Julia REPL. It uses the same code execution techniques as the Julia: Execute Code Block command. Include statements, location information etc. all work as expected, that is run with this command.

      Julia: Run File in New Process

      Sometimes it's desirable to run your code in a new process (e.g. if you want to be absolutely sure that no state from previously run code interferes), so this command will spawn a new Julia process and run the active file in it.

      diff --git a/dev/userguide/settings/index.html b/dev/userguide/settings/index.html index 4809eab..57cb458 100644 --- a/dev/userguide/settings/index.html +++ b/dev/userguide/settings/index.html @@ -1,2 +1,2 @@ -Settings · Julia in VS Code
      +Settings · Julia in VS Code
      diff --git a/dev/userguide/tasks/index.html b/dev/userguide/tasks/index.html index 64a9861..87ae4a1 100644 --- a/dev/userguide/tasks/index.html +++ b/dev/userguide/tasks/index.html @@ -1,2 +1,2 @@ -Tasks · Julia in VS Code
      +Tasks · Julia in VS Code
      diff --git a/dev/userguide/understandingcode/index.html b/dev/userguide/understandingcode/index.html index d1aa2f1..9b1d993 100644 --- a/dev/userguide/understandingcode/index.html +++ b/dev/userguide/understandingcode/index.html @@ -1,2 +1,2 @@ -Understanding Code · Julia in VS Code
      +Understanding Code · Julia in VS Code
      diff --git a/dev/userguide/weave/index.html b/dev/userguide/weave/index.html index ee66b80..386f61a 100644 --- a/dev/userguide/weave/index.html +++ b/dev/userguide/weave/index.html @@ -1,2 +1,2 @@ -Julia Markdown Documents · Julia in VS Code

      Julia Markdown Documents

      The extension supports Weave markdown documents with the .jmd extension. All Julia code evaluation keybindings and commands should work normally, but cells are defined as fenced Julia code blocks instead (the usual ## delimiter has no meaning here).

      The Julia Weave: Open Preview command to weave the current file to a temporary HTML document, which will then be displayed in the editor. Julia Weave: Save to File... allows you to select the output format and will save the weaved document next to the source file.

      +Julia Markdown Documents · Julia in VS Code

      Julia Markdown Documents

      The extension supports Weave markdown documents with the .jmd extension. All Julia code evaluation keybindings and commands should work normally, but cells are defined as fenced Julia code blocks instead (the usual ##/# %% delimiters have no meaning here).

      The Julia Weave: Open Preview command to weave the current file to a temporary HTML document, which will then be displayed in the editor. Julia Weave: Save to File... allows you to select the output format and will save the weaved document next to the source file.