Conversation
docs: fix default value of `allow_unused_underschore`
* Update index.md When using eglot, the usage of :autoport will cause jetls to not work properly when editing files over TRAMP. It can just be removed from the configuration. * Expand EMACS configuration docs
Update commit message guidelines to use a standard `Co-Authored-By` trailer instead of a prose footer. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Support @generated function arguments across LSP In `@generated` functions, arguments are used inside quoted expressions (`:(...)`) which become `K"inert"` nodes after lowering. Since scope resolution doesn't look inside these nodes, arguments appeared unused and couldn't be highlighted, referenced, or renamed. Scan `K"inert"` nodes for identifiers matching argument names and record them as `:use` occurrences. Thread `is_generated` through occurrence analysis and binding selection so all LSP features (diagnostics, highlights, references, rename) handle `@generated` functions correctly. Also merge argument bindings with static parameter bindings at the same source location so type parameters are properly unified. Closes #480 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: Add CHANGELOG entry for @generated function support --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* fix highlight range in `jetls check` * add tests
Add `_IMPLICIT_BINDING_NAMES` constant listing JuliaLowering's implicit bindings (`__context__`, `__module__`, `__source__`) and filter them in `find_target_binding` so they don't interfere with cursor-based binding selection in highlights, references, and rename. Also use the same constant in `analyze_unused_bindings!`, replacing the previous inline string checks. The guard is generalized from `ismacro` to `has_implicit_args` (macro or `@generated` function) for consistency, since both introduce implicit argument bindings. Test workarounds that skipped certain cursor positions due to these implicit bindings are now removed. Written by Claude Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Global bindings used only inside quoted expressions (`:(...)`) in `@generated` functions were not recognized by scope analysis, since these expressions become `K"inert"` nodes that scope resolution skips. This caused false "unused import" warnings. Add `collect_inert_global_occurrences!` which runs independent scope resolution on inert node content to discover global bindings used there. Called from `compute_binding_occurrences_st0` when `is_generated && include_global_bindings`. The outer inert (generator template) is explicitly skipped by comparing its byte range against `st3`. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Parse command-line arguments in `selfcheck.sh` so that hardcoded defaults like `--threads`, `--root`, `--quiet`, `--exit-severity`, and `--show-severity` can be overridden. Additional options such as `--skip-full-analysis` are passed through to `jetls check`. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add `JULIA` environment variable support to allow overriding the `julia` command used by `selfcheck.sh`. Also add `--help`/ `-h` flag that prints usage information extracted from the script's header comments. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Initially had Claude apply the necessary updates, then manually reviewed each change. Due to the migration to EST, the desugared tree changed considerably, so code that directly inspects the tree such as document symbol needed significant modifications. --- - Closes #495 - Closes #518 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --- * deps: Pin Compiler.jl version to workaround JuliaLang/julia#61257 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Update `README.md`, `docs/src/index.md`, and `CHANGELOG.md` to make it clear that JETLS is currently only compatible with Julia 1.12 (1.12.2+ recommended), and does not support Julia 1.11 or earlier, nor Julia 1.13+/nightly. Also remove an outdated COMBAK comment in `scripts/vendor-deps.jl`.
Compiler.jl uses `ccall(:jl_set_module_uuid, ...)` to manually set its module UUID because its `@eval baremodule` pattern bypasses Julia's normal UUID assignment. The vendoring script was only rewriting the UUID in `Project.toml`, leaving the hardcoded stdlib UUID in the source code. This caused a UUID mismatch at load time: the package system expected the vendored UUID but the module had the stdlib UUID, making the precompile cache unusable. Add `rewrite_compiler_module_uuid!` to also rewrite the hex UUID literal in `Compiler.jl` source during vendoring. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
d9b63b8 to
472a8b5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR releases version
2026-03-08.Checklist
release / Test JETLS.jl with release environmentrelease / test_app / Test jetls serverelease / test_app / Test jetls checkrelease / test_app / Test jetls schemarelease / check_schemas / Check schemas are up to datePost-merge
releases/2026-03-08branch can be deleted after merging