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
This commit is contained in:
w0wl0lxd committed 2025-12-01 03:40:21 -06:00
1 parent c01d9d06e8
commit 8b4cd2d33e
2 files changed
+15 -26

No files matched your search

+15 -11
View File
@@ -48,14 +48,14 @@ class TestTomlLanguageServerBasics:
assert "version" in symbol_names, "Should detect nested 'version' key"
assert "edition" in symbol_names, "Should detect nested 'edition' key"
# Check symbol kind for tables - should be kind 2 (module/namespace)
# Check symbol kind for tables - Taplo uses kind 19 (object) for TOML tables
package_symbol = next((s for s in all_symbols if s.get("name") == "package"), None)
assert package_symbol is not None, "Should find 'package' symbol"
assert package_symbol.get("kind") == 2, "Top-level table should have kind 2 (module/namespace)"
assert package_symbol.get("kind") == 19, "Top-level table should have kind 19 (object)"
dependencies_symbol = next((s for s in all_symbols if s.get("name") == "dependencies"), None)
assert dependencies_symbol is not None, "Should find 'dependencies' symbol"
assert dependencies_symbol.get("kind") == 2, "'dependencies' table should have kind 2 (module/namespace)"
assert dependencies_symbol.get("kind") == 19, "'dependencies' table should have kind 19 (object)"
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
@@ -81,10 +81,10 @@ class TestTomlLanguageServerBasics:
assert "version" in symbol_names, "Should detect 'version' under project"
assert "requires-python" in symbol_names or "dependencies" in symbol_names, "Should detect project dependencies"
# Check symbol kind for tables
# Check symbol kind for tables - Taplo uses kind 19 (object) for TOML tables
project_symbol = next((s for s in all_symbols if s.get("name") == "project"), None)
assert project_symbol is not None, "Should find 'project' symbol"
assert project_symbol.get("kind") == 2, "'project' table should have kind 2 (module/namespace)"
assert project_symbol.get("kind") == 19, "'project' table should have kind 19 (object)"
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
@@ -135,9 +135,9 @@ class TestTomlLanguageServerBasics:
assert package_symbol is not None, "Should find 'package' symbol"
# Check that body exists and contains expected content
# Note: Taplo includes the section header in the body
assert "body" in package_symbol, "'package' symbol should have body"
package_body = package_symbol["body"]
assert "[package]" in package_body, "Body should contain '[package]'"
assert 'name = "test_project"' in package_body, "Body should contain 'name' field"
assert 'version = "0.1.0"' in package_body, "Body should contain 'version' field"
assert 'edition = "2021"' in package_body, "Body should contain 'edition' field"
@@ -147,16 +147,20 @@ class TestTomlLanguageServerBasics:
assert deps_symbol is not None, "Should find 'dependencies' symbol"
assert "body" in deps_symbol, "'dependencies' symbol should have body"
deps_body = deps_symbol["body"]
assert "[dependencies]" in deps_body, "Body should contain '[dependencies]'"
assert "serde" in deps_body, "Body should contain serde dependency"
assert "tokio" in deps_body, "Body should contain tokio dependency"
# Find the features symbol and check its body
features_symbol = next((s for s in all_symbols if s.get("name") == "features"), None)
assert features_symbol is not None, "Should find 'features' symbol"
# Find the top-level [features] section (not the nested 'features' in serde dependency)
# The [features] section should be kind 19 (object) and at line 15 (0-indexed)
features_symbols = [s for s in all_symbols if s.get("name") == "features"]
# Find the top-level one - should be kind 19 (object) with children
features_symbol = next(
(s for s in features_symbols if s.get("kind") == 19 and s.get("children")),
None,
)
assert features_symbol is not None, "Should find top-level 'features' table symbol"
assert "body" in features_symbol, "'features' symbol should have body"
features_body = features_symbol["body"]
assert "[features]" in features_body, "Body should contain '[features]'"
assert "default" in features_body, "Body should contain 'default' feature"
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)