- Introduced `include_info_hover_budget_seconds` to ProjectConfig and SerenaConfig for per-project and global hover request time limits.
- Updated YAML templates to include hover budget settings with appropriate documentation.
- Enhanced LanguageServerSymbolRetriever to respect hover budget during symbol info requests, allowing for partial results if the budget is exceeded.
- Added unit tests to validate hover budget behavior and ensure correct handling of various budget scenarios.
Change log level from error to debug for performance logging in LanguageServerSymbolRetriever and SolidLanguageServer
Change log level from debug to error for performance logging in LanguageServerSymbolRetriever and SolidLanguageServer
Enhance symbol retrieval by adding batch request method and optimize hover info fetching + DEBUG
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