Skip to content

release: 2025-12-31#420

Merged
aviatesk merged 27 commits intoreleasefrom
releases/2025-12-31
Dec 30, 2025
Merged

release: 2025-12-31#420
aviatesk merged 27 commits intoreleasefrom
releases/2025-12-31

Conversation

@aviatesk
Copy link
Owner

@aviatesk aviatesk commented Dec 30, 2025

This PR releases version 2025-12-31.

Checklist

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

Post-merge

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

aviatesk and others added 27 commits December 20, 2025 01:25
Moved the 2025-12-19 entry below the announcement section to improve
document flow and readability.
Add `commit` skill for Claude Code integration:
- Defines project-specific commit message format
  (component prefix, 72 char limit, GitHub references)
- References CLAUDE.md for Git safety rules

Add "Git operations" section to AGENTS.md with safety rules:
- Require explicit user permission for Git operations
- Never auto-amend or auto-fixup on feedback

Update `.gitignore` to track `.claude/skills/` while ignoring other
Claude Code temporary files.

Improve test execution documentation with clearer instructions for
running component-specific tests with proper project flags.
Add a new configuration option `diagnostic.allow_unused_underscore`
(default: `true`) that suppresses unused variable diagnostics for
names starting with `_`. This follows the common convention in many
programming languages where underscore-prefixed names indicate
intentionally unused variables.

When enabled, `lowering/unused-argument` and `lowering/unused-local`
diagnostics are not reported for variables like `_x`, `__unused`, or
just `_`.

Written by Claude

Co-authored-by: Claude <noreply@anthropic.com>
When `diagnostic.allow_unused_underscore` is `false`, the code action
now replaces the entire variable name with `_` instead of being
disabled. This provides a useful action in both configurations:
- `allow_unused_underscore=true`: "Prefix with '_'" (e.g., `x` → `_x`)
- `allow_unused_underscore=false`: "Replace with '_'" (e.g., `x` → `_`)

Written by Claude

Co-Authored-By: Claude <noreply@anthropic.com>
Add `toplevel/method-overwrite` diagnostic that warns when a method
with the same signature is defined multiple times within a package.

The diagnostic message shows the method signature and module name,
with a link to navigate to the first definition location.
Add a new `Information` level diagnostic (`toplevel/abstract-field`)
that reports when a struct field has an abstract type. This helps catch
potential performance issues caused by type instability.

The detection works by hooking into `JuliaInterpreter.step_expr!` and
checking for `Core._typebody!` calls. When a struct is being defined,
the field types are inspected using the new `is_abstract_fieldtype`
helper function.

Currently detects cases like `Vector{Integer}` and `AbstractVector{Int}`
but does not yet handle `UnionAll` types like `Vector{<:Integer}`.
Previously, `AbstractFieldReport` used the line where
`Core._typebody!` was called, which didn't accurately reflect
the field definition location.

This change extracts the actual field definition node from the
AST by:
- Adding `current_node` field to `LSInterpreter` to track the
  current `SyntaxNode` being lowered
- Overloading `JET.lower_with_err_handling` to capture the node
- Implementing `try_extract_field_line` to find field
  definitions within struct declarations

Also adds `encoding` field to `SavedFileInfo` and extends
`jsobj_to_range` and `offset_to_xy` to work with `SavedFileInfo`,
enabling proper range calculation from `SyntaxNode`.
@aviatesk aviatesk merged commit b61b6fa into release Dec 30, 2025
7 checks passed
@aviatesk aviatesk deleted the releases/2025-12-31 branch December 30, 2025 20:01
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