kiri-mcp-server 0.16.1 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -22
- package/dist/package.json +4 -2
- package/dist/src/client/proxy.js +0 -0
- package/dist/src/daemon/daemon.js +0 -0
- package/dist/src/indexer/codeintel/dart/adapter.d.ts +36 -0
- package/dist/src/indexer/codeintel/dart/adapter.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/dart/adapter.js +60 -0
- package/dist/src/indexer/codeintel/dart/adapter.js.map +1 -0
- package/dist/src/indexer/codeintel/dart/index.d.ts +7 -0
- package/dist/src/indexer/codeintel/dart/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/dart/index.js +7 -0
- package/dist/src/indexer/codeintel/dart/index.js.map +1 -0
- package/dist/src/indexer/codeintel/index.d.ts +30 -0
- package/dist/src/indexer/codeintel/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/index.js +32 -0
- package/dist/src/indexer/codeintel/index.js.map +1 -0
- package/dist/src/indexer/codeintel/java/analyzer.d.ts +22 -0
- package/dist/src/indexer/codeintel/java/analyzer.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/java/analyzer.js +281 -0
- package/dist/src/indexer/codeintel/java/analyzer.js.map +1 -0
- package/dist/src/indexer/codeintel/java/index.d.ts +7 -0
- package/dist/src/indexer/codeintel/java/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/java/index.js +7 -0
- package/dist/src/indexer/codeintel/java/index.js.map +1 -0
- package/dist/src/indexer/codeintel/php/analyzer.d.ts +23 -0
- package/dist/src/indexer/codeintel/php/analyzer.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/php/analyzer.js +342 -0
- package/dist/src/indexer/codeintel/php/analyzer.js.map +1 -0
- package/dist/src/indexer/codeintel/php/index.d.ts +7 -0
- package/dist/src/indexer/codeintel/php/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/php/index.js +7 -0
- package/dist/src/indexer/codeintel/php/index.js.map +1 -0
- package/dist/src/indexer/codeintel/registry.d.ts +76 -0
- package/dist/src/indexer/codeintel/registry.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/registry.js +127 -0
- package/dist/src/indexer/codeintel/registry.js.map +1 -0
- package/dist/src/indexer/codeintel/rust/analyzer.d.ts +14 -0
- package/dist/src/indexer/codeintel/rust/analyzer.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/rust/analyzer.js +388 -0
- package/dist/src/indexer/codeintel/rust/analyzer.js.map +1 -0
- package/dist/src/indexer/codeintel/rust/index.d.ts +5 -0
- package/dist/src/indexer/codeintel/rust/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/rust/index.js +5 -0
- package/dist/src/indexer/codeintel/rust/index.js.map +1 -0
- package/dist/src/indexer/codeintel/swift/analyzer.d.ts +22 -0
- package/dist/src/indexer/codeintel/swift/analyzer.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/swift/analyzer.js +271 -0
- package/dist/src/indexer/codeintel/swift/analyzer.js.map +1 -0
- package/dist/src/indexer/codeintel/swift/index.d.ts +7 -0
- package/dist/src/indexer/codeintel/swift/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/swift/index.js +7 -0
- package/dist/src/indexer/codeintel/swift/index.js.map +1 -0
- package/dist/src/indexer/codeintel/types.d.ts +114 -0
- package/dist/src/indexer/codeintel/types.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/types.js +13 -0
- package/dist/src/indexer/codeintel/types.js.map +1 -0
- package/dist/src/indexer/codeintel/typescript/analyzer.d.ts +22 -0
- package/dist/src/indexer/codeintel/typescript/analyzer.d.ts.map +1 -0
- package/dist/{indexer/codeintel.js → src/indexer/codeintel/typescript/analyzer.js} +62 -34
- package/dist/src/indexer/codeintel/typescript/analyzer.js.map +1 -0
- package/dist/src/indexer/codeintel/typescript/index.d.ts +7 -0
- package/dist/src/indexer/codeintel/typescript/index.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/typescript/index.js +7 -0
- package/dist/src/indexer/codeintel/typescript/index.js.map +1 -0
- package/dist/src/indexer/codeintel/utils.d.ts +91 -0
- package/dist/src/indexer/codeintel/utils.d.ts.map +1 -0
- package/dist/src/indexer/codeintel/utils.js +145 -0
- package/dist/src/indexer/codeintel/utils.js.map +1 -0
- package/dist/src/indexer/codeintel.d.ts +33 -26
- package/dist/src/indexer/codeintel.d.ts.map +1 -1
- package/dist/src/indexer/codeintel.js +56 -1078
- package/dist/src/indexer/codeintel.js.map +1 -1
- package/dist/src/indexer/graph-metrics.d.ts.map +1 -1
- package/dist/src/indexer/graph-metrics.js +16 -4
- package/dist/src/indexer/graph-metrics.js.map +1 -1
- package/dist/src/server/boost-profiles.d.ts +1 -1
- package/dist/src/server/boost-profiles.d.ts.map +1 -1
- package/dist/src/server/boost-profiles.js +22 -0
- package/dist/src/server/boost-profiles.js.map +1 -1
- package/dist/src/server/main.js +0 -0
- package/dist/src/server/rpc.js +4 -4
- package/dist/src/server/rpc.js.map +1 -1
- package/package.json +10 -2
- package/dist/client/cli.js +0 -68
- package/dist/client/cli.js.map +0 -1
- package/dist/client/index.js +0 -5
- package/dist/client/index.js.map +0 -1
- package/dist/eval/metrics.js +0 -47
- package/dist/eval/metrics.js.map +0 -1
- package/dist/indexer/cli.js +0 -362
- package/dist/indexer/cli.js.map +0 -1
- package/dist/indexer/codeintel.js.map +0 -1
- package/dist/indexer/git.js +0 -30
- package/dist/indexer/git.js.map +0 -1
- package/dist/indexer/language.js +0 -34
- package/dist/indexer/language.js.map +0 -1
- package/dist/indexer/pipeline/filters/denylist.js +0 -71
- package/dist/indexer/pipeline/filters/denylist.js.map +0 -1
- package/dist/indexer/schema.js +0 -101
- package/dist/indexer/schema.js.map +0 -1
- package/dist/server/bootstrap.js +0 -19
- package/dist/server/bootstrap.js.map +0 -1
- package/dist/server/context.js +0 -1
- package/dist/server/context.js.map +0 -1
- package/dist/server/fallbacks/degradeController.js +0 -69
- package/dist/server/fallbacks/degradeController.js.map +0 -1
- package/dist/server/handlers.js +0 -1268
- package/dist/server/handlers.js.map +0 -1
- package/dist/server/main.js +0 -151
- package/dist/server/main.js.map +0 -1
- package/dist/server/observability/metrics.js +0 -56
- package/dist/server/observability/metrics.js.map +0 -1
- package/dist/server/observability/tracing.js +0 -58
- package/dist/server/observability/tracing.js.map +0 -1
- package/dist/server/rpc.js +0 -477
- package/dist/server/rpc.js.map +0 -1
- package/dist/server/runtime.js +0 -47
- package/dist/server/runtime.js.map +0 -1
- package/dist/server/scoring.js +0 -116
- package/dist/server/scoring.js.map +0 -1
- package/dist/server/stdio.js +0 -76
- package/dist/server/stdio.js.map +0 -1
- package/dist/shared/duckdb.js +0 -119
- package/dist/shared/duckdb.js.map +0 -1
- package/dist/shared/embedding.js +0 -98
- package/dist/shared/embedding.js.map +0 -1
- package/dist/shared/index.js +0 -9
- package/dist/shared/index.js.map +0 -1
- package/dist/shared/security/config.js +0 -64
- package/dist/shared/security/config.js.map +0 -1
- package/dist/shared/security/masker.js +0 -56
- package/dist/shared/security/masker.js.map +0 -1
- package/dist/shared/tokenizer.js +0 -4
- package/dist/shared/tokenizer.js.map +0 -1
- package/dist/shared/utils/simpleYaml.js +0 -89
- package/dist/shared/utils/simpleYaml.js.map +0 -1
- package/dist/src/server/rrf.d.ts +0 -86
- package/dist/src/server/rrf.d.ts.map +0 -1
- package/dist/src/server/rrf.js +0 -108
- package/dist/src/server/rrf.js.map +0 -1
- package/dist/src/shared/embedding/engine.d.ts +0 -38
- package/dist/src/shared/embedding/engine.d.ts.map +0 -1
- package/dist/src/shared/embedding/engine.js +0 -6
- package/dist/src/shared/embedding/engine.js.map +0 -1
- package/dist/src/shared/embedding/lsh-engine.d.ts +0 -11
- package/dist/src/shared/embedding/lsh-engine.d.ts.map +0 -1
- package/dist/src/shared/embedding/lsh-engine.js +0 -14
- package/dist/src/shared/embedding/lsh-engine.js.map +0 -1
- package/dist/src/shared/embedding/registry.d.ts +0 -25
- package/dist/src/shared/embedding/registry.d.ts.map +0 -1
- package/dist/src/shared/embedding/registry.js +0 -50
- package/dist/src/shared/embedding/registry.js.map +0 -1
- package/dist/src/shared/embedding/semantic-engine.d.ts +0 -14
- package/dist/src/shared/embedding/semantic-engine.d.ts.map +0 -1
- package/dist/src/shared/embedding/semantic-engine.js +0 -50
- package/dist/src/shared/embedding/semantic-engine.js.map +0 -1
- package/dist/src/shared/models/model-manager.d.ts +0 -38
- package/dist/src/shared/models/model-manager.d.ts.map +0 -1
- package/dist/src/shared/models/model-manager.js +0 -116
- package/dist/src/shared/models/model-manager.js.map +0 -1
- package/dist/src/shared/models/model-manifest.d.ts +0 -22
- package/dist/src/shared/models/model-manifest.d.ts.map +0 -1
- package/dist/src/shared/models/model-manifest.js +0 -24
- package/dist/src/shared/models/model-manifest.js.map +0 -1
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Java Language Analyzer
|
|
3
|
+
*
|
|
4
|
+
* tree-sitter-java を使用したシンボル抽出と依存関係解析。
|
|
5
|
+
* class, interface, enum, annotation, method, constructor, field をサポート。
|
|
6
|
+
*/
|
|
7
|
+
import Parser from "tree-sitter";
|
|
8
|
+
import Java from "tree-sitter-java";
|
|
9
|
+
import { treeSitterPointToLine, sanitizeTreeSitterSignature, assignSymbolIds, symbolsToSnippets, createDependencyRecorder, cleanDocComment, } from "../utils.js";
|
|
10
|
+
/**
|
|
11
|
+
* Javadoc コメント (ブロックコメント形式) を抽出
|
|
12
|
+
*/
|
|
13
|
+
function getJavaDocComment(node, content) {
|
|
14
|
+
const parent = node.parent;
|
|
15
|
+
if (!parent)
|
|
16
|
+
return null;
|
|
17
|
+
// 親ノードのすべての子から、このノードの直前にあるコメントを探す
|
|
18
|
+
const precedingComments = [];
|
|
19
|
+
const siblings = parent.children;
|
|
20
|
+
const nodeIndex = siblings.indexOf(node);
|
|
21
|
+
// このノードより前の兄弟を逆順で調べる
|
|
22
|
+
for (let i = nodeIndex - 1; i >= 0; i--) {
|
|
23
|
+
const sibling = siblings[i];
|
|
24
|
+
if (!sibling)
|
|
25
|
+
continue;
|
|
26
|
+
// block_commentをチェック
|
|
27
|
+
if (sibling.type === "block_comment") {
|
|
28
|
+
const commentText = content.substring(sibling.startIndex, sibling.endIndex);
|
|
29
|
+
// Javadoc コメント形式のみ抽出
|
|
30
|
+
if (commentText.startsWith("/**") && commentText.endsWith("*/")) {
|
|
31
|
+
precedingComments.unshift(cleanDocComment(commentText));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else if (!sibling.text.trim().match(/^\s*$/)) {
|
|
35
|
+
// コメント以外の実質的なノードに到達したら終了
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (precedingComments.length === 0) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return precedingComments.join("\n");
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 子ノードから識別子名を抽出
|
|
46
|
+
*/
|
|
47
|
+
function extractName(node, content) {
|
|
48
|
+
const identifierNode = node.namedChildren.find((child) => child.type === "identifier");
|
|
49
|
+
return identifierNode
|
|
50
|
+
? content.substring(identifierNode.startIndex, identifierNode.endIndex)
|
|
51
|
+
: null;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* シンボルレコードを作成
|
|
55
|
+
*/
|
|
56
|
+
function createJavaSymbolRecords(tree, content) {
|
|
57
|
+
const results = [];
|
|
58
|
+
/**
|
|
59
|
+
* ノードからシグネチャを取得
|
|
60
|
+
* Java はシグネチャの改行を先に正規化してから切り詰め
|
|
61
|
+
*/
|
|
62
|
+
function getSignature(node) {
|
|
63
|
+
const nodeText = content.substring(node.startIndex, node.endIndex);
|
|
64
|
+
return sanitizeTreeSitterSignature(nodeText, { normalizeFirst: true });
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* ツリーを再帰的にトラバースしてシンボルを抽出
|
|
68
|
+
*/
|
|
69
|
+
function visit(node) {
|
|
70
|
+
// class_declaration: クラス宣言
|
|
71
|
+
if (node.type === "class_declaration") {
|
|
72
|
+
const name = extractName(node, content);
|
|
73
|
+
if (name) {
|
|
74
|
+
results.push({
|
|
75
|
+
name,
|
|
76
|
+
kind: "class",
|
|
77
|
+
rangeStartLine: treeSitterPointToLine(node.startPosition),
|
|
78
|
+
rangeEndLine: treeSitterPointToLine(node.endPosition),
|
|
79
|
+
signature: getSignature(node),
|
|
80
|
+
doc: getJavaDocComment(node, content),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// interface_declaration: インターフェース宣言
|
|
85
|
+
if (node.type === "interface_declaration") {
|
|
86
|
+
const name = extractName(node, content);
|
|
87
|
+
if (name) {
|
|
88
|
+
results.push({
|
|
89
|
+
name,
|
|
90
|
+
kind: "interface",
|
|
91
|
+
rangeStartLine: treeSitterPointToLine(node.startPosition),
|
|
92
|
+
rangeEndLine: treeSitterPointToLine(node.endPosition),
|
|
93
|
+
signature: getSignature(node),
|
|
94
|
+
doc: getJavaDocComment(node, content),
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// enum_declaration: 列挙型宣言
|
|
99
|
+
if (node.type === "enum_declaration") {
|
|
100
|
+
const name = extractName(node, content);
|
|
101
|
+
if (name) {
|
|
102
|
+
results.push({
|
|
103
|
+
name,
|
|
104
|
+
kind: "enum",
|
|
105
|
+
rangeStartLine: treeSitterPointToLine(node.startPosition),
|
|
106
|
+
rangeEndLine: treeSitterPointToLine(node.endPosition),
|
|
107
|
+
signature: getSignature(node),
|
|
108
|
+
doc: getJavaDocComment(node, content),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// annotation_type_declaration: アノテーション型宣言
|
|
113
|
+
if (node.type === "annotation_type_declaration") {
|
|
114
|
+
const name = extractName(node, content);
|
|
115
|
+
if (name) {
|
|
116
|
+
results.push({
|
|
117
|
+
name,
|
|
118
|
+
kind: "annotation",
|
|
119
|
+
rangeStartLine: treeSitterPointToLine(node.startPosition),
|
|
120
|
+
rangeEndLine: treeSitterPointToLine(node.endPosition),
|
|
121
|
+
signature: getSignature(node),
|
|
122
|
+
doc: getJavaDocComment(node, content),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// field_declaration: フィールド宣言
|
|
127
|
+
if (node.type === "field_declaration") {
|
|
128
|
+
// variable_declaratorから変数名を抽出
|
|
129
|
+
const declarators = node.namedChildren.filter((child) => child.type === "variable_declarator");
|
|
130
|
+
for (const declarator of declarators) {
|
|
131
|
+
const name = extractName(declarator, content);
|
|
132
|
+
if (name) {
|
|
133
|
+
results.push({
|
|
134
|
+
name,
|
|
135
|
+
kind: "field",
|
|
136
|
+
rangeStartLine: treeSitterPointToLine(node.startPosition),
|
|
137
|
+
rangeEndLine: treeSitterPointToLine(node.endPosition),
|
|
138
|
+
signature: getSignature(node),
|
|
139
|
+
doc: getJavaDocComment(node, content),
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// constructor_declaration: コンストラクタ宣言
|
|
145
|
+
if (node.type === "constructor_declaration") {
|
|
146
|
+
const name = extractName(node, content);
|
|
147
|
+
if (name) {
|
|
148
|
+
results.push({
|
|
149
|
+
name,
|
|
150
|
+
kind: "constructor",
|
|
151
|
+
rangeStartLine: treeSitterPointToLine(node.startPosition),
|
|
152
|
+
rangeEndLine: treeSitterPointToLine(node.endPosition),
|
|
153
|
+
signature: getSignature(node),
|
|
154
|
+
doc: getJavaDocComment(node, content),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// method_declaration: メソッド宣言
|
|
159
|
+
if (node.type === "method_declaration") {
|
|
160
|
+
const name = extractName(node, content);
|
|
161
|
+
if (name) {
|
|
162
|
+
results.push({
|
|
163
|
+
name,
|
|
164
|
+
kind: "method",
|
|
165
|
+
rangeStartLine: treeSitterPointToLine(node.startPosition),
|
|
166
|
+
rangeEndLine: treeSitterPointToLine(node.endPosition),
|
|
167
|
+
signature: getSignature(node),
|
|
168
|
+
doc: getJavaDocComment(node, content),
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// annotation_type_element_declaration: アノテーション内のメソッド宣言
|
|
173
|
+
if (node.type === "annotation_type_element_declaration") {
|
|
174
|
+
const name = extractName(node, content);
|
|
175
|
+
if (name) {
|
|
176
|
+
results.push({
|
|
177
|
+
name,
|
|
178
|
+
kind: "method",
|
|
179
|
+
rangeStartLine: treeSitterPointToLine(node.startPosition),
|
|
180
|
+
rangeEndLine: treeSitterPointToLine(node.endPosition),
|
|
181
|
+
signature: getSignature(node),
|
|
182
|
+
doc: getJavaDocComment(node, content),
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// 子ノードを再帰的に訪問
|
|
187
|
+
for (const child of node.namedChildren) {
|
|
188
|
+
visit(child);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
visit(tree.rootNode);
|
|
192
|
+
return assignSymbolIds(results);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Java の import 文を解析して依存関係を収集
|
|
196
|
+
*/
|
|
197
|
+
function collectJavaDependencies(_sourcePath, tree, content, fileSet) {
|
|
198
|
+
const { record, getDependencies } = createDependencyRecorder();
|
|
199
|
+
function visit(node) {
|
|
200
|
+
// import_declaration: import文
|
|
201
|
+
if (node.type === "import_declaration") {
|
|
202
|
+
// scoped_identifier または identifier を探す
|
|
203
|
+
const identifierNode = node.namedChildren.find((child) => child.type === "scoped_identifier" || child.type === "identifier");
|
|
204
|
+
if (identifierNode) {
|
|
205
|
+
let importName = content.substring(identifierNode.startIndex, identifierNode.endIndex);
|
|
206
|
+
// ワイルドカードインポートのチェック (import java.util.*)
|
|
207
|
+
// asteriskノードを探す
|
|
208
|
+
const hasAsterisk = node.namedChildren.some((child) => child.type === "asterisk");
|
|
209
|
+
if (hasAsterisk) {
|
|
210
|
+
importName += ".*";
|
|
211
|
+
}
|
|
212
|
+
// ローカルファイル判定: com.example.MyClass -> com/example/MyClass.java
|
|
213
|
+
// ワイルドカードの場合はパッケージとして扱う
|
|
214
|
+
let kind = "package";
|
|
215
|
+
if (!hasAsterisk) {
|
|
216
|
+
const filePath = importName.replace(/\./g, "/") + ".java";
|
|
217
|
+
// Maven/Gradle標準構造のプレフィックスを除去して完全一致でチェック
|
|
218
|
+
// これにより、同名ファイルが異なるパッケージに存在する場合も正確に解決できる
|
|
219
|
+
const matchingFile = Array.from(fileSet).find((f) => {
|
|
220
|
+
// 標準的なソースディレクトリプレフィックスを除去
|
|
221
|
+
const normalizedPath = f
|
|
222
|
+
.replace(/^src\/main\/java\//, "")
|
|
223
|
+
.replace(/^src\/test\/java\//, "")
|
|
224
|
+
.replace(/^src\//, "");
|
|
225
|
+
return normalizedPath === filePath;
|
|
226
|
+
});
|
|
227
|
+
kind = matchingFile ? "path" : "package";
|
|
228
|
+
}
|
|
229
|
+
record(kind, importName);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// 子ノードを再帰的に訪問
|
|
233
|
+
for (const child of node.namedChildren) {
|
|
234
|
+
visit(child);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
visit(tree.rootNode);
|
|
238
|
+
return getDependencies();
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Java Language Analyzer
|
|
242
|
+
*
|
|
243
|
+
* LanguageAnalyzer インターフェースを実装し、
|
|
244
|
+
* Java ファイルのシンボル抽出と依存関係解析を提供
|
|
245
|
+
*/
|
|
246
|
+
export class JavaAnalyzer {
|
|
247
|
+
language = "Java";
|
|
248
|
+
async analyze(context) {
|
|
249
|
+
const { pathInRepo, content, fileSet } = context;
|
|
250
|
+
try {
|
|
251
|
+
// 各ファイルごとに新しいパーサーインスタンスを作成(並行処理の安全性のため)
|
|
252
|
+
const parser = new Parser();
|
|
253
|
+
// Validate language object before setting it
|
|
254
|
+
if (!Java || typeof Java !== "object") {
|
|
255
|
+
throw new Error("Tree-sitter language for Java is invalid or undefined");
|
|
256
|
+
}
|
|
257
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
258
|
+
parser.setLanguage(Java);
|
|
259
|
+
const tree = parser.parse(content);
|
|
260
|
+
// シンボル抽出
|
|
261
|
+
const symbols = createJavaSymbolRecords(tree, content);
|
|
262
|
+
// シンボルからスニペットを生成
|
|
263
|
+
const snippets = symbolsToSnippets(symbols);
|
|
264
|
+
// 依存関係を収集
|
|
265
|
+
const dependencies = collectJavaDependencies(pathInRepo, tree, content, fileSet);
|
|
266
|
+
return { symbols, snippets, dependencies };
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
// パース失敗時は空の結果を返して他のファイルの処理を継続
|
|
270
|
+
console.error(`Failed to parse Java file ${pathInRepo}:`, error);
|
|
271
|
+
return { symbols: [], snippets: [], dependencies: [] };
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Java アナライザーのファクトリ関数
|
|
277
|
+
*/
|
|
278
|
+
export function createJavaAnalyzer() {
|
|
279
|
+
return new JavaAnalyzer();
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../../../../src/indexer/codeintel/java/analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/indexer/codeintel/java/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/indexer/codeintel/java/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PHP Language Analyzer
|
|
3
|
+
*
|
|
4
|
+
* tree-sitter-php を使用したシンボル抽出と依存関係解析。
|
|
5
|
+
* class, interface, trait, function, method, property, constant, namespace をサポート。
|
|
6
|
+
* Pure PHP ファイルと HTML-mixed PHP ファイルの両方に対応。
|
|
7
|
+
*/
|
|
8
|
+
import type { LanguageAnalyzer, AnalysisContext, AnalysisResult } from "../types.js";
|
|
9
|
+
/**
|
|
10
|
+
* PHP Language Analyzer
|
|
11
|
+
*
|
|
12
|
+
* LanguageAnalyzer インターフェースを実装し、
|
|
13
|
+
* PHP ファイルのシンボル抽出と依存関係解析を提供
|
|
14
|
+
*/
|
|
15
|
+
export declare class PHPAnalyzer implements LanguageAnalyzer {
|
|
16
|
+
readonly language = "PHP";
|
|
17
|
+
analyze(context: AnalysisContext): Promise<AnalysisResult>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* PHP アナライザーのファクトリ関数
|
|
21
|
+
*/
|
|
22
|
+
export declare function createPHPAnalyzer(): PHPAnalyzer;
|
|
23
|
+
//# sourceMappingURL=analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../../../src/indexer/codeintel/php/analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAC;AA+UnG;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,gBAAgB;IAClD,QAAQ,CAAC,QAAQ,SAAS;IAEpB,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAwCjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C"}
|