* 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>
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)
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
* 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
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.
- 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
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.