mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-05 01:50:27 +08:00
80 lines
2.2 KiB
Python
80 lines
2.2 KiB
Python
"""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())
|