Skip to content

release: 2025-12-08#371

Merged
aviatesk merged 13 commits intoreleasefrom
releases/2025-12-08
Dec 8, 2025
Merged

release: 2025-12-08#371
aviatesk merged 13 commits intoreleasefrom
releases/2025-12-08

Conversation

@aviatesk
Copy link
Owner

@aviatesk aviatesk commented Dec 8, 2025

This PR releases version 2025-12-08.

Checklist

  • release / Test JETLS.jl with release environment
  • release / Test jetls executable with release environment

Post-merge

  • The releases/2025-12-08 branch can be deleted after merging
  • CHANGELOG.md will be automatically updated on master

github-actions bot and others added 13 commits December 6, 2025 12:32
Add support for Jupyter notebook documents in the language server,
enabling features like completions, hover, definitions, rename, and
diagnostics to work within notebook cells.

The implementation concatenates all code cells into a single virtual
source document, allowing the existing analysis infrastructure to work
unchanged. Each cell's content is joined with newlines, and `CellRange`
records track the line offset where each cell begins in the concatenated
source.

To bridge between cell-local positions (used by clients) and global
positions (used internally), the following mapping functions are
introduced:

- `adjust_position`: Converts cell-local position to global position by
  adding the cell's line offset
- `unadjust_position`/`unadjust_range`: Converts global position back to
  cell-local coordinates, also returning the cell URI

These mappings are applied at LSP request entry points (completions,
hover, definition, rename, etc.) to adjust incoming positions, and
when constructing responses to convert ranges back to cell coordinates.

For diagnostics, `map_notebook_diagnostics transforms diagnostics
computed on the concatenated source into per-cell diagnostics by
distributing them to the appropriate cell URIs based on line offsets.

Notebook document synchronization handles incremental text changes
since `NotebookDocumentSyncOptions` does not provide an equivalent to
`TextDocumentSyncKind.Full` for cell content.

jetls-client: Update vscode-languageclient to 10.0.0-next.18 to enable
pull diagnostics support for notebook cells. This requires updating
tsconfig.json to use node16 module resolution and es2022 target, and
switching to `LogOutputChannel` as required by the new version.

LSP: Move `NotebookDocumentFilter` and `NotebookCellTextDocumentFilter`
to basic-json-structures.jl to allow `DocumentSelector` to include
notebook cell text document filters as per LSP 3.17.0 specification.
Change the markdown link format from `#L<line>C<character>` to
`#L<line>,<character>` for source location links. The previous format
with 'C' delimiter was not correctly parsed by VS Code - only the line
number was recognized while the column was ignored.

The new comma-delimited format follows VS Code's implementation and is
also supported by other LSP clients like Sublime Text's LSP plugin.

Closes #281
@aviatesk aviatesk merged commit 9b39829 into release Dec 8, 2025
7 checks passed
@aviatesk aviatesk deleted the releases/2025-12-08 branch December 8, 2025 11:36
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.

1 participant