daedalus-cli 1.53.1 → 1.55.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/AGENTS.md +1 -1
- package/CHANGELOG.md +19 -0
- package/README.md +3 -3
- package/dist/agents/loop.d.ts.map +1 -1
- package/dist/agents/loop.js +9 -3
- package/dist/agents/loop.js.map +1 -1
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +6 -2
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/agents/roles.d.ts +4 -0
- package/dist/agents/roles.d.ts.map +1 -1
- package/dist/agents/roles.js +16 -0
- package/dist/agents/roles.js.map +1 -1
- package/dist/agents/roles.test.js +23 -1
- package/dist/agents/roles.test.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +52 -10
- package/dist/commands.js.map +1 -1
- package/dist/commands.test.js +78 -0
- package/dist/commands.test.js.map +1 -1
- package/dist/formatting.d.ts.map +1 -1
- package/dist/formatting.js +6 -1
- package/dist/formatting.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/indexing/indexer.d.ts +30 -0
- package/dist/indexing/indexer.d.ts.map +1 -1
- package/dist/indexing/indexer.js +438 -1
- package/dist/indexing/indexer.js.map +1 -1
- package/dist/indexing/indexer.test.js +63 -1
- package/dist/indexing/indexer.test.js.map +1 -1
- package/dist/model.test.js +1 -0
- package/dist/model.test.js.map +1 -1
- package/dist/repl.d.ts.map +1 -1
- package/dist/repl.js +15 -4
- package/dist/repl.js.map +1 -1
- package/dist/tools/builtin/files.d.ts.map +1 -1
- package/dist/tools/builtin/files.js +2 -396
- package/dist/tools/builtin/files.js.map +1 -1
- package/dist/tools/builtin/patch-utils.d.ts +30 -0
- package/dist/tools/builtin/patch-utils.d.ts.map +1 -0
- package/dist/tools/builtin/patch-utils.js +390 -0
- package/dist/tools/builtin/patch-utils.js.map +1 -0
- package/dist/tools/builtin/terminal.js +2 -2
- package/dist/tools/builtin/terminal.js.map +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/widgets/file-tree.d.ts.map +1 -1
- package/dist/tui/widgets/file-tree.js +3 -9
- package/dist/tui/widgets/file-tree.js.map +1 -1
- package/dist/tui/widgets/model-select.d.ts +1 -1
- package/dist/tui/widgets/model-select.d.ts.map +1 -1
- package/dist/tui/widgets/model-select.js +1 -1
- package/dist/tui/widgets/model-select.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/indexing/indexer.js
CHANGED
|
@@ -3,7 +3,7 @@ import path from 'path';
|
|
|
3
3
|
import crypto from 'crypto';
|
|
4
4
|
import { clearFileIndex, saveFileHash, getFileHash, insertSymbols, insertReferences } from './fts.js';
|
|
5
5
|
const DEFAULT_EXCLUDE = ['node_modules', 'dist', 'build', '.git', 'target', 'coverage', 'venv', '.venv', 'env', '.env', '__pycache__', '.pytest_cache', '.mypy_cache', '.next', 'out', '.cache'];
|
|
6
|
-
const DEFAULT_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', '.py', '.go', '.rs'];
|
|
6
|
+
const DEFAULT_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', '.py', '.go', '.rs', '.java', '.c', '.cpp', '.h', '.hpp', '.cs', '.php', '.rb', '.ex', '.exs'];
|
|
7
7
|
/** Compute SHA256 of string content */
|
|
8
8
|
export function hashContent(content) {
|
|
9
9
|
return crypto.createHash('sha256').update(content).digest('hex');
|
|
@@ -453,6 +453,425 @@ export function parseRust(content, relPath, projectHash) {
|
|
|
453
453
|
}
|
|
454
454
|
return { symbols, references };
|
|
455
455
|
}
|
|
456
|
+
/** Extract symbols and references from Java file */
|
|
457
|
+
export function parseJava(content, relPath, projectHash) {
|
|
458
|
+
const symbols = [];
|
|
459
|
+
const references = [];
|
|
460
|
+
const lines = content.split(/\r?\n/);
|
|
461
|
+
let currentCaller = null;
|
|
462
|
+
let callerStartLine = 0;
|
|
463
|
+
let callerBraceCount = 0;
|
|
464
|
+
for (let i = 0; i < lines.length; i++) {
|
|
465
|
+
const line = lines[i];
|
|
466
|
+
const lineNum = i + 1;
|
|
467
|
+
if (currentCaller) {
|
|
468
|
+
const openBraces = (line.match(/\{/g) || []).length;
|
|
469
|
+
const closeBraces = (line.match(/\}/g) || []).length;
|
|
470
|
+
callerBraceCount += openBraces - closeBraces;
|
|
471
|
+
if (callerBraceCount <= 0) {
|
|
472
|
+
const sym = symbols.find(s => s.name === currentCaller && s.file_path === relPath && s.line_start === callerStartLine);
|
|
473
|
+
if (sym)
|
|
474
|
+
sym.line_end = lineNum;
|
|
475
|
+
currentCaller = null;
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
let match = line.match(/(?:public|protected|private)?\s*(?:static\s+)?(?:final\s+)?(?:class|interface|enum)\s+(\w+)/);
|
|
479
|
+
if (match) {
|
|
480
|
+
const kind = line.includes('interface') ? 'interface' : line.includes('enum') ? 'enum' : 'class';
|
|
481
|
+
symbols.push({
|
|
482
|
+
name: match[1],
|
|
483
|
+
kind,
|
|
484
|
+
file_path: relPath,
|
|
485
|
+
line_start: lineNum,
|
|
486
|
+
line_end: lineNum,
|
|
487
|
+
signature: line.trim().replace(/\s*\{.*$/, ''),
|
|
488
|
+
project_hash: projectHash,
|
|
489
|
+
});
|
|
490
|
+
continue;
|
|
491
|
+
}
|
|
492
|
+
match = line.match(/(?:public|protected|private)?\s*(?:static\s+)?[\w<>\[\]]+\s+(\w+)\s*\(/);
|
|
493
|
+
if (match) {
|
|
494
|
+
const funcName = match[1];
|
|
495
|
+
if (!['if', 'for', 'while', 'switch', 'catch'].includes(funcName)) {
|
|
496
|
+
symbols.push({
|
|
497
|
+
name: funcName,
|
|
498
|
+
kind: 'method',
|
|
499
|
+
file_path: relPath,
|
|
500
|
+
line_start: lineNum,
|
|
501
|
+
line_end: lineNum,
|
|
502
|
+
signature: line.trim().replace(/\s*\{.*$/, ''),
|
|
503
|
+
project_hash: projectHash,
|
|
504
|
+
});
|
|
505
|
+
currentCaller = funcName;
|
|
506
|
+
callerStartLine = lineNum;
|
|
507
|
+
callerBraceCount = (line.match(/\{/g) || []).length - (line.match(/\}/g) || []).length;
|
|
508
|
+
continue;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
if (currentCaller) {
|
|
512
|
+
const callMatches = line.matchAll(/\b([a-zA-Z0-9_]+)\s*\(/g);
|
|
513
|
+
for (const m of callMatches) {
|
|
514
|
+
const callee = m[1];
|
|
515
|
+
const reserved = ['if', 'for', 'while', 'catch', 'switch', 'super', 'this', 'new', 'return', 'System'];
|
|
516
|
+
if (!reserved.includes(callee) && callee !== currentCaller) {
|
|
517
|
+
references.push({
|
|
518
|
+
caller_name: currentCaller,
|
|
519
|
+
caller_file: relPath,
|
|
520
|
+
caller_line: lineNum,
|
|
521
|
+
callee_name: callee,
|
|
522
|
+
callee_file: relPath,
|
|
523
|
+
callee_line: lineNum,
|
|
524
|
+
project_hash: projectHash,
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
return { symbols, references };
|
|
531
|
+
}
|
|
532
|
+
/** Extract symbols and references from C/C++ file */
|
|
533
|
+
export function parseCpp(content, relPath, projectHash) {
|
|
534
|
+
const symbols = [];
|
|
535
|
+
const references = [];
|
|
536
|
+
const lines = content.split(/\r?\n/);
|
|
537
|
+
let currentCaller = null;
|
|
538
|
+
let callerStartLine = 0;
|
|
539
|
+
let callerBraceCount = 0;
|
|
540
|
+
for (let i = 0; i < lines.length; i++) {
|
|
541
|
+
const line = lines[i];
|
|
542
|
+
const lineNum = i + 1;
|
|
543
|
+
if (currentCaller) {
|
|
544
|
+
const openBraces = (line.match(/\{/g) || []).length;
|
|
545
|
+
const closeBraces = (line.match(/\}/g) || []).length;
|
|
546
|
+
callerBraceCount += openBraces - closeBraces;
|
|
547
|
+
if (callerBraceCount <= 0) {
|
|
548
|
+
const sym = symbols.find(s => s.name === currentCaller && s.file_path === relPath && s.line_start === callerStartLine);
|
|
549
|
+
if (sym)
|
|
550
|
+
sym.line_end = lineNum;
|
|
551
|
+
currentCaller = null;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
let match = line.match(/(?:class|struct|union)\s+(\w+)/);
|
|
555
|
+
if (match) {
|
|
556
|
+
const kind = line.includes('class') ? 'class' : 'struct';
|
|
557
|
+
symbols.push({
|
|
558
|
+
name: match[1],
|
|
559
|
+
kind,
|
|
560
|
+
file_path: relPath,
|
|
561
|
+
line_start: lineNum,
|
|
562
|
+
line_end: lineNum,
|
|
563
|
+
signature: line.trim().replace(/\s*\{.*$/, '').replace(/;$/, ''),
|
|
564
|
+
project_hash: projectHash,
|
|
565
|
+
});
|
|
566
|
+
continue;
|
|
567
|
+
}
|
|
568
|
+
match = line.match(/(?:inline\s+|static\s+|virtual\s+)?[\w:*&<>]+\s+(\w+)\s*\(/);
|
|
569
|
+
if (match) {
|
|
570
|
+
const funcName = match[1];
|
|
571
|
+
if (!['if', 'for', 'while', 'switch', 'catch', 'sizeof', 'typeof'].includes(funcName)) {
|
|
572
|
+
symbols.push({
|
|
573
|
+
name: funcName,
|
|
574
|
+
kind: 'function',
|
|
575
|
+
file_path: relPath,
|
|
576
|
+
line_start: lineNum,
|
|
577
|
+
line_end: lineNum,
|
|
578
|
+
signature: line.trim().replace(/\s*\{.*$/, '').replace(/;$/, ''),
|
|
579
|
+
project_hash: projectHash,
|
|
580
|
+
});
|
|
581
|
+
currentCaller = funcName;
|
|
582
|
+
callerStartLine = lineNum;
|
|
583
|
+
callerBraceCount = (line.match(/\{/g) || []).length - (line.match(/\}/g) || []).length;
|
|
584
|
+
continue;
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
if (currentCaller) {
|
|
588
|
+
const callMatches = line.matchAll(/\b([a-zA-Z0-9_]+)\s*\(/g);
|
|
589
|
+
for (const m of callMatches) {
|
|
590
|
+
const callee = m[1];
|
|
591
|
+
const reserved = ['if', 'for', 'while', 'switch', 'catch', 'return', 'sizeof', 'typedef'];
|
|
592
|
+
if (!reserved.includes(callee) && callee !== currentCaller) {
|
|
593
|
+
references.push({
|
|
594
|
+
caller_name: currentCaller,
|
|
595
|
+
caller_file: relPath,
|
|
596
|
+
caller_line: lineNum,
|
|
597
|
+
callee_name: callee,
|
|
598
|
+
callee_file: relPath,
|
|
599
|
+
callee_line: lineNum,
|
|
600
|
+
project_hash: projectHash,
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
return { symbols, references };
|
|
607
|
+
}
|
|
608
|
+
/** Extract symbols and references from C# file */
|
|
609
|
+
export function parseCSharp(content, relPath, projectHash) {
|
|
610
|
+
const symbols = [];
|
|
611
|
+
const references = [];
|
|
612
|
+
const lines = content.split(/\r?\n/);
|
|
613
|
+
let currentCaller = null;
|
|
614
|
+
let callerStartLine = 0;
|
|
615
|
+
let callerBraceCount = 0;
|
|
616
|
+
for (let i = 0; i < lines.length; i++) {
|
|
617
|
+
const line = lines[i];
|
|
618
|
+
const lineNum = i + 1;
|
|
619
|
+
if (currentCaller) {
|
|
620
|
+
const openBraces = (line.match(/\{/g) || []).length;
|
|
621
|
+
const closeBraces = (line.match(/\}/g) || []).length;
|
|
622
|
+
callerBraceCount += openBraces - closeBraces;
|
|
623
|
+
if (callerBraceCount <= 0) {
|
|
624
|
+
const sym = symbols.find(s => s.name === currentCaller && s.file_path === relPath && s.line_start === callerStartLine);
|
|
625
|
+
if (sym)
|
|
626
|
+
sym.line_end = lineNum;
|
|
627
|
+
currentCaller = null;
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
let match = line.match(/(?:public|protected|private|internal)?\s*(?:static\s+)?(?:partial\s+)?(?:class|interface|struct|enum)\s+(\w+)/);
|
|
631
|
+
if (match) {
|
|
632
|
+
const kind = line.includes('interface') ? 'interface' : line.includes('struct') ? 'struct' : line.includes('enum') ? 'enum' : 'class';
|
|
633
|
+
symbols.push({
|
|
634
|
+
name: match[1],
|
|
635
|
+
kind,
|
|
636
|
+
file_path: relPath,
|
|
637
|
+
line_start: lineNum,
|
|
638
|
+
line_end: lineNum,
|
|
639
|
+
signature: line.trim().replace(/\s*\{.*$/, ''),
|
|
640
|
+
project_hash: projectHash,
|
|
641
|
+
});
|
|
642
|
+
continue;
|
|
643
|
+
}
|
|
644
|
+
match = line.match(/(?:public|protected|private|internal)?\s*(?:static\s+)?(?:async\s+)?[\w<>\[\]]+\s+(\w+)\s*\(/);
|
|
645
|
+
if (match) {
|
|
646
|
+
const funcName = match[1];
|
|
647
|
+
if (!['if', 'for', 'foreach', 'while', 'switch', 'catch'].includes(funcName)) {
|
|
648
|
+
symbols.push({
|
|
649
|
+
name: funcName,
|
|
650
|
+
kind: 'method',
|
|
651
|
+
file_path: relPath,
|
|
652
|
+
line_start: lineNum,
|
|
653
|
+
line_end: lineNum,
|
|
654
|
+
signature: line.trim().replace(/\s*\{.*$/, ''),
|
|
655
|
+
project_hash: projectHash,
|
|
656
|
+
});
|
|
657
|
+
currentCaller = funcName;
|
|
658
|
+
callerStartLine = lineNum;
|
|
659
|
+
callerBraceCount = (line.match(/\{/g) || []).length - (line.match(/\}/g) || []).length;
|
|
660
|
+
continue;
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
if (currentCaller) {
|
|
664
|
+
const callMatches = line.matchAll(/\b([a-zA-Z0-9_]+)\s*\(/g);
|
|
665
|
+
for (const m of callMatches) {
|
|
666
|
+
const callee = m[1];
|
|
667
|
+
const reserved = ['if', 'for', 'foreach', 'while', 'switch', 'catch', 'return', 'nameof', 'typeof'];
|
|
668
|
+
if (!reserved.includes(callee) && callee !== currentCaller) {
|
|
669
|
+
references.push({
|
|
670
|
+
caller_name: currentCaller,
|
|
671
|
+
caller_file: relPath,
|
|
672
|
+
caller_line: lineNum,
|
|
673
|
+
callee_name: callee,
|
|
674
|
+
callee_file: relPath,
|
|
675
|
+
callee_line: lineNum,
|
|
676
|
+
project_hash: projectHash,
|
|
677
|
+
});
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
return { symbols, references };
|
|
683
|
+
}
|
|
684
|
+
/** Extract symbols and references from PHP file */
|
|
685
|
+
export function parsePhp(content, relPath, projectHash) {
|
|
686
|
+
const symbols = [];
|
|
687
|
+
const references = [];
|
|
688
|
+
const lines = content.split(/\r?\n/);
|
|
689
|
+
let currentCaller = null;
|
|
690
|
+
let callerStartLine = 0;
|
|
691
|
+
let callerBraceCount = 0;
|
|
692
|
+
for (let i = 0; i < lines.length; i++) {
|
|
693
|
+
const line = lines[i];
|
|
694
|
+
const lineNum = i + 1;
|
|
695
|
+
if (currentCaller) {
|
|
696
|
+
const openBraces = (line.match(/\{/g) || []).length;
|
|
697
|
+
const closeBraces = (line.match(/\}/g) || []).length;
|
|
698
|
+
callerBraceCount += openBraces - closeBraces;
|
|
699
|
+
if (callerBraceCount <= 0) {
|
|
700
|
+
const sym = symbols.find(s => s.name === currentCaller && s.file_path === relPath && s.line_start === callerStartLine);
|
|
701
|
+
if (sym)
|
|
702
|
+
sym.line_end = lineNum;
|
|
703
|
+
currentCaller = null;
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
let match = line.match(/(?:class|interface|trait)\s+(\w+)/);
|
|
707
|
+
if (match) {
|
|
708
|
+
const kind = line.includes('interface') ? 'interface' : line.includes('trait') ? 'trait' : 'class';
|
|
709
|
+
symbols.push({
|
|
710
|
+
name: match[1],
|
|
711
|
+
kind,
|
|
712
|
+
file_path: relPath,
|
|
713
|
+
line_start: lineNum,
|
|
714
|
+
line_end: lineNum,
|
|
715
|
+
signature: line.trim().replace(/\s*\{.*$/, ''),
|
|
716
|
+
project_hash: projectHash,
|
|
717
|
+
});
|
|
718
|
+
continue;
|
|
719
|
+
}
|
|
720
|
+
match = line.match(/(?:public|protected|private)?\s*(?:static\s+)?function\s+(\w+)\s*\(/);
|
|
721
|
+
if (match) {
|
|
722
|
+
const funcName = match[1];
|
|
723
|
+
symbols.push({
|
|
724
|
+
name: funcName,
|
|
725
|
+
kind: 'function',
|
|
726
|
+
file_path: relPath,
|
|
727
|
+
line_start: lineNum,
|
|
728
|
+
line_end: lineNum,
|
|
729
|
+
signature: line.trim().replace(/\s*\{.*$/, ''),
|
|
730
|
+
project_hash: projectHash,
|
|
731
|
+
});
|
|
732
|
+
currentCaller = funcName;
|
|
733
|
+
callerStartLine = lineNum;
|
|
734
|
+
callerBraceCount = (line.match(/\{/g) || []).length - (line.match(/\}/g) || []).length;
|
|
735
|
+
continue;
|
|
736
|
+
}
|
|
737
|
+
if (currentCaller) {
|
|
738
|
+
const callMatches = line.matchAll(/\b([a-zA-Z0-9_]+)\s*\(/g);
|
|
739
|
+
for (const m of callMatches) {
|
|
740
|
+
const callee = m[1];
|
|
741
|
+
const reserved = ['function', 'if', 'for', 'foreach', 'while', 'switch', 'catch', 'array', 'echo', 'print', 'var_dump'];
|
|
742
|
+
if (!reserved.includes(callee) && callee !== currentCaller) {
|
|
743
|
+
references.push({
|
|
744
|
+
caller_name: currentCaller,
|
|
745
|
+
caller_file: relPath,
|
|
746
|
+
caller_line: lineNum,
|
|
747
|
+
callee_name: callee,
|
|
748
|
+
callee_file: relPath,
|
|
749
|
+
callee_line: lineNum,
|
|
750
|
+
project_hash: projectHash,
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
return { symbols, references };
|
|
757
|
+
}
|
|
758
|
+
/** Extract symbols and references from Ruby file */
|
|
759
|
+
export function parseRuby(content, relPath, projectHash) {
|
|
760
|
+
const symbols = [];
|
|
761
|
+
const references = [];
|
|
762
|
+
const lines = content.split(/\r?\n/);
|
|
763
|
+
let currentCaller = null;
|
|
764
|
+
for (let i = 0; i < lines.length; i++) {
|
|
765
|
+
const line = lines[i];
|
|
766
|
+
const lineNum = i + 1;
|
|
767
|
+
let match = line.match(/^\s*(?:class|module)\s+([A-Z]\w*)/);
|
|
768
|
+
if (match) {
|
|
769
|
+
const kind = line.includes('module') ? 'module' : 'class';
|
|
770
|
+
symbols.push({
|
|
771
|
+
name: match[1],
|
|
772
|
+
kind,
|
|
773
|
+
file_path: relPath,
|
|
774
|
+
line_start: lineNum,
|
|
775
|
+
line_end: lineNum,
|
|
776
|
+
signature: line.trim(),
|
|
777
|
+
project_hash: projectHash,
|
|
778
|
+
});
|
|
779
|
+
continue;
|
|
780
|
+
}
|
|
781
|
+
match = line.match(/^\s*def\s+([a-zA-Z0-9_?!=]+)/);
|
|
782
|
+
if (match) {
|
|
783
|
+
const funcName = match[1];
|
|
784
|
+
symbols.push({
|
|
785
|
+
name: funcName,
|
|
786
|
+
kind: 'method',
|
|
787
|
+
file_path: relPath,
|
|
788
|
+
line_start: lineNum,
|
|
789
|
+
line_end: lineNum,
|
|
790
|
+
signature: line.trim(),
|
|
791
|
+
project_hash: projectHash,
|
|
792
|
+
});
|
|
793
|
+
currentCaller = funcName;
|
|
794
|
+
continue;
|
|
795
|
+
}
|
|
796
|
+
if (currentCaller) {
|
|
797
|
+
const callMatches = line.matchAll(/\b([a-zA-Z0-9_]+)\s*(?:\(|$)/g);
|
|
798
|
+
for (const m of callMatches) {
|
|
799
|
+
const callee = m[1];
|
|
800
|
+
const reserved = ['def', 'class', 'module', 'if', 'unless', 'while', 'until', 'puts', 'raise', 'return', 'end'];
|
|
801
|
+
if (!reserved.includes(callee) && callee !== currentCaller) {
|
|
802
|
+
references.push({
|
|
803
|
+
caller_name: currentCaller,
|
|
804
|
+
caller_file: relPath,
|
|
805
|
+
caller_line: lineNum,
|
|
806
|
+
callee_name: callee,
|
|
807
|
+
callee_file: relPath,
|
|
808
|
+
callee_line: lineNum,
|
|
809
|
+
project_hash: projectHash,
|
|
810
|
+
});
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
return { symbols, references };
|
|
816
|
+
}
|
|
817
|
+
/** Extract symbols and references from Elixir file */
|
|
818
|
+
export function parseElixir(content, relPath, projectHash) {
|
|
819
|
+
const symbols = [];
|
|
820
|
+
const references = [];
|
|
821
|
+
const lines = content.split(/\r?\n/);
|
|
822
|
+
let currentCaller = null;
|
|
823
|
+
for (let i = 0; i < lines.length; i++) {
|
|
824
|
+
const line = lines[i];
|
|
825
|
+
const lineNum = i + 1;
|
|
826
|
+
let match = line.match(/^\s*defmodule\s+([A-Z][\w.]*)/);
|
|
827
|
+
if (match) {
|
|
828
|
+
symbols.push({
|
|
829
|
+
name: match[1],
|
|
830
|
+
kind: 'module',
|
|
831
|
+
file_path: relPath,
|
|
832
|
+
line_start: lineNum,
|
|
833
|
+
line_end: lineNum,
|
|
834
|
+
signature: line.trim(),
|
|
835
|
+
project_hash: projectHash,
|
|
836
|
+
});
|
|
837
|
+
continue;
|
|
838
|
+
}
|
|
839
|
+
match = line.match(/^\s*(?:def|defp)\s+([a-z_]\w*)/);
|
|
840
|
+
if (match) {
|
|
841
|
+
const funcName = match[1];
|
|
842
|
+
symbols.push({
|
|
843
|
+
name: funcName,
|
|
844
|
+
kind: 'function',
|
|
845
|
+
file_path: relPath,
|
|
846
|
+
line_start: lineNum,
|
|
847
|
+
line_end: lineNum,
|
|
848
|
+
signature: line.trim(),
|
|
849
|
+
project_hash: projectHash,
|
|
850
|
+
});
|
|
851
|
+
currentCaller = funcName;
|
|
852
|
+
continue;
|
|
853
|
+
}
|
|
854
|
+
if (currentCaller) {
|
|
855
|
+
const callMatches = line.matchAll(/\b([a-z_]\w*)\s*\(/g);
|
|
856
|
+
for (const m of callMatches) {
|
|
857
|
+
const callee = m[1];
|
|
858
|
+
const reserved = ['defmodule', 'def', 'defp', 'if', 'unless', 'cond', 'case', 'import', 'alias', 'require', 'use'];
|
|
859
|
+
if (!reserved.includes(callee) && callee !== currentCaller) {
|
|
860
|
+
references.push({
|
|
861
|
+
caller_name: currentCaller,
|
|
862
|
+
caller_file: relPath,
|
|
863
|
+
caller_line: lineNum,
|
|
864
|
+
callee_name: callee,
|
|
865
|
+
callee_file: relPath,
|
|
866
|
+
callee_line: lineNum,
|
|
867
|
+
project_hash: projectHash,
|
|
868
|
+
});
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
return { symbols, references };
|
|
874
|
+
}
|
|
456
875
|
/** Language parser dispatch */
|
|
457
876
|
export function parseFile(content, relPath, projectHash) {
|
|
458
877
|
const ext = path.extname(relPath).toLowerCase();
|
|
@@ -468,6 +887,24 @@ export function parseFile(content, relPath, projectHash) {
|
|
|
468
887
|
return parseGo(content, relPath, projectHash);
|
|
469
888
|
case '.rs':
|
|
470
889
|
return parseRust(content, relPath, projectHash);
|
|
890
|
+
case '.java':
|
|
891
|
+
return parseJava(content, relPath, projectHash);
|
|
892
|
+
case '.c':
|
|
893
|
+
case '.cpp':
|
|
894
|
+
case '.h':
|
|
895
|
+
case '.hpp':
|
|
896
|
+
case '.cc':
|
|
897
|
+
case '.cxx':
|
|
898
|
+
return parseCpp(content, relPath, projectHash);
|
|
899
|
+
case '.cs':
|
|
900
|
+
return parseCSharp(content, relPath, projectHash);
|
|
901
|
+
case '.php':
|
|
902
|
+
return parsePhp(content, relPath, projectHash);
|
|
903
|
+
case '.rb':
|
|
904
|
+
return parseRuby(content, relPath, projectHash);
|
|
905
|
+
case '.ex':
|
|
906
|
+
case '.exs':
|
|
907
|
+
return parseElixir(content, relPath, projectHash);
|
|
471
908
|
default:
|
|
472
909
|
return { symbols: [], references: [] };
|
|
473
910
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/indexing/indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/indexing/indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import fs from 'fs';
|
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import os from 'os';
|
|
5
5
|
import { initIndexDb } from './fts.js';
|
|
6
|
-
import { collectFiles, parseTypeScript, parsePython, parseGo, parseRust, indexCodebase } from './indexer.js';
|
|
6
|
+
import { collectFiles, parseTypeScript, parsePython, parseGo, parseRust, parseJava, parseCpp, parseCSharp, parsePhp, parseRuby, parseElixir, indexCodebase } from './indexer.js';
|
|
7
7
|
describe('Indexer - collectFiles', () => {
|
|
8
8
|
let tmpDir;
|
|
9
9
|
beforeEach(() => {
|
|
@@ -152,6 +152,68 @@ describe('Indexer - parseRust', () => {
|
|
|
152
152
|
expect(symbols[0].kind).toBe('trait');
|
|
153
153
|
});
|
|
154
154
|
});
|
|
155
|
+
describe('Indexer - parseJava', () => {
|
|
156
|
+
const projectHash = 'testhash';
|
|
157
|
+
it('parses class and method definitions', () => {
|
|
158
|
+
const content = 'public class UserService {\n public void createUser(String name) {}\n}\n';
|
|
159
|
+
const { symbols } = parseJava(content, 'UserService.java', projectHash);
|
|
160
|
+
expect(symbols).toHaveLength(2);
|
|
161
|
+
expect(symbols[0].name).toBe('UserService');
|
|
162
|
+
expect(symbols[0].kind).toBe('class');
|
|
163
|
+
expect(symbols[1].name).toBe('createUser');
|
|
164
|
+
expect(symbols[1].kind).toBe('method');
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
describe('Indexer - parseCpp', () => {
|
|
168
|
+
const projectHash = 'testhash';
|
|
169
|
+
it('parses struct and function definitions', () => {
|
|
170
|
+
const content = 'struct Node {\n};\nint main() {\n return 0;\n}\n';
|
|
171
|
+
const { symbols } = parseCpp(content, 'main.cpp', projectHash);
|
|
172
|
+
expect(symbols).toHaveLength(2);
|
|
173
|
+
expect(symbols[0].kind).toBe('struct');
|
|
174
|
+
expect(symbols[1].kind).toBe('function');
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
describe('Indexer - parseCSharp', () => {
|
|
178
|
+
const projectHash = 'testhash';
|
|
179
|
+
it('parses interface and method definitions', () => {
|
|
180
|
+
const content = 'public interface IRepository {\n Task SaveAsync();\n}\n';
|
|
181
|
+
const { symbols } = parseCSharp(content, 'IRepository.cs', projectHash);
|
|
182
|
+
expect(symbols).toHaveLength(2);
|
|
183
|
+
expect(symbols[0].kind).toBe('interface');
|
|
184
|
+
expect(symbols[1].kind).toBe('method');
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
describe('Indexer - parsePhp', () => {
|
|
188
|
+
const projectHash = 'testhash';
|
|
189
|
+
it('parses class and function definitions', () => {
|
|
190
|
+
const content = 'class Controller {\n public function index() {}\n}\n';
|
|
191
|
+
const { symbols } = parsePhp(content, 'Controller.php', projectHash);
|
|
192
|
+
expect(symbols).toHaveLength(2);
|
|
193
|
+
expect(symbols[0].kind).toBe('class');
|
|
194
|
+
expect(symbols[1].kind).toBe('function');
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
describe('Indexer - parseRuby', () => {
|
|
198
|
+
const projectHash = 'testhash';
|
|
199
|
+
it('parses module and method definitions', () => {
|
|
200
|
+
const content = 'module Helper\n def format_text\n end\nend\n';
|
|
201
|
+
const { symbols } = parseRuby(content, 'helper.rb', projectHash);
|
|
202
|
+
expect(symbols).toHaveLength(2);
|
|
203
|
+
expect(symbols[0].kind).toBe('module');
|
|
204
|
+
expect(symbols[1].kind).toBe('method');
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
describe('Indexer - parseElixir', () => {
|
|
208
|
+
const projectHash = 'testhash';
|
|
209
|
+
it('parses defmodule and def functions', () => {
|
|
210
|
+
const content = 'defmodule MyApp.User do\n def find_user(id) do\n end\nend\n';
|
|
211
|
+
const { symbols } = parseElixir(content, 'user.ex', projectHash);
|
|
212
|
+
expect(symbols).toHaveLength(2);
|
|
213
|
+
expect(symbols[0].kind).toBe('module');
|
|
214
|
+
expect(symbols[1].kind).toBe('function');
|
|
215
|
+
});
|
|
216
|
+
});
|
|
155
217
|
describe('Indexer - indexCodebase integration', () => {
|
|
156
218
|
let tmpDir;
|
|
157
219
|
let db;
|