Commit Graph
2459 Commits
Author SHA1 Message Date
Torben Leth 5ec66d81e2 fix(al): normalize paths at method entry for cross-platform compatibility
Move path normalization to the start of request_document_symbols and
request_hover methods. This ensures backslash paths work on Linux/macOS
where backslash is a literal character, not a path separator.
2026-01-20 02:09:29 +01:00
Torben Leth d05d8b765f refactor(al): move extract_al_display_name into ALLanguageServer class
Move the AL name extraction pattern and function into the class as a
static method since they are only used by the language server.

Addresses PR #960 review comment.
2026-01-20 01:15:48 +01:00
Torben Leth b9f82774ce fix(al): guard against missing position in name cache storage
Only store the original name in the cache if we have valid position data.
This prevents false cache matches at position (0, 0) when selectionRange
is missing from a symbol.

Addresses PR #960 review comment.
2026-01-20 01:08:50 +01:00
Torben Leth 7af2fe3e2b feat(al): inject full object name into hover and add path normalization
- Override request_hover() to inject cached original names (e.g. 'Table 50000 "TEST Customer"')
  into hover responses, preserving object type and ID metadata that the AL LSP doesn't include
- Add _normalize_path() for consistent cache keys across Windows/Unix path formats
- Add comprehensive tests for hover injection and path normalization
2026-01-20 00:24:21 +01:00
Dominik Jain 18ab2cea9a Improve docstring explaining overrides in ls_specific_settings [skip ci] 2026-01-19 23:21:07 +01:00
Dominik Jain 93294a2b30 Fix healh-check assuming non-compact symbol overview
Fixes #958
2026-01-19 23:06:18 +01:00
Dominik Jain 10ba2d890b Fix logging error (kind is not necessarily an int) 2026-01-19 23:05:08 +01:00
Torben Leth 4a44cba6c8 feat(al): normalize AL symbol names by stripping object type and ID metadata
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
2026-01-19 22:48:38 +01:00
Dominik Jain a9b345ccfe Merge pull request #959 from oraios/simplify-serena-config
Further simplify SerenaConfig
2026-01-19 21:22:33 +01:00
Dominik Jain 0c43e60810 SerenaConfig: Unify handling of file-mapped configuration entries
Fixes 'fixed_tools' not being loaded
2026-01-19 19:45:29 +01:00
Dominik Jain abef88c482 SerenaConfig: Rename gui_log_window_enabled to gui_log_window
This removes the discrepancy with the configuration file (where it was always gui_log_window)
2026-01-19 18:33:43 +01:00
Dominik Jain 80f296fcdb Merge pull request #928 from MaxMiksa/fix/ts-rename-didopen
SolidLSP (TypeScript): ensure didOpen before textDocument/rename to avoid null edits
2026-01-19 15:12:25 +01:00
Roman Nikulenkov e9cca73889 Improve docstring for LanguageServerSymbolRetriever to clarify symbol processing criteria 2026-01-19 14:06:58 +03:00
Roman Nikulenkov 44696c6362 Update copilot instructions to emphasize immediate compliance and critical importance 2026-01-19 13:01:46 +03:00
Roman Nikulenkov 3768cb6e31 Add include_info hover budget configuration and validation
- 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
2026-01-19 12:45:25 +03:00
Dominik Jain 4b64867a52 SerenaAgent.create_system_prompt: Fix use of exposed tools instead of active tools
Improve handling of active tools in general

