Skip to content

Integrate StaticLint and SymbolServer - #61

Merged
davidanthoff merged 385 commits into
mainfrom
integrate-staticlint-symbolserver
Jun 18, 2026
Merged

Integrate StaticLint and SymbolServer#61
davidanthoff merged 385 commits into
mainfrom
integrate-staticlint-symbolserver

Conversation

@davidanthoff

@davidanthoff davidanthoff commented Nov 25, 2025

Copy link
Copy Markdown
Member

I'm not sure this will work out, but so far it seems fairly promising. The idea is that we just move the existing content of both packages in here so simplify development.

I also started to change StaticLint so that everything in the meta field in EXPR is now stored in a side table, that makes everything work fairly nicely with the functional Salsa.jl approach.

Still lots of stuff to do, though...

List of PRs that were merged into main in various packages and still need to be incorporated here:

davidanthoff and others added 26 commits December 2, 2025 13:22
git-subtree-dir: packages/JSONRPC
git-subtree-split: 9e022c861a42677062dd015872aa16e4d45526d1
git-subtree-dir: packages/JSON
git-subtree-split: 4b3913d58f04cc5bb2f8d23c6ef82e0fbed20525
git-subtree-dir: packages/CancellationTokens
git-subtree-split: 9130370b57161b38d5a8b2bb0f947f60d7adc988
…s, and make other CI tweaks (#104)

* Run CI on Julia 1.12 and 1.13-nightly

* Better handling of 32-bit vs 64-bit

* Upgrade actions to latest versions

* Use Codecov token when uploading to Codecov

* Set `GITHUB_TOKEN` permissions to read-only

* CI: Skip intermediate builds, and cancel intermediate PR builds

* CI: Set up Dependabot to automatically update GitHub Actions (#105)

* Don't use a custom job name

* Native Julia builds for Apple Silicon macOS are only available for Julia 1.8 and later

* Reduce the number of macOS jobs

* Add some comments

* Add some more comments
…project_rel_path(...)` (#106)

* Copy the contents of `src/julia-1.11` to `src/julia-1.13`, and use `src/julia-1.13` for Julia 1.13+

* Julia 1.13+: Use `safe_realpath(manifest_rel_path(...))` instead of `project_rel_path(...)`

* Better debug-log printing of exceptions

Co-authored-by: Frames White <oxinabox@ucc.asn.au>

* Add trailing newline character (for POSIX compliance)

---------

Co-authored-by: Frames White <oxinabox@ucc.asn.au>
@pfitzseb

Copy link
Copy Markdown
Member

packages-old doesn't exist, so those code paths were broken anyways. Happy to revert the commit and add them if necessary, but do we really want to support this?

@davidanthoff

Copy link
Copy Markdown
Member Author

Ah, I forgot to add all the package old things :) I have all of that in the testitemcintroller package, I'll add it. And I think yes? At least some basic functionality? For the scientific use case I just still think we should support old versions, replication code sticks around for a long time...

@pfitzseb

Copy link
Copy Markdown
Member

So right now we're starting the JDP with whatever version julia happens to resolve to:
https://github.com/julia-vscode/JuliaWorkspaces.jl/blob/integrate-staticlint-symbolserver/src/dynamic_feature/dynamic_feature.jl#L101

That seems a bit ... unprincipled? Imho this either needs too be the exact same binary as whatever is running in JW, or one selected based on env compat bounds (which adds the complication of requiring juliaup to be installed and having that channel). For now at least I think I'd prefer the one-binary solution.

@davidanthoff

Copy link
Copy Markdown
Member Author

I think just launching julia is actually going to do the right thing? At least if we make sure to set the working folder to the folder where the project is that we are launching the dynamic feature for.

If Juliaup is installed, then this should opt into the entire override hierarchy of Juliaup, i.e. if someone has the manifest-specific Julia launch on then it will use that, or a directory override should work, or the env var, or whatever.

If Juliaup isn't installed, then it will just pick whatever Julia is on the PATH, which also seems fine?

I don't think we should use the Julia version the LS is running in, as that is going to always be the release channel in VS Code, regardless of what Julia version the user has selected for their own code, right?

@pfitzseb

Copy link
Copy Markdown
Member

Yes. We can't really assume that julia even exists though. Maybe just running julia and falling back to Base.julia_cmd() is reasonable.

git-subtree-dir: packages-old/v1.5/CodeTracking
git-subtree-split: cec7c3f6b46013527e5fa717b9693811275e07f2
…8721d1

git-subtree-dir: packages-old/v1.5/JuliaInterpreter
git-subtree-split: 398721d10be2edf40883a11b98e210ccda5393e3
…a01bb3

git-subtree-dir: packages-old/v1.5/LoweredCodeUtils
git-subtree-split: 6fa01bb38cd4533e10d4cb8108b5c9474f2c5387
…cf2bd5f4

git-subtree-dir: packages-old/v1.5/OrderedCollections
git-subtree-split: cf2bd5f4fc602ad949a07f0f1e9907cfc363d5f1
git-subtree-dir: packages-old/v1.5/Revise
git-subtree-split: 5f428c97229cdefdb5a237b743b941caf0640697
git-subtree-dir: packages-old/v1.9/CodeTracking
git-subtree-split: 4f3819cb000df5c8deb8211e36f4b742bbe023b8
…21a756

git-subtree-dir: packages-old/v1.9/JuliaInterpreter
git-subtree-split: 0421a756327370fcfc886d0e1b5a3973098e8207
…b2566b

git-subtree-dir: packages-old/v1.9/LoweredCodeUtils
git-subtree-split: 6bb2566bc2e23cb733df628886d8640c8eaf5c03
git-subtree-dir: packages-old/v1.9/Revise
git-subtree-split: 48b46b7337728a897ca8da37da9229559a2f3127
@davidanthoff

Copy link
Copy Markdown
Member Author

I've reverted that commit now and added all the old packages, so the dynamic feature processes should now (maybe) run on old Julia versions.

@davidanthoff
davidanthoff marked this pull request as ready for review June 18, 2026 18:03
@davidanthoff
davidanthoff merged commit ed5dfdf into main Jun 18, 2026
18 of 19 checks passed
@davidanthoff
davidanthoff deleted the integrate-staticlint-symbolserver branch June 18, 2026 18:05
pfitzseb added a commit that referenced this pull request Jul 19, 2026
Salsa PR #61 is merged and the env-sharing change is committed, so both
leave the live backlog; remaining items renumbered.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants