mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-15 02:17:26 +00:00
Refactoring: Rename Language to LanguageServerId
This resolves a long-standing naming issue in Serena & SolidLSP.
This commit is contained in:
1 parent
ef0e218fb1
commit
d2cf18ddcb
180 files changed
+1806
-1767
No files matched your search
@@ -10,7 +10,7 @@ from pathlib import Path
|
||||
import pytest
|
||||
|
||||
from solidlsp import SolidLanguageServer
|
||||
from solidlsp.ls_config import Language
|
||||
from solidlsp.ls_config import LanguageServerId
|
||||
from test.solidlsp.conftest import format_symbol_for_assert, has_malformed_name, request_all_symbols
|
||||
|
||||
|
||||
@@ -18,17 +18,17 @@ from test.solidlsp.conftest import format_symbol_for_assert, has_malformed_name,
|
||||
class TestTomlLanguageServerBasics:
|
||||
"""Test basic functionality of the TOML language server (Taplo)."""
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_toml_language_server_initialization(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that TOML language server can be initialized successfully."""
|
||||
assert language_server is not None
|
||||
assert language_server.language == Language.TOML
|
||||
assert language_server.ls_id == LanguageServerId.TOML
|
||||
assert language_server.is_running()
|
||||
assert Path(language_server.language_server.repository_root_path).resolve() == repo_path.resolve()
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_toml_cargo_file_symbols(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test document symbols detection in Cargo.toml with specific symbol verification."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("Cargo.toml").get_all_symbols_and_roots()
|
||||
@@ -58,8 +58,8 @@ class TestTomlLanguageServerBasics:
|
||||
assert dependencies_symbol is not None, "Should find 'dependencies' symbol"
|
||||
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)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_toml_pyproject_file_symbols(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test document symbols detection in pyproject.toml."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("pyproject.toml").get_all_symbols_and_roots()
|
||||
@@ -87,8 +87,8 @@ class TestTomlLanguageServerBasics:
|
||||
assert project_symbol is not None, "Should find 'project' symbol"
|
||||
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)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_toml_symbol_kinds(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that TOML symbols have appropriate LSP kinds for different value types."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("Cargo.toml").get_all_symbols_and_roots()
|
||||
@@ -122,8 +122,8 @@ class TestTomlLanguageServerBasics:
|
||||
assert default_symbol is not None, "Should find 'default' array symbol"
|
||||
assert default_symbol.get("kind") == 18, "'default' should have kind 18 (array)"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_toml_symbols_with_body(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test request_document_symbols with body extraction."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("Cargo.toml").get_all_symbols_and_roots()
|
||||
@@ -164,8 +164,8 @@ class TestTomlLanguageServerBasics:
|
||||
features_body = features_symbol["body"].get_text()
|
||||
assert "default" in features_body, "Body should contain 'default' feature"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_toml_symbol_ranges(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that symbols have proper range information."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("Cargo.toml").get_all_symbols_and_roots()
|
||||
@@ -205,8 +205,8 @@ class TestTomlLanguageServerBasics:
|
||||
assert "line" in package_range["end"], "End should have line"
|
||||
assert "character" in package_range["end"], "End should have character"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_toml_nested_table_symbols(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test detection of nested table symbols like profile.release and tool.ruff."""
|
||||
# Test Cargo.toml for profile.release
|
||||
@@ -235,7 +235,7 @@ class TestTomlLanguageServerBasics:
|
||||
if strict_symbol:
|
||||
assert strict_symbol.get("kind") == 17, "'strict' should have kind 17 (boolean)"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
def test_bare_symbol_names(self, language_server) -> None:
|
||||
all_symbols = request_all_symbols(language_server)
|
||||
malformed_symbols = []
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import pytest
|
||||
|
||||
from solidlsp import SolidLanguageServer
|
||||
from solidlsp.ls_config import Language
|
||||
from solidlsp.ls_config import LanguageServerId
|
||||
from test.solidlsp.util.diagnostics import assert_file_diagnostics
|
||||
|
||||
|
||||
@pytest.mark.toml
|
||||
class TestTomlDiagnostics:
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
def test_file_diagnostics(self, language_server: SolidLanguageServer) -> None:
|
||||
assert_file_diagnostics(
|
||||
language_server,
|
||||
|
||||
@@ -14,7 +14,7 @@ from pathlib import Path
|
||||
import pytest
|
||||
|
||||
from solidlsp import SolidLanguageServer
|
||||
from solidlsp.ls_config import Language
|
||||
from solidlsp.ls_config import LanguageServerId
|
||||
|
||||
pytestmark = pytest.mark.toml
|
||||
|
||||
@@ -22,8 +22,8 @@ pytestmark = pytest.mark.toml
|
||||
class TestTomlEdgeCases:
|
||||
"""Test TOML language server handling of edge cases and advanced features."""
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_inline_table_detection(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that inline tables are properly detected."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -42,8 +42,8 @@ class TestTomlEdgeCases:
|
||||
# Inline tables should be kind 19 (object)
|
||||
assert endpoint_symbol.get("kind") == 19, "Inline table should have kind 19 (object)"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_nested_table_detection(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that deeply nested tables are properly detected."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -57,8 +57,8 @@ class TestTomlEdgeCases:
|
||||
assert has_ssl, f"Should detect 'server.ssl' nested table, got: {symbol_names}"
|
||||
assert has_pool, f"Should detect 'database.pool' nested table, got: {symbol_names}"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_array_of_tables_detection(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that [[array_of_tables]] syntax is properly detected."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -75,8 +75,8 @@ class TestTomlEdgeCases:
|
||||
# Array of tables should be kind 18 (array)
|
||||
assert endpoints_symbol.get("kind") == 18, "Array of tables should have kind 18 (array)"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_multiline_string_handling(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that multiline strings are handled correctly."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -93,8 +93,8 @@ class TestTomlEdgeCases:
|
||||
# String type should be kind 15
|
||||
assert conn_symbol.get("kind") == 15, "Multiline string should have kind 15 (string)"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_array_value_detection(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that array values are properly detected."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -111,8 +111,8 @@ class TestTomlEdgeCases:
|
||||
# Arrays should have kind 18
|
||||
assert outputs_symbol.get("kind") == 18, "'outputs' should have kind 18 (array)"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_float_value_detection(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that float values are properly detected."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -128,8 +128,8 @@ class TestTomlEdgeCases:
|
||||
# Numbers should have kind 16
|
||||
assert timeout_symbol.get("kind") == 16, "'timeout' should have kind 16 (number)"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_datetime_value_detection(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that datetime values are detected."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -141,8 +141,8 @@ class TestTomlEdgeCases:
|
||||
assert "created" in symbol_names, "Should detect 'created' datetime field"
|
||||
assert "updated" in symbol_names, "Should detect 'updated' datetime field"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_symbol_body_with_inline_table(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that symbol bodies include inline table content."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -156,8 +156,8 @@ class TestTomlEdgeCases:
|
||||
# Body should contain the inline table syntax
|
||||
assert "url" in body or "version" in body, f"Body should contain inline table contents, got: {body}"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_symbol_ranges_in_config(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that symbol ranges are correct in config.toml."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -172,8 +172,8 @@ class TestTomlEdgeCases:
|
||||
assert server_range["start"]["line"] >= 0, "Server should start at or near the beginning"
|
||||
assert server_range["end"]["line"] > server_range["start"]["line"], "Server block should span multiple lines"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_comment_handling(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that comments don't interfere with symbol detection."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -186,8 +186,8 @@ class TestTomlEdgeCases:
|
||||
|
||||
assert len(found_sections) >= 4, f"Should find most sections despite comments, found: {found_sections}"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_special_characters_in_strings(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that strings with escape sequences are handled."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("config.toml").get_all_symbols_and_roots()
|
||||
@@ -203,8 +203,8 @@ class TestTomlEdgeCases:
|
||||
class TestTomlDependencyTables:
|
||||
"""Test handling of dependency-style tables common in Cargo.toml and pyproject.toml."""
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_complex_dependency_inline_table(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test detection of complex inline table dependencies like serde = { version = "1.0", features = ["derive"] }."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("Cargo.toml").get_all_symbols_and_roots()
|
||||
@@ -222,8 +222,8 @@ class TestTomlDependencyTables:
|
||||
# Dependency with inline table should be kind 19 (object)
|
||||
assert serde_symbol.get("kind") == 19, "Complex dependency should have kind 19 (object)"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_simple_dependency_string(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test detection of simple string dependencies like proptest = "1.0"."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("Cargo.toml").get_all_symbols_and_roots()
|
||||
@@ -240,8 +240,8 @@ class TestTomlDependencyTables:
|
||||
# Simple string dependency should be kind 15 (string)
|
||||
assert proptest_symbol.get("kind") == 15, "Simple string dependency should have kind 15 (string)"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_pyproject_dependencies_array(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test detection of pyproject.toml dependencies array."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("pyproject.toml").get_all_symbols_and_roots()
|
||||
@@ -258,8 +258,8 @@ class TestTomlDependencyTables:
|
||||
# Dependencies array should be kind 18 (array)
|
||||
assert deps_symbol.get("kind") == 18, "Dependencies array should have kind 18 (array)"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_optional_dependencies_table(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test detection of optional-dependencies in pyproject.toml."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("pyproject.toml").get_all_symbols_and_roots()
|
||||
|
||||
@@ -8,12 +8,12 @@ TOML-specific directories like target, .cargo, and node_modules.
|
||||
import pytest
|
||||
|
||||
from solidlsp import SolidLanguageServer
|
||||
from solidlsp.ls_config import Language
|
||||
from solidlsp.ls_config import LanguageServerId
|
||||
|
||||
pytestmark = pytest.mark.toml
|
||||
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
class TestTomlIgnoredDirectories:
|
||||
"""Test TOML-specific directory ignoring behavior."""
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ from pathlib import Path
|
||||
import pytest
|
||||
|
||||
from solidlsp import SolidLanguageServer
|
||||
from solidlsp.ls_config import Language
|
||||
from solidlsp.ls_config import LanguageServerId
|
||||
|
||||
pytestmark = pytest.mark.toml
|
||||
|
||||
@@ -21,8 +21,8 @@ pytestmark = pytest.mark.toml
|
||||
class TestTomlSymbolRetrieval:
|
||||
"""Test advanced symbol retrieval functionality for TOML files."""
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_request_containing_symbol_behavior(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test request_containing_symbol behavior for TOML files.
|
||||
|
||||
@@ -36,8 +36,8 @@ class TestTomlSymbolRetrieval:
|
||||
# This is expected behavior for a configuration file format
|
||||
assert containing_symbol is None, "TOML LSP doesn't support containing symbol lookup"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_request_document_overview_cargo(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test request_document_overview for Cargo.toml."""
|
||||
overview = language_server.request_document_overview("Cargo.toml")
|
||||
@@ -52,8 +52,8 @@ class TestTomlSymbolRetrieval:
|
||||
expected_tables = {"package", "dependencies", "dev-dependencies", "features", "workspace"}
|
||||
assert expected_tables.issubset(symbol_names), f"Missing expected tables in overview: {expected_tables - symbol_names}"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_request_document_overview_pyproject(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test request_document_overview for pyproject.toml."""
|
||||
overview = language_server.request_document_overview("pyproject.toml")
|
||||
@@ -68,8 +68,8 @@ class TestTomlSymbolRetrieval:
|
||||
assert "project" in symbol_names, "Should detect 'project' table"
|
||||
assert "build-system" in symbol_names, "Should detect 'build-system' table"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_request_full_symbol_tree(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test request_full_symbol_tree returns TOML files."""
|
||||
symbol_tree = language_server.request_full_symbol_tree()
|
||||
@@ -89,8 +89,8 @@ class TestTomlSymbolRetrieval:
|
||||
f"Should find Cargo.toml in tree, got: {child_names}"
|
||||
)
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_request_dir_overview(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test request_dir_overview returns symbols for TOML files."""
|
||||
overview = language_server.request_dir_overview(".")
|
||||
@@ -103,8 +103,8 @@ class TestTomlSymbolRetrieval:
|
||||
assert any("Cargo.toml" in path for path in file_paths), f"Should find Cargo.toml in overview, got: {file_paths}"
|
||||
assert any("pyproject.toml" in path for path in file_paths), f"Should find pyproject.toml in overview, got: {file_paths}"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_symbol_hierarchy_in_cargo(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that symbol hierarchy is properly preserved in Cargo.toml."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("Cargo.toml").get_all_symbols_and_roots()
|
||||
@@ -122,8 +122,8 @@ class TestTomlSymbolRetrieval:
|
||||
assert "version" in child_names, "'package' should have 'version' child"
|
||||
assert "edition" in child_names, "'package' should have 'edition' child"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_symbol_hierarchy_in_pyproject(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that symbol hierarchy is properly preserved in pyproject.toml."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("pyproject.toml").get_all_symbols_and_roots()
|
||||
@@ -140,8 +140,8 @@ class TestTomlSymbolRetrieval:
|
||||
assert "name" in child_names, "'project' should have 'name' child"
|
||||
assert "version" in child_names, "'project' should have 'version' child"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_tool_section_hierarchy(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that tool sections in pyproject.toml are properly structured."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("pyproject.toml").get_all_symbols_and_roots()
|
||||
@@ -156,8 +156,8 @@ class TestTomlSymbolRetrieval:
|
||||
|
||||
assert has_ruff or has_mypy or has_pytest, f"Should detect tool sections, got names: {all_names}"
|
||||
|
||||
@pytest.mark.parametrize("language_server", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [Language.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("language_server", [LanguageServerId.TOML], indirect=True)
|
||||
@pytest.mark.parametrize("repo_path", [LanguageServerId.TOML], indirect=True)
|
||||
def test_array_of_tables_symbol(self, language_server: SolidLanguageServer, repo_path: Path) -> None:
|
||||
"""Test that [[bin]] array of tables is detected."""
|
||||
all_symbols, root_symbols = language_server.request_document_symbols("Cargo.toml").get_all_symbols_and_roots()
|
||||
|
||||
Reference in new issue
Block a user