Skip to content

Commit 596fdf8

Browse files
committed
Enhance SCIPSymbolAnalyzer with external symbol import extraction
- Updated _organize_results to include scip_index for external symbol extraction. - Added _extract_imports_from_external_symbols method to handle imports from SCIP index. - Implemented framework name extraction from symbol strings. - Classified external symbols into standard_library and third_party categories. - Removed obsolete inspect_doc_symbols.py script. - Updated version of code-index-mcp to 2.1.2 and added libclang dependency. - Removed tree-sitter-c dependency from the project.
1 parent 18eea24 commit 596fdf8

File tree

8 files changed

+1646
-949
lines changed

8 files changed

+1646
-949
lines changed

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "code-index-mcp"
7-
version = "2.1.1"
7+
version = "2.1.2"
88
description = "Code indexing and analysis tools for LLMs using MCP"
99
readme = "README.md"
1010
requires-python = ">=3.10"
@@ -20,9 +20,9 @@ dependencies = [
2020
"tree-sitter-javascript>=0.20.0",
2121
"tree-sitter-typescript>=0.20.0",
2222
"tree-sitter-java>=0.20.0",
23-
"tree-sitter-c>=0.20.0",
2423
"tree-sitter-zig>=0.20.0",
2524
"pathspec>=0.12.1",
25+
"libclang>=16.0.0",
2626
]
2727

2828
[project.urls]

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ tree-sitter>=0.20.0
55
tree-sitter-javascript>=0.20.0
66
tree-sitter-typescript>=0.20.0
77
tree-sitter-java>=0.20.0
8-
tree-sitter-c>=0.20.0
8+
tree-sitter-zig>=0.20.0
99
pathspec>=0.12.1
10+
libclang>=16.0.0

src/code_index_mcp/scip/factory.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@
77
from .strategies.javascript_strategy import JavaScriptStrategy
88
from .strategies.java_strategy import JavaStrategy
99
from .strategies.objective_c_strategy import ObjectiveCStrategy
10-
from .strategies.zig_strategy import ZigStrategy
10+
# Optional strategies - import only if available
11+
try:
12+
from .strategies.zig_strategy import ZigStrategy
13+
ZIG_AVAILABLE = True
14+
except ImportError:
15+
ZigStrategy = None
16+
ZIG_AVAILABLE = False
1117
from .strategies.fallback_strategy import FallbackStrategy
1218
from ..constants import SUPPORTED_EXTENSIONS
1319

@@ -35,9 +41,12 @@ def _register_all_strategies(self):
3541
(JavaScriptStrategy, 95),
3642
(JavaStrategy, 95),
3743
(ObjectiveCStrategy, 95),
38-
(ZigStrategy, 95),
3944
]
4045

46+
# Add optional strategies if available
47+
if ZIG_AVAILABLE and ZigStrategy:
48+
strategy_classes.append((ZigStrategy, 95))
49+
4150
for strategy_class, priority in strategy_classes:
4251
try:
4352
strategy = strategy_class(priority=priority)
@@ -127,7 +136,7 @@ def list_supported_extensions(self) -> Set[str]:
127136
supported.update({'.java'})
128137
elif isinstance(strategy, ObjectiveCStrategy):
129138
supported.update({'.m', '.mm'})
130-
elif isinstance(strategy, ZigStrategy):
139+
elif ZIG_AVAILABLE and isinstance(strategy, ZigStrategy):
131140
supported.update({'.zig', '.zon'})
132141
elif isinstance(strategy, FallbackStrategy):
133142
# Fallback supports everything, but we don't want to list everything here

src/code_index_mcp/scip/strategies/javascript_strategy.py

Lines changed: 567 additions & 103 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)