Add support for Free Pascal/Lazarus projects using pasls.
Features:
- Auto-download pasls binary for Linux, macOS, and Windows
- Platform detection for x64 and arm64 architectures
- Support for FPC environment variables (PP, FPCDIR)
CI: Add FPC compiler installation (fpc-ootb for Windows)
Includes test repository and unit tests.
- Convert relative ELM_HOME to absolute path based on repository root,
fixing package discovery when devbox uses relative paths like '.elm'
- Wait for textDocument/publishDiagnostics before marking server ready,
ensuring workspace is fully scanned before accepting LSP requests
- Use shutil.which() for elm tool paths in initialization options
Fixes 'No Elm workspace contains' errors when elm-language-server
starts before workspace indexing completes.
Co-authored-by: Jordan Munch O'Hare <git@jordan.munchohare.com>
The get_platform_id() function was generating "linux-arm64-musl" but the
PlatformId enum expects "linux-musl-arm64". This caused a ValueError on
musl-based Linux systems (e.g., Alpine Linux on arm64).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: mhaynie <mhaynie@pazer.us>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
The test was using SerenaMCPFactorySingleProcess and _instantiate_agent()
which were removed when process isolation was removed from the codebase.
Updated to use SerenaMCPFactory and _create_serena_agent() instead.
This fixes the CI pipeline which was failing on all test runs.
This reverts commit 7ad44edd18.
Listen address 0.0.0.0 is necessary for docker, because port forwarding for Docker
is just NAT, so port forwarding alone is not sufficient
Fixes#879
Compact version and support for depth>0 and filtering out imports.
Backwards compatible (previous plugin versions won't crash),
but users have to update to 2023.2.3 to benefit from the change
Add readOnlyHint, destructiveHint, and title annotations to all tools
to help LLMs better understand tool behavior and make safer decisions.
Changes:
- Added destructiveHint: true to tools that modify data
- Added title annotations for human-readable display (e.g., "Find Symbol")
- Fixed memory tools (WriteMemoryTool, DeleteMemoryTool, EditMemoryTool)
to correctly inherit ToolMarkerCanEdit, ensuring they get destructiveHint: true
This improves tool safety metadata for MCP clients by:
- Helping LLMs distinguish read-only from destructive operations
- Providing human-readable titles for tool display
- Correctly categorizing all memory-modifying tools as destructive
Co-Authored-By: Claude <noreply@anthropic.com>
The grouping by type and the removing of the per-symbol-repeated name_path leads to a huge reduction in output size while the same information is retained!
From
{"symbols": [{"name_path": "collections", "type": "Py:IMPORT_ELEMENT"}, ...
To
{"symbols": {"Py:IMPORT_ELEMENT": ["collections", ...
In particular, EclipseJDTLS returns both members of WorkspaceEdit, but the processing
* ignored the second member (documentChanges) if the first member was also present
* processed contents of the second member only partially in general.
The handling is now fully reified in "Edit" classes.
Fixes#725