Commit Graph
2037 Commits
Author SHA1 Message Date
Dominik Jain f0cb06eb4b Add docstrings 2026-01-28 19:49:00 +01:00
Dominik Jain 3c29a8fbe8 Deduplicate active modes 2026-01-28 19:49:00 +01:00
Dominik Jain 712c493360 Handle newline differences between leading and trailing comments 2026-01-28 19:49:00 +01:00
Dominik Jain a8753d9618 Apply YAML comment transfer to serena_config.yml when re-saving
* Use leading comment convention in template, because trailing
   comments are much more difficult to deal with and very hard to normalise
 * Apply a conversion to the user's yaml content (translating from trailing
   comments where necessary) before applying the comment transfer
2026-01-28 19:49:00 +01:00
Dominik Jain 5125831c3a Improve comment on special requirements for language servers, linking to docs 2026-01-28 19:49:00 +01:00
Dominik Jain 7c7f100d75 transfer_missing_yaml_comments_by_index: Also transfer source comment if target comment is effectively empty 2026-01-28 19:49:00 +01:00
Dominik Jain a58a1c2f16 Transfer comments from template when re-saving project.yml files 2026-01-28 19:49:00 +01:00
Dominik Jain 57423142fe Add YAML comment normalisation to ensure that comments are properly associated
with the respective keys (given a file that uniformly uses pre-key comments)
2026-01-28 19:49:00 +01:00
Dominik Jain 71fca6c567 Remove unnecessary overload (always preserve comments) 2026-01-28 19:49:00 +01:00
Dominik Jain c6b00c39eb Separate YAML and dataclass utils 2026-01-28 19:49:00 +01:00
Dominik Jain 7ad00d8e51 Ensure that project.yml files are complete, re-saving incomplete ones with defaults 2026-01-28 19:49:00 +01:00
Dominik Jain 40a3075cc0 Ensure consistent mode configuration for project
Enabled modes must not depend on project activation order.
Always apply, in order: SerenaConfig, ProjectConfig, current CLI overrides
2026-01-28 19:49:00 +01:00
Dominik Jain 5b103ee281 Improve configurability of modes
Modes can now be configured in three places (in reverse order of precedence)
  * global config
  * project config
  * command line

Furthermore, we differentiate base modes from default modes,
where command line parameters override only default modes,
adding more flexibility

Resolves #926
2026-01-26 20:20:29 +01:00
Dominik Jain 414f591d58 Update contribution guidelines [skip ci] 2026-01-26 13:23:42 +01:00
Dominik Jain be77ad371d Merge pull request #948 from zen010101/feature/pasls-auto-update
feat(pascal): Add auto-update for Pascal Language Server
2026-01-24 15:53:28 +01:00
Dominik Jain 8260ca7f4b Merge pull request #967 from oraios/name-path-matching-logic
Adjust name path matching logic to consider overload indices at all positions in the name path
2026-01-24 14:12:13 +01:00
Dominik Jain 0fbc2b5f82 Adjust name path matching logic to consider overload indices at all positions in the name path
(now matching the implementation in the JetBrains plugin)

Resolves #935
2026-01-24 02:21:11 +01:00
Dominik Jain 62e407dae5 Merge pull request #950 from zen010101/feature/pascal-ls-specific-settings
feat(pascal): Support ls_specific_settings for Pascal LSP
2026-01-24 02:14:45 +01:00
zen010101 ab3787c8e3 docs: Update Pascal docs to focus on ls_specific_settings
Changed documentation to describe ls_specific_settings configuration
instead of environment variables, as suggested by reviewer.
2026-01-24 07:06:59 +08:00
zen010101 5502e5246a chore: retrigger CI 2026-01-24 05:45:15 +08:00
zen010101 dabf14f1f6 docs: Add Pascal language server configuration documentation
Document pasls settings including:
- Language server installation (PATH vs auto-download)
- Auto-update behavior (24h interval, SHA256 verification, atomic updates)
- Configuration via environment variables (PP, FPCDIR, LAZARUSDIR, etc.)
2026-01-23 16:49:07 +08:00
Dominik Jain 1ec5a731a3 cli: Allow "project index" with project name (not just path), refactoring 2026-01-22 14:39:23 +01:00
Dominik Jain 1d0e38be85 cli: Remove deprecated indexing command 2026-01-22 14:29:33 +01:00
Dominik Jain 0f3e23c4e8 cli: "project create" now saves the created project to SerenaConfig
Resolves #868
2026-01-22 14:29:32 +01:00
Dominik Jain a2d2f0f0a9 Merge pull request #965 from oraios/memory-efficient-body-cache
Ensure memory-efficient high-level document symbol cache
2026-01-22 02:25:20 +01:00
Dominik Jain c2e795fce4 Ensure memory-efficient high-level document symbol cache #944
* Introduce SymbolBody representation (compact), from which the
    body can be reconstructed, rendering body computation lazy
  * Introduce SymbolBodyFactory for the creation of such instances,
    ensuring that instances created from the same factory share
    the same file content, allowing the in-memory and on-disk caches
    to have a significantly smaller memory footprint
  * Change type of "body" key in UnifiedSymbolRepresentation to use
    SymbolBody instead of str
  * Adjust all usages of the "body" key
2026-01-22 01:39:59 +01:00
Dominik Jain fe0cc7bb0c Avoid circular import issue 2026-01-22 00:45:29 +01:00
Dominik Jain 1d766bea2a JetBrainsPluginClient: Improve error handling when retrieving service status #962 2026-01-21 12:42:50 +01:00
Michael Panchenko b0a1546bb6 Finalized setup instructions for Antigravity
Serena works in it now
2026-01-21 11:46:23 +07:00
Michael Panchenko bd4bac87a0 Merge pull request #963 from zyn1018/fix/jetbrains-plugin-http-error-handling
fix: handle HTTPError in JetBrainsPluginClient initialization
2026-01-21 10:49:45 +07:00
Yinan Zhang 3d61055127 fix: handle HTTPError in JetBrainsPluginClient initialization
When the JetBrains plugin service returns HTTP 503 error, the client
now gracefully handles it by setting _plugin_version and _project_root
to None, allowing the port scanning logic to continue trying other ports.

Fixes #962
2026-01-21 11:35:10 +08:00
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