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 skip keyword argument of @testitem is now honoured. skip=true marks the test item as skipped instead of running it, and skip=<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.enableWorkspaceEnvironmentResolution now defaults to true, so environments without a Manifest.toml (such as a docs/Project.toml) are resolved in a background process and their dependencies resolve instead of being flagged as unresolved imports. Set it to false to 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 @testsetup files 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 @testsetup no 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=yes switch works again, having been disabled unconditionally.
  • include calls inside @testitem, @testmodule, and @testsnippet bodies 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 off and error per rule, include/exclude globs, and path-scoped [[override]] blocks; the minimal, default, and strict presets set the baseline (JuliaWorkspaces.jl#198)
  • New JuliaTestItems.toml config 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.toml and JuliaFormat.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, and node_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.toml is 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)
  • @testitem bodies now see the current package as well as the @testmodule and @testsnippet setups 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/Core now 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 Vararg spellings (::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, so f(x::T) where T<:Real rules out mismatching arguments again (JuliaWorkspaces.jl#187)
  • An inner where in 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.toml or 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

[1.226.0] - 2026-07-25

Fixed

[1.225.0] - 2026-07-25

Added

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 @debug logging is now emitted only when the language server runs in developer mode, so it no longer adds noise for users who set JULIA_DEBUG (#4148)

Fixed

  • The active environment path is now pushed to the language server via a julia/setEnvironmentPath notification instead of a plain setting; the client resolves the path (expanding ${env:...}/${config:...} and clearing stale state first), so environment switches — including manual settings.json edits — 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 DataType rather than being reclassified as a Function, so completions, hover, and linting handle them correctly (JuliaWorkspaces.jl#155)
  • The CannotDeclareConst diagnostic 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 to propertynames

[1.220.0] - 2026-07-21

Added

  • Code formatting is now configurable per project through a juliaformat.toml file, with selectable styles (default, yas, blue, sciml, minimal, and a new runic backend); the minimal style 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 include but 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 UnresolvedImport diagnostic marks the first unresolvable component of a using/import path; 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.enableDynamicIndexing setting to toggle dynamic package indexing; disable it for lower resource usage at the cost of potentially reduced functionality (#4079)
  • New julia.maxConcurrentIndexingProcesses setting caps how many environment-indexing child processes run at once (default 4; set to 0 for no limit) (LanguageServer.jl#1402)
  • New julia.enableWorkspaceEnvironmentResolution setting 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.org service (previously https://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-local julialint.toml file (#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 packages directories 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 (previously symbols), and a scope containing an unresolved wildcard using suppresses 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/Base names and ::Any annotations are omitted (JuliaWorkspaces.jl#141)

Fixed

  • Fixed a race condition in REPL startup (#4138)
  • Completing non-standard var"..." identifiers no longer duplicates the var" 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)
  • @safetestset bodies are now isolated in their own scope (JuliaWorkspaces.jl#126)
  • @parameters, @variables, and @constants are 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)
  • @label targets are no longer flagged as unused bindings (JuliaWorkspaces.jl#132)
  • The body of @test_throws is 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 using and then re-exported now resolve through using chains instead of being flagged as missing (JuliaWorkspaces.jl#139)
  • Hovering a keyword argument (e.g. y in g(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 inlayHint request 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 using and 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-module using (JuliaWorkspaces.jl#149)
  • The call-signature linter now resolves const type 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: Bar where Bar is re-exported by Foo) 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 julia and juliamarkdown languages explicitly via contributes.languages so 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 @nospecialize with no arguments during method matching (StaticLint.jl#448)

[1.217.0] - 2026-05-29

Fixed

[1.216.0] - 2026-05-29

Changed

Added

Fixed

  • Fix @profview error in Julia v1.8.5: threadpooltids and threadpool are 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 Vararg signatures (SymbolServer.jl#315)
  • Improved bounded Vararg matching 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 @nospecialize without any arguments (StaticLint.jl#428)
  • Early-return in add_binding when the binding name is nothing (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: foo inside a baremodule (StaticLint.jl#433)
  • Stop emitting const declaration warnings for imported bindings (StaticLint.jl#434)
  • Don't show redeclaration warnings for bare local bindings (StaticLint.jl#435)
  • Handle multiple where clauses in function definitions (StaticLint.jl#436)
  • Show unused-funcarg warnings after underscore-prefixed args instead of suppressing all later ones (StaticLint.jl#437)
  • Unwrap where clauses for type aliases (StaticLint.jl#438)
  • Correctly mark global bindings declared in local scopes (StaticLint.jl#439)
  • Resolve joinpath calls with string-literal arguments (StaticLint.jl#441)
  • Correctly mark right-hand-side bindings of @enum declarations (StaticLint.jl#442)
  • Infer types correctly for tuple destructuring assignments (StaticLint.jl#443)
  • Only check for missing references inside @macro calls 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 await async 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_profile now accepts a second optional argument for lidict, which should allow plotting profiles retrieved from other sessions or machines (#4080)
  • Removed the unused applyTextEdit command (#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 installed state (#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 didChange handler (LanguageServer.jl#1380)
  • Properly initializie editor PID polling so the language server reliably shuts down with the IDE (LanguageServer.jl#1379)
  • Fix Base.hash overload 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 in startup.jl via atreplinit could 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 Command or 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.defaultMimeType setting now allows toggling between image/png and image/svg+xml as the preferred MIME type for plots (#4045)

Fixed

[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.environmentVariables setting can now be used to configure the environment all Julia process start with (#4031)

Changed

  • The juliaup auto installer now uses wget by default (on Linux, with a fallback to curl) 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

[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

Fixed

[1.182.0] - 2026-02-10

Fixed

  • Addded missing try-catch in one of the juliaup flows (#4023)
  • Handle julia.exe +channel in executablePath setting (#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_PATH specific to that server (#4012)

Added

  • Added CodeLens and FoldingRange support 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+html MIME type now supports an optional ;title=[^,]+ parameter to set a custom title for the pane, separate from the id parameter (#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.exe on 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 inRange filter 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 all by default in profile viewer (#3968)
  • Also show "Copy Plot" button for HTML plots (#3969)
  • Start LS when julia.executablePath is empty, matching previous behaviour (#3975)

[1.171.0] - 2026-01-06

Fixed

  • We now try to interpret an empty julia.executablePath as julia.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.keepAlive again 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.executablePath again instead of insisting on its own setting (#3932)
  • Juliaup overrides are now properly taking into account when starting the REPL, but only if julia.executablePath is set to julia or 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/png is now once again preferred over image/svg+xml in 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 envPath argument (#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.additionalArgs setting (#3909)

[1.159.0] - 2025-11-19

Added

  • The application/vnd.julia-vscode.plotpane+html and application/vnd.julia-vscode.custompane+html MIME 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-pty based task runner and REPL (#3904)
  • Added suggestions to auto install julia and/or juliaup (3898)
  • Added ability to select specific version for julia repl (3902)

Changed

  • The juliavscode/html MIME type is now deprecated in favour of application/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

[1.157.0] - 2025-11-05

Added

  • Added API to get juliaup executable path (#3878)

Fixed

  • Fixed invokelatest module RPC calls (#3882)
  • Improved Julia 1.12 compatibility (#3884)
  • Fixed active_repl_backend null checks
  • Fixed absolute paths being written into workspace settings
  • LanguageServer.jl:
    • Added public keyword support for completions (Julia 1.12) (LanguageServer.jl#1365)
    • Fixed showing underlying datatype docstring for functions
  • CSTParser.jl:
  • 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 nothing equality checks against Base.nothing
  • SymbolServer.jl:

[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.jl without a ./ prefix) (#3738)

[1.154.0] - 2025-08-28

Added

  • Added support for ${workspaceFolder} in environmentPath configuration 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.languageServerJuliaupChannel or an env JULIA_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 .jl source files injecting to L:string.docstring.julia. Note that nested docstrings are not supported. (#3852)

Fixed

  • @profview now 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.cellDelimiter settings.
  • Added juliaAdditionalArgs option to Julia debug launch configuration (#3699).
  • Added passing of config field when making a Plotly plot in the plot pane (#3734).
  • Integrated and persistent Julia REPL processes now have the JULIA_VSCODE_REPL environment variable set (#3764)
  • Added julia.languageServerExecutablePath setting, which allows specifying a Julia executable path specifically for the LanguageServer runtime (#3793).

Fixed

  • @profview and @profview_allocs now support the optional keyword arguments of Profile.print, such as recur = :flat (#3666).
  • The integrated REPL now respects a user-set active project (e.g. in additionalArgs and startup.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 inferJuliaNumThreads to avoid setting JULIA_NUM_THREADS to 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 Window now first searches packages in the JULIA_PKG_DEVDIR environment 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 struct with const fields are now analyzed correctly (StaticLint.jl#384)
  • More operators are now correctly highlighted (#279)

[1.74.0] - 2024-03-07

Fixed

  • The Always copy code option should now work properly on remote machines (3559)
  • Handle \r characters for improved rendering of progress bars and the like in Notebook Outputs (3561)

[1.73.0] - 2024-02-20

Fixed

  • Fixed an edge case of where parsing 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)
  • UndefVarError on 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

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.closeStrategy changed to overridable (#3494)
  • Key combination for language-julia.clearAllInlineResultsInEditor changed from Alt+I Alt+C to Alt+J Alt+C to 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.warnOnKill setting in favour of julia.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 ref strings and var symbols (#270)

[1.62.0] - 2023-12-12

Added

  • Support additional VS Code variables in the julia.environmentPath and julia.persistentSession.tmuxSessionName settings (#3477, #3489)

Fixed

  • Table headers no longer show null if no column label existss (#3486)
  • Workspace directories with spaces in the path are now handled more correctly (#3489)
  • Persistent sessions now use the shell specified in julia.persistentSession.shell inside of the tmux session as well (#3489)

Changed

  • The default keybinding for the Julia: Clear All Inline Results command changed from Ctrl+I Ctrl+C to Alt+I Alt+C to prevent a clash with the Copilot Chat extension (#3487)
  • The julia.persistentSession.shellExecutionArgument setting now accepts a space-separated list of arguments (#3489)

[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 @repl blocks (#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_INTERNAL is now set for all internal Julia processes (#3433)
  • VSCodeLogger can now optionally take a parent logger (#3428)

Fixed

  • ans is 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 @nospecialized keyword 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 err global variable to contain the most recent exception (#3112).
  • Added support for the custom application/vnd.julia-vscode.inlayHints MIME type to display custom inlay hints (e.g. types inline with source code) in the editor (#3328)
  • Documenter code blocks can now be evaluated (#3007)
  • Raw notebook cells are now supported (#3206)

Changed

  • The julia.plots.path setting 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-show methods (#2933)
  • The Julia REPL works with VS Code's shell integration feature (#2941)
  • It's now possible to add a special ALL_MODULES_EXCEPT_MAIN token to the list of compiled modules when debugging (#61)

Changed

  • The language server now uses incremental sync ([LanguageServer#1105][https://github.com/julia-vscode/LanguageServer.jl/pull/1105))

Fixed

  • Assigned but not used linter 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 when clauses of some keybindings that caused incorrect matches when editorLangId != julia (#2971)

[1.6.25] - 2022-06-17

Changed

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

Fixed

  • Restored a check (and notification) as to whether the Julia path is valid (#2923)
  • Erroneous .JuliaFormatter.tomls no longer cause the language server to crash ([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/import statements ([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 File command (#1509, #2877)
  • Cell evaluation now shows inline results for all top-level code blocks when the julia.execution.inlineResultsForCellEvaluation setting is enabled (#2866)
  • Added a code action to replace ==/!= with ===/!== for comarisons with nothing ([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.toml is in the workspace, not any arbitrary .jl file (#2850)
  • Plot navigator screenshots were removed due to performance issues (#2869)
  • Improved documentation search scoring algorithm ([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 kind set to snippet, 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)
  • ans assignment is now more robust, which fixes an issue when IJulia.jl is loaded (#2867)
  • Lines are now broken properly in the documentation browser (#2870)
  • args can now be specified in the Julia launch configuration (#2872)
  • const fields in mutable structs are now parsed correctly ([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 == nothing linter pass now also detects nothings 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

  • @edit is 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_PATH is now correctly set in notebooks (#2810)
  • Trying to display an empty profile trace now shows a warning instead of emitting a scary looking error (#2809)
  • Latex completions are now more robust ([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 exit notifications 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.revise is now called in the most recent world during inline evaluation (#2782)

[1.6.2] - 2022-03-11

Fixed

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

[1.6.1] - 2022-03-10

Added

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

Changed

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

Fixed

  • Julia-specific notebook toolbar icons now only show up for notebooks with Julia kernels (#2758)
  • Fixed version incompatibility in debugger (#52)
  • Fixed certain @doc parsing issues ([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=auto setting (#2666)

Changed

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

Fixed

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

[1.5.11] - 2022-01-17

Fixed

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

Changed

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

[1.5.10] - 2022-01-17

Fixed

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

[1.5.9] - 2022-01-05

Fixed

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

[1.5.8] - 2021-12-21

Fixed

  • juliaup integration now works properly (#2374)

[1.5.7] - 2021-12-14

Fixed

  • Code execution in Julia markdown files should now work as intended (#2584)
  • Plot pane is now properly confined to its view column (#2611)
  • System image building now supports the new manifest format (#2617)
  • =/in normalization for iteration over ranges is now disabled by default ([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 @profview failed to collect any traces (#2551)
  • The REPL is now terminated when VS Code is closed, which should work around issues introduced by the terminal.integrated.enablePersistentSessions setting (#2551)
  • Fixed various issues with the integrated table viewer (#2551)
  • It's now once again possible to use the Run/Debug in New Process commands concurrently (#2551)

[1.5.4] - 2021-11-11

Changed

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

[1.5.3] - 2021-11-11

Fixed

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

Changed

  • Improved messaging around LS startup failures (#2542)
  • Added a setting for the symbol cache server (#2547)
  • Improvements to SymbolServer cache and download responsiveness and performance ([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

  • InteractiveUtils is now properly loaded in notebooks (#2457)
  • Runtime diagnostics are now displayed in the REPL in some circumstances (#2536)
  • Progress ETA will no longer show NaN or Inf sometimes (#2536)
  • Notebook kernels now load the user's startup.jl (#2536)
  • JULIA_NUM_THREADS and JULIA_EDITOR are now correctly set for existing tmux sessions (#2534)
  • Inline results now behave properly with CRLF linendings and aren't as easily invalidated by unrelated changes (#2535)
  • The error message as now once again properly displayed in notebooks (#2509)
  • Fixed various parser issues ([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 REPL now shows a prompt for closing the tmux session; also added a Julia: Disconnect external REPL command (#2532)
  • Julia keybindings now work properly in Weave files (#2467)
  • Plot pane interaction now requires the user to hold Alt/Option to avoid conflicts in plot's own mouse event handling (#2450)
  • Changed default keybindings for inline/cell evaluation to more closely match the notebook experience (#2296)
  • Code formatting is now powered by the excellent JuliaFormatter.jl, which should be much more reliable and configurable than the previous formatter (#2335, [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.toml file inside the project root folder (#2488).
  • tmux session names can now include $[workspace] which will be replaced with the name of the current file's workspace when the REPL is first opened. (This allows for multiple persistent sessions across different VSCode windows). (#2504)
  • vscodedisplay now takes an additional title argument, which will be displayed in the tab title for tables (#2415)
  • @vscodedisplay will automatically put the input expression as the table viewer tab title (#2533)
  • Quickaction for removing unused function argument names ([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.notebookController setting (#2424)

[1.4.2] - 2021-09-10

Fixed

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

[1.4.1] - 2021-09-10

Fixed

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

[1.4.0] - 2021-09-08

Added

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

Changed

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

Fixed

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

[1.3.34] - 2021-09-03

Changed

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

[1.3.33] - 2021-08-26

Changed

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

Fixed

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

[1.3.32] - 2021-08-23

Fixed

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

[1.3.31] - 2021-08-23

Changed

  • Mention marketplace link in readme (#2368)

Fixed

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

[1.3.30] - 2021-08-15

Fixed

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

[1.3.29] - 2021-08-14

Fixed

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

[1.3.28] - 2021-08-06

Changed

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

Fixed

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

[1.3.27] - 2021-07-29

Changed

  • Improved notebook kernel selection strategy (#2315)

Fixed

  • Notebook restart logic (#2322)

[1.3.26] - 2021-07-27

Changed

  • Updated dependencies.

[1.3.23] - 2021-07-26

Fixed

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

[1.3.20] - 2021-07-25

Changed

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

[1.3.20] - 2021-07-23

Fixed

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

[1.3.18] - 2021-07-22

Changed

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

Fixed

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

[1.3.17] - 2021-07-17

Changed

  • Updated dependencies and required VSCode version to v1.58.1

[1.3.15] - 2021-07-17

Changed

  • Improve Julia notbeook kernel name (#2275)

[1.3.14] - 2021-07-17

Added

  • Support for preferred kernels (#2271)

Chaged

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

[1.3.13] - 2021-07-01

Changed

  • Moved to GitHub actions for CI and release pipelines.

[1.3.2] - 2021-06-30

Fixed

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

[1.3.0] - 2021-06-29

Added

  • Native notebook support (#2217 and others)

Changed

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

Fixed

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

[1.2.5] - 2021-06-18

Fixed

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

[1.2.4] - 2021-06-09

Changed

  • Update various dependencies

[1.2.3] - 2021-06-07

Fixed

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

[1.2.2] - 2021-06-01

Changed

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

Fixed

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

[1.2.1] - 2021-05-27

Fixed

  • tmux integration now works (#2177)
  • Fixed a crash in the new multi-environment support ([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 #properties for AbstractrArrays and AbstractDicts (#1927)
  • Clicking on a symbol now highlights only references to that symbol, instead of all symbols with the same name ([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 tmux sessions, especially useful together with the Remote Editing extension (#1893)
  • Ship CoverageTools.jl as part of the extension so that test runs with coverage always work (#1928)
  • Add option to delete .cov files after test runs (on by default) (#1928)
  • Add new completion modes for unexported variables (#1963, [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 using statement ([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)
  • ARGS are now properly cleared of extension internals (#2090)
  • External Julia processes now respect the number of threads setting (#2141)
  • URIs in markdown hovers (e.g. in stacktraces) now properly link to the right line ([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 Bar syntax ([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_EDITOR should 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-Left to 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_transforms machinery introduced in Julia 1.5 when appicable (#1959)

[1.1.19 - 1.1.25] - 2021-02-17

Changed

  • Fixes to our Azure Pipelines infracstructure

[1.1.18] - 2021-02-15

Fixed

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

Changed

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

[1.1.16] - 2021-02-09

Added

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

[1.1.14] - 2021-02-03

Fixed

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

Changed

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

[1.1.13] - 2021-02-03

Fixed

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

[1.1.12] - 2021-02-02

Fixed

  • Corrected environment handling in certaing cases (#1903)

Changed

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

[1.1.11] - 2021-01-31

Fixed

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

[1.1.10] - 2021-01-28

Fixed

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

[1.1.9] - 2021-01-26

Fixed

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

[1.1.7] - 2021-01-26

Fixed

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

[1.1.6] - 2021-01-25

Changed

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

Fixed

  • The LS now correctly handles the $/setTrace notification ([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 eval call to Core.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 Bar syntax ([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_EDITOR on MacOS for users of VSCode insiders (#1852).
  • Base.displayble is now correctly extended instead of creating a local version (#1856).
  • Conditions for line breakpoints now work again (#26).
  • Debugger now correctly unwraps UnionAlls when collecting global refs (#27).
  • The Linter now correctly handles Base.@kwdef ([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 ^C more than three times in one second now sends a SIGINT to the Julia process (on non-Windows OSs), which should make for more robust interrupts (#1775).

Changed

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

Fixed

  • There can only be one LS startup notification (#1798).
  • Plots are now properly displayed when the plot pane is disabled and only inline results are enabled (#1795).
  • Added some error handling when displaying error stacktraces inline (#1802).
  • The attached debugger now properly sets tls[:source_path] and doesn't crash the Julia REPL on errors (#1804).
  • Staktraces are now properly truncated for inline results (#1812).
  • Progress messages are now properly flushed, so that the progress monitoring is always be up-to-date (#1805).
  • Fixed an issue with parsing kwfuncs using where ([CSTParser#212][https://github.com/julia-vscode/CSTParser.jl/pull/212)).
  • Added missing nothing checks 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.codeInREPL options is set (#1754).
  • The extension now watches the global Manifest as well as Manifests in the workspace for changes and prompts the LS to re-index accordingly (#1756).

Fixed

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

[1.0.9] - 2020-11-04

Added

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

Changed

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

Fixed

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

[1.0.8] - 2020-10-16

Changed

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

[1.0.7] - 2020-10-05

Changed

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

[1.0.6] - 2020-09-29

Changed

  • Updated JS dependencies.

[1.0.5] - 2020-09-27

Added

  • Default paths for Julia 1.5.1 and 1.5.2.

[1.0.4] - 2020-09-18

Added

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

Changed

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

Fixed

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

[1.0.3] - 2020-09-06

Fixed

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

Changed

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

[1.0.2] - 2020-09-01

Changed

  • Improved Azure build pipeline
  • Updated some JS dependencies

[1.0.1] - 2020-08-31

Added

[1.0.0] - 2020-08-28

This is identical to the latest 0.17 release.

[0.17]

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

[0.16]

  • Inline display of evaluation results
  • Workspace view

[0.15]

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

[0.14]

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

[0.13.1]

  • Update CHANGELOG

[0.13.0]

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

[0.12.3]

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

[0.12.2]

  • Various bug fixes

[0.12.1]

  • Various bug fixes

[0.12.0]

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

[0.11.6]

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

[0.11.5]

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

[0.11.4]

  • Fix another julia 1.1 compat issue

[0.11.3]

  • Fix julia 1.1 compat issue

[0.11.2]

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

[0.11.1]

  • Update CHANGELOG

[0.11.0]

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

[0.10.2]

  • Fix automatic julia detection on Mac

[0.10.1]

  • Fix some small bugs

[0.10.0]

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

[0.9.1]

  • Update changelog

[0.9.0]

  • Enable multi-root workspace support
  • Bug fixes

[0.8.0]

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

[0.7.0]

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

[0.6.2]

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

[0.6.1]

  • Bug fixes

[0.6.0]

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

[0.5.1]

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

[0.5.0]

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

[0.4.2]

  • julia 0.5 compatibility

[0.4.1]

  • Update README

[0.4.0]

  • Add linter support

[0.3.1]

  • Patch release to test upgrade procedure

[0.3.0]

  • Add latex completion

[0.2.0]

  • Add "Open Package Directory in New Window" command

[0.1.1]

  • Update project home URLs

[0.1.0]

  • Initial release