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