Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

### Added

- Added a [Features](https://aviatesk.github.io/JETLS.jl/dev/features/) overview page to the documentation, providing a visual showcase of every LSP feature JETLS provides.

- Added `textDocument/declaration` ("go to declaration"). It jumps to the import site on an imported name (e.g. `using Base: sin`) and to the `local` line on a `local` declaration. When the symbol has no dedicated declaration site, the request falls back to the same logic as `textDocument/definition`.

- Added `textDocument/documentLink` support for `include("path")` and `include_dependency("path")` calls. The path string becomes a clickable link that opens the referenced file. Only non-interpolated string arguments whose path resolves to an existing file (relative to the current file's directory) are surfaced.
Expand Down
2 changes: 1 addition & 1 deletion DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ without restarting the server.

In JETLS, since we need to use packages that aren’t yet registered
(e.g., [JuliaLowering.jl](https://github.com/JuliaLang/julia/tree/master/JuliaLowering)) or
specific branches of [JET.jl](https://github.com/c42f/JuliaLowering.jl) and
specific branches of [JET.jl](https://github.com/aviatesk/JET.jl) and
[JuliaSyntax.jl](https://github.com/JuliaLang/julia/tree/master/JuliaSyntax),
the [Project.toml](./Project.toml) includes
[`[sources]` section](https://pkgdocs.julialang.org/v1/toml-files/#The-[sources]-section).
Expand Down
102 changes: 0 additions & 102 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,108 +34,6 @@ a sample VSCode extension that serves as a language client for testing JETLS.
For end-user documentation including installation instructions, configuration
options, and feature guides, please visit the **[user guide documentation](https://aviatesk.github.io/JETLS.jl/)**.

This README focuses on development-related information such as the project
roadmap, implementation status, and developer resources.

## Roadmap

This is a summary of currently implemented features and features that will
likely be implemented in the near future, for those who want to test this server.
Please note that not only the progress of the list, but also the structure of
the list itself is subject to change.

- Analysis
- [x] Document synchronization
- [ ] (WIP) Incremental analysis
- [ ] JuliaLowering integration
- [ ] Recursive analysis for dependencies
- [ ] Cross-server-process cache system
- [ ] Support package extensions
- Diagnostic
- [x] Syntax errors
- [x] Lowering errors
- [x] Macro expansion error
- [x] Unused bindings (with code action)
- [x] Captured boxed variables
- [x] Unsorted import statements (with code action)
- [x] Unused imported names (with code action)
- [ ] Undefined imported names
- [ ] Undefined exported names
- [x] Method overwrite
- [x] Abstract struct field
- [x] Undefined bindings
- [x] Non-existent struct fields
- [x] Out-of-bounds field access by index
- [x] `MethodError`
- [x] Configuration support
- [x] [CLI interface](https://aviatesk.github.io/JETLS.jl/release/cli-check)
- Completion
- [x] Global symbol completion
- [x] Local binding completion
- [x] LaTeX/Emoji completion
- [x] Method signature completion
- [ ] (WIP) Argument type based matched method filtering
- [x] [Juno](https://junolab.org/)-like return type annotation for method completions
- [x] Keyword argument name completion
- [ ] Property completion
- Signature help
- [x] Basic implementation
- [x] Macro support
- [ ] (WIP) Argument type based matched method filtering
- Definition
- [x] Method defintion
- [x] Global binding definition
- [x] Local binding definition
- [ ] Type-aware method definition
- Hover
- [x] Method documentation
- [x] Global binding documentation
- [x] Local binding location
- [ ] Type of local binding
- [ ] Type-aware method documentation
- Inlay hint
- [ ] Method parameter name
- [ ] Type of binding
- Formatting
- [x] [Runic](https://github.com/fredrikekre/Runic.jl) integration
- [x] [JuliaFormatter](https://github.com/domluna/JuliaFormatter.jl) integration
- [x] Make formatting backend configurable
- Document highlight
- [x] Local binding
- [x] Global binding
- [ ] Field name / Dot-accessed bindings
- Find references / Rename
- [x] Local binding
- Global reference
- [x] Minimum support
- [ ] Cross-analysis-unit reference detection
- [ ] Aliased reference support
- [ ] Field name
- [x] File rename support (Julia-side rename)
- [ ] File rename support (external rename)
- [x] Document symbol
- [x] Workspace symbol
- TestRunner.jl integration
- [x] Code lens for running individual `@testset`s
- [x] Code actions for running individual `@testset`s
- [x] Code actions for running individual `@test` cases
- [x] Inline test result diagnostics
- Configuration system
- [x] Type stable config object implementation
- [x] Support LSP configurations
- [x] Documentation
- [x] Schema support
- [x] Parallel/concurrent message handling
- [x] Work done progress support
- [x] Message cancellation support
- [x] Notebook support
- Release
- [x] Publish a standalone VSCode language client extension
- [x] Make installable as Pkg executable app
- [x] Environment isolution
- [ ] Automatic server installation/update for `jetls-client`
- [ ] Integration into [julia-vscode](https://github.com/julia-vscode/julia-vscode)

## Development notes

The following documents contain specific items that should be referenced when
Expand Down
1 change: 1 addition & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ end

const pages = Any[
"Index" => "index.md",
"Features" => "features.md",
"Diagnostic" => "diagnostic.md",
"Formatter integration" => "formatting.md",
"TestRunner integration" => "testrunner.md",
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/assets/features/completion-emoji.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/assets/features/completion-keyword.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/assets/features/completion-latex.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/assets/features/completion-method.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/assets/features/definition-dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/assets/features/definition.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/assets/features/diagnostic-lowering.png
Binary file added docs/src/assets/features/diagnostic-syntax.png
Binary file added docs/src/assets/features/document-highlight.png
Binary file added docs/src/assets/features/document-link-dark.png
Binary file added docs/src/assets/features/document-link.png
Binary file added docs/src/assets/features/document-symbol.png
Binary file added docs/src/assets/features/find-references.png
Binary file added docs/src/assets/features/hover-local-binding.png
Binary file added docs/src/assets/features/notebook-support.png
Binary file added docs/src/assets/features/refactoring-rename.png
Binary file added docs/src/assets/features/signature-help-dark.png
Binary file added docs/src/assets/features/signature-help.png
Binary file added docs/src/assets/features/workspace-symbol.png
14 changes: 4 additions & 10 deletions docs/src/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -446,16 +446,10 @@ Configure code lens behavior.
- **Type**: boolean
- **Default**: `false`

Show reference counts for top-level symbols (functions, structs, constants,
abstract types, primitive types, modules). When enabled, JETLS displays a code
lens above each symbol showing how many times it is referenced in the codebase.

Clicking the code lens dispatches the `editor.action.showReferences` command
(a VSCode convention) carrying the pre-resolved reference locations. Clients
that follow this convention (VSCode, Zed, etc.) open the references panel out
of the box; clients that don't (e.g. Neovim) need to register a client-side
handler for `editor.action.showReferences` — see the
[Neovim setup](@ref index/editor-setup/neovim) for an example.
Enable or disable the [reference-count code lens](@ref features/code-lens/references).
When enabled, JETLS displays a code lens above each top-level symbol
(functions, structs, constants, abstract/primitive types, modules) showing
how many times it is referenced in the codebase.

```toml
[code_lens]
Expand Down
Loading
Loading