Commit Graph
2024 Commits
Author SHA1 Message Date
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
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
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