Commit Graph
2004 Commits
Author SHA1 Message Date
Dominik Jain d73d9951fd Merge pull request #960 from SShadowS/al-display-name-normalization
feat(al): apply symbol name normalization in AL language server
2026-01-20 12:37:09 +01:00
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
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
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
Dominik Jain df642b8ca1 VueTypeScriptServer: Refactor to use DependencyProvider 2026-01-14 02:33:31 +01:00
Dominik Jain 20b9104702 EclipseJDTLS: Refactor to use DependencyProvider 2026-01-14 02:33:31 +01:00
Dominik Jain 9350017605 PyrightServer: Use sys.executable instead of just 'python' (just in case) 2026-01-14 02:33:31 +01:00
Dominik Jain 941f4ea253 PyrightServer: Refactor to use DependencyProvider 2026-01-14 02:30:48 +01:00
Dominik Jain 9560ee651d Introduce LanguageServerDependencyProvider abstraction
* 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
2026-01-14 02:29:15 +01:00