mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-13 10:16:00 +00:00
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:
1 parent
c01d9d06e8
commit
8b4cd2d33e
2 files changed
+15
-26
No files matched your search
@@ -251,14 +251,11 @@ class TaploServer(SolidLanguageServer):
|
||||
},
|
||||
"hover": {"dynamicRegistration": True, "contentFormat": ["markdown", "plaintext"]},
|
||||
"codeAction": {"dynamicRegistration": True},
|
||||
"formatting": {"dynamicRegistration": True},
|
||||
"semanticTokens": {"dynamicRegistration": True},
|
||||
},
|
||||
"workspace": {
|
||||
"workspaceFolders": True,
|
||||
"didChangeConfiguration": {"dynamicRegistration": True},
|
||||
"symbol": {"dynamicRegistration": True},
|
||||
"configuration": True,
|
||||
},
|
||||
},
|
||||
"processId": os.getpid(),
|
||||
@@ -270,18 +267,6 @@ class TaploServer(SolidLanguageServer):
|
||||
"name": os.path.basename(repository_absolute_path),
|
||||
}
|
||||
],
|
||||
"initializationOptions": {
|
||||
"configuration": {
|
||||
"evenBetterToml": {
|
||||
"schema": {
|
||||
"enabled": True,
|
||||
"repositoryEnabled": True,
|
||||
"repositoryUrl": "https://taplo.tamasfe.dev/schema_index.json",
|
||||
},
|
||||
"formatter": {"alignEntries": False, "alignComments": True, "arrayTrailingComma": True},
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
return initialize_params # type: ignore
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user