mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-11 02:33:51 +08:00
feat: 添加多个 LSP 测试示例,包括能力测试、调用层次和原始 LSP 测试
This commit is contained in:
79
codex-lens/examples/test_lsp_capabilities.py
Normal file
79
codex-lens/examples/test_lsp_capabilities.py
Normal file
@@ -0,0 +1,79 @@
|
||||
"""Test LSP server capabilities."""
|
||||
|
||||
import asyncio
|
||||
import json
|
||||
from pathlib import Path
|
||||
from codexlens.lsp.standalone_manager import StandaloneLspManager
|
||||
|
||||
async def test_capabilities():
|
||||
"""Test what capabilities Pyright provides."""
|
||||
|
||||
workspace_root = Path("D:/Claude_dms3/codex-lens/src")
|
||||
|
||||
print("Testing LSP Capabilities")
|
||||
print("="*80)
|
||||
|
||||
# Create LSP manager
|
||||
manager = StandaloneLspManager(
|
||||
workspace_root=str(workspace_root),
|
||||
timeout=10.0,
|
||||
)
|
||||
|
||||
try:
|
||||
# Start LSP manager
|
||||
print("\n1. Starting LSP manager...")
|
||||
await manager.start()
|
||||
print(" [OK] LSP manager started")
|
||||
|
||||
# Get server state for Python
|
||||
print("\n2. Getting Python server state...")
|
||||
test_file = str(workspace_root / "codexlens/search/hybrid_search.py")
|
||||
state = await manager._get_server(test_file)
|
||||
|
||||
if not state:
|
||||
print(" [ERROR] Could not get server state!")
|
||||
return
|
||||
|
||||
print(f" [OK] Server state obtained")
|
||||
print(f" Initialized: {state.initialized}")
|
||||
|
||||
# Print capabilities
|
||||
print("\n3. Server Capabilities:")
|
||||
print("-"*80)
|
||||
caps = state.capabilities
|
||||
|
||||
# Key capabilities to check
|
||||
important_caps = [
|
||||
"callHierarchyProvider",
|
||||
"definitionProvider",
|
||||
"referencesProvider",
|
||||
"documentSymbolProvider",
|
||||
"workspaceSymbolProvider",
|
||||
"hoverProvider",
|
||||
"completionProvider",
|
||||
"signatureHelpProvider",
|
||||
]
|
||||
|
||||
for cap in important_caps:
|
||||
value = caps.get(cap)
|
||||
status = "[YES]" if value else "[NO]"
|
||||
print(f" {status} {cap}: {value}")
|
||||
|
||||
# Print all capabilities as JSON for reference
|
||||
print("\n4. Full capabilities (formatted):")
|
||||
print("-"*80)
|
||||
print(json.dumps(caps, indent=2))
|
||||
|
||||
except Exception as e:
|
||||
print(f"\n[ERROR] Error: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
finally:
|
||||
# Cleanup
|
||||
print("\n5. Cleaning up...")
|
||||
await manager.stop()
|
||||
print(" [OK] LSP manager stopped")
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(test_capabilities())
|
||||
Reference in New Issue
Block a user