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
- The
skipkeyword argument of@testitemis now honoured.skip=truemarks the test item as skipped instead of running it, andskip=<expression>is evaluated in the test process immediately before the item would run, so it sees that process's Julia version and platform. The expression that caused a skip is written to the test run output. - Test items report the performance statistics measured by the test process — elapsed time, allocated memory, allocation count, GC time and compilation time — as a summary line in the test run output.
- A test item name used more than once in the same file is now reported as an error, and each occurrence gets its own entry in the test explorer rather than the duplicates silently displacing one another.
Changed
- Test item ids are now
<Package>@<uuid prefix>/<path within the package>::<name>, rather than being based on the item's position in its file. Inserting a test item above another one no longer renumbers it, and the id is the same in a dev checkout as on a CI runner. julia.enableWorkspaceEnvironmentResolutionnow defaults totrue, so environments without aManifest.toml(such as adocs/Project.toml) are resolved in a background process and their dependencies resolve instead of being flagged as unresolved imports. Set it tofalseto opt out; either way the language server has to restart for a change to take effect.
Fixed
- A test run no longer fails outright when one of the workspace's
@testsetupfiles does not belong to a package. The setup was sent without a package, which the test item controller rejected, taking every test item in the run down with it. - Editing a
@testsetupno longer leaves the previous version of it in play: every version a file had ever had was being sent to the test process, and which one took effect was arbitrary. - With the same package checked out into two folders of one workspace, test results are no longer reported against the wrong copy, and such a run no longer hangs without ever finishing. Test item ids are scoped to their package, so both copies produce the same id, and the id alone was being used to match a result to the test item that produced it.
- A test run that fails to start, or that is cancelled, now stops showing as running in the Test Explorer instead of spinning indefinitely.
- The language server logs its startup and dynamic analysis process lifecycle to the output channel again, and failures of those processes are now reported as warnings. The
--debug=yesswitch works again, having been disabled unconditionally. includecalls inside@testitem,@testmodule, and@testsnippetbodies are no longer reported as duplicate includes when several test items include the same file, since each test item runs in its own module.
[1.231.0] - 2026-08-08
Added
- CodeLens buttons for cells (run/above/below/debug) can now be configured individually (#4158)
- Lint rules can now be configured one by one, with a severity between
offanderrorper rule,include/excludeglobs, and path-scoped[[override]]blocks; theminimal,default, andstrictpresets set the baseline (JuliaWorkspaces.jl#198) - New
JuliaTestItems.tomlconfig file controls which files are searched for test items (JuliaWorkspaces.jl#198) - Support for version-specific manifests like
Manifest-v1.12.toml(only for the currently running Julia version) (JuliaWorkspaces.jl#178)
Changed
- The lint and formatter config files are now called
JuliaLint.tomlandJuliaFormat.toml(matched case-insensitively, but a leading dot is no longer recognized). The nearest config file governs a file as a whole instead of being merged with the ones above it. Keys from the old schema are ignored and reported as a diagnostic that names their replacement, so projects that relied on them need to migrate (JuliaWorkspaces.jl#198, LanguageServer.jl#1414) - Diagnostics are pushed by the server again instead of being pulled by the client (LanguageServer.jl#1416)
- The workspace scan no longer descends into
.git,.svn,.hg, andnode_modules(JuliaWorkspaces.jl#201) - Neither indexing nor test runs write into your folders anymore: both copy the environment to a temporary directory before instantiating it, so no
Manifest.tomlis resolved into a package or project folder (JuliaWorkspaces.jl#193, TestItemControllers.jl#29) - Updated to JuliaFormatter v2.12
Fixed
- Signature help lists every positional parameter again, so the highlighted parameter no longer shifts when a definition has unnamed,
@nospecialized, or defaulted arguments, and such signatures are no longer dropped from the popup entirely (#4153, JuliaWorkspaces.jl#172) @testitembodies now see the current package as well as the@testmoduleand@testsnippetsetups they depend on, so references in test items resolve instead of being flagged (JuliaWorkspaces.jl#200)- Constructs inside a call to most macros no longer report missing references (JuliaWorkspaces.jl#202)
- Added limited support for specific macros that declare bindings (JuliaWorkspaces.jl#189)
- Members that are only implicitly in scope through
Base/Corenow resolve, including on qualified access and in colon imports (JuliaWorkspaces.jl#190) - A call is no longer flagged when the linter cannot look up a supertype, instead of treating the unknown answer as a mismatch (JuliaWorkspaces.jl#191)
- All
Varargspellings (::Vararg{Int},::Base.Vararg) are now recognized as variadic, so calls are no longer flagged with a wrong argument count (JuliaWorkspaces.jl#185) - A
where-bounded type parameter now resolves to its upper bound, sof(x::T) where T<:Realrules out mismatching arguments again (JuliaWorkspaces.jl#187) - An inner
wherein a type annotation (x::Vector{T} where T) no longer discards the annotation (JuliaWorkspaces.jl#188) - A local that is assigned more than once now settles on a type covering all of its assignments, instead of whichever assignment happened to win (JuliaWorkspaces.jl#186)
- Assorted linter and symbol cache fixes: field names of parametric types are kept, every inner constructor counts towards a struct's arity, and a docstring no longer reads as a field (JuliaWorkspaces.jl#175)
- Diagnostic ranges reported by JuliaSyntax are now converted correctly (JuliaWorkspaces.jl#170)
- Internal item ids are now built as
Int64, so the language server also works on 32-bit platforms (JuliaWorkspaces.jl#171) - Dynamic indexing and symbol cache loading are more robust, and the indexing process no longer inherits environment variables that Julia app shims modify (JuliaWorkspaces.jl#182, JuliaWorkspaces.jl#183, JuliaWorkspaces.jl#192)
- Preferences from
LocalPreferences.tomlor a[preferences]section are now honoured in the test process, including while it precompiles (TestItemControllers.jl#29) - A test run no longer reports itself complete while one of its test items is still shown as running, which mostly happened on large runs with several worker processes (TestItemControllers.jl#31)
[1.227.0] - 2026-07-27
Changed
- Significantly reduce memory usage in large workspaces (JuliaWorkspaces.jl#169)
[1.226.0] - 2026-07-25
Fixed
- Non-type type parameters now work in varag contexts (JuliaWorkspaces.jl#165)
[1.225.0] - 2026-07-25
Added
- Untitled (unsaved) Julia buffers now get linting and diagnostics (JuliaWorkspaces.jl#158)
Changed
- Analysis after an edit is roughly 2-3x faster in large workspaces (JuliaWorkspaces.jl#164)
- Initial analysis of large workspaces is faster and needs substantially less memory (JuliaWorkspaces.jl#162)
- Packages that cannot be indexed are now remembered for a week, so environments containing them no longer start a fresh indexing process in every session (JuliaWorkspaces.jl#161)
- Made the language server's indexing logs less verbose and more precise (JuliaWorkspaces.jl#161)
Fixed
- The language server startup script now correctly fails when running with a Julia version older than 1.11.0 (#4150)
- Fixed a language server crash when opening an untitled file in a workspace that contains packages or projects (JuliaWorkspaces.jl#157)
- Missing-reference and method-call diagnostics are no longer reported for files whose environment is still being indexed, removing a common source of false positives during startup (JuliaWorkspaces.jl#163)
- Test files now wait for their test environment to be indexed instead of being analyzed against the wrong environment (JuliaWorkspaces.jl#163)
- Indexing no longer stalls partway through in workspaces with many environments (JuliaWorkspaces.jl#160)
- Environments that are no longer needed no longer flood the indexing queue and starve the ones that are (JuliaWorkspaces.jl#160)
- Indexing an environment no longer fails wholesale when a package uses value type parameters in tuple types (e.g. StaticArrays'
Size) (JuliaWorkspaces.jl#159) - Indexing failures now report the package and project they happened in, as well as the symbol cache server URL (JuliaWorkspaces.jl#159)
- Environments with a stdlib pinned in the manifest are no longer re-indexed on every start (JuliaWorkspaces.jl#161)
- The indexing progress bar no longer runs ahead of the completed count shown next to it (LanguageServer.jl#1410)
[1.223.0] - 2026-07-22
Changed
- The REPL integration's internal
@debuglogging is now emitted only when the language server runs in developer mode, so it no longer adds noise for users who setJULIA_DEBUG(#4148)
Fixed
- The active environment path is now pushed to the language server via a
julia/setEnvironmentPathnotification instead of a plain setting; the client resolves the path (expanding${env:...}/${config:...}and clearing stale state first), so environment switches — including manualsettings.jsonedits — are picked up reliably. Relative environment paths are now accepted (#4147, LanguageServer.jl#1407) - Fixed a language-server crash when resolving element types of tree references in
settype!(JuliaWorkspaces.jl#154) - Types with an overloaded constructor are now kept as a
DataTyperather than being reclassified as aFunction, so completions, hover, and linting handle them correctly (JuliaWorkspaces.jl#155) - The
CannotDeclareConstdiagnostic now highlights only the name instead of the whole declaration (JuliaWorkspaces.jl#156)
[1.221.0] - 2026-07-22
Fixed
- Runtime (REPL-backed) property completions no longer error on Julia versions without
Base.hasproperty, falling back topropertynames
[1.220.0] - 2026-07-21
Added
- Code formatting is now configurable per project through a
juliaformat.tomlfile, with selectable styles (default,yas,blue,sciml,minimal, and a newrunicbackend); theminimalstyle is used when no config file is present (JuliaWorkspaces.jl#61) - Linting and diagnostics are now provided for indirectly included files — files pulled in via
includebut never opened in the editor (LanguageServer.jl#1370) - Support for Julia 1.13 (JuliaWorkspaces.jl#61)
- Completions are now ranked and sorted server-side by relevance (match quality, then scope proximity, then length), so a case-matching prefix and bindings in nearer lexical scopes surface first even in editors that do not re-sort completions client-side (JuliaWorkspaces.jl#143)
- Type inference now takes RHS type assertions into account (JuliaWorkspaces.jl#145)
- New
UnresolvedImportdiagnostic marks the first unresolvable component of ausing/importpath; the names such an import would bind now get synthetic bindings, so references to them are no longer flagged as missing (JuliaWorkspaces.jl#133) - Hover and completions now indicate a name's API status — whether it is exported, marked
public, or internal — with the detail shown inline on completion items and in a footer on hover (JuliaWorkspaces.jl#148) - New
julia.enableDynamicIndexingsetting to toggle dynamic package indexing; disable it for lower resource usage at the cost of potentially reduced functionality (#4079) - New
julia.maxConcurrentIndexingProcessessetting caps how many environment-indexing child processes run at once (default 4; set to 0 for no limit) (LanguageServer.jl#1402) - New
julia.enableWorkspaceEnvironmentResolutionsetting toggles resolving environments without a manifest and for test files; disable it to only use environments that already exist on disk (LanguageServer.jl#1402)
Changed
- Method-call-error diagnostics now name the specific mismatch instead of reporting a generic call error (JuliaWorkspaces.jl#148)
- Completions again match on typos: the fuzzy-completion cutoff was raised so approximate prefixes surface results (JuliaWorkspaces.jl#148)
- Multi-environment workspaces use less memory and load faster — the standard-library symbol store is shared across environments instead of being deep-copied, and each package symbol cache is loaded at most once (JuliaWorkspaces.jl#148)
- Server cold start is faster: hot request paths are precompiled, each workspace folder is walked only once at init, and the initial diagnostic sweep runs off the dispatch loop with coalesced refreshes (LanguageServer.jl#1403)
- Progress notifications from the language server are now aggregated into fewer updates (LanguageServer.jl#1406)
- The default symbol-cache download URL now points at the new
https://julia-symbolcache.orgservice (previouslyhttps://www.julia-vscode.org/symbolcache) (#4139, JuliaWorkspaces.jl#147) - Overhauled the language-server backend: the standalone StaticLint.jl (linting) and SymbolServer.jl (package symbol indexing) packages, together with the completion, hover, signature-help, go-to-definition, and find-references implementations, are now built directly into JuliaWorkspaces (#4079, LanguageServer.jl#1370, JuliaWorkspaces.jl#61)
- Diagnostics are now delivered via LSP pull diagnostics instead of being pushed by the server (#4079, LanguageServer.jl#1370)
- Symbol-cache downloads now use a privacy-preserving request model: packages that are not part of the public General registry are excluded before any network request, and the client fetches the server's availability index once and filters the download set against it locally, so the names and versions of private or internal packages are never sent to the cache server. If General-registry membership cannot be determined, no caches are downloaded and packages are indexed locally instead (JuliaWorkspaces.jl#106)
- Linter configuration has moved out of the VS Code settings: the individual
julia.lint.*settings have been removed in favor of a project-localjulialint.tomlfile (#4079, JuliaWorkspaces.jl#61) - Improved method matching for the linter's call check, including vararg handling and overload resolution (JuliaWorkspaces.jl#121, JuliaWorkspaces.jl#123)
- Files inside
packagesdirectories are no longer linted (JuliaWorkspaces.jl#61) - Removed the "Julia: Toggle Linter" and "Julia: Re-Index Language Server Cache" commands; the latter is obsolete now that indexing happens dynamically (#4079)
- The default missing-reference lint level is now
all(previouslysymbols), and a scope containing an unresolved wildcardusingsuppresses bare missing-reference hints (JuliaWorkspaces.jl#133) - An unresolvable name that the project declares as a dependency now reports that the dependency's symbols could not be indexed, distinct from the generic "failed to resolve" used for names not in the environment at all (JuliaWorkspaces.jl#135)
- Signature help renders shorter type annotations: the module qualifier is dropped for exported
Core/Basenames and::Anyannotations are omitted (JuliaWorkspaces.jl#141)
Fixed
- Fixed a race condition in REPL startup (#4138)
- Completing non-standard
var"..."identifiers no longer duplicates thevar"prefix; such names are now offered and inserted with proper quoting by both the static and the REPL-backed completion providers (#3867, JuliaWorkspaces.jl#131) - Non-standard
var"..."identifiers no longer crash or confuse the LS (JuliaWorkspaces.jl#131) - Large workspaces load noticeably faster and no longer block the server: file additions are batched and processed in linear time, folder walking yields cooperatively, and package caches load incrementally (LanguageServer.jl#1399, JuliaWorkspaces.jl#119)
- Dot-completion now offers only the members of the relevant workspace struct (JuliaWorkspaces.jl#124)
- Dot-completion now anchors its left-hand-side lookup on the
.token (JuliaWorkspaces.jl#124) - Shadowing parameters are no longer incorrectly hoisted into enclosing scopes (JuliaWorkspaces.jl#124)
- Go-to-definition on a reassigned local variable now resolves to its declaration (JuliaWorkspaces.jl#126)
@safetestsetbodies are now isolated in their own scope (JuliaWorkspaces.jl#126)@parameters,@variables, and@constantsare now recognized as defining variables (JuliaWorkspaces.jl#126)- Unused arguments in short-form function definitions are now flagged (JuliaWorkspaces.jl#126)
- Identifiers are now Unicode-normalized to match Julia's own handling (JuliaWorkspaces.jl#126)
- Dynamic package analysis now launches its subprocess correctly when running inside an editor-hosted language server (JuliaWorkspaces.jl#119)
- Julia/juliaup availability checks during activation now time out instead of hanging indefinitely (e.g. when a juliaup call is blocked on a configuration lock), and a timed-out check is reported distinctly from a missing installation (#4123)
@labeltargets are no longer flagged as unused bindings (JuliaWorkspaces.jl#132)- The body of
@test_throwsis no longer linted, avoiding false-positive diagnostics on deliberately invalid code (JuliaWorkspaces.jl#134) - Arguments of anonymous functions written as
(a; b)are now bound, so references to them resolve instead of reporting "no definition found" (JuliaWorkspaces.jl#136) - Renaming a macro now produces consistent edits for the definition and its
@-prefixed invocations, without duplicate edits (JuliaWorkspaces.jl#137) - Self-references inside an assigned anonymous function now resolve to the function (JuliaWorkspaces.jl#138)
- References to names brought in via
usingand then re-exported now resolve throughusingchains instead of being flagged as missing (JuliaWorkspaces.jl#139) - Hovering a keyword argument (e.g.
ying(x; y)) now resolves to the correct node instead of a neighboring one (JuliaWorkspaces.jl#140) - Signature-help parameter labels are emitted as UTF-16 offset ranges, so unnamed method arguments no longer show an internal
#unused#placeholder (JuliaWorkspaces.jl#142) - Signature help is now offered for keyword-only methods (e.g.
bar(; x)) at the first argument position, where positional-arity filtering previously discarded them (JuliaWorkspaces.jl#144) - Fixed a server crash when an
inlayHintrequest specified a range past the end of the document (LanguageServer.jl#1400) - The "Julia Language Server Crashed" status bar item no longer appears for transient crashes that the client recovers from by restarting the server automatically; it is now only shown once the server enters a crash loop and will not be restarted. Language features also keep working after such an automatic restart instead of requiring a manual server restart (#4137)
- Out-of-bounds diagnostic ranges are now clamped instead of crashing the request (LanguageServer.jl#1401)
- Diagnostics are no longer published for files outside the open workspace (LanguageServer.jl#1405)
- Go-to-definition on a package or imported external module name now resolves to that module's source (JuliaWorkspaces.jl#148)
- Names brought in via a whole-module
usingand then re-exported now resolve instead of being flagged as missing (JuliaWorkspaces.jl#148) - Type inference for cross-file and qualified constructors, curly type aliases, and destructuring assignments is more accurate, so field completion and hover resolve in more cases (JuliaWorkspaces.jl#148)
- Hover method lists, signature help, go-to-definition, and the call linter now share one computation of which modules are in scope, so overloads from a module brought in by any import form (
using Foo,using Foo: bar,import Foo) are recognized rather than only those from a whole-moduleusing(JuliaWorkspaces.jl#149) - The call-signature linter now resolves
consttype aliases and respects locally shadowed names, so calls involving them are no longer wrongly flagged (JuliaWorkspaces.jl#150) - Removed broken inference-by-use heuristics (JuliaWorkspaces.jl#149)
- Language-server progress notifications are now cleaned up properly instead of lingering (JuliaWorkspaces.jl#151)
- Colon imports of a re-exported module (e.g.
using Foo: BarwhereBaris re-exported byFoo) are no longer flagged by the linter (JuliaWorkspaces.jl#152) - Macro definitions no longer emit spurious diagnostics (JuliaWorkspaces.jl#153)
[1.219.0] - 2026-06-17
Added
- Declare the
juliaandjuliamarkdownlanguages explicitly viacontributes.languagesso the extension works on VS Code API-compatible hosts (e.g. Eclipse Theia) that do not implicitly register languages from grammar contributions (#4121)
Fixed
- Client disconnect handling in the REPL is now more thorough (#4114)
[1.218.0] - 2026-05-29
Fixed
- Fix an issue with constructors in the linter's method argument-count check (StaticLint.jl#447)
- Handle
@nospecializewith no arguments during method matching (StaticLint.jl#448)
[1.217.0] - 2026-05-29
Fixed
- Emit a warning when trying to call a function with no methods (StaticLint.jl#445)
- Correctly handle primitive type supertype computation in the linter (StaticLint.jl#446)
[1.216.0] - 2026-05-29
Changed
- The SymbolServer cache has been upgraded to v6, with a new on-disk format, magic-byte versioning, faster cache reads, recursion-depth caps, and hardened deserialization against corrupted caches (#4101, SymbolServer.jl#309, SymbolServer.jl#310, SymbolServer.jl#312)
- SymbolServer now records method overloads when indexing packages and caches type parameters (SymbolServer.jl#308, SymbolServer.jl#313)
- Upgraded to JuliaFormatter v2 (LanguageServer.jl#1392)
- Enhanced hover documentation support for the
@docmacro (LanguageServer.jl#1377) - The linter now handles bindings hoisted to the beginning of a local scope (StaticLint.jl#440)
Added
- New duplicate
includediagnostic in the linter (StaticLint.jl#420) @testsetand@testitemnow introduce new scopes for linting purposes (StaticLint.jl#425)
Fixed
- Fix
@profviewerror in Julia v1.8.5:threadpooltidsandthreadpoolare undefined but called (#4100) - The REPL is now more robust against crashes when communication with the IDE is disrupted (#4098)
- Only crash on document sync mismatch if the document is actually open and at version > 0, avoiding spurious language server restarts (LanguageServer.jl#1390)
- SymbolServer now correctly handles bounded
Varargsignatures (SymbolServer.jl#315) - Improved bounded
Varargmatching in the linter (StaticLint.jl#422) - Avoid stack overflow when resolving circular bindings during import resolution (StaticLint.jl#423)
- Correctly handle destructuring assignment of type aliases (StaticLint.jl#426)
- Reassign bindings in nested local scopes instead of shadowing them (StaticLint.jl#427)
- Accept
@nospecializewithout any arguments (StaticLint.jl#428) - Early-return in
add_bindingwhen the binding name isnothing(StaticLint.jl#429) - Correctly handle parametrized aliases for method definitions (StaticLint.jl#430)
- Tolerate argument-count mismatch for macro-wrapped function definitions (StaticLint.jl#432)
- Correctly resolve
using Base: fooinside abaremodule(StaticLint.jl#433) - Stop emitting
constdeclaration warnings for imported bindings (StaticLint.jl#434) - Don't show redeclaration warnings for bare
localbindings (StaticLint.jl#435) - Handle multiple
whereclauses in function definitions (StaticLint.jl#436) - Show unused-funcarg warnings after underscore-prefixed args instead of suppressing all later ones (StaticLint.jl#437)
- Unwrap
whereclauses for type aliases (StaticLint.jl#438) - Correctly mark
globalbindings declared in local scopes (StaticLint.jl#439) - Resolve
joinpathcalls with string-literal arguments (StaticLint.jl#441) - Correctly mark right-hand-side bindings of
@enumdeclarations (StaticLint.jl#442) - Infer types correctly for tuple destructuring assignments (StaticLint.jl#443)
- Only check for missing references inside
@macrocalls when a new scope is introduced (StaticLint.jl#444) - The LS now tolerates some client requests against unopened documents (LanguageServer#1393)
[1.215.0] - 2026-04-28
Fixed
- Fixed an issue where REPL hooks were not properly installed for external REPLs, causing e.g. the integrated plot viewer to silently fail (#4097)
[1.214.0] - 2026-04-27
Fixed
- Reverted the REPL hook installation change from 1.213.0 because it broke external REPL setups (#4096)
[1.213.0] - 2026-04-27
Fixed
- Improved handling of "Julia not found" situations across the debugger, REPL, package tools, notebooks, tests, and weave so users get a clear error rather than a low-level exception (#4091)
- Run REPL hook installation in
serve()so hooks attach reliably (later reverted in 1.214.0) (#4093)
[1.212.0] - 2026-04-23
Fixed
- Hardened the telemetry plumbing: properly
awaitasync command handlers, guard against errors during REPL connection disposal, and fix a regression in the telemetry handler itself (#4089)
[1.211.0] - 2026-04-20
Changed
- Substantially improved language server error handling (#4088)
Changed
view_profilenow accepts a second optional argument forlidict, which should allow plotting profiles retrieved from other sessions or machines (#4080)- Removed the unused
applyTextEditcommand (#4086)
Fixed
- Fixed an issue where the extension would not activate if Julia is not installed, breaking the auto-installation flow (#4082)
[1.209.0] - 2026-04-10
Fixed
- Fixed a bug where the Julia installation check during activation was not awaited, occasionally skipping the
julia installedstate (#4074) - Widened the telemetry error handler so additional crash report types are captured (#4075)
- Fix off-by-one when inferring binding types by use (StaticLint.jl#412)
- Correctly update the document version in the
didChangehandler (LanguageServer.jl#1380) - Properly initializie editor PID polling so the language server reliably shuts down with the IDE (LanguageServer.jl#1379)
- Fix
Base.hashoverload to use only the two-argument method (LanguageServer.jl#1381)
[1.208.0] - 2026-04-01
Fixed
- Fixed an error in the notebook feature related to juliaup channel comparisons (#4070)
- Fixed a number of crash report errors in the documentation browser, workspace view, and weave feature (#4071)
[1.206.0] - 2026-03-31
Added
- Package version tagging now supports release notes (#4048)
Changed
- Reduced the amount of telemetry data the extension sends (#4069)
Fixed
- Errors thrown from event handlers now produce correct telemetry (#4068)
[1.204.0] - 2026-03-31
Changed
- Updated to the new test item controller protocol (#4066)
[1.203.0] - 2026-03-26
Fixed
- Revamped crash handling for the test item controller so failures surface more reliably (#4065)
[1.201.0] - 2026-03-24
Added
- Stack traces are now attached to test failure messages (ca5e181b)
Fixed
- Fixed a race condition where user REPL configuration (e.g.
auto_insert_closing_bracket) set instartup.jlviaatreplinitcould be overwritten (#4063)
[1.199.0] - 2026-03-19
Added
- A separate test profile is now created for each installed Juliaup channel (#4061)
[1.196.0] - 2026-03-16
Fixed
- Code evaluation is now more robust against unexpected errors (#4056)
Changed
- Extension activation is now slightly faster (#4060)
[1.193.0] - 2026-03-11
Changed
- We're now showing a status bar notification during slow operations like installing packages via
Julia: Run Package Commandor when installing Julia/JuliaUp (#4051)
Fixed
- Improved fallback behaviour when Julia is not on PATH but juliaup is found (#4054)
[1.191.0] - 2026-03-10
Fixed
- Improved test item cancellation behaviour (#4050)
[1.190.0] - 2026-03-10
Added
- The extension now provides a few basic language model tools for other extensions to interface with (#4044)
- The new
julia.plots.defaultMimeTypesetting now allows toggling betweenimage/pngandimage/svg+xmlas the preferred MIME type for plots (#4045)
Fixed
- REPL startup should now be substantially faster (#4049, JSONRPC#94, DebugAdapter#116)
[1.189.0] - 2026-03-02
Changed
- The debugger now has better defaults for the list of compiled items (#4038)
- Users will now only get one modal dialogue if installation of required juliaup channels or julia is cancelled (#4039)
Fixed
- Stopped printing deprecation warnings when recursively setting modules as interpreted or compiled (DebugAdapter.jl#115)
[1.188.0] - 2026-02-25
Changed
- Removed the docstring highlighting introduced in 1.154 based on community feedback (#4034)
Fixed
- Remove winget store fallback for juliaup installation, as it was identical to the manual appx installation (#4033)
- Prevent TOML files from being linted by the language server (LanguageServer.jl#1378)
- Improved robustness of the missing reference getfield check (StaticLint.jl#410)
[1.187.0] - 2026-02-19
Fixed
- Fixed another language server crash caused by the the loop iterator check introduced in 1.183 (StaticLint.jl#409)
[1.186.0] - 2026-02-19
Added
- The
julia.environmentVariablessetting can now be used to configure the environment all Julia process start with (#4031)
Changed
- The juliaup auto installer now uses
wgetby default (on Linux, with a fallback tocurl) and tries the app installer and winget stores on Windows if the Microsoft store installation fails (#4030)
[1.185.0] - 2026-02-15
Fixed
- Fixed a language server crash caused by the the loop iterator check introduced in 1.183 (StaticLint.jl#408)
[1.184.0] - 2026-02-13
Fixed
- Reverted an invalid parser fix (CSTParser.jl#401)
[1.183.0] - 2026-02-13
Added
- Added inline debugging support for cells (e.g. delimited by
##) in Julia documents and Julia Markdown documents (#4011)
Changed
- Support version-specific Manifest files (LanguageServer.jl#1376, SymbolServer.jl#303, JuliaWorkspaces.jl#56)
- Allow optional
codeargument in launch/attach args for inline debugging (DebugAdapter.jl#114)
Fixed
- Fix organizing imports involving
import ... asstatements (LanguageServer.jl#1375) - Improved LSInvalidFile error printing (LanguageServer.jl#1280)
- Fix anonymous long-form function definitions with one or fewer non-keyword arguments (CSTParser.jl#393)
- Run loop iterator check on inferred type (StaticLint.jl#406)
- Harden handling of terminate request (DebugAdapter.jl#103)
- Better handling for non-file URIs (JuliaWorkspaces.jl#63)
[1.182.0] - 2026-02-10
Fixed
- Addded missing
try-catchin one of the juliaup flows (#4023) - Handle
julia.exe +channelinexecutablePathsetting (#4022) - Stop
#being treated as a cell delimiter (#4024) - Fix REPL crash on debugger disconnect (DebugAdapter.jl#113)
[1.181.0] - 2026-02-07
Fixed
- Ensured that spaces in usernames don't cause issue when checking for
juliaup(#4018)
[1.180.0] - 2026-02-06
Fixed
- Restore default folding range provider (#4017)
[1.179.0] - 2026-02-05
Fixed
- Restore code block eval functionality (#4014)
- Fixed an issue with appending to the history file when using inline eval with Julia 1.13 (#4015)
[1.178.0] - 2026-02-05
Fixed
- If a custom juliaup channel is set, VS Code will now also automatically set
JULIAUP_DEPOT_PATHspecific to that server (#4012)
Added
- Added
CodeLensandFoldingRangesupport for cells (e.g. delimited by##) in Julia documents and Julia Markdown documents (#3586)
[1.177.0] - 2026-01-30
Added
- The
application/vnd.julia-vscode.custompane+htmlMIME type now supports an optional;title=[^,]+parameter to set a custom title for the pane, separate from theidparameter (#4000)
Changed
- The Julia REPL terminal now contains the juliaup channel in the title if applicable (#3998)
- Improved the juliaup installation UX (#4004, #3997)
Fixed
- Adding Revise on REPL startup no longer auto-precompiles (#4002)
[1.176.0] - 2026-01-18
Fixed
- Only check for
julia.exeon Windows systems, to prevent issues with WSL setups picking the wrong Julia executable (#3990) - Kernel selection for Jupyter notebooks should now work properly again (#3992)
- Fix shell integration for inline eval when echoing to REPL (#3993)
[1.175.0] - 2026-01-16
Changed
- The extension now requires VS Code version 1.108 or newer (#3982)
- The integrated Julia REPL now runs with rich shell integration (#3982)
Fixed
- No longer show an additional result on error after queuing up multiple inline evaluations (#3986)
- Handle juliaup aliases correctly (#3988)
[1.174.0] - 2026-01-14
Fixed
- Errors in the table viewer backend no longer kill the Julia REPL (#3979)
- Add missing dependency for test runner functionality (TestItemControllers#14)
Added
- The
inRangefilter is now supported in the table viewer (#3979)
[1.173.0] - 2026-01-13
Fixed
- Stop requiring juliaup to be installed for notebook kernel selection (c2c9091)
[1.172.0] - 2026-01-12
Fixed
- Select
allby default in profile viewer (#3968) - Also show "Copy Plot" button for HTML plots (#3969)
- Start LS when
julia.executablePathis empty, matching previous behaviour (#3975)
[1.171.0] - 2026-01-06
Fixed
- We now try to interpret an empty
julia.executablePathasjulia.exe/julia, matching previous behaviour (#3961) - Properly copy/save plots from the plot pane (#3960)
- Clear eval queue when Julia process dies (85b20fa)
[1.170.0] - 2025-12-25
Fixed
- Fixed a typo in default cell delimiter setting (#3945)
- Improved path resolution logic in some edge cases (#3943, #3956)
- The REPL link handler now works with absolute paths again (#3953)
- Disable
julia.repl.keepAliveagain because of issues on Windows (#3954)
[1.167.0] - 2025-12-19
Changed
- Re-enabled the REPL keep-alive on Windows (#3941)
[1.166.0] - 2025-12-19
Fixed
- Correctly set up handlers for REPL-sent events, so that the plot pane and other integrations work again (#3939)
- Inline evaluation is now guaranteed to happen in the right order, even when evaluating multiple cells by line (#3940)
Changed
- The REPL now prints a message when it loses connection to the editor (#3937)
- Improved the automatic Julia installation process UX (#3942)
[1.165.0] - 2025-12-15
Fixed
- Fix a bug that caused Julia test detection to fail (#3935)
Added
- Add suggestion to install Revise.jl if it is not present (#3926)
[1.163.0] - 2025-12-15
Fixed
- The language server can now start with the Julia binary configured in
julia.executablePathagain instead of insisting on its own setting (#3932) - Juliaup overrides are now properly taking into account when starting the REPL, but only if
julia.executablePathis set tojuliaor some other program that resolves to juliaup's julia binary (#3933) - Don't exit VSCodeServer when JSONRPC reports endpoint is closed (#3674)
Changed
#+is now a valid cell seperator to support Weave script format (#3626)- Terminal output for Julia Pkg tasks is now prettier (#3934)
[1.162.0] - 2025-12-12
Fixed
- Fixed the incorrect sourcing of python envs on REPL startup in a new terminal (#3920)
image/pngis now once again preferred overimage/svg+xmlin the plotpane (#3924)- Don't exit the REPL when a connection error occurs (#3930)
Changed
- The automated juliaup installer now also ensures that the configured channels are present. The extension now also activates faster and adds a status bar item if is not present (#3928)
- The extension API is now on version 6 (#3928)
[1.161.0] - 2025-11-25
Fixed
- The REPL keep-alive logic is now optional due to problems on Windows (#3917)
- Fixed an issue where one cannot copy the plot (#3916)
- Fixed an issue resulting in re-compilation of stdlibs (#3915)
Added
- Restart language server and Change julia env command now takes an optional
envPathargument (#3914)
[1.160.0] - 2025-11-20
Fixed
- Fixed an issue with the REPL not starting in the correct repository (#3909)
- Fixed some issues with the Observables.jl integration (#3911)
Changed
- Variable substitution now works for the
julia.additionalArgssetting (#3909)
[1.159.0] - 2025-11-19
Added
- The
application/vnd.julia-vscode.plotpane+htmlandapplication/vnd.julia-vscode.custompane+htmlMIME types can now be used for new plots in the plotpane or new panes. An optional;id=[^,]+parameter allows for replacing the plot or setting a pane identity and title. (#2940) - Julia package manager commands via Task interface (#3899)
- Convenience "instantiate environment" command (#3899)
node-ptybased task runner and REPL (#3904)- Added suggestions to auto install
juliaand/orjuliaup(3898) - Added ability to select specific version for
juliarepl (3902)
Changed
- The
juliavscode/htmlMIME type is now deprecated in favour ofapplication/vnd.julia-vscode.plotpane+html(#2940) - Swapped from webpack to esbuild for bundling (#3903)
- Set up prettier for auto-formatting and updated eslint configuration (#3905)
Fixed
- The workspace now tolerates incorrectly implemented
AbstractArrays (#3618) - Better filename-only backtrace link handling (#3738)
[1.158.0] - 2025-11-06
Changed
- Improved CI performance by optimizing test matrix (#3897)
Fixed
- SymbolServer.jl:
- Tolerate binding errors gracefully (SymbolServer.jl#302)
[1.157.0] - 2025-11-05
Added
- Added API to get
juliaupexecutable path (#3878)
Fixed
- Fixed
invokelatestmodule RPC calls (#3882) - Improved Julia 1.12 compatibility (#3884)
- Fixed
active_repl_backendnull checks - Fixed absolute paths being written into workspace settings
- LanguageServer.jl:
- Added
publickeyword support for completions (Julia 1.12) (LanguageServer.jl#1365) - Fixed showing underlying datatype docstring for functions
- Added
- CSTParser.jl:
- Fixed parser issues with
begin...endblocks and^operator (CSTParser.jl#400)
- Fixed parser issues with
- StaticLint.jl:
- Julia 1.12 compatibility fixes (StaticLint.jl#403)
- Fixed properly accessing env for non FileServers
- Tweaked type handling to work on Julia 1.12
- Fixed
nothingequality checks againstBase.nothing
- SymbolServer.jl:
- Fixed loading bay access prior to definition on Julia 1.12 (SymbolServer.jl#298)
- Made subprocess startup more robust (SymbolServer.jl#299)
- Removed dependency on PkgEntry for empty dicts (SymbolServer.jl#300)
- Adjusted
jl_module_namesccall and tweaked printing (SymbolServer.jl#301)
[1.156.0] - 2025-09-24
Fixed
- Fixed proper handling of null values in environment path settings (#3873)
[1.155.0] - 2025-09-03
Fixed
- Empty environment paths no longer cause issues (#3866)
- Handle filename-only links in the terminal better (e.g.
foo.jlwithout a./prefix) (#3738)
[1.154.0] - 2025-08-28
Added
- Added support for
${workspaceFolder}inenvironmentPathconfiguration setting. - Added ability to override the juliaup channel that would be used to run language server. By default language server looks for the "release" channel. A plugin configuration
julia.languageServerJuliaupChannelor an envJULIA_VSCODE_LANGUAGESERVER_CHANNELcan be used to override that. The env would be useful in managed environment situations where the juliaup and vscode installations are pre-configured by an administrator. The channel value is looked up from the environment variable and plugin configuration in that order. - Added syntax highlighting to docstrings in
.jlsource files injecting toL:string.docstring.julia. Note that nested docstrings are not supported. (#3852)
Fixed
@profviewnow works correctly on threaded code when Julia is launched with interactive threads (#3821)
[1.140.0] - 2025-05-06
Added
- Added additional Literate.jl cell delimiters corresponding to Markdown headers to the default
julia.cellDelimitersettings. - Added
juliaAdditionalArgsoption to Julia debug launch configuration (#3699). - Added passing of
configfield when making a Plotly plot in the plot pane (#3734). - Integrated and persistent Julia REPL processes now have the
JULIA_VSCODE_REPLenvironment variable set (#3764) - Added
julia.languageServerExecutablePathsetting, which allows specifying a Julia executable path specifically for the LanguageServer runtime (#3793).
Fixed
@profviewand@profview_allocsnow support the optional keyword arguments ofProfile.print, such asrecur = :flat(#3666).- The integrated REPL now respects a user-set active project (e.g. in
additionalArgsandstartup.jl) (#3670) - Changes to how Jupyter Notebook Metadata is updated (#3690)
- Fix a bug where non-supported schemes were sent to the LS (#3700)
- Fix saving from plot pane for text/html plots with a single img tag (e.g. Makie) and decrease "copy plot to clipboard" failure rate due to missing focus (#3780)
- Julia 1.12 compatibility (#3807)
Changed
- Plotly javascript library updated to 2.35.2 (#3750).
- Test item runner migrated to TestItemControllers.jl
- Changed
inferJuliaNumThreadsto avoid settingJULIA_NUM_THREADSto an empty string (which is undefined behaviour).
[1.104.0] - 2024-07-29
Fixed
- The integrated REPL now once again starts with the user defined environment (#3660)
[1.103.0] - 2024-07-27
Changed
- Drop support for pre 1.6 Julia versions in the language server (#3610)
Open Package Directory in New Windownow first searches packages in theJULIA_PKG_DEVDIRenvironment variable, and then in the standard dev path #3632. This allows user-defined dev folders.
[1.77.0] - 2024-04-24
Fixed
- Add Julia 1.11 support (#3583, CSTParser.jl#388)
LoadErrors 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)
Changed
- Items in the environment selector are now sorted more naturally and Pluto-internal environments are filtered out (#3594)
[1.76.0] - 2024-04-05
Fixed
- 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 (StaticLint.jl#383)
@kwdef mutable structwithconstfields are now analyzed correctly (StaticLint.jl#384)- More operators are now correctly highlighted (#279)
[1.74.0] - 2024-03-07
Fixed
- The
Always copy codeoption should now work properly on remote machines (3559) - Handle
\rcharacters for improved rendering of progress bars and the like in Notebook Outputs (3561)
[1.73.0] - 2024-02-20
Fixed
- Fixed an edge case of
whereparsing in the presence of curlies and operators (CSTParser.jl#384)
[1.72.0] - 2024-02-16
Fixed
- Static inlay hints are now automatically disabled when runtime hints are displayed (#3539)
- Stackoverflow in
package_callbacks(#3546) UndefVarErroron starting Julia Test Server (#3541)- Even if loading a Julia vs-code component fails the Julia LOAD_PATH does not get poluted.
Changed
- Static inlay hints are now disabled by default (#3539)
[1.70.0] - 2024-02-10
Added
- Added static inlay hints for variable definitions and function parameters (#3519, LanguageServer.jl#1077)
Changed
- Setting id for runtime inlay hints changed to
julia.inlayHints.runtime.enabled(#3519)
Fixed
- Only update notebook metadata when it has actually changed (#3530)
[1.66.0] - 2024-01-09
Changed
- Default of
julia.persistentSession.closeStrategychanged to overridable (#3494) - Key combination for
language-julia.clearAllInlineResultsInEditorchanged fromAlt+I Alt+CtoAlt+J Alt+Cto avoid clashes with the key combination for typing|(which is Alt+I on some keyboards) (#3509)
Fixed
- 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 (CSTParser.jl#378)
- String macros with module access and a suffix are now correctly handled (CSTParser.jl#379)
- The transpose operator is now correctly parsed when applied to
$interpolated symbols (CSTParser.jl#380) global (a,b,)with a trailing comma is now correctly parsed (CSTParser.jl#381)
[1.65.0] - 2023-12-14
Fixed
- Fixed a regression introduced in 1.62 that introduced an additional
"into environments automatically opened (#3490)
Changed
- The first workspace folder is now more consistently set as the active environment (#3490)
- Removed the
julia.persistentSession.warnOnKillsetting in favour ofjulia.persistentSession.closeStrategy. It is now possible to always close the tmux session or always disconnect (#3490)
[1.64.0] - 2023-12-12
Fixed
- Properly substitute VS Code variables when no workspace folders are open (#3490)
[1.63.0] - 2023-12-12
Fixed
- Syntax highlighting for interpolated generators and comprehensions (#268)
- Syntax highlighting for adjacent interpolated variables (#269)
- Syntax highlighting for escaped characters in
refstrings andvarsymbols (#270)
[1.62.0] - 2023-12-12
Added
- Support additional VS Code variables in the
julia.environmentPathandjulia.persistentSession.tmuxSessionNamesettings (#3477, #3489)
Fixed
- Table headers no longer show
nullif 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.shellinside of the tmux session as well (#3489)
Changed
- The default keybinding for the
Julia: Clear All Inline Resultscommand changed fromCtrl+I Ctrl+CtoAlt+I Alt+Cto prevent a clash with the Copilot Chat extension (#3487) - The
julia.persistentSession.shellExecutionArgumentsetting now accepts a space-separated list of arguments (#3489)
[1.61.0] - 2023-11-30
Added
- The integrated table viewer now shows column labels (#3479)
- Support syntax highlight and cell execution for
Documenter's@replblocks (#3469)
Fixed
- Cthulhu inlay hints are now displayed even when the plot pane is disabled (#3472)
[1.60.0] - 2023-11-14
Fixed
- Relaxed VS Code version requirement to 1.78
[1.59.0] - 2023-11-13
Fixed
- Progress logging now works in detached persistent session (#3462)
[1.58.0] - 2023-11-13
Fixed
- Toggling progress display now works correctly (#3450)
|>is now interpreted by default so that breakpoints in piped functions work (#3459)
Changed
- Plotting within a disconnected Julia session now does not throw an error and shows the 100 newest plots in the UI (#3460)
[1.57.0] - 2023-11-10
Added
- Support for Julia 1.10 and 1.11
[1.56.0] - 2023-10-23
Fixed
- Julia exe path is once again properly determined (#3447)
[1.55.0] - 2023-10-23
Changed
JULIA_VSCODE_INTERNALis now set for all internal Julia processes (#3433)VSCodeLoggercan now optionally take a parent logger (#3428)
Fixed
ansis now set correctly in Julia 1.10 and newer (#3440)- More correct auto completion logic for mismatched case ([LanguageServer#1177][https://github.com/julia-vscode/LanguageServer.jl/pull/1177))
- "Expand function" action no longer removes whitespace and comments ([LanguageServer#1196][https://github.com/julia-vscode/LanguageServer.jl/pull/1196))
- Diagnostics are now more reliably published for documents open when the editor starts ([LanguageServer#1254][https://github.com/julia-vscode/LanguageServer.jl/pull/1254))
- TOML files are now longer parsed or linted with the Julia linter ([LanguageServer#1251][https://github.com/julia-vscode/LanguageServer.jl/pull/1251))
- Fixed an issue with doc search ([LanguageServer#1250][https://github.com/julia-vscode/LanguageServer.jl/pull/1250))
[1.54.0] - 2023-09-28
Added
- Named
@testitems and@testsets now show up in the outline ([LanguageServer#1240][https://github.com/julia-vscode/LanguageServer.jl/pull/1240), [LanguageServer#1245][https://github.com/julia-vscode/LanguageServer.jl/pull/1245))
Changed
- The linter now understands
Revise.includet([StaticLint#373][https://github.com/julia-vscode/StaticLint.jl/pull/373)) - Print diagnostics when parsing a file fails ([StaticLint#377][https://github.com/julia-vscode/StaticLint.jl/pull/377))
- Improved displayed types for bindings in the outline view ([LanguageServer#1245][https://github.com/julia-vscode/LanguageServer.jl/pull/1245))
Fixed
- Fixed typo in destructuring assignment inference code ([StaticLint#376][https://github.com/julia-vscode/StaticLint.jl/pull/376))
- "Go to definition" now properly works for macros ([StaticLint#374][https://github.com/julia-vscode/StaticLint.jl/pull/374))
[1.52.0] - 2023-09-18
Added
- Timing breakdowns for language server startup ([LanguageServer#1243][https://github.com/julia-vscode/LanguageServer.jl/pull/1243))
Changed
- Significant improvements to symbol cache downloads ([SymbolServer#263][https://github.com/julia-vscode/SymbolServer.jl/pull/263))
- Added debug timer outputs for cache file downloads ([SymbolServer#274][https://github.com/julia-vscode/SymbolServer.jl/pull/274))
- Removed precompile output for LanguageServer.jl ([LanguageServer#1222][https://github.com/julia-vscode/LanguageServer.jl/pull/1222))
- Files larger than 2MB are now disregarded during parsing and linting, which can drastically improve performance ([StaticLint#333][https://github.com/julia-vscode/StaticLint.jl/pull/333))
Fixed
- Improved symbol cache generation to account for method overloads to functions defined in other packages ([SymbolServer#272][https://github.com/julia-vscode/SymbolServer.jl/pull/272))
- Potential fix for a symbol cache corruption issue ([SymbolServer#266][https://github.com/julia-vscode/SymbolServer.jl/pull/266))
- Function tooltips now list all methods applicable in the current context ([LanguageServer#1241][https://github.com/julia-vscode/LanguageServer.jl/pull/1241))
- Reference detection now follows Julia's scoping rules more closely ([LanguageServer#1104][https://github.com/julia-vscode/LanguageServer.jl/pull/1104))
- Type inference now correctly handles destructuring assignment ([StaticLint#371][https://github.com/julia-vscode/StaticLint.jl/pull/371))
- The check for unused function arguments now correctly handles
@nospecializedkeyword arguments ([StaticLint#372][https://github.com/julia-vscode/StaticLint.jl/pull/372)) - Method detection during symbol cache generation now correctly works on Julia 1.10 ([SymbolServer#273][https://github.com/julia-vscode/SymbolServer.jl/pull/273))
[1.51.0] - 2023-08-29
Changed
- Use the built-in diff viewer for failed
@tests (#3378)
Fixed
- Various fixes for inline eval display logic (#3388)
[1.49.0] - 2023-08-25
Added
- The REPL now also uses the
errglobal variable to contain the most recent exception (#3112). - Added support for the custom
application/vnd.julia-vscode.inlayHintsMIME 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)
Changed
- The
julia.plots.pathsetting now supports absolute and non-existing paths (#3323)
Fixed
- 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 ([LanguageServer#1228][https://github.com/julia-vscode/LanguageServer.jl/pull/1228))
[1.6.30] - 2022-08-08
Fixed
- Fix shell integration when using inline evaluation (#2992)
[1.6.29] - 2022-08-05
Added
- Inline results now support markdown-
showmethods (#2933) - The Julia REPL works with VS Code's shell integration feature (#2941)
- It's now possible to add a special
ALL_MODULES_EXCEPT_MAINtoken to the list of compiled modules when debugging (#61)
Changed
- The language server now uses incremental sync ([LanguageServer#1105][https://github.com/julia-vscode/LanguageServer.jl/pull/1105))
Fixed
Assigned but not usedlinter annotations are now slightly more correct ([StaticLint#339][https://github.com/julia-vscode/StaticLint.jl/pull/339))- Actually fixed that issue with copying
Exprs while debugging (#60) - Fixed
whenclauses of some keybindings that caused incorrect matches wheneditorLangId != 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 ([LanguageServer#1101][https://github.com/julia-vscode/LanguageServer.jl/pull/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)([StaticLint#338][https://github.com/julia-vscode/StaticLint.jl/pull/338)) - Added a code action for adding a SPDX header to files ([LanguageServer#1075][https://github.com/julia-vscode/LanguageServer.jl/pull/1075))
- Added a code action for organizing
using/importstatements ([LanguageServer#1076][https://github.com/julia-vscode/LanguageServer.jl/pull/1076)) - Added a code action for converting string to raw strings and back ([LanguageServer#1082][https://github.com/julia-vscode/LanguageServer.jl/pull/1082))
- Added a code action for adding a docstring template for function definitions ([LanguageServer#1084][https://github.com/julia-vscode/LanguageServer.jl/pull/1084))
Changed
- Switched to LSP 3.17 (#2886)
Fixed
- Made the workspace even more robust. For real this time. (#2892)
- Various parser fixes ([CSTParser#338][https://github.com/julia-vscode/CSTParser.jl/pull/338))
- Fixed an issue with multiple "missing reference" actions being applied at the same time ([LanguageServer#1089][https://github.com/julia-vscode/LanguageServer.jl/pull/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 Filecommand (#1509, #2877) - Cell evaluation now shows inline results for all top-level code blocks when the
julia.execution.inlineResultsForCellEvaluationsetting is enabled (#2866) - Added a code action to replace
==/!=with===/!==for comarisons withnothing([LanguageServer#1048][https://github.com/julia-vscode/LanguageServer.jl/pull/1048)) - Added completions for string macros ([LanguageServer#1046][https://github.com/julia-vscode/LanguageServer.jl/pull/1046))
- Added a code action for replacing unused assignments/arguments with an underscore ([LanguageServer#1065][https://github.com/julia-vscode/LanguageServer.jl/pull/1065), [LanguageServer#1072][https://github.com/julia-vscode/LanguageServer.jl/pull/1072))
Changed
- The Julia version is now appended to the REPL title (#2857)
- The extension is now only auto-activated when a
Project.tomlis in the workspace, not any arbitrary.jlfile (#2850) - Plot navigator screenshots were removed due to performance issues (#2869)
- Improved documentation search scoring algorithm ([LanguageServer#1057][https://github.com/julia-vscode/LanguageServer.jl/pull/1057))
- Some code actions are now marked as
preferred, which makes applying them easier ([LanguageServer#1063][https://github.com/julia-vscode/LanguageServer.jl/pull/1063)) - Code action
kinds are now set appropriately when applicable ([LanguageServer#1062][https://github.com/julia-vscode/LanguageServer.jl/pull/1062)) - Improved auto completion presentation ([LanguageServer#1052][https://github.com/julia-vscode/LanguageServer.jl/pull/1052))
- Snippet completions now have their
kindset tosnippet, as is appropriate ([LanguageServer#1067][https://github.com/julia-vscode/LanguageServer.jl/pull/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)
ansassignment is now more robust, which fixes an issue when IJulia.jl is loaded (#2867)- Lines are now broken properly in the documentation browser (#2870)
argscan now be specified in the Julia launch configuration (#2872)constfields in mutable structs are now parsed correctly ([StaticLint#336][https://github.com/julia-vscode/StaticLint.jl/pull/336))- Fixed a race condition when downloading symbol server cache files ([SymbolServer#251][https://github.com/julia-vscode/SymbolServer.jl/pull/251))
- Package resolution now works properly for 1.7-style Manifests ([SymbolServer#252][https://github.com/julia-vscode/SymbolServer.jl/pull/252))
- Placeholder paths replacement in symbol server cache files now works more robustly ([SymbolServer#253][https://github.com/julia-vscode/SymbolServer.jl/pull/253))
- Fixed an issue with deepcopying
Exprs in the debugger (#58) - Code actions triggers are no longer off by one character ([LanguageServer#1050][https://github.com/julia-vscode/LanguageServer.jl/pull/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 == nothinglinter pass now also detectsnothings on the LHD ([StaticLint#334][https://github.com/julia-vscode/StaticLint.jl/pull/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
@editis now much more robust (#2823)- Fixed a formatting crash ([LanguageServer#1045][https://github.com/julia-vscode/LanguageServer.jl/pull/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_PATHis 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 ([LanguageServer#1042][https://github.com/julia-vscode/LanguageServer.jl/pull/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
exitnotifications correctly ([LanguageServer#1039][https://github.com/julia-vscode/LanguageServer.jl/pull/1039))
[1.6.5] - 2022-03-20
Fixed
- Inline error are now handled better during debugging (#56)
- Fixed an issue with generator linting ([LanguageServer#1037][https://github.com/julia-vscode/LanguageServer.jl/pull/1037))
- Fixed an issue with autocompletions containing multi-byte characters ([LanguageServer#1035][https://github.com/julia-vscode/LanguageServer.jl/pull/1035))
- Fixed a LSP spec violation ([LanguageServer#1038][https://github.com/julia-vscode/LanguageServer.jl/pull/1038))
[1.6.4] - 2022-03-17
Changed
- The default formatting style now does not surround kwargs
=with whitespace ([LanguageServer#1033][https://github.com/julia-vscode/LanguageServer.jl/pull/1033))
Fixed
- Errors in notebooks are now handled more robustly (#2781, #2783)
Revise.reviseis 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
@docparsing issues ([CSTParser#329][https://github.com/julia-vscode/CSTParser.jl/pull/329), [CSTParser#330][https://github.com/julia-vscode/CSTParser.jl/pull/330)) - Only pass on valid options to JuliaFormatter ([LanguageServer#1030][https://github.com/julia-vscode/LanguageServer.jl/pull/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=autosetting (#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.NumThreadssetting now allows for a value ofautoif 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
juliaupintegration 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)
=/innormalization for iteration over ranges is now disabled by default ([LanguageServer#1006][https://github.com/julia-vscode/LanguageServer.jl/pull/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
@profviewfailed 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.enablePersistentSessionssetting (#2551) - 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)
[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 Filenow 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 ([SymbolServer#243][https://github.com/julia-vscode/SymbolServer.jl/pull/243), [SymbolServer#244][https://github.com/julia-vscode/SymbolServer.jl/pull/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
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_NUM_THREADSandJULIA_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 ([CSTParser#313][https://github.com/julia-vscode/CSTParser.jl/pull/313), [CSTParser#315][https://github.com/julia-vscode/CSTParser.jl/pull/315))
- Fixed an erroneous method call error annotation ([StaticLint#307][https://github.com/julia-vscode/StaticLint.jl/pull/307))
- Fixed a stack overflow in the linter ([StaticLint#308][https://github.com/julia-vscode/StaticLint.jl/pull/308))
- Fixed a method error in the auto-completion code ([LanguageServer#983][https://github.com/julia-vscode/LanguageServer.jl/pull/983))
- Functors are now correctly displayed in the outline ([LanguageServer#990][https://github.com/julia-vscode/LanguageServer.jl/pull/990), [LanguageServer#995][https://github.com/julia-vscode/LanguageServer.jl/pull/995))
- Fixed an issue with runtime diagnostics crashing the language server ([LanguageServer#996][https://github.com/julia-vscode/LanguageServer.jl/pull/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 ([CSTParser#312][https://github.com/julia-vscode/CSTParser.jl/pull/312))
- Majorly improvements to symbol cache loading performance and responsiveness ([SymbolServer#240][https://github.com/julia-vscode/SymbolServer.jl/pull/240), [SymbolServer#241][https://github.com/julia-vscode/SymbolServer.jl/pull/241))
- Language server initialization is now reported much more granularly ([LanguageServer#994][https://github.com/julia-vscode/LanguageServer.jl/pull/994))
- Improved tmux session handling:
Julia: Stop REPLnow shows a prompt for closing the tmux session; also added aJulia: 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, [LanguageServer#972][https://github.com/julia-vscode/LanguageServer.jl/pull/972))
Added
- 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 additionaltitleargument, 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 ([LanguageServer#981][https://github.com/julia-vscode/LanguageServer.jl/pull/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.notebookControllersetting (#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
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)
Changed
executablePathis now once againmachine-overridablethanks 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
endappears 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
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
notebookControllersetting 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
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
completionmodeandexecution.resultTypesettings (#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.environmentPathandjulia.executablePathsettings (#2153)
Fixed
[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
[1.2.2] - 2021-06-01
Changed
Julia: Connect external REPLnow 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)
tmuxintegration and connecting to an external process now properly work on Windows (#2182)
[1.2.1] - 2021-05-27
Fixed
tmuxintegration now works (#2177)- Fixed a crash in the new multi-environment support ([LanguageServer#945][https://github.com/julia-vscode/LanguageServer.jl/pull/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
#propertiesforAbstractrArrays andAbstractDicts (#1927) - Clicking on a symbol now highlights only references to that symbol, instead of all symbols with the same name ([LanguageServer#908][https://github.com/julia-vscode/LanguageServer.jl/pull/908))
Added
- 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, [LanguageServer#892][https://github.com/julia-vscode/LanguageServer.jl/pull/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
usingstatement ([LanguageServer#892][https://github.com/julia-vscode/LanguageServer.jl/pull/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)
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 ([LanguageServer#932][https://github.com/julia-vscode/LanguageServer.jl/pull/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 Barsyntax ([StaticLint#276][https://github.com/julia-vscode/StaticLint.jl/pull/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_EDITORshould now be more robust (#2067)
Changed
- Auto-completions now allow for a certain degree of fuzzyiness ([LanguageServer#906][https://github.com/julia-vscode/LanguageServer.jl/pull/906))
Added
- The LS now support selection range requests (use
Shift-Alt-Right/Shift-Alt-Leftto expand/reduce the "smart selection" in VSCode) ([LanguageServer#893][https://github.com/julia-vscode/LanguageServer.jl/pull/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_transformsmachinery 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
convertmethods (#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
ifconditions (#124).
[1.1.9] - 2021-01-26
Fixed
- Displaying profiler results now works again (#1887).
[1.1.7] - 2021-01-26
Fixed
pwdis 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
$/setTracenotification ([LanguageServer#868][https://github.com/julia-vscode/LanguageServer.jl/pull/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 ([LanguageServer#860][https://github.com/julia-vscode/LanguageServer.jl/pull/860)).
- Fixed jmd parsing ([LanguageServer#859][https://github.com/julia-vscode/LanguageServer.jl/pull/859)).
- THe linter now doesn't attribute every
evalcall toCore.eval([StaticLint#237][https://github.com/julia-vscode/StaticLint.jl/pull/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 Barsyntax ([CSTParser#220][https://github.com/julia-vscode/CSTParser.jl/pull/220)).
Changed
- Switched to a new symbol store format (#1857).
- Major rewrite for CSTParser ([CSTParser#190][https://github.com/julia-vscode/CSTParser.jl/pull/190)).
- StaticLint.jl now supports Julia >= v1.6 ([StaticLint#227][https://github.com/julia-vscode/StaticLint.jl/pull/228)).
- Added additional type inference for the linter ([StaticLint#234][https://github.com/julia-vscode/StaticLint.jl/pull/234)).
Fixed
- 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
Base.@kwdef([StaticLint#233][https://github.com/julia-vscode/StaticLint.jl/pull/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
^Cmore than three times in one second now sends aSIGINTto 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.environmentPathneeds a REPL restart, so added a note to that effect (#1778).- The
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
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([CSTParser#212][https://github.com/julia-vscode/CSTParser.jl/pull/212)). - Added missing
nothingchecks that could cause issues when linting files ([StaticLint#221][https://github.com/julia-vscode/StaticLint.jl/pull/221), [StaticLint#223][https://github.com/julia-vscode/StaticLint.jl/pull/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.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).
Fixed
- 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).
[1.0.9] - 2020-11-04
Added
- The workspace now shows errors encountered while rendering the tree view. Furthermore, it now only special cases
ArrayandDictinstead of theirAbstract...supertypes (#1709). - 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 to1(#1707). - 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, orPkg.activatethe 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.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 relateddisplaymachinery 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_SERVERis now an exposed setting.Julia: Stop REPLcommand.
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
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.
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
- This plugin is now also available on open-vsx.org
[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
ifblocks, unused free parameters, unhandledincludestatements, 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