11 Commits
Author SHA1 Message Date
Dr. Dominik Jain 3c8e9854f6 Improve identification of container/low-level symbols (#1834)
This affects results returned for request_containing_symbol,
some tests were adjusted accordingly.
2026-08-09 20:12:51 +02:00
Dominik Jain d2cf18ddcb Refactoring: Rename Language to LanguageServerId
This resolves a long-standing naming issue in Serena & SolidLSP.
2026-07-22 20:55:36 +02:00
Michael Panchenko bd7e64e85a Fixed diagnostics files uri handling, added low-level tests 2026-04-29 23:52:26 +02:00
AsherandMichael Panchenko 34e1fae739 Allow symbol operations in dot-prefixed directories (#1203)
* Allow symbol operations in dot-prefixed directories

is_ignored_dirname() used dirname.startswith(".") which blanket-ignored
all dot-prefixed directories including .github/, .vscode/, etc.

Changed to only ignore VCS directories (.git, .svn, .hg, .bzr).
Language-specific dot directories (.build, .elixir_ls, .terraform, etc.)
are already handled by the individual LS overrides.

Fixes #1187, fixes #853.

---------

Co-authored-by: Michael Panchenko <michael.panchenko@oraios-ai.de>
2026-04-13 14:19:33 +02:00
Michael Panchenko d30cdf8474 Fix symbol name resolution in selected LS (#1247)
Adds tests for name resolution for each language and fixes the name resolution where tests have failed.

Also:

Extends python tests to cover ty
Extends skipping conditions for several LS (but only when not in CI)
Better test output in CI
Removed a wrong python test (started failing for ty and should have failed for pyright too)
2026-04-01 16:29:00 +02:00
Michael Panchenko 0bbd9e375e Reformat (minor, after replacing black with ruff)
Black dependency created a dependabot warning and couldn't be bumped since it collided with pathspec dependencies. Since ruff can also format, black is not needed. But we now have these small format changes, mostly in test files
2026-03-23 21:10:41 +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
w0wl0lxd b4914673a7 style: Fix black formatting in TOML test file 2025-12-01 04:06:44 -06:00
w0wl0lxd 5b31dfffed test: Add comprehensive TOML language server tests
Add 28 new tests across 4 test files for Taplo TOML language support:

- test_toml_edge_cases.py: Tests for inline tables, multiline strings,
  arrays of tables, nested tables, datetime values, and dependency tables
- test_toml_ignored_dirs.py: Tests for TOML-specific directory ignoring
  (target, .cargo, node_modules)
- test_toml_symbol_retrieval.py: Tests for document overview, symbol tree,
  directory overview, and symbol hierarchy operations
- __init__.py: Package initialization

Also adds config.toml test fixture with comprehensive TOML features for
edge case testing.

Total: 35 TOML tests (7 basic + 28 new), all passing.
2025-12-01 04:01:55 -06:00
w0wl0lxd 8b4cd2d33e fix: Taplo LSP initialization and test assertions
- Remove unsupported capabilities from Taplo initialization params
  (formatting, semanticTokens, configuration) that caused -32602 error
- Remove VS Code extension-specific initializationOptions (evenBetterToml)
- Update tests to match Taplo's actual symbol kinds (kind 19 for tables)
- Fix features symbol test to find top-level section, not nested key
2025-12-01 03:40:21 -06:00
w0wl0lxd c01d9d06e8 feat: Add TOML language support via Taplo
Add TOML language server using Taplo with automatic binary download
for .toml file validation, formatting, and schema support.

Security:
- SHA256 checksum verification for downloaded binaries
- Zip slip vulnerability protection for archive extraction
- Download timeout (120s) to prevent indefinite hangs

Fixes #796: serena project index fails on Rust projects when
project.yml contains languages: ["toml"]. Without TOML in the
Language enum, loading such configurations raises ValueError:
'toml' is not a valid Language. This commonly occurs in Rust
projects where users want to index Cargo.toml alongside .rs files.
2025-12-01 02:49:52 -06:00