ctx-pilot 0.9.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/LICENSE +21 -0
- package/LICENSE-COMMERCIAL +32 -0
- package/README.md +314 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +577 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +67 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/schema.d.ts +22 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +9 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/indexer/file-scanner.d.ts +6 -0
- package/dist/indexer/file-scanner.d.ts.map +1 -0
- package/dist/indexer/file-scanner.js +37 -0
- package/dist/indexer/file-scanner.js.map +1 -0
- package/dist/indexer/index.d.ts +10 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +123 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/indexer/parsers/asciidoc.d.ts +3 -0
- package/dist/indexer/parsers/asciidoc.d.ts.map +1 -0
- package/dist/indexer/parsers/asciidoc.js +55 -0
- package/dist/indexer/parsers/asciidoc.js.map +1 -0
- package/dist/indexer/parsers/c.d.ts +3 -0
- package/dist/indexer/parsers/c.d.ts.map +1 -0
- package/dist/indexer/parsers/c.js +93 -0
- package/dist/indexer/parsers/c.js.map +1 -0
- package/dist/indexer/parsers/csharp.d.ts +3 -0
- package/dist/indexer/parsers/csharp.d.ts.map +1 -0
- package/dist/indexer/parsers/csharp.js +79 -0
- package/dist/indexer/parsers/csharp.js.map +1 -0
- package/dist/indexer/parsers/dart.d.ts +3 -0
- package/dist/indexer/parsers/dart.d.ts.map +1 -0
- package/dist/indexer/parsers/dart.js +81 -0
- package/dist/indexer/parsers/dart.js.map +1 -0
- package/dist/indexer/parsers/go.d.ts +3 -0
- package/dist/indexer/parsers/go.d.ts.map +1 -0
- package/dist/indexer/parsers/go.js +64 -0
- package/dist/indexer/parsers/go.js.map +1 -0
- package/dist/indexer/parsers/index.d.ts +4 -0
- package/dist/indexer/parsers/index.d.ts.map +1 -0
- package/dist/indexer/parsers/index.js +109 -0
- package/dist/indexer/parsers/index.js.map +1 -0
- package/dist/indexer/parsers/java.d.ts +3 -0
- package/dist/indexer/parsers/java.d.ts.map +1 -0
- package/dist/indexer/parsers/java.js +84 -0
- package/dist/indexer/parsers/java.js.map +1 -0
- package/dist/indexer/parsers/javascript.d.ts +3 -0
- package/dist/indexer/parsers/javascript.d.ts.map +1 -0
- package/dist/indexer/parsers/javascript.js +78 -0
- package/dist/indexer/parsers/javascript.js.map +1 -0
- package/dist/indexer/parsers/markdown.d.ts +3 -0
- package/dist/indexer/parsers/markdown.d.ts.map +1 -0
- package/dist/indexer/parsers/markdown.js +67 -0
- package/dist/indexer/parsers/markdown.js.map +1 -0
- package/dist/indexer/parsers/php.d.ts +3 -0
- package/dist/indexer/parsers/php.d.ts.map +1 -0
- package/dist/indexer/parsers/php.js +78 -0
- package/dist/indexer/parsers/php.js.map +1 -0
- package/dist/indexer/parsers/plain.d.ts +3 -0
- package/dist/indexer/parsers/plain.d.ts.map +1 -0
- package/dist/indexer/parsers/plain.js +18 -0
- package/dist/indexer/parsers/plain.js.map +1 -0
- package/dist/indexer/parsers/python.d.ts +3 -0
- package/dist/indexer/parsers/python.d.ts.map +1 -0
- package/dist/indexer/parsers/python.js +64 -0
- package/dist/indexer/parsers/python.js.map +1 -0
- package/dist/indexer/parsers/rst.d.ts +3 -0
- package/dist/indexer/parsers/rst.d.ts.map +1 -0
- package/dist/indexer/parsers/rst.js +67 -0
- package/dist/indexer/parsers/rst.js.map +1 -0
- package/dist/indexer/parsers/ruby.d.ts +3 -0
- package/dist/indexer/parsers/ruby.d.ts.map +1 -0
- package/dist/indexer/parsers/ruby.js +77 -0
- package/dist/indexer/parsers/ruby.js.map +1 -0
- package/dist/indexer/parsers/rust.d.ts +3 -0
- package/dist/indexer/parsers/rust.d.ts.map +1 -0
- package/dist/indexer/parsers/rust.js +83 -0
- package/dist/indexer/parsers/rust.js.map +1 -0
- package/dist/indexer/parsers/shader.d.ts +3 -0
- package/dist/indexer/parsers/shader.d.ts.map +1 -0
- package/dist/indexer/parsers/shader.js +81 -0
- package/dist/indexer/parsers/shader.js.map +1 -0
- package/dist/indexer/parsers/shell.d.ts +3 -0
- package/dist/indexer/parsers/shell.d.ts.map +1 -0
- package/dist/indexer/parsers/shell.js +77 -0
- package/dist/indexer/parsers/shell.js.map +1 -0
- package/dist/indexer/parsers/structured.d.ts +3 -0
- package/dist/indexer/parsers/structured.d.ts.map +1 -0
- package/dist/indexer/parsers/structured.js +104 -0
- package/dist/indexer/parsers/structured.js.map +1 -0
- package/dist/indexer/parsers/swift.d.ts +3 -0
- package/dist/indexer/parsers/swift.d.ts.map +1 -0
- package/dist/indexer/parsers/swift.js +89 -0
- package/dist/indexer/parsers/swift.js.map +1 -0
- package/dist/indexer/parsers/toml.d.ts +3 -0
- package/dist/indexer/parsers/toml.d.ts.map +1 -0
- package/dist/indexer/parsers/toml.js +58 -0
- package/dist/indexer/parsers/toml.js.map +1 -0
- package/dist/indexer/parsers/xml.d.ts +3 -0
- package/dist/indexer/parsers/xml.d.ts.map +1 -0
- package/dist/indexer/parsers/xml.js +73 -0
- package/dist/indexer/parsers/xml.js.map +1 -0
- package/dist/search/index.d.ts +5 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +84 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/keywords.d.ts +9 -0
- package/dist/search/keywords.d.ts.map +1 -0
- package/dist/search/keywords.js +79 -0
- package/dist/search/keywords.js.map +1 -0
- package/dist/types.d.ts +44 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/gitignore.d.ts +5 -0
- package/dist/utils/gitignore.d.ts.map +1 -0
- package/dist/utils/gitignore.js +31 -0
- package/dist/utils/gitignore.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/paths.d.ts +8 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +23 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/tokens.d.ts +3 -0
- package/dist/utils/tokens.d.ts.map +1 -0
- package/dist/utils/tokens.js +22 -0
- package/dist/utils/tokens.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { estimateTokens } from '../../utils/tokens.js';
|
|
2
|
+
import { extractKeywords } from '../../search/keywords.js';
|
|
3
|
+
// Patterns to detect PHP declarations
|
|
4
|
+
const PATTERNS = [
|
|
5
|
+
/^(?:abstract\s+)?(?:final\s+)?class\s+(\w+)/,
|
|
6
|
+
/^interface\s+(\w+)/,
|
|
7
|
+
/^trait\s+(\w+)/,
|
|
8
|
+
/^enum\s+(\w+)/,
|
|
9
|
+
/^(?:public|private|protected)?\s*(?:static)?\s*function\s+(\w+)/,
|
|
10
|
+
/^function\s+(\w+)/,
|
|
11
|
+
];
|
|
12
|
+
function getDeclarationType(line) {
|
|
13
|
+
if (/\bclass\b/.test(line))
|
|
14
|
+
return 'class';
|
|
15
|
+
if (/\binterface\b/.test(line))
|
|
16
|
+
return 'interface';
|
|
17
|
+
if (/\btrait\b/.test(line))
|
|
18
|
+
return 'trait';
|
|
19
|
+
if (/\benum\b/.test(line))
|
|
20
|
+
return 'enum';
|
|
21
|
+
return 'function';
|
|
22
|
+
}
|
|
23
|
+
export function parsePHP(content, _filePath) {
|
|
24
|
+
const lines = content.split('\n');
|
|
25
|
+
const declarations = [];
|
|
26
|
+
for (let i = 0; i < lines.length; i++) {
|
|
27
|
+
const trimmedLine = lines[i].trim();
|
|
28
|
+
// Skip comments
|
|
29
|
+
if (trimmedLine.startsWith('//') || trimmedLine.startsWith('#') ||
|
|
30
|
+
trimmedLine.startsWith('*') || trimmedLine.startsWith('/*')) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
for (const pattern of PATTERNS) {
|
|
34
|
+
const match = trimmedLine.match(pattern);
|
|
35
|
+
if (match) {
|
|
36
|
+
declarations.push({
|
|
37
|
+
name: match[1],
|
|
38
|
+
lineIndex: i,
|
|
39
|
+
type: getDeclarationType(trimmedLine),
|
|
40
|
+
});
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (declarations.length === 0) {
|
|
46
|
+
const fullContent = content.trim();
|
|
47
|
+
if (!fullContent)
|
|
48
|
+
return [];
|
|
49
|
+
return [{
|
|
50
|
+
title: 'Module',
|
|
51
|
+
lineStart: 1,
|
|
52
|
+
lineEnd: lines.length,
|
|
53
|
+
preview: fullContent.slice(0, 100),
|
|
54
|
+
tokens: estimateTokens(fullContent),
|
|
55
|
+
keywords: extractKeywords(fullContent),
|
|
56
|
+
}];
|
|
57
|
+
}
|
|
58
|
+
const sections = [];
|
|
59
|
+
for (let i = 0; i < declarations.length; i++) {
|
|
60
|
+
const decl = declarations[i];
|
|
61
|
+
const nextDecl = declarations[i + 1];
|
|
62
|
+
const endLine = nextDecl ? nextDecl.lineIndex : lines.length;
|
|
63
|
+
const sectionLines = lines.slice(decl.lineIndex, endLine);
|
|
64
|
+
const sectionContent = sectionLines.join('\n').trim();
|
|
65
|
+
if (sectionContent) {
|
|
66
|
+
sections.push({
|
|
67
|
+
title: `${decl.type} ${decl.name}`,
|
|
68
|
+
lineStart: decl.lineIndex + 1,
|
|
69
|
+
lineEnd: endLine,
|
|
70
|
+
preview: sectionContent.slice(0, 100),
|
|
71
|
+
tokens: estimateTokens(sectionContent),
|
|
72
|
+
keywords: extractKeywords(sectionContent),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return sections;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=php.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"php.js","sourceRoot":"","sources":["../../../src/indexer/parsers/php.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plain.d.ts","sourceRoot":"","sources":["../../../src/indexer/parsers/plain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAM9C,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAcxE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { estimateTokens } from '../../utils/tokens.js';
|
|
2
|
+
import { extractKeywords } from '../../search/keywords.js';
|
|
3
|
+
// Plain text files are treated as a single section
|
|
4
|
+
export function parsePlain(content, _filePath) {
|
|
5
|
+
const trimmed = content.trim();
|
|
6
|
+
if (!trimmed)
|
|
7
|
+
return [];
|
|
8
|
+
const lines = content.split('\n');
|
|
9
|
+
return [{
|
|
10
|
+
title: 'Document',
|
|
11
|
+
lineStart: 1,
|
|
12
|
+
lineEnd: lines.length,
|
|
13
|
+
preview: trimmed.slice(0, 100),
|
|
14
|
+
tokens: estimateTokens(trimmed),
|
|
15
|
+
keywords: extractKeywords(trimmed),
|
|
16
|
+
}];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=plain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plain.js","sourceRoot":"","sources":["../../../src/indexer/parsers/plain.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,mDAAmD;AAEnD,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,SAAiB;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,CAAC;YACN,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAC9B,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;YAC/B,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC;SACnC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../src/indexer/parsers/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAiB9C,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CA+DzE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { estimateTokens } from '../../utils/tokens.js';
|
|
2
|
+
import { extractKeywords } from '../../search/keywords.js';
|
|
3
|
+
// Patterns to detect Python declarations (only top-level, no leading whitespace)
|
|
4
|
+
const PATTERNS = [
|
|
5
|
+
/^def\s+(\w+)\s*\(/,
|
|
6
|
+
/^async\s+def\s+(\w+)\s*\(/,
|
|
7
|
+
/^class\s+(\w+)/,
|
|
8
|
+
];
|
|
9
|
+
export function parsePython(content, _filePath) {
|
|
10
|
+
const lines = content.split('\n');
|
|
11
|
+
const declarations = [];
|
|
12
|
+
for (let i = 0; i < lines.length; i++) {
|
|
13
|
+
const line = lines[i];
|
|
14
|
+
// Only match top-level declarations (no leading whitespace)
|
|
15
|
+
if (line.startsWith(' ') || line.startsWith('\t')) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
for (const pattern of PATTERNS) {
|
|
19
|
+
const match = line.match(pattern);
|
|
20
|
+
if (match) {
|
|
21
|
+
const type = line.startsWith('class') ? 'class' : 'def';
|
|
22
|
+
declarations.push({
|
|
23
|
+
name: match[1],
|
|
24
|
+
lineIndex: i,
|
|
25
|
+
type,
|
|
26
|
+
});
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (declarations.length === 0) {
|
|
32
|
+
const fullContent = content.trim();
|
|
33
|
+
if (!fullContent)
|
|
34
|
+
return [];
|
|
35
|
+
return [{
|
|
36
|
+
title: 'Module',
|
|
37
|
+
lineStart: 1,
|
|
38
|
+
lineEnd: lines.length,
|
|
39
|
+
preview: fullContent.slice(0, 100),
|
|
40
|
+
tokens: estimateTokens(fullContent),
|
|
41
|
+
keywords: extractKeywords(fullContent),
|
|
42
|
+
}];
|
|
43
|
+
}
|
|
44
|
+
const sections = [];
|
|
45
|
+
for (let i = 0; i < declarations.length; i++) {
|
|
46
|
+
const decl = declarations[i];
|
|
47
|
+
const nextDecl = declarations[i + 1];
|
|
48
|
+
const endLine = nextDecl ? nextDecl.lineIndex : lines.length;
|
|
49
|
+
const sectionLines = lines.slice(decl.lineIndex, endLine);
|
|
50
|
+
const sectionContent = sectionLines.join('\n').trim();
|
|
51
|
+
if (sectionContent) {
|
|
52
|
+
sections.push({
|
|
53
|
+
title: `${decl.type} ${decl.name}`,
|
|
54
|
+
lineStart: decl.lineIndex + 1,
|
|
55
|
+
lineEnd: endLine,
|
|
56
|
+
preview: sectionContent.slice(0, 100),
|
|
57
|
+
tokens: estimateTokens(sectionContent),
|
|
58
|
+
keywords: extractKeywords(sectionContent),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return sections;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=python.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../../src/indexer/parsers/python.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,iFAAiF;AACjF,MAAM,QAAQ,GAAG;IACf,mBAAmB;IACnB,2BAA2B;IAC3B,gBAAgB;CACjB,CAAC;AAQF,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,SAAiB;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,4DAA4D;QAC5D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;gBACxD,YAAY,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBACd,SAAS,EAAE,CAAC;oBACZ,IAAI;iBACL,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAE5B,OAAO,CAAC;gBACN,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,KAAK,CAAC,MAAM;gBACrB,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAClC,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC;gBACnC,QAAQ,EAAE,eAAe,CAAC,WAAW,CAAC;aACvC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAEtD,IAAI,cAAc,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;gBAClC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC;gBAC7B,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACrC,MAAM,EAAE,cAAc,CAAC,cAAc,CAAC;gBACtC,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rst.d.ts","sourceRoot":"","sources":["../../../src/indexer/parsers/rst.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAc9C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAqEtE"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { estimateTokens } from '../../utils/tokens.js';
|
|
2
|
+
import { extractKeywords } from '../../search/keywords.js';
|
|
3
|
+
// reStructuredText uses underlines/overlines for headers
|
|
4
|
+
// Common patterns: ===, ---, ~~~, ^^^, etc.
|
|
5
|
+
const UNDERLINE_CHARS = /^[=\-~^"'`#*+_]+$/;
|
|
6
|
+
export function parseRST(content, _filePath) {
|
|
7
|
+
const lines = content.split('\n');
|
|
8
|
+
const headers = [];
|
|
9
|
+
const seenChars = []; // Track char order to determine level
|
|
10
|
+
for (let i = 0; i < lines.length; i++) {
|
|
11
|
+
const line = lines[i];
|
|
12
|
+
const nextLine = lines[i + 1] || '';
|
|
13
|
+
const prevLine = lines[i - 1] || '';
|
|
14
|
+
// Check for underlined header (title on current line, underline on next)
|
|
15
|
+
if (line.trim() && UNDERLINE_CHARS.test(nextLine.trim()) && nextLine.trim().length >= line.trim().length) {
|
|
16
|
+
const underlineChar = nextLine.trim()[0];
|
|
17
|
+
let level = seenChars.indexOf(underlineChar);
|
|
18
|
+
if (level === -1) {
|
|
19
|
+
level = seenChars.length;
|
|
20
|
+
seenChars.push(underlineChar);
|
|
21
|
+
}
|
|
22
|
+
headers.push({
|
|
23
|
+
title: line.trim(),
|
|
24
|
+
lineIndex: i,
|
|
25
|
+
level: level + 1,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
// Check for overlined + underlined header
|
|
29
|
+
if (UNDERLINE_CHARS.test(prevLine.trim()) && UNDERLINE_CHARS.test(nextLine.trim()) &&
|
|
30
|
+
line.trim() && prevLine.trim()[0] === nextLine.trim()[0]) {
|
|
31
|
+
// Skip - already handled by the underline case on previous iteration
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (headers.length === 0) {
|
|
35
|
+
const fullContent = content.trim();
|
|
36
|
+
if (!fullContent)
|
|
37
|
+
return [];
|
|
38
|
+
return [{
|
|
39
|
+
title: 'Document',
|
|
40
|
+
lineStart: 1,
|
|
41
|
+
lineEnd: lines.length,
|
|
42
|
+
preview: fullContent.slice(0, 100),
|
|
43
|
+
tokens: estimateTokens(fullContent),
|
|
44
|
+
keywords: extractKeywords(fullContent),
|
|
45
|
+
}];
|
|
46
|
+
}
|
|
47
|
+
const sections = [];
|
|
48
|
+
for (let i = 0; i < headers.length; i++) {
|
|
49
|
+
const header = headers[i];
|
|
50
|
+
const nextHeader = headers[i + 1];
|
|
51
|
+
const endLine = nextHeader ? nextHeader.lineIndex : lines.length;
|
|
52
|
+
const sectionLines = lines.slice(header.lineIndex, endLine);
|
|
53
|
+
const sectionContent = sectionLines.join('\n').trim();
|
|
54
|
+
if (sectionContent) {
|
|
55
|
+
sections.push({
|
|
56
|
+
title: header.title,
|
|
57
|
+
lineStart: header.lineIndex + 1,
|
|
58
|
+
lineEnd: endLine,
|
|
59
|
+
preview: sectionContent.slice(0, 100),
|
|
60
|
+
tokens: estimateTokens(sectionContent),
|
|
61
|
+
keywords: extractKeywords(sectionContent),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return sections;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=rst.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rst.js","sourceRoot":"","sources":["../../../src/indexer/parsers/rst.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../../src/indexer/parsers/ruby.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA2B9C,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CA6DvE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { estimateTokens } from '../../utils/tokens.js';
|
|
2
|
+
import { extractKeywords } from '../../search/keywords.js';
|
|
3
|
+
// Patterns to detect Ruby declarations
|
|
4
|
+
const PATTERNS = [
|
|
5
|
+
/^class\s+(\w+)/,
|
|
6
|
+
/^module\s+(\w+)/,
|
|
7
|
+
/^def\s+(?:self\.)?(\w+[?!]?)/,
|
|
8
|
+
/^(?:attr_reader|attr_writer|attr_accessor)\s+:(\w+)/,
|
|
9
|
+
];
|
|
10
|
+
function getDeclarationType(line) {
|
|
11
|
+
if (/^class\b/.test(line))
|
|
12
|
+
return 'class';
|
|
13
|
+
if (/^module\b/.test(line))
|
|
14
|
+
return 'module';
|
|
15
|
+
if (/^def\s+self\./.test(line))
|
|
16
|
+
return 'class method';
|
|
17
|
+
if (/^def\b/.test(line))
|
|
18
|
+
return 'method';
|
|
19
|
+
if (/^attr_/.test(line))
|
|
20
|
+
return 'attribute';
|
|
21
|
+
return 'method';
|
|
22
|
+
}
|
|
23
|
+
export function parseRuby(content, _filePath) {
|
|
24
|
+
const lines = content.split('\n');
|
|
25
|
+
const declarations = [];
|
|
26
|
+
for (let i = 0; i < lines.length; i++) {
|
|
27
|
+
const trimmedLine = lines[i].trim();
|
|
28
|
+
// Skip comments
|
|
29
|
+
if (trimmedLine.startsWith('#')) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
for (const pattern of PATTERNS) {
|
|
33
|
+
const match = trimmedLine.match(pattern);
|
|
34
|
+
if (match) {
|
|
35
|
+
declarations.push({
|
|
36
|
+
name: match[1],
|
|
37
|
+
lineIndex: i,
|
|
38
|
+
type: getDeclarationType(trimmedLine),
|
|
39
|
+
});
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (declarations.length === 0) {
|
|
45
|
+
const fullContent = content.trim();
|
|
46
|
+
if (!fullContent)
|
|
47
|
+
return [];
|
|
48
|
+
return [{
|
|
49
|
+
title: 'Module',
|
|
50
|
+
lineStart: 1,
|
|
51
|
+
lineEnd: lines.length,
|
|
52
|
+
preview: fullContent.slice(0, 100),
|
|
53
|
+
tokens: estimateTokens(fullContent),
|
|
54
|
+
keywords: extractKeywords(fullContent),
|
|
55
|
+
}];
|
|
56
|
+
}
|
|
57
|
+
const sections = [];
|
|
58
|
+
for (let i = 0; i < declarations.length; i++) {
|
|
59
|
+
const decl = declarations[i];
|
|
60
|
+
const nextDecl = declarations[i + 1];
|
|
61
|
+
const endLine = nextDecl ? nextDecl.lineIndex : lines.length;
|
|
62
|
+
const sectionLines = lines.slice(decl.lineIndex, endLine);
|
|
63
|
+
const sectionContent = sectionLines.join('\n').trim();
|
|
64
|
+
if (sectionContent) {
|
|
65
|
+
sections.push({
|
|
66
|
+
title: `${decl.type} ${decl.name}`,
|
|
67
|
+
lineStart: decl.lineIndex + 1,
|
|
68
|
+
lineEnd: endLine,
|
|
69
|
+
preview: sectionContent.slice(0, 100),
|
|
70
|
+
tokens: estimateTokens(sectionContent),
|
|
71
|
+
keywords: extractKeywords(sectionContent),
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return sections;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=ruby.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/indexer/parsers/ruby.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/indexer/parsers/rust.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA8B9C,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAgEvE"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { estimateTokens } from '../../utils/tokens.js';
|
|
2
|
+
import { extractKeywords } from '../../search/keywords.js';
|
|
3
|
+
// Patterns to detect Rust declarations
|
|
4
|
+
const PATTERNS = [
|
|
5
|
+
/^(?:pub\s+)?(?:async\s+)?fn\s+(\w+)/,
|
|
6
|
+
/^(?:pub\s+)?struct\s+(\w+)/,
|
|
7
|
+
/^(?:pub\s+)?enum\s+(\w+)/,
|
|
8
|
+
/^(?:pub\s+)?trait\s+(\w+)/,
|
|
9
|
+
/^(?:pub\s+)?impl(?:<[^>]+>)?\s+(?:(\w+)|(\w+)\s+for\s+(\w+))/,
|
|
10
|
+
/^(?:pub\s+)?mod\s+(\w+)/,
|
|
11
|
+
];
|
|
12
|
+
function getDeclarationType(line) {
|
|
13
|
+
if (/\bfn\b/.test(line))
|
|
14
|
+
return 'fn';
|
|
15
|
+
if (/\bstruct\b/.test(line))
|
|
16
|
+
return 'struct';
|
|
17
|
+
if (/\benum\b/.test(line))
|
|
18
|
+
return 'enum';
|
|
19
|
+
if (/\btrait\b/.test(line))
|
|
20
|
+
return 'trait';
|
|
21
|
+
if (/\bimpl\b/.test(line))
|
|
22
|
+
return 'impl';
|
|
23
|
+
if (/\bmod\b/.test(line))
|
|
24
|
+
return 'mod';
|
|
25
|
+
return 'item';
|
|
26
|
+
}
|
|
27
|
+
export function parseRust(content, _filePath) {
|
|
28
|
+
const lines = content.split('\n');
|
|
29
|
+
const declarations = [];
|
|
30
|
+
for (let i = 0; i < lines.length; i++) {
|
|
31
|
+
const line = lines[i];
|
|
32
|
+
// Only match top-level declarations (no leading whitespace)
|
|
33
|
+
if (line.startsWith(' ') || line.startsWith('\t')) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
for (const pattern of PATTERNS) {
|
|
37
|
+
const match = line.match(pattern);
|
|
38
|
+
if (match) {
|
|
39
|
+
// Get the first captured group that's not undefined
|
|
40
|
+
const name = match.slice(1).find(g => g !== undefined) || 'anonymous';
|
|
41
|
+
declarations.push({
|
|
42
|
+
name,
|
|
43
|
+
lineIndex: i,
|
|
44
|
+
type: getDeclarationType(line),
|
|
45
|
+
});
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (declarations.length === 0) {
|
|
51
|
+
const fullContent = content.trim();
|
|
52
|
+
if (!fullContent)
|
|
53
|
+
return [];
|
|
54
|
+
return [{
|
|
55
|
+
title: 'Module',
|
|
56
|
+
lineStart: 1,
|
|
57
|
+
lineEnd: lines.length,
|
|
58
|
+
preview: fullContent.slice(0, 100),
|
|
59
|
+
tokens: estimateTokens(fullContent),
|
|
60
|
+
keywords: extractKeywords(fullContent),
|
|
61
|
+
}];
|
|
62
|
+
}
|
|
63
|
+
const sections = [];
|
|
64
|
+
for (let i = 0; i < declarations.length; i++) {
|
|
65
|
+
const decl = declarations[i];
|
|
66
|
+
const nextDecl = declarations[i + 1];
|
|
67
|
+
const endLine = nextDecl ? nextDecl.lineIndex : lines.length;
|
|
68
|
+
const sectionLines = lines.slice(decl.lineIndex, endLine);
|
|
69
|
+
const sectionContent = sectionLines.join('\n').trim();
|
|
70
|
+
if (sectionContent) {
|
|
71
|
+
sections.push({
|
|
72
|
+
title: `${decl.type} ${decl.name}`,
|
|
73
|
+
lineStart: decl.lineIndex + 1,
|
|
74
|
+
lineEnd: endLine,
|
|
75
|
+
preview: sectionContent.slice(0, 100),
|
|
76
|
+
tokens: estimateTokens(sectionContent),
|
|
77
|
+
keywords: extractKeywords(sectionContent),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return sections;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=rust.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/indexer/parsers/rust.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader.d.ts","sourceRoot":"","sources":["../../../src/indexer/parsers/shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAkC9C,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAyDzE"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { estimateTokens } from '../../utils/tokens.js';
|
|
2
|
+
import { extractKeywords } from '../../search/keywords.js';
|
|
3
|
+
// Patterns for HLSL/GLSL/WGSL
|
|
4
|
+
const PATTERNS = [
|
|
5
|
+
// HLSL/GLSL functions
|
|
6
|
+
/^(?:void|float|int|vec\d|mat\d|bool|\w+)\s+(\w+)\s*\(/,
|
|
7
|
+
// HLSL cbuffer/struct
|
|
8
|
+
/^cbuffer\s+(\w+)/,
|
|
9
|
+
/^struct\s+(\w+)/,
|
|
10
|
+
// WGSL functions and entry points
|
|
11
|
+
/^fn\s+(\w+)/,
|
|
12
|
+
/^@(?:vertex|fragment|compute)[^]*fn\s+(\w+)/,
|
|
13
|
+
// GLSL uniforms
|
|
14
|
+
/^uniform\s+\w+\s+(\w+)/,
|
|
15
|
+
];
|
|
16
|
+
function getDeclarationType(line) {
|
|
17
|
+
if (/^cbuffer/.test(line))
|
|
18
|
+
return 'cbuffer';
|
|
19
|
+
if (/^struct/.test(line))
|
|
20
|
+
return 'struct';
|
|
21
|
+
if (/^uniform/.test(line))
|
|
22
|
+
return 'uniform';
|
|
23
|
+
if (/@vertex/.test(line))
|
|
24
|
+
return 'vertex';
|
|
25
|
+
if (/@fragment/.test(line))
|
|
26
|
+
return 'fragment';
|
|
27
|
+
if (/@compute/.test(line))
|
|
28
|
+
return 'compute';
|
|
29
|
+
return 'function';
|
|
30
|
+
}
|
|
31
|
+
export function parseShader(content, _filePath) {
|
|
32
|
+
const lines = content.split('\n');
|
|
33
|
+
const declarations = [];
|
|
34
|
+
for (let i = 0; i < lines.length; i++) {
|
|
35
|
+
const line = lines[i].trim();
|
|
36
|
+
for (const pattern of PATTERNS) {
|
|
37
|
+
const match = line.match(pattern);
|
|
38
|
+
if (match) {
|
|
39
|
+
declarations.push({
|
|
40
|
+
name: match[1],
|
|
41
|
+
lineIndex: i,
|
|
42
|
+
type: getDeclarationType(line),
|
|
43
|
+
});
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (declarations.length === 0) {
|
|
49
|
+
const fullContent = content.trim();
|
|
50
|
+
if (!fullContent)
|
|
51
|
+
return [];
|
|
52
|
+
return [{
|
|
53
|
+
title: 'Shader',
|
|
54
|
+
lineStart: 1,
|
|
55
|
+
lineEnd: lines.length,
|
|
56
|
+
preview: fullContent.slice(0, 100),
|
|
57
|
+
tokens: estimateTokens(fullContent),
|
|
58
|
+
keywords: extractKeywords(fullContent),
|
|
59
|
+
}];
|
|
60
|
+
}
|
|
61
|
+
const sections = [];
|
|
62
|
+
for (let i = 0; i < declarations.length; i++) {
|
|
63
|
+
const decl = declarations[i];
|
|
64
|
+
const nextDecl = declarations[i + 1];
|
|
65
|
+
const endLine = nextDecl ? nextDecl.lineIndex : lines.length;
|
|
66
|
+
const sectionLines = lines.slice(decl.lineIndex, endLine);
|
|
67
|
+
const sectionContent = sectionLines.join('\n').trim();
|
|
68
|
+
if (sectionContent) {
|
|
69
|
+
sections.push({
|
|
70
|
+
title: `${decl.type} ${decl.name}`,
|
|
71
|
+
lineStart: decl.lineIndex + 1,
|
|
72
|
+
lineEnd: endLine,
|
|
73
|
+
preview: sectionContent.slice(0, 100),
|
|
74
|
+
tokens: estimateTokens(sectionContent),
|
|
75
|
+
keywords: extractKeywords(sectionContent),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return sections;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=shader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader.js","sourceRoot":"","sources":["../../../src/indexer/parsers/shader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/indexer/parsers/shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA4B9C,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CA6DxE"}
|