Fixes #954
2026-01-19 00:01:30 +01:00
Dominik Jain ed46e3f3d2 Improve workflow description when using the JetBrains plugin
Resolves #942
2026-01-18 22:56:05 +01:00
Dominik Jain 131162c0b9 Merge pull request #953 from oraios/lazy-lsp-file-buffer
LSPFileBuffer: Make content hash computation lazy
2026-01-18 21:35:30 +01:00
Dominik Jain f97e1bb99a Force black below v26, because of pathspec compatibility 2026-01-18 19:41:08 +01:00
Dominik Jain 4d679dc99c LSPFileBuffer: Make content hash computation lazy #951
Fix content hash computation ignoring file encoding and hard-coding utf-8
2026-01-18 19:41:08 +01:00
Dominik Jain 3748eb8b7c TestSerenaAgent.test_find_symbol: Fix test by continuing to test with include_info=True 2026-01-18 19:11:00 +01:00
Dominik Jain 486340b2ba FindReferencingSymbolsTool: Disable include_info by default #951 2026-01-18 16:50:56 +01:00
Dominik Jain 684953f646 FindSymbolTool: Disable include_info by default #951 2026-01-18 16:31:49 +01:00
zen010101 53524062d8 feat(pascal): Support ls_specific_settings for Pascal LSP
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.
2026-01-18 13:43:23 +08:00
zen010101 0deaa923ec feat(pascal): Add auto-update for Pascal Language Server
- 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
2026-01-17 23:16:07 +08:00
Long Peng 6f98e6c67c Adjust the activation prompt for Codex, to make GPT-5 more compliant. 2026-01-17 17:10:50 +08:00
Dominik Jain b5c49c0726 SerenaConfig.propagate_settings: Add missing return type declaration 2026-01-17 00:47:36 +01:00
Dominik Jain 1c17d61121 Improve documentation (particularly on configuration) and the issue template 2026-01-17 00:46:43 +01:00
Dominik Jain 7c1cc2ad0e Improve/extend SerenaConfig
* 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
2026-01-16 16:03:05 +01:00
Dominik Jain 6c4d6e5b67 Improve docstrings [skip ci] 2026-01-16 15:14:38 +01:00
Dominik Jain b0dd8512bb Merge pull request #933 from oraios/ls-dependency-provider
Introduce LanguageServerDependencyProvider abstraction
2026-01-15 21:36:07 +01:00
Dominik Jain eefebaf018 Add ls_path to documentation and general improvements to ls_specific_settings documentation 2026-01-15 19:15:27 +01:00
Dominik Jain deb416353b Merge remote-tracking branch 'origin/main' into ls-dependency-provider 2026-01-15 18:58:38 +01:00
Dominik Jain 95a856c2e5 LanguageServerDependencyProviderSinglePath: Mention ls_path configurability 2026-01-15 18:55:15 +01:00
Dominik Jain ccca8dad26 Update language addition guide to use DependencyProvider 2026-01-15 18:55:15 +01:00
Dominik Jain 2217f516af ClangdLanguageServer: Refactored to use DependencyProvider 2026-01-15 18:55:15 +01:00
Dominik Jain ac1531b305 ClojureLSP: Refactored to use DependencyProvider 2026-01-15 18:55:15 +01:00
Dominik Jain f45db064d4 Intelephense: Refactored to use DependencyProvider 2026-01-15 18:55:15 +01:00
Dominik Jain b33a4085c2 CSharpLanguageServer: Refactored to use DependencyProvider 2026-01-15 18:55:15 +01:00
Michael Panchenko adf26b792b Merge pull request #902 from n-r-w/golang-ls-specific-settings
feat(gopls): support gopls_settings via ls_specific_settings
2026-01-16 00:41:28 +07:00
Dominik Jain dd3c97b81f Remove Rider from list of IDEs [skip ci] 2026-01-14 23:06:03 +01:00
Dominik Jain 29adb65d39 Project.is_path_in_project: Allow symlinks pointing outside the project directory to be accessed
It is reasonable to assume that symlinks point to relevant project content (instead of disallowing access).

Resolves #936
2026-01-14 19:17:40 +01:00
Dominik Jain be50086930 Merge pull request #938 from oraios/open_dashboard_param_in_cli
Open dashboard param in cli and client info in dashboard
2026-01-14 18:26:48 +01:00
Dominik Jain 129be9bdb1 Improve logging, apply timeout only to project ready event #937 2026-01-14 18:22:27 +01:00
Michael Panchenko 26f66a5d23 Hotfix: Add timeout to waiting for server readiness in EclipseJDTLS 2026-01-14 23:52:27 +07:00
Michael Panchenko 2eca7af593 Display info about the client (that performed the last tool call) in dashboard
Had to hack around a bit to make it happen but worth the added transparency for users
2026-01-14 22:18:20 +07:00
Dominik Jain c7c07046c5 EclipseJDTLS: Log language status updates #937 2026-01-14 12:20:09 +01:00
Michael Panchenko 5897585ef2 Support for --open_web_dashboard in the CLI
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
2026-01-14 14:14:59 +07:00
Dominik Jain 62cff92b0f Refactor DependencyProvider: Rename method create_process_env -> create_launch_command_env 2026-01-14 02:33:31 +01:00
Dominik Jain 97a777c55b MatLabLanguageServer: Move _find_matlab_installation into DependencyProvider 2026-01-14 02:33:31 +01:00