# \[ANN\] VS Code extension 1.224 pre-release

**URL:** <https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426>\
**Category:** VS Code\
**Created:** [July 22, 2026, 8:07pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426 "2026-07-22T20:07:10Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [July 22, 2026, 8:07pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/1 "2026-07-22T20:07:11Z")

</div>

Hey everyone,

it’s been a while since we last had a noteworthy release of the Julia extension for VS Code, but this pre-release brings a significant rework of the underlying analysis engine and should fix many long standing bugs around anything that’s related to static analysis of Julia code.

You can find the [changelog on GitHub](https://github.com/julia-vscode/julia-vscode/blob/main/CHANGELOG.md), but even that doesn’t tell the full story: even for complex packages you should see almost no false positives anymore (though macros and `isdefined` guarded field access are still problems and unlikely to be fully solved). The LS should also be significantly faster and more responsive, especially for larger workspaces.

Just as an example: Opening Revise.jl shows no “proper” false positives in the src directory anymore

 ![image](https://global.discourse-cdn.com/julialang/original/3X/b/b/bbda01dd93d5f4e570dd828a8b7cea489bc6fc51.png)  
All missing-reference or missing-reference warnings are due to version or `isdefined` guarded branches.

That said, a rework this significant also needs a lot of real world testing, so we’d appreciate people trying this pre-release and reporting bugs on [GitHub](https://github.com/julia-vscode/julia-vscode/issues/new) or [Slack](https://julialang.slack.com/archives/C6LV2R5JB).

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [July 22, 2026, 8:57pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/2 "2026-07-22T20:57:27Z")

</div>

I see this crash:

```julia-auto
ERROR: Salsa.DerivedFunctionException{MethodError}(MethodError(splitpath, (nothing,), 0x000000000000975a), Union{Salsa.DerivedKey{F, TT}, Salsa.InputKey{F, TT}} where {F, TT}[Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_package_for_file), Tuple{JuliaWorkspaces.URIs2.URI}}((JuliaWorkspaces.URIs2.URI("untitled", nothing, "Untitled-1", nothing, nothing),)), Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_testitems), Tuple{JuliaWorkspaces.URIs2.URI}}((JuliaWorkspaces.URIs2.URI("untitled", nothing, "Untitled-1", nothing, nothing),))])
Stacktrace:
  [1] (::JuliaWorkspaces.var"#%% __user_derived_package_for_file##6#%%__ user_derived_package_for_file##7"{Nothing})(i::@NamedTuple{uri::JuliaWorkspaces.URIs2.URI, parts::Vector{String}})
    @ JuliaWorkspaces ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/layer_projects.jl:252
  [2] filter(f::JuliaWorkspaces.var"#%% __user_derived_package_for_file##6#%%__ user_derived_package_for_file##7"{Nothing}, a::Vector{@NamedTuple{uri::JuliaWorkspaces.URIs2.URI, parts::Vector{String}}})
    @ Base ./array.jl:2937
  [3] #%%__user_derived_package_for_file##4
    @ ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/layer_projects.jl:251 [inlined]
  [4] |>
    @ ./operators.jl:972 [inlined]
  [5] #%%__user_derived_package_for_file##0
    @ ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/layer_projects.jl:246 [inlined]
  [6] |>(x::Vector{JuliaWorkspaces.URIs2.URI}, f::JuliaWorkspaces.var"#%% __user_derived_package_for_file##0#%%__ user_derived_package_for_file##1"{Nothing})
    @ Base ./operators.jl:972
  [7] var"%%__user_derived_package_for_file"(rt::Salsa._TracingRuntime{JuliaWorkspaces.SContext, Salsa._DefaultSalsaStorage.DefaultStorage}, file::JuliaWorkspaces.URIs2.URI)
    @ JuliaWorkspaces ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/layer_projects.jl:245
  [8] macro expansion
    @ ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/Salsa/src/TraceLogging.jl:264 [inlined]
  [9] _memoized_lookup_internal(runtime::Salsa._TracingRuntime{JuliaWorkspaces.SContext, Salsa._DefaultSalsaStorage.DefaultStorage}, key::Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_package_for_file), Tuple{JuliaWorkspaces.URIs2.URI}})
    @ Salsa._DefaultSalsaStorage ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/Salsa/src/default_storage.jl:269
 [10] memoized_lookup(rt::Salsa._TracingRuntime{JuliaWorkspaces.SContext, Salsa._DefaultSalsaStorage.DefaultStorage}, dependency_key::Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_package_for_file), Tuple{JuliaWorkspaces.URIs2.URI}})
    @ Salsa ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/Salsa/src/runtime_generic.jl:20
 [11] memoized_lookup_unwrapped
    @ ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/Salsa/src/runtime_generic.jl:43 [inlined]
 [12] derived_package_for_file
    @ ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/Salsa/src/derived_macro.jl:109 [inlined]
 [13] var"%%__user_derived_testitems"(rt::Salsa._TracingRuntime{JuliaWorkspaces.SContext, Salsa._DefaultSalsaStorage.DefaultStorage}, uri::JuliaWorkspaces.URIs2.URI)
    @ JuliaWorkspaces ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/layer_testitems.jl:45
 [14] macro expansion
    @ ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/Salsa/src/TraceLogging.jl:264 [inlined]
 [15] _memoized_lookup_internal(runtime::Salsa._TracingRuntime{JuliaWorkspaces.SContext, Salsa._DefaultSalsaStorage.DefaultStorage}, key::Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_testitems), Tuple{JuliaWorkspaces.URIs2.URI}})
    @ Salsa._DefaultSalsaStorage ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/Salsa/src/default_storage.jl:269
 [16] memoized_lookup(rt::Salsa._TopLevelRuntime{JuliaWorkspaces.SContext, Salsa._DefaultSalsaStorage.DefaultStorage}, dependency_key::Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_testitems), Tuple{JuliaWorkspaces.URIs2.URI}})
    @ Salsa ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/Salsa/src/runtime_generic.jl:20
 [17] memoized_lookup_unwrapped
    @ ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/Salsa/src/runtime_generic.jl:43 [inlined]
 [18] derived_testitems(rt::Salsa._TopLevelRuntime{JuliaWorkspaces.SContext, Salsa._DefaultSalsaStorage.DefaultStorage}, uri::JuliaWorkspaces.URIs2.URI)
    @ JuliaWorkspaces ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/Salsa/src/derived_macro.jl:109
 [19] get_test_items(jw::JuliaWorkspaces.JuliaWorkspace, uri::JuliaWorkspaces.URIs2.URI)
    @ JuliaWorkspaces ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/public.jl:588
 [20] publish_file_diagnostics_testitems(server::LanguageServer.LanguageServerInstance, uris::Vector{JuliaWorkspaces.URIs2.URI})
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/LanguageServer/src/testitem_diagnostic_marking.jl:129
 [21] textDocument_didOpen_notification(params::LanguageServer.DidOpenTextDocumentParams, server::LanguageServer.LanguageServerInstance, conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint, JSON.Serializations.StandardSerialization, JSONRPC.ContentLengthFraming})
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/LanguageServer/src/requests/textdocument.jl:26
 [22] invoke_handler(func::typeof(LanguageServer.textDocument_didOpen_notification), params::LanguageServer.DidOpenTextDocumentParams, server::LanguageServer.LanguageServerInstance, conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint, JSON.Serializations.StandardSerialization, JSONRPC.ContentLengthFraming})
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/LanguageServer/src/languageserverinstance.jl:179
 [23] (::LanguageServer.var"#notification_wrapper##0#notification_wrapper##1"{typeof(LanguageServer.textDocument_didOpen_notification), LanguageServer.LanguageServerInstance})(conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint, JSON.Serializations.StandardSerialization, JSONRPC.ContentLengthFraming}, params::LanguageServer.DidOpenTextDocumentParams)
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/LanguageServer/src/languageserverinstance.jl:214
 [24] dispatch_msg(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint, JSON.Serializations.StandardSerialization, JSONRPC.ContentLengthFraming}, dispatcher::JSONRPC.MsgDispatcher, msg::JSONRPC.Request)
    @ JSONRPC ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JSONRPC/src/typed.jl:0
 [25] (::LanguageServer.var"#123#124"{Vector{Any}, LanguageServer.LanguageServerInstance, LanguageServer.LSPTraceReceiver{LanguageServer.LanguageServerInstance}, Base.RefValue{Bool}})()
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/LanguageServer/src/languageserverinstance.jl:476
 [26] with_logstate(f::LanguageServer.var"#123#124"{Vector{Any}, LanguageServer.LanguageServerInstance, LanguageServer.LSPTraceReceiver{LanguageServer.LanguageServerInstance}, Base.RefValue{Bool}}, logstate::Base.CoreLogging.LogState)
    @ Base.CoreLogging ./logging/logging.jl:542
 [27] with_logger
    @ ./logging/logging.jl:653 [inlined]
 [28] run(server::LanguageServer.LanguageServerInstance; timings::Vector{Any})
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/LanguageServer/src/languageserverinstance.jl:339
 [29] run(server::LanguageServer.LanguageServerInstance)
    @ LanguageServer ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/LanguageServer/src/languageserverinstance.jl:310
 [30] top-level scope
    @ ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/languageserver/main.jl:198
 [31] include(mod::Module, _path::String)
    @ Base ./Base.jl:306
 [32] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:317
 [33] _start()
    @ Base ./client.jl:550

```

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [July 22, 2026, 9:08pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/3 "2026-07-22T21:08:47Z")

</div>

Should be fixed by [fix: handle non-file URIs in derived\_{package,project}\_for\_file - Pull Request #157 - julia-vscode/JuliaWorkspaces.jl - GitHub](https://github.com/julia-vscode/JuliaWorkspaces.jl/pull/157).

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 22, 2026, 11:13pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/4 "2026-07-22T23:13:38Z")

</div>

I hope if fixes the really troubles it has had. I can barely can use VSCode anymore because Language Server is _always_ being compiled for looong periods and my Laptop melts in these hot summer days.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [July 23, 2026, 8:42am UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/5 "2026-07-23T08:42:04Z")

</div>

Performance _should_ be significantly better now, since

- online symbol cache generation works again, so the LS doesn’t have to load packages locally (and you can even disable it completely with the `julia.enableDynamicIndexing` setting)
- precompilation caches are in the global depot (not sure if this is actually a win, but may help with the spurious precompile cache invalidations some people were seeing)
- edits to Julia files now do _not_ cause the LS to re-parse and re-analyze everything in the workspace

And again, please do open issues if something’s not working as expected or performance is still bad!

---

<div class="post-metadata">

**Author:** ![abobroff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abobroff/32/3752_2.png) [@abobroff](https://discourse.julialang.org/u/abobroff)\
**Post date:** [July 23, 2026, 1:00pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/6 "2026-07-23T13:00:43Z")

</div>

I see …

```julia-auto
\[ Info: Starting LS with Julia 1.12.6

  Activating project at \`\~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/environments/languageserver/v1.12\`

\[ Info: Starting the Julia Language Server

\[ Info: Symbol server store is at '/home/abobroff/.config/Code/User/globalStorage/julialang.language-julia/symbolstore/v3'.

\[ Info: Starting LS at 1784811323

┌ Info: Downloading missing package caches

└ count = 379

┌ Warning: Could not fetch availability index, skipping cloud downloads

└ @ JuliaWorkspaces \~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/dynamic_feature/dynamic_feature.jl:642

┌ Info: Launching DJP for remaining missing packages

└ project_path = "/home/abobroff/.julia/environments/v1.12"

┌ Info: Starting DynamicJuliaProcess

│ kind = :watch_environment

│ project_path = "/home/abobroff/.julia/environments/v1.12"

└ package = nothing

┌ Error: Dynamic index request failed

│ key = JuliaWorkspaces.WatchEnvironmentKey("/home/abobroff/.julia/environments/v1.12", 0x158043ab5623b62d)

│ exception =

│ InternalError: Error handling request: ErrorException("(2, Int64)")

│ Stacktrace:

│ \[1\] send_request(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint, JSON.Serializations.StandardSerialization, JSONRPC.ContentLengthFraming}, method::String, params::Any; server_token::Nothing, client_token::Nothing)

│ @ JSONRPC \~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JSONRPC/src/core.jl:591

│ \[2\] send_request

│ @ \~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JSONRPC/src/core.jl:527 \[inlined\]

│ \[3\] send(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint, JSON.Serializations.StandardSerialization, JSONRPC.ContentLengthFraming}, request::JSONRPC.RequestType{JuliaWorkspaces.JuliaDynamicAnalysisProtocol.IndexProjectParams, String}, params::JuliaWorkspaces.JuliaDynamicAnalysisProtocol.IndexProjectParams; server_token::Nothing, client_token::Nothing)

│ @ JSONRPC \~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JSONRPC/src/typed.jl:24

│ \[4\] send(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint, JSON.Serializations.StandardSerialization, JSONRPC.ContentLengthFraming}, request::JSONRPC.RequestType{JuliaWorkspaces.JuliaDynamicAnalysisProtocol.IndexProjectParams, String}, params::JuliaWorkspaces.JuliaDynamicAnalysisProtocol.IndexProjectParams)

│ @ JSONRPC \~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JSONRPC/src/typed.jl:23

│ \[5\] index_project(djp::JuliaWorkspaces.DynamicJuliaProcess, store_path::String)

│ @ JuliaWorkspaces \~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/dynamic_feature/dynamic_feature.jl:54

│ \[6\] (::JuliaWorkspaces.var"#handle!##6#handle!##7"{JuliaWorkspaces.DynamicFeature, JuliaWorkspaces.DynamicJuliaProcess, JuliaWorkspaces.WatchEnvironmentKey})()

│ @ JuliaWorkspaces \~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/dynamic_feature/dynamic_feature.jl:1022

└ @ JuliaWorkspaces \~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/dynamic_feature/dynamic_feature.jl:1026

┌ Error: DynamicJuliaProcess failed

│ key = JuliaWorkspaces.WatchEnvironmentKey("/home/abobroff/.julia/environments/v1.12", 0x158043ab5623b62d)

│ exception = InternalError: Error handling request: ErrorException("(2, Int64)")

└ @ JuliaWorkspaces \~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/dynamic_feature/dynamic_feature.jl:1138

┌ Info: Killing DynamicJuliaProcess

│ kind = :watch_environment

│ project_path = "/home/abobroff/.julia/environments/v1.12"

└ package = nothing

┌ Warning: DJP reported failure

│ msg.key = JuliaWorkspaces.WatchEnvironmentKey("/home/abobroff/.julia/environments/v1.12", 0x158043ab5623b62d)

└ @ JuliaWorkspaces \~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/types.jl:552

┌ Info: Killing DynamicJuliaProcess due to cancellation

│ kind = :watch_environment

└ project_path = "/home/abobroff/.julia/environments/v1.12"

```

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [July 23, 2026, 2:07pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/7 "2026-07-23T14:07:50Z")

</div>

Thanks, should be fixed by [fix: improve indexer resilience - Pull Request #159 - julia-vscode/JuliaWorkspaces.jl - GitHub](https://github.com/julia-vscode/JuliaWorkspaces.jl/pull/159).

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 23, 2026, 5:49pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/8 "2026-07-23T17:49:11Z")

</div>

When I switch to the preview version it

 ![image](https://global.discourse-cdn.com/julialang/original/3X/4/2/4221c1aa253a385d19ad2a68ce7e77403fa07a2c.png)

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [July 23, 2026, 6:31pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/9 "2026-07-23T18:31:22Z")

</div>

Then please click that button and report any error messages in the logs. If there are no logs, then describe your system setup (e.g. julia version/juliaup version/VS Code settings/…).

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 23, 2026, 6:45pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/10 "2026-07-23T18:45:56Z")

</div>

It’s a long stacktrace. Posting the first errors.  
Windows and Julia 1.10 here

[ Info: Starting LS with Julia 1.10.11  
Activating project at `c:\Users\j\.vscode\extensions\julialang.language-julia-1.224.1\scripts\environments\languageserver\fallback`  
[ Info: Starting the Julia Language Server  
ERROR: LoadError: UndefVarError: `ScopedValues` not defined  
Stacktrace:  
[1] getproperty(x::Module, f::Symbol)  
@ Base .\Base.jl:31  
[2] top-level scope  
@ c:\Users\j.vscode\extensions\julialang.language-julia-1.224.1\scripts\packages\Salsa\src\TraceLogging.jl:14  
[3] include(mod::Module, \_path::String)  
@ Base .\Base.jl:495  
[4] include(x::String)  
@ Salsa c:\Users\j.vscode\extensions\julialang.language-julia-1.224.1\scripts\packages\Salsa\src\Salsa.jl:1  
[5] top-level scope  
@ c:\Users\j.vscode\extensions\julialang.language-julia-1.224.1\scripts\packages\Salsa\src\packagedef.jl:4  
[6] include(mod::Module, \_path::String)  
@ Base .\Base.jl:495  
[7] include(x::String)  
@ Salsa c:\Users\j.vscode\extensions\julialang.language-julia-1.224.1\scripts\packages\Salsa\src\Salsa.jl:1  
[8] top-level scope  
@ c:\Users\j.vscode\extensions\julialang.language-julia-1.224.1\scripts\packages\Salsa\src\Salsa.jl:11  
[9] include  
@ .\Base.jl:495 [inlined]  
[10] include\_package\_for\_output(pkg::Base.PkgId, input::String, depot\_path::Vector{String}, dl\_load\_path::Vector{String}, load\_path::Vector{String}, concrete\_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)  
@ Base .\loading.jl:2306  
[11] top-level scope  
@ stdin:5  
in expression starting at c:\Users\j.vscode\extensions\julialang.language-julia-1.224.1\scripts\packages\Salsa\src\TraceLogging.jl:1  
in expression starting at c:\Users\j.vscode\extensions\julialang.language-julia-1.224.1\scripts\packages\Salsa\src\packagedef.jl:4  
in expression starting at c:\Users\j.vscode\extensions\julialang.language-julia-1.224.1\scripts\packages\Salsa\src\Salsa.jl:1  
in expression starting at stdin:5  
ERROR: LoadError: Failed to precompile Salsa [1fbf2c77-44e2-4d5d-8131-0fa618a5c278] to “C:\Users\j\.julia\compiled\v1.10\Salsa\jl\_86E1.tmp”.  
Stacktrace:  
[1] error(s::String)  
@ Base .\error.jl:35  
[2] compilecache(pkg::Base.PkgId, path::String, internal\_stderr::IO, internal\_stdout::IO, keep\_loaded\_modules::Bool; loadable\_exts::Nothing)  
@ Base .\loading.jl:2547  
[3] compilecache  
@ .\loading.jl:2414 [inlined]  
[4] (::Base.var"#973#974"{Base.PkgId})()  
@ Base .\loading.jl:2058  
[5] mkpidlock(f::Base.var"#973#974"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale\_age::Int64, wait::Bool})  
@ FileWatching.Pidfile C:\programs\Julia-1.10\share\julia\stdlib\v1.10\FileWatching\src\pidfile.jl:93  
[6] #mkpidlock#6  
@ C:\programs\Julia-1.10\share\julia\stdlib\v1.10\FileWatching\src\pidfile.jl:88 [inlined]  
[7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale\_age::Int64})  
@ FileWatching.Pidfile C:\programs\Julia-1.10\share\julia\stdlib\v1.10\FileWatching\src\pidfile.jl:111  
[8] #invokelatest#2  
@ .\essentials.jl:894 [inlined]  
[9] invokelatest  
@ .\essentials.jl:889 [inlined]  
[10] maybe\_cachefile\_lock(f::Base.var"#973#974"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale\_age::Int64)  
@ Base .\loading.jl:3062  
[11] maybe\_cachefile\_lock  
@ .\loading.jl:3059 [inlined]  
[12] \_require(pkg::Base.PkgId, env::String)  
@ Base .\loading.jl:2044  
[13] \_\_require\_prelocked(uuidkey::Base.PkgId, env::String)  
@ Base .\loading.jl:1886  
[14] #invoke\_in\_world#3  
@ .\essentials.jl:926 [inlined]  
[15] invoke\_in\_world  
@ .\essentials.jl:923 [inlined]  
[16] \_require\_prelocked(uuidkey::Base.PkgId, env::String)  
@ Base .\loading.jl:1877  
[17] macro expansion  
@ .\loading.jl:1864 [inlined]  
[18] macro expansion  
@ .\lock.jl:270 [inlined]  
[19] \_\_require(into::Module, mod::Symbol)  
@ Base .\loading.jl:1827  
[20] #invoke\_in\_world#3  
@ .\essentials.jl:926 [inlined]  
[21] invoke\_in\_world  
@ .\essentials.jl:923 [inlined]  
[22] require(into::Module, mod::Symbol)  
@ Base .\loading.jl:1820  
[23] include  
@ .\Base.jl:495 [inlined]  
[24] include\_package\_for\_output(pkg::Base.PkgId, input::String, depot\_path::Vector{String}, dl\_load\_path::Vector{String}, load\_path::Vector{String}, concrete\_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)  
@ Base .\loading.jl:2306  
[25] top-level scope  
@ stdin:5  
in expression starting at c:\Users\j.vscode\extensions\julialang.language-julia-1.224.1\scripts\packages\JuliaWorkspaces\src\JuliaWorkspaces.jl:1  
in expression starting at stdin:5  
ERROR: LoadError: Failed to precompile JuliaWorkspaces [e554591c-7f10-434f-9f27-2097f62a04fd] to “C:\Users\j\.julia\compiled\v1.10\JuliaWorkspaces\jl\_8413.tmp”.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [July 23, 2026, 6:59pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/11 "2026-07-23T18:59:41Z")

</div>

1.10 is incompatible, please run the LS with 1.12 (i.e. the juliaup release channel).

---

<div class="post-metadata">

**Author:** ![abobroff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abobroff/32/3752_2.png) [@abobroff](https://discourse.julialang.org/u/abobroff)\
**Post date:** [July 23, 2026, 7:08pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/12 "2026-07-23T19:08:23Z")

</div>

> [@pfitzseb](#):
>
> Thanks, should be fixed by [fix: improve indexer resilience - Pull Request #159 - julia-vscode/JuliaWorkspaces.jl - GitHub](https://github.com/julia-vscode/JuliaWorkspaces.jl/pull/159)

Again it crashes, after fix: improve indexer resilience - and Pull Request #157 and #159

```julia-auto
[ Info: Starting LS with Julia 1.12.6
  Activating project at `~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/environments/languageserver/v1.12`
[ Info: Starting the Julia Language Server
[ Info: Symbol server store is at '/home/abobroff/.config/Code/User/globalStorage/julialang.language-julia/symbolstore/v3'.
[ Info: Starting LS at 1785003412
┌ Info: Downloading missing package caches
└ count = 4
┌ Info: Launching DJP for remaining missing packages
└ project_path = "/home/abobroff/.julia/environments/v1.12"
┌ Info: Starting DynamicJuliaProcess
│ kind = :watch_environment
│ project_path = "/home/abobroff/.julia/environments/v1.12"
└ package = nothing
┌ Error: Dynamic index request failed
│ key = JuliaWorkspaces.WatchEnvironmentKey("/home/abobroff/.julia/environments/v1.12", 0x29311332f398cbbd)
│ exception =
│ TransportError: Read error: connection lost
│ Stacktrace:
│ [1] send_request(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint, JSON.Serializations.StandardSerialization, JSONRPC.ContentLengthFraming}, method::String, params::Any; server_token::Nothing, client_token::Nothing)
│ @ JSONRPC ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JSONRPC/src/core.jl:571
│ [2] send_request
│ @ ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JSONRPC/src/core.jl:527 [inlined]
│ [3] send(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint, JSON.Serializations.StandardSerialization, JSONRPC.ContentLengthFraming}, request::JSONRPC.RequestType{JuliaWorkspaces.JuliaDynamicAnalysisProtocol.IndexProjectParams, String}, params::JuliaWorkspaces.JuliaDynamicAnalysisProtocol.IndexProjectParams; server_token::Nothing, client_token::Nothing)
│ @ JSONRPC ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JSONRPC/src/typed.jl:24
│ [4] send(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint, JSON.Serializations.StandardSerialization, JSONRPC.ContentLengthFraming}, request::JSONRPC.RequestType{JuliaWorkspaces.JuliaDynamicAnalysisProtocol.IndexProjectParams, String}, params::JuliaWorkspaces.JuliaDynamicAnalysisProtocol.IndexProjectParams)
│ @ JSONRPC ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JSONRPC/src/typed.jl:23
│ [5] index_project(djp::JuliaWorkspaces.DynamicJuliaProcess, store_path::String)
│ @ JuliaWorkspaces ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/dynamic_feature/dynamic_feature.jl:54
│ [6] (::JuliaWorkspaces.var"#handle!##6#handle!##7"{JuliaWorkspaces.DynamicFeature, JuliaWorkspaces.DynamicJuliaProcess, JuliaWorkspaces.WatchEnvironmentKey})()
│ @ JuliaWorkspaces ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/dynamic_feature/dynamic_feature.jl:1022
└ @ JuliaWorkspaces ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/dynamic_feature/dynamic_feature.jl:1026
┌ Info: Killing DynamicJuliaProcess due to cancellation
│ kind = :watch_environment
└ project_path = "/home/abobroff/.julia/environments/v1.12"
┌ Error: DynamicJuliaProcess failed
│ key = JuliaWorkspaces.WatchEnvironmentKey("/home/abobroff/.julia/environments/v1.12", 0x29311332f398cbbd)
│ exception = TransportError: Read error: connection lost
└ @ JuliaWorkspaces ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/dynamic_feature/dynamic_feature.jl:1138
┌ Info: Killing DynamicJuliaProcess
│ kind = :watch_environment
│ project_path = "/home/abobroff/.julia/environments/v1.12"
└ package = nothing
┌ Warning: DJP reported failure
│ msg.key = JuliaWorkspaces.WatchEnvironmentKey("/home/abobroff/.julia/environments/v1.12", 0x29311332f398cbbd)
└ @ JuliaWorkspaces ~/.vscode/extensions/julialang.language-julia-1.224.1/scripts/packages/JuliaWorkspaces/src/types.jl:552

```

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 23, 2026, 7:08pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/13 "2026-07-23T19:08:27Z")

</div>

Oops, you are saying that LS will not run in the LTS version? (I don’t want to use 1.12. I want to stick to 1.10)

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [July 23, 2026, 7:08pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/14 "2026-07-23T19:08:56Z")

</div>

Yes. You don’t have to use 1.12 for you own julia process, only for the LS.

---

<div class="post-metadata">

**Author:** ![mark.garnett](https://avatars.discourse-cdn.com/v4/letter/m/b9bd4f/32.png) [@mark.garnett](https://discourse.julialang.org/u/mark.garnett)\
**Post date:** [July 23, 2026, 7:14pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/15 "2026-07-23T19:14:52Z")

</div>

I want to try out JETLS but I was reading that it doesn’t play nicely with the VSCode Julia extension

> **[JETLS Client - Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=aviatesk.jetls-client)**
>
> Extension for Visual Studio Code - A new language server for Julia

Any changes on that front with this new version?

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [July 23, 2026, 7:45pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/16 "2026-07-23T19:45:31Z")

</div>

Not yet, no. I still plan on getting JETLS into the official extension as an opt-in; further down the line it should be possible to daisy-chain language servers and get the best of both worlds, but that will take some careful consideration about how/when to invalidate results the faster static LS returned when the qualitatively better JETLS results come in etc.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 23, 2026, 9:56pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/17 "2026-07-23T21:56:44Z")

</div>

> [@pfitzseb](#):
>
> Yes. You don’t have to use 1.12 for you own julia process, only for the LS.

I guess I’ll have to swallow the pillow (pill) this time 🙂

But seriously. IMO it is **very bad** that VSC Julia extension cannot be used with the LTS version.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [July 24, 2026, 3:11pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/18 "2026-07-24T15:11:56Z")

</div>

I can recommend using juliaup so you don’t have to worry about what version the LS launches with 🙂

But it’s a fair point; getting the LS running on 1.10 probably isn’t hard, just lower priority than correctness and performance (and has the advantage of not adding more future work by having to test against multiple versions etc).

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 24, 2026, 3:50pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/19 "2026-07-24T15:50:23Z")

</div>

> [@pfitzseb](#):
>
> I can recommend using juliaup

I have manifested here time to time against using juliaup on Windows (on \*nix is fine, just not on Win). Installation go into a hidden directory, Julia not removed with uninstall but worse, ghostscript is now broken on Julia’s installed with juliaup. But that is not the point here. I have LTS installed in the Univ computer rooms and now the julia extension will be broken there.

---

<div class="post-metadata">

**Author:** ![nhz2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nhz2/32/44428_2.png) [@nhz2](https://discourse.julialang.org/u/nhz2)\
**Post date:** [July 24, 2026, 4:11pm UTC](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426/20 "2026-07-24T16:11:07Z")

</div>

juliaup is also not fine on \*nix for my uses. Maybe the extension should bundle the version of Julia it is tested to work with as a fallback if juliaup is not installed? Julia 1.10 has many bugs and missing features compared to 1.12 and I would gladly give up a bit of disk space to have a more reliable IDE.

[Next page](https://discourse.julialang.org/t/ann-vs-code-extension-1-224-pre-release/138426.md?page=2)
