AL Language Server returns symbol names with full object format like
'Table 50000 "TEST Customer"', but symbol names should be pure without
metadata - uniformly across all languages.
This follows the same pattern as Java LS which strips type information
from names. Metadata (object type, ID) is available via the hover LSP
method when using include_info=True in find_symbol.
Changes:
- Add extract_al_display_name() to parse AL object names
- Override request_document_symbols() to normalize names at source
- Update tests to expect normalized names
Add support for configuring Pascal Language Server via ls_specific_settings:
- pp: Path to FPC compiler driver (must be fpc.exe, not ppc386.exe)
- fpcdir: Path to FPC source directory
- lazarusdir: Path to Lazarus directory
- fpc_target: Override target OS (FPCTARGET env var)
- fpc_target_cpu: Override target CPU (FPCTARGETCPU env var)
These settings are passed as environment variables to pasls, enabling
CodeTools to properly configure target platform and locate source files.
This fixes hover/navigation issues with complex include directives like
those in mORMot2 project.
- Automatically download pasls from zen010101/pascal-language-server releases
- Check for updates every 24 hours with version comparison
- SHA256 checksum verification for security
- Atomic installation with rollback on failure
- Tarfile path traversal protection
- Handle nested archive directory structure
CI improvements:
- Fix FPC installation for Ubuntu/macOS/Windows
- Add proper FPC verification step that fails on actual errors
Tests:
- 33 unit tests for version comparison, checksum, tarfile safety
- 8 integration tests with actual pasls functionality
* Make the save function update all configuration settings
* Consider all non-existing keys to be a migration, triggering a resave
* Improve handling of settings that do not use the same name in
the configuration file
* Properly group SerenaConfig class members:
- public setting (config file-mapped)
- private setting (renamed to use _ prefix)
- static member
- methods
* Add configuration setting 'jetbrains_plugin_server_adress',
which is centrally propagated (avoiding injection)
* Add 'fixed_tools' to template file (was previously a "hidden" setting)
Relates to #941
Also extended docs around that topic.
The setting `context_settings={"max_content_width": _MAX_CONTENT_WIDTH}` in the click command makes the CLI --help output more readable and ensures longer links are not broken up into multiple lines. For consistency, I added it to all commands
* 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