* Add specialisation LanguageServerDependencyProviderSinglePath,
where the core path can be overridden via ls_specific_settings #917
* Implement in MatLabLanguageServer and TypeScriptLanguageServer
* Backwards compatibility is retained; the new approach is optional
WHY:
- HLS (Haskell) and rust-analyzer use Void/unit types for shutdown/exit
- These strict-typed servers reject ANY params field (even empty {})
- PR #851 changed to send params:{} for Delphi/FPC compatibility
- This broke HLS/rust-analyzer with "Cannot parse Void" errors
EXPECTED:
- shutdown/exit methods: omit params field entirely (HLS/rust-analyzer compat)
- Other methods with None: send params:{} (Delphi/FPC compat)
- Other methods with params: include them unchanged (standard behavior)
- Three-way compatibility preserved per JSON-RPC 2.0 spec
Refs: oraios/serena#870
* fix: add WSL path normalization for JetBrains plugin matching
When running Serena MCP server inside WSL2 with JetBrains IDE on Windows,
the plugin returns paths like `//wsl.localhost/Ubuntu-24.04/home/user/...`
while Serena expects `/home/user/...`. This causes `ServerNotFoundError`
because the paths don't match despite pointing to the same location.
This commit adds `_normalize_wsl_path()` method that converts WSL UNC
paths to standard Linux paths before comparison, enabling seamless
integration between WSL-based Claude Code and Windows-based JetBrains IDEs.
Fixes#912
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.
The linux-arm64 platform entry was missing required fields (jre_home_path,
jre_path, lombok_jar_path, jdtls_launcher_jar_path, jdtls_readonly_config_path)
causing a KeyError when activating Java projects on ARM64 Linux systems.
Fixes#486
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace .yml extension check with proper file existence check
- Check if path exists as a file first before treating as name
- Raise FileNotFoundError for paths that look like files but don't exist
(contains path separators or ends with .yml/.yaml)
- Improves error messages when file paths are invalid