All notable changes to the Julia extension will be documented in this file.
The format is based on Keep a Changelog.
- Added
juliaAdditionalArgs
option to Julia debug launch configuration (#3699).
@profview
and@profview_allocs
now support the optional keyword arguments ofProfile.print
, such asrecur = :flat
(#3666).- The integrated REPL now respects a user-set active project (e.g. in
additionalArgs
andstartup.jl
) (#3670) - Changes to how Jupyter Notebook Metadata is updated (#3690)
- The integrated REPL now once again starts with the user defined environment (#3660)
- Drop support for pre 1.6 Julia versions in the language server (#3610)
Open Package Directory in New Window
now first searches packages in theJULIA_PKG_DEVDIR
environment variable, and then in the standard dev path #3632. This allows user-defined dev folders.
- Add Julia 1.11 support (#3583, #388)
LoadError
s are not unconditionally unwrapped when displayed (#3592)- Internals are now more reliably excluded from stacktraces (#3593)
- Stacktraces printing now works on Julia 1.12 (#3595)
- Items in the environment selector are now sorted more naturally and Pluto-internal environments are filtered out (#3594)
- Deleting plots stops opening the plot pane if it's not visible (#3564)
- Stopped infinite recursion when the global logger got incorrectly set to an instance of
VSCodeLogger
(#3572) - Changes to how Jupyter Notebook Metadata is accessed (#3569)
- Fixed an issue with Symbolics.jl sometimes getting misanalyzed, which would end up crashing the language server (#383)
@kwdef mutable struct
withconst
fields are now analyzed correctly (#384)- More operators are now correctly highlighted (#279)
- The
Always copy code
option should now work properly on remote machines (3559) - Handle
\r
characters for improved rendering of progress bars and the like in Notebook Outputs (3561)
- Fixed an edge case of
where
parsing in the presence of curlies and operators (#384)
- Static inlay hints are now automatically disabled when runtime hints are displayed (#3539)
- Stackoverflow in
package_callbacks
(#3546) UndefVarError
on starting Julia Test Server (#3541)- Even if loading a Julia vs-code component fails the Julia LOAD_PATH does not get poluted.
- Static inlay hints are now disabled by default (#3539)
- Setting id for runtime inlay hints changed to
julia.inlayHints.runtime.enabled
(#3519)
- Only update notebook metadata when it has actually changed (#3530)
- Default of
julia.persistentSession.closeStrategy
changed to overridable (#3494) - Key combination for
language-julia.clearAllInlineResultsInEditor
changed fromAlt+I Alt+C
toAlt+J Alt+C
to avoid clashes with the key combination for typing|
(which is Alt+I on some keyboards) (#3509)
- Code execution now works properly when connected to an external REPL (#3506)
- Revert #3490 due to it causing unintended side effects (#3513)
- Most new syntax in Julia 1.10 is now parsed correctly (#378)
- String macros with module access and a suffix are now correctly handled (#379)
- The transpose operator is now correctly parsed when applied to
$
interpolated symbols (#380) global (a,b,)
with a trailing comma is now correctly parsed (#381)
- Fixed a regression introduced in 1.62 that introduced an additional
"
into environments automatically opened (#3490)
- The first workspace folder is now more consistently set as the active environment (#3490)
- Removed the
julia.persistentSession.warnOnKill
setting in favour ofjulia.persistentSession.closeStrategy
. It is now possible to always close the tmux session or always disconnect (#3490)
- Properly substitute VS Code variables when no workspace folders are open (#3490)
- Syntax highlighting for interpolated generators and comprehensions (#268)
- Syntax highlighting for adjacent interpolated variables (#269)
- Syntax highlighting for escaped characters in
ref
strings andvar
symbols (#270)
- Support additional VS Code variables in the
julia.environmentPath
andjulia.persistentSession.tmuxSessionName
settings (#3477, #3489)
- Table headers no longer show
null
if no column label existss (#3486) - Workspace directories with spaces in the path are now handled more correctly (#3489)
- Persistent sessions now use the shell specified in
julia.persistentSession.shell
inside of the tmux session as well (#3489)
- The default keybinding for the
Julia: Clear All Inline Results
command changed fromCtrl+I Ctrl+C
toAlt+I Alt+C
to prevent a clash with the Copilot Chat extension (#3487) - The
julia.persistentSession.shellExecutionArgument
setting now accepts a space-separated list of arguments (#3489)
- The integrated table viewer now shows column labels (#3479)
- Support syntax highlight and cell execution for
Documenter
's@repl
blocks (#3469)
- Cthulhu inlay hints are now displayed even when the plot pane is disabled (#3472)
- Relaxed VS Code version requirement to 1.78
- Progress logging now works in detached persistent session (#3462)
- Toggling progress display now works correctly (#3450)
|>
is now interpreted by default so that breakpoints in piped functions work (#3459)
- Plotting within a disconnected Julia session now does not throw an error and shows the 100 newest plots in the UI (#3460)
- Support for Julia 1.10 and 1.11
- Julia exe path is once again properly determined (#3447)
JULIA_VSCODE_INTERNAL
is now set for all internal Julia processes (#3433)VSCodeLogger
can now optionally take a parent logger (#3428)
ans
is now set correctly in Julia 1.10 and newer (#3440)- More correct auto completion logic for mismatched case (#1177)
- "Expand function" action no longer removes whitespace and comments (#1196)
- Diagnostics are now more reliably published for documents open when the editor starts (#1254)
- TOML files are now longer parsed or linted with the Julia linter (#1251)
- Fixed an issue with doc search (#1250)
- The linter now understands
Revise.includet
(#373) - Print diagnostics when parsing a file fails (#377)
- Improved displayed types for bindings in the outline view (#1245)
- Fixed typo in destructuring assignment inference code (#376)
- "Go to definition" now properly works for macros (#374)
- Timing breakdowns for language server startup (#1243)
- Significant improvements to symbol cache downloads (#263)
- Added debug timer outputs for cache file downloads (#274)
- Removed precompile output for LanguageServer.jl (#1222)
- Files larger than 2MB are now disregarded during parsing and linting, which can drastically improve performance (#333)
- Improved symbol cache generation to account for method overloads to functions defined in other packages (#272)
- Potential fix for a symbol cache corruption issue (#266)
- Function tooltips now list all methods applicable in the current context (#1241)
- Reference detection now follows Julia's scoping rules more closely (#1104)
- Type inference now correctly handles destructuring assignment (#371)
- The check for unused function arguments now correctly handles
@nospecialized
keyword arguments (#372) - Method detection during symbol cache generation now correctly works on Julia 1.10 (#273)
- Use the built-in diff viewer for failed
@test
s (#3378)
- Various fixes for inline eval display logic (#3388)
- The REPL now also uses the
err
global variable to contain the most recent exception (#3112). - Added support for the custom
application/vnd.julia-vscode.inlayHints
MIME type to display custom inlay hints (e.g. types inline with source code) in the editor (#3328) - Documenter code blocks can now be evaluated (#3007)
- Raw notebook cells are now supported (#3206)
- The
julia.plots.path
setting now supports absolute and non-existing paths (#3323)
- Use full display stack for inline evaluation (#3134)
- REPL evaluation now supports the REPL's module switching (#3367)
- The profiler pane is now correctly initiatlized on newer VS Code versions (#3354)
- The debugger pane now displays the correct icons for compiled and interpreted mode (#3277)
- More robust formatting range detection (#1228)
- Fix shell integration when using inline evaluation (#2992)
- 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)
- The language server now uses incremental sync (#1105)
Assigned but not used
linter annotations are now slightly more correct (#339)- Actually fixed that issue with copying
Expr
s while debugging (#60) - Fixed
when
clauses of some keybindings that caused incorrect matches wheneditorLangId != julia
(#2971)
- Inline results and inline profile traces are now themeable (#2897)
- Inline evaluation now works in plain markdown files (#2920)
- Restored a check (and notification) as to whether the Julia path is valid (#2923)
- Erroneous
.JuliaFormatter.toml
s no longer cause the language server to crash (#1101)
- 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)
- Switched to LSP 3.17 (#2886)
- 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)
- Modules can now be hidden in the workspace (#2887)
- 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 withnothing
(#1048) - Added completions for string macros (#1046)
- Added a code action for replacing unused assignments/arguments with an underscore (#1065, #1072)
- 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
kind
s are now set appropriately when applicable (#1062) - Improved auto completion presentation (#1052)
- Snippet completions now have their
kind
set tosnippet
, as is appropriate (#1067)
- 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
Expr
s in the debugger (#58) - Code actions triggers are no longer off by one character (#1050)
- Slightly better check for displaying objects in the workspace (#2833)
- Fix a problem when trying to display
missing
s in the workspace (#2831) - The
x == nothing
linter pass now also detectsnothing
s on the LHD (#334)
- Notebooks now start properly in empty VS Code workspaces (#2828)
- More notebook startup diagnostics.
- "Go to defintion" button for some workspace items (#2815)
- 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)
- 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)
- 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)
- The default formatting style now does not surround kwargs
=
with whitespace (#1033)
- Errors in notebooks are now handled more robustly (#2781, #2783)
Revise.revise
is now called in the most recent world during inline evaluation (#2782)
- 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)
- "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
@doc
parsing 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
--threads=auto
setting (#2666)
- 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 ofauto
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)
- 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)
LoadError
s are now properly unwrapped in the REPL (#2754)- Inline errors are now properly shown even when the line ends with a
;
(#2748)
- 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)
juliaup
integration 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)
=
/in
normalization 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
@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)
- The plot pane now prefers png over svg plots for performance reasons (#2475)
Execute File
now 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)
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
andJULIA_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)
- 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 aJulia: 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)
- 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 additionaltitle
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)
- 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)
- 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
- 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)
executablePath
is now once againmachine-overridable
thanks 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
end
appears 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
stat
ing 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
notebookController
setting 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)
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
andexecution.resultType
settings (#2297)
- 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
julia.environmentPath
andjulia.executablePath
settings (#2153)
- 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 REPL
now 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)
tmux
integration and connecting to an external process now properly work on Windows (#2182)
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)
- 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)
- Workspace panel now shows
#properties
forAbstractrArray
s andAbstractDict
s (#1927) - 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
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)
- 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)
- 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 Bar
syntax (#276)
- 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)
- Auto-completions now allow for a certain degree of fuzzyiness (#906)
- The LS now support selection range requests (use
Shift-Alt-Right
/Shift-Alt-Left
to 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_transforms
machinery 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
convert
methods (#1943)
- 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
if
conditions (#124).
- Displaying profiler results now works again (#1887).
pwd
is now properly set for the live unit testing task (#1886).
- The plot pane now properly scales images (#1882).
- The LS now correctly handles the
$/setTrace
notification (#868).
- 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).
- Removed
@
and!
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
eval
call toCore.eval
(#237).
- It is now possible to customize the look of inline results (#1846).
- Support for the upcoming
import Foo as Bar
syntax (#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_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
UnionAll
s when collecting global refs (#27). - The Linter now correctly handles
Base.@kwdef
(#233).
- 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).
- Pressing
^C
more than three times in one second now sends aSIGINT
to 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.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).
- 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).
- 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.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).
- 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).
- The workspace now shows errors encountered while rendering the tree view. Furthermore, it now only special cases
Array
andDict
instead of theirAbstract...
supertypes (#1709). - Inline evaluation and the REPL can now be interrupted with the
Julia: Interrupt Execution
comamnd (or its default keyboard binding ctrl+c) (#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 to1
(#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, orPkg.activate
the 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).
- 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 relateddisplay
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).
- Stracktraces are now rendered properly (i.e. with linebreaks) once again (#1692).
- The module indicator is now correctly initialized (instead of
Main
) (#1516).
- 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_SERVER
is now an exposed setting.Julia: Stop REPL
command.
- Toolbar icon now follows the style guide (outline instead of filled).
- Run/Debug commands now work when invoked from the command palette.
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.
- Revise is now loaded without stealing the REPL backend for newer Julia versions.
#%%
and# %%
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
if
blocks, unused free parameters, unhandledinclude
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
- 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
- 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
- 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