All notable changes to the Julia extension will be documented in this file.
The format is based on Keep a Changelog.
- 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)
- "Always copy" option for "Connect to external REPL" command (#2759)
- 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)
- Julia-specific notebook toolbar icons now only show up for notebooks with Julia kernels (#2758)
- Fixed version incompatibility in debugger (#52)
- Fixed certain
@docparsing issues (#329, #330)
- Only pass on valid options to JuliaFormatter (#1030)
- New profile viewer with inline annotations (#2674)
- "Execute Code Block in REPL" in editor context menu (#2667)
- Support for
- Add config "julia.execution.saveOnEval" to allow auto saving before execution (#2727)
- Add restart REPL command and always stop persistent session option(#2720)
julia.NumThreadssetting now allows for a value of
autoif 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)
- 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
- 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)
- Removed some superfluous plot pane related keybindings (#2704)
- Fix plot pane location and focus issue, again (hopefully for real this time) (#2676)
- 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)
juliaupintegration now works properly (#2374)
- 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)
innormalization for iteration over ranges is now disabled by default (#1006)
- Pixelated rendering mode is only active when zooming into an image now (#2602)
- 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)
- Package tagging should now work again.
- Runtime completions can now be properly disabled (#2551)
- Code execution keybindings are now consistent for Weave files (#2551)
- Introduced a helpful warning when
@profviewfailed to collect any traces (#2551)
- The REPL is now terminated when VS Code is closed, which should work around issues introduced by the
- Fixed various issues with the integrated table viewer (#2551)
- It's now once again possible to use the
Run/Debug in New Processcommands concurrently (#2551)
- The plot pane now prefers png over svg plots for performance reasons (#2475)
Execute Filenow works properly for Weave files (#2540)
"s are now correctly escaped in the Julia command (#2546)
- 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)
- Debugging or running a file in a new process now uses only one terminal (#2539)
InteractiveUtilsis 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_EDITORare 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)
- 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
- 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 REPLnow shows a prompt for closing the tmux session; also added a
Julia: Disconnect external REPLcommand (#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)
- Allow customising precompile statements and execution files for system image building based on a
./.vscode/JuliaSysimage.tomlfile 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)
vscodedisplaynow takes an additional
titleargument, which will be displayed in the tab title for tables (#2415)
@vscodedisplaywill 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)
- 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
- Vega and VegaLite plots are now zoomable/panable (#2443)
- SVG output is now properly rendered in all cases (2442)
- Export Plot(save/copy) buttons to plot pane(#2267)
- Interactive(zoomable/pannable) Plots #2273
executeInREPLto exported API (#2402)
- Added a menu item for enabling/disabling the plot pane (#2346)
- Added support for the custom
application/vnd.julia-vscode.traceMIME type to display custom runtime diagnostics (e.g. JET.jl output) in the editor (#2329)
executablePathis now once again
machine-overridablethanks to the introduction of trusted workspaces (#2379)
- 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
endappears in a for loop definition, e.g.
for i in nums[2:end](#2459)
- 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)
- Images in the plot pane are now correctly down-sized to fit the plot pane again (#2362)
- Fixed more argument handling issues when starting Julia processes (#2372)
- Mention marketplace link in readme (#2368)
- Resolved ambiguity in gridviewer code (#2382)
- Improved argument handling when starting Julia processes (#2372)
- Work around an upstream error related to
stating the executable in VSCode tasks (#2371)
- Correctness fix for finding the Julia executable (#2364)
- Fix logic for "Open Settings" button in notifications (#2354)
- Reduced bundle size (#2357)
- Improved code for searching the Julia executable (#2341)
- Add Revise.jl support for notebook evaluation (#2347)
- Notebook execution now correctly uses the same softscope transforms as in Jupyter or the REPL (#2327)
- Internal strict typing improvements (#2342)
- Improved notebook kernel selection strategy (#2315)
- Notebook restart logic (#2322)
- Updated dependencies.
- REPL prompt hiding logic for inline execution is now more correct (#2316)
- Native notebook support is now hidden behind the
notebookControllersetting because of upstream issues (#2307)
- Better labels for notebook kernels (#2309)
- Notebook cell output is now cleared during re-execution (#2306)
- File path is now correctly set for notebooks (#2305)
displaycalls 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
- All logging messages now go to
stderr, which fixes communication issues on some Julia 1.7 pre-release versions (#2302)
- Updated dependencies and required VSCode version to v1.58.1
- Improve Julia notbeook kernel name (#2275)
- Support for preferred kernels (#2271)
- 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)
- Moved to GitHub actions for CI and release pipelines.
- 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)
- Native notebook support (#2217 and others)
- Environment variables are now resolved in the
- Compiled modules/mode/functions are now set properly in the out-of-process deubugger (#2226)
- Improved plot navigator robustness (#2221)
- Update various dependencies
Julia: Connect external REPLnow gives feedback when connected (#2182)
- Tilde-expansion now properly works in terminal links (#2185)
- REPL hooks are now properly installed when connecting to already running processes (#2182)
tmuxintegration and connecting to an external process now properly work on Windows (#2182)
tmuxintegration 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)
- 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
- Workspace panel now shows
- Clicking on a symbol now highlights only references to that symbol, instead of all symbols with the same name (#908)
- Added a sidebar element to quickly switch between differen plots (#1932)
- Added integration for persistent
tmuxsessions, 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
- Inline stacktraces are now rendered properly on Julia 1.6 (#2091)
- Weaving a document now respects the current env (#2130)
ARGSare 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)
- 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)
- The linter now understands the new
import Foo as Barsyntax (#276)
- Path for auto-detecting Julia 1.6 binaries on Windows are now correct (#2086)
- Added auto-dection for 1.6.1 (#2076)
JULIA_EDITORshould now be more robust (#2067)
- Auto-completions now allow for a certain degree of fuzzyiness (#906)
- The LS now support selection range requests (use
Shift-Alt-Leftto expand/reduce the "smart selection" in VSCode) (#893)
- 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)
- 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)
- Work around a Base issue when displaying certain types in the REPL (#2010)
- Fixed certain debugger commands not working properly (#2008)
- Step Into Target now works properly for top-level frames (#34)
- "Run Code" commands now conform to the VSCode guidelines (#1999)
- 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)
- 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)
- LaTeX-rendered equations are now properly hidden behind the search bar in the docs pane(#1970)
- REPL hooks are now more robust (#1968)
- Unparametrize the wrapper introduced in #1943 (#1957)
- Debugger is no longer marked as experimental (#1965)
- We now use the
ast_transformsmachinery introduced in Julia 1.5 when appicable (#1959)
- Fixes to our Azure Pipelines infracstructure
- Fixed a regression when displaying SVGs in the plot pane (#1939)
- Fix an issue with displaying values with incorrect
- Explorer context menu entries are now only shown when a REPL is running (#1933)
- Julia 1.6 binaries are now auto-detected (#1918)
- Removed references to outdated Julia syntax that caused incorrect auto-indentation (#1910)
- Stacktraces should now be properly truncated again (#1912)
- Updated the vendored Plotly and fixed auto-resizing for Plotly and VegaLite plots (#1911)
- Relative environment paths are now persisted properly (#1905)
- User supplied environment paths are now checked for validity (#1907)
- Corrected environment handling in certaing cases (#1903)
- Live testing is disabled until it can be fixed (#1902)
- Getting the module at the current cursor position now no longer waits until the LS is started (#1892)
- Stop throwing an error instead of waiting for the LS being ready (#1889).
- Fixed an issue with formatting
- Displaying profiler results now works again (#1887).
pwdis now properly set for the live unit testing task (#1886).
- The plot pane now properly scales images (#1882).
- The LS now correctly handles the
- The progress bar now shows an estimate of the remaining time (#1868).
- 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).
- 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).
- Comments and whitespace in multi-line tuples are no longer removed when formatting a file (#121).
- Removed the telemtry nag message (#1676).
!from the list of non-word characters, so double clicking
@foo!now selects the whole macro (#1861).
- Improved the algorithm for finding the current code block (#860).
- Fixed jmd parsing (#859).
- THe linter now doesn't attribute every
- It is now possible to customize the look of inline results (#1846).
- Support for the upcoming
import Foo as Barsyntax (#220).
- 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).
- We now use the correct binary when setting the
JULIA_EDITORon MacOS for users of VSCode insiders (#1852).
Base.displaybleis 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
- Commands for moving between code cells (#1828).
- Backtraces are now properly truncated in the REPL (#1841).
- Debugging or launching a file now works in workspaces with more than one directory (#1789).
^Cmore than three times in one second now sends a
SIGINTto the Julia process (on non-Windows OSs), which should make for more robust interrupts (#1775).
- Inline evaluation now waits for the LS to start up instead of throwing an error (#1760).
julia.environmentPathneeds a REPL restart, so added a note to that effect (#1778).
language-julia.executeFilecommand 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
- Update to JuliaInterpreter.jl 0.8 (#24).
- 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
- Added missing
nothingchecks that could cause issues when linting files (#221, #223).
- Support for Julia 1.5.3 and 1.5.4 default installation paths (#1755, #1759).
- New up-to-date changelog (#1750).
- Inline evaluation now adds the evaluated code to the REPL history if the
julia.codeInREPLoptions 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).
- Push internal Julia modules to the front of
LOAD_PATHto 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).
- The workspace now shows errors encountered while rendering the tree view. Furthermore, it now only special cases
Dictinstead of their
- Inline evaluation and the REPL can now be interrupted with the
Julia: Interrupt Executioncomamnd (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_LANGUAGESERVERenvironment variable set to
- Added commands to re-start the LS or re-index the symbol cache (#1721).
@editnow works properly on code-server instances (#1737).
- Added commands to
cdto the current directory,
Pkg.activatethe current directory, or
Pkg.activatethe current files nearest project. These commands are also available in the file explorer (#1743).
- Updated some JS dependencies.
- The plot pane is now opened in a new column by default, but also remembers it's last position (#1554).
julia.NumThreadssetting is now machine-overrideable (#1714).
- Updated the Julia grammar definition (#1720), which fixed various bugs.
julia.usePlotPanecan now be changed without requiring the Julia process to be restarted. Additionally, the related
displaymachinery 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).
- Stracktraces are now rendered properly (i.e. with linebreaks) once again (#1692).
- The module indicator is now correctly initialized (instead of
- Both inline evaluation and the REPL now follow the changed soft-scope rules for Julia 1.5 and newer (#1665).
- Updated JS dependencies.
- We now show an error message when both insiders and the regular extension are loaded.
- Updated JS dependencies.
- Default paths for Julia 1.5.1 and 1.5.2.
JULIA_PKG_SERVERis now an exposed setting.
Julia: Stop REPLcommand.
- Toolbar icon now follows the style guide (outline instead of filled).
- Run/Debug commands now work when invoked from the command palette.
ARGSnow no longer contains extension internals.
- Use correct default path for Julia 1.5.
- Fixed a world age error when using the integrated table viewer.
- Revise is now loaded without stealing the REPL backend for newer Julia versions.
# %%are now valid cell seperators.
- Improved crash reporting.
- Improved Azure build pipeline
- Updated some JS dependencies
- This plugin is now also available on open-vsx.org
This is identical to the latest 0.17 release.
- 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
- Inline display of evaluation results
- Workspace view
- Add an experimental debugger
- Improve cell delimiter regex so that it won't recognize YAS-style section headers as cell separator anymore (#1256, #1259)
- Make Language Server indexing async
- New linting capabilities: call checks, static
ifblocks, unused free parameters, unhandled
includestatements, 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
- Update CHANGELOG
- Support for Julia 1.3
- Configuration options for the code formatter
- Bug fixes
- 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
- Various bug fixes
- Various bug fixes
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
- 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
- Fix julia 1.1 compat issue in SymbolServer
- Update vega-lite to 3.0 and vega to 5.2
- Fix another julia 1.1 compat issue
- Fix julia 1.1 compat issue
- Various bug fixes
- Add option to enable/disable plot pane
- Search for julia 1.0.4 and 1.1
- Update CHANGELOG
- Add julia 1.0 support, drop julia 0.6 support
- Add support for interactive Plotly figures
- Various bugfixes
- Fix automatic julia detection on Mac
- Fix some small bugs
- Auto-detect julia installation
- Telemetry support
- Crash reporting
- Fix weave support
- Various bug fixes
- Update changelog
- Enable multi-root workspace support
- Bug fixes
- 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
- Use VS Code tasks for build, test and benchmark
- Add reload modules command
- Add rename command
- Bug fixes
- Bug fixes
- Language server status bar icon
- julia 0.6 syntax highlighting
- Bug fixes
- Use LanguageServer.jl
- Format Document command
- Actionable diagnostics
- Support for .jmd files
- Plot pane
- Run package tests command
- Lint package command
- Scope Ctrl+Enter to julia files
- Fix whitespace bug on Windows
- Migrate to a language server protocol design
- Add completion provider
- Add definition provider
- Add hover provider
- Add signature provider
- Add integrated julia terminal
- julia 0.5 compatibility
- Update README
- Add linter support
- Patch release to test upgrade procedure
- Add latex completion
- Add "Open Package Directory in New Window" command
- Update project home URLs
- Initial release