genifyai 0.1.2 → 0.1.5

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 CHANGED
@@ -11,7 +11,7 @@
11
11
  - 🎯 **精准定位** - AST 级别解析,区分定义和引用
12
12
  - ⚡ **极速响应** - ripgrep 粗筛 + Tree-sitter 精筛,毫秒级返回
13
13
  - 🗣️ **自然语言** - 支持模糊搜索和别名,用你习惯的方式找代码
14
- - 🌐 **多语言** - TypeScript/JavaScript、Solidity、HTML、CSS 等(持续扩展中)
14
+ - 🌐 **多语言** - TypeScript/JavaScript、Vue、Python、Solidity、HTML、CSS 等(持续扩展中)
15
15
 
16
16
  ## 快速开始
17
17
 
@@ -75,7 +75,7 @@
75
75
  { "query": "useState", "type": "function", "scope": "src" }
76
76
  ```
77
77
 
78
- 支持的符号类型:`function` `class` `interface` `type` `enum` `const` `let` `var` `function_component` `method` `getter` `setter`
78
+ 支持的符号类型:`function` `class` `interface` `type` `enum` `const` `let` `var` `function_component` `class_component` `hook` `method` `getter` `setter` `decorator`
79
79
 
80
80
  ### `read_range` - 读取代码
81
81
 
@@ -107,7 +107,9 @@
107
107
 
108
108
  | 语言 | 扩展名 | 符号类型 |
109
109
  |------|--------|----------|
110
- | TypeScript/JavaScript | `.ts` `.tsx` `.js` `.jsx` | function, class, interface, type, enum, const, let, var, function_component, method, getter, setter |
110
+ | TypeScript/JavaScript | `.ts` `.tsx` `.js` `.jsx` | function, class, interface, type, enum, const, let, var, function_component, class_component, hook, method, getter, setter |
111
+ | Vue | `.vue` | 继承 TS/CSS 全部符号 + computed, watch, props, emits, component |
112
+ | Python | `.py` `.pyw` | function, class, method, decorator |
111
113
  | Solidity | `.sol` | contract, library, interface, struct, event, modifier, error, function, enum |
112
114
  | HTML | `.html` `.htm` | element (#id), component |
113
115
  | CSS/Less/Sass | `.css` `.less` `.sass` `.scss` | selector, variable, keyframes |
@@ -126,11 +128,6 @@
126
128
 
127
129
  ---
128
130
 
129
- ## 系统要求
130
-
131
- - Node.js >= 18
132
- - 支持 MCP 协议的客户端(Claude Desktop、Cursor 等)
133
-
134
131
  ## License
135
132
 
136
133
  MIT
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ import { searchFuzzy, searchFuzzySchema } from './tools/searchFuzzy.js';
9
9
  import { setWorkspaceRoot } from './utils/pathResolver.js';
10
10
  const server = new Server({
11
11
  name: 'genifyai',
12
- version: '0.1.2',
12
+ version: '0.1.5',
13
13
  }, {
14
14
  capabilities: {
15
15
  tools: {},
@@ -46,6 +46,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
46
46
  'method',
47
47
  'getter',
48
48
  'setter',
49
+ 'decorator',
49
50
  ],
50
51
  description: 'Optional filter by symbol type',
51
52
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,SAAS;AACT,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO;QACL,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,eAAe;gBACrB,WAAW,EACT,mJAAmJ;gBACrJ,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,2BAA2B;yBACzC;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE;gCACJ,UAAU;gCACV,OAAO;gCACP,WAAW;gCACX,MAAM;gCACN,MAAM;gCACN,OAAO;gCACP,KAAK;gCACL,KAAK;gCACL,oBAAoB;gCACpB,iBAAiB;gCACjB,MAAM;gCACN,QAAQ;gCACR,QAAQ;gCACR,QAAQ;gCACR,WAAW;6BACZ;4BACD,WAAW,EAAE,gCAAgC;yBAC9C;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,qDAAqD;yBACnE;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yCAAyC;yBACvD;qBACF;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;aACF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EACT,0GAA0G;gBAC5G,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,sCAAsC;yBACpD;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,iEAAiE;4BACnE,OAAO,EAAE,mBAAmB;yBAC7B;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,kDAAkD;yBAChE;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;iBAChC;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EACT,6GAA6G;gBAC/G,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,+CAA+C;yBAC7D;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,8DAA8D;yBACjE;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;iBAC7B;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EACT,+GAA+G;gBACjH,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iDAAiD;yBAC/D;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,qDAAqD;yBACnE;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yCAAyC;yBACvD;qBACF;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS;AACT,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC1C,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;yBACvC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;gBAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC;6BACxE;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;yBACvC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED;gBACE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;yBACzD;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;QACN,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,GAAG,EAAE,YAAY,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;iBAC9C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,WAAW;IACX,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC7C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -4,6 +4,8 @@ import './typescript.js';
4
4
  import './solidity.js';
5
5
  import './html.js';
6
6
  import './css.js';
7
+ import './python.js';
8
+ import './vue.js';
7
9
  export declare function parseFile(filePath: string): ParseResult;
8
10
  export declare function parseFileForSymbol(filePath: string, query: string, type?: SymbolKind): SymbolInfo[];
9
11
  export { getParserForFile, getSupportedExtensions, getLanguageForFile, registerParser };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG7G,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AACvB,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC;AAElB,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAMvD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAMnG;AAED,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG7G,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AACvB,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC;AAClB,OAAO,aAAa,CAAC;AACrB,OAAO,UAAU,CAAC;AAElB,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAMvD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAMnG;AAED,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC"}
@@ -4,6 +4,8 @@ import './typescript.js';
4
4
  import './solidity.js';
5
5
  import './html.js';
6
6
  import './css.js';
7
+ import './python.js';
8
+ import './vue.js';
7
9
  export function parseFile(filePath) {
8
10
  const parser = getParserForFile(filePath);
9
11
  if (!parser) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE7G,gBAAgB;AAChB,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AACvB,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC;AAElB,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,0BAA0B,QAAQ,EAAE,CAAC,EAAE,CAAC;IACtF,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,KAAa,EAAE,IAAiB;IACnF,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE7G,gBAAgB;AAChB,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AACvB,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC;AAClB,OAAO,aAAa,CAAC;AACrB,OAAO,UAAU,CAAC;AAElB,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,0BAA0B,QAAQ,EAAE,CAAC,EAAE,CAAC;IACtF,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,KAAa,EAAE,IAAiB;IACnF,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { SymbolInfo, SymbolKind, ParseResult, LanguageParser } from './types.js';
2
+ export declare function parseFile(filePath: string): ParseResult;
3
+ export declare function parseFileForSymbol(filePath: string, query: string, type?: SymbolKind): SymbolInfo[];
4
+ export declare const pythonParserInstance: LanguageParser;
5
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/parsers/python.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAc,cAAc,EAAE,MAAM,YAAY,CAAC;AAiKlG,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CA4BvD;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,UAAU,GAChB,UAAU,EAAE,CAOd;AAED,eAAO,MAAM,oBAAoB,EAAE,cAKlC,CAAC"}
@@ -0,0 +1,182 @@
1
+ import Parser from 'tree-sitter';
2
+ import { createRequire } from 'module';
3
+ import path from 'path';
4
+ import { readFileContent, formatRange } from '../utils/fileReader.js';
5
+ import { getCachedResult, setCachedResult } from './cache.js';
6
+ import { registerParser } from './registry.js';
7
+ const require = createRequire(import.meta.url);
8
+ const nodeGypBuild = require('node-gyp-build');
9
+ const pythonPkgPath = path.dirname(require.resolve('tree-sitter-python/package.json'));
10
+ const Python = nodeGypBuild(pythonPkgPath);
11
+ const pyParser = new Parser();
12
+ pyParser.setLanguage(Python);
13
+ function getFunctionName(node) {
14
+ const nameNode = node.childForFieldName('name');
15
+ return nameNode?.text || null;
16
+ }
17
+ function getClassName(node) {
18
+ const nameNode = node.childForFieldName('name');
19
+ return nameNode?.text || null;
20
+ }
21
+ function getFunctionSignature(node, sourceCode) {
22
+ const nameNode = node.childForFieldName('name');
23
+ const paramsNode = node.childForFieldName('parameters');
24
+ const returnType = node.childForFieldName('return_type');
25
+ let sig = 'def ';
26
+ if (nameNode)
27
+ sig += nameNode.text;
28
+ if (paramsNode)
29
+ sig += paramsNode.text;
30
+ if (returnType)
31
+ sig += ' -> ' + returnType.text;
32
+ return sig;
33
+ }
34
+ function getClassSignature(node) {
35
+ const nameNode = node.childForFieldName('name');
36
+ const superclass = node.childForFieldName('superclasses');
37
+ let sig = 'class ';
38
+ if (nameNode)
39
+ sig += nameNode.text;
40
+ if (superclass)
41
+ sig += superclass.text;
42
+ return sig;
43
+ }
44
+ function collectSymbols(node, filePath, sourceCode, symbols, inClass = false) {
45
+ // 函数定义
46
+ if (node.type === 'function_definition') {
47
+ const name = getFunctionName(node);
48
+ if (name) {
49
+ const kind = inClass ? 'method' : 'function';
50
+ symbols.push({
51
+ name,
52
+ kind,
53
+ file: filePath,
54
+ location: {
55
+ startLine: node.startPosition.row + 1,
56
+ endLine: node.endPosition.row + 1,
57
+ startCol: node.startPosition.column,
58
+ endCol: node.endPosition.column,
59
+ },
60
+ range: formatRange(node.startPosition.row + 1, node.endPosition.row + 1),
61
+ signature: getFunctionSignature(node, sourceCode),
62
+ language: 'python',
63
+ });
64
+ }
65
+ }
66
+ // 类定义
67
+ if (node.type === 'class_definition') {
68
+ const name = getClassName(node);
69
+ if (name) {
70
+ symbols.push({
71
+ name,
72
+ kind: 'class',
73
+ file: filePath,
74
+ location: {
75
+ startLine: node.startPosition.row + 1,
76
+ endLine: node.endPosition.row + 1,
77
+ startCol: node.startPosition.column,
78
+ endCol: node.endPosition.column,
79
+ },
80
+ range: formatRange(node.startPosition.row + 1, node.endPosition.row + 1),
81
+ signature: getClassSignature(node),
82
+ language: 'python',
83
+ });
84
+ }
85
+ // 递归处理类内部的方法
86
+ const body = node.childForFieldName('body');
87
+ if (body) {
88
+ for (const child of body.namedChildren) {
89
+ collectSymbols(child, filePath, sourceCode, symbols, true);
90
+ }
91
+ }
92
+ return;
93
+ }
94
+ // 装饰器定义(decorated_definition)
95
+ if (node.type === 'decorated_definition') {
96
+ const definition = node.namedChildren.find((c) => c.type === 'function_definition' || c.type === 'class_definition');
97
+ if (definition) {
98
+ const decorators = node.namedChildren.filter((c) => c.type === 'decorator');
99
+ const name = definition.type === 'function_definition'
100
+ ? getFunctionName(definition)
101
+ : getClassName(definition);
102
+ if (name && decorators.length > 0) {
103
+ const decoratorNames = decorators.map((d) => d.text).join('\n');
104
+ const kind = inClass
105
+ ? 'method'
106
+ : (definition.type === 'function_definition' ? 'decorator' : 'class');
107
+ symbols.push({
108
+ name,
109
+ kind,
110
+ file: filePath,
111
+ location: {
112
+ startLine: node.startPosition.row + 1,
113
+ endLine: node.endPosition.row + 1,
114
+ startCol: node.startPosition.column,
115
+ endCol: node.endPosition.column,
116
+ },
117
+ range: formatRange(node.startPosition.row + 1, node.endPosition.row + 1),
118
+ signature: decoratorNames + '\n' + (definition.type === 'function_definition'
119
+ ? getFunctionSignature(definition, sourceCode)
120
+ : getClassSignature(definition)),
121
+ language: 'python',
122
+ });
123
+ }
124
+ // 如果是被装饰的类,继续处理类内部
125
+ if (definition.type === 'class_definition') {
126
+ const body = definition.childForFieldName('body');
127
+ if (body) {
128
+ for (const child of body.namedChildren) {
129
+ collectSymbols(child, filePath, sourceCode, symbols, true);
130
+ }
131
+ }
132
+ }
133
+ }
134
+ return;
135
+ }
136
+ // 递归处理子节点
137
+ for (const child of node.namedChildren) {
138
+ collectSymbols(child, filePath, sourceCode, symbols, inClass);
139
+ }
140
+ }
141
+ export function parseFile(filePath) {
142
+ const cached = getCachedResult(filePath);
143
+ if (cached) {
144
+ return cached;
145
+ }
146
+ const sourceCode = readFileContent(filePath);
147
+ if (!sourceCode) {
148
+ return { symbols: [], exports: [], errors: [`Failed to read file: ${filePath}`] };
149
+ }
150
+ try {
151
+ const tree = pyParser.parse(sourceCode);
152
+ const symbols = [];
153
+ const exports = [];
154
+ collectSymbols(tree.rootNode, filePath, sourceCode, symbols);
155
+ const result = { symbols, exports, errors: [] };
156
+ setCachedResult(filePath, result);
157
+ return result;
158
+ }
159
+ catch (err) {
160
+ return {
161
+ symbols: [],
162
+ exports: [],
163
+ errors: [`Failed to parse file: ${filePath} - ${err}`],
164
+ };
165
+ }
166
+ }
167
+ export function parseFileForSymbol(filePath, query, type) {
168
+ const { symbols } = parseFile(filePath);
169
+ return symbols.filter((s) => {
170
+ const nameMatch = s.name.toLowerCase().includes(query.toLowerCase());
171
+ const typeMatch = !type || s.kind === type;
172
+ return nameMatch && typeMatch;
173
+ });
174
+ }
175
+ export const pythonParserInstance = {
176
+ language: 'python',
177
+ extensions: ['.py', '.pyw'],
178
+ parseFile,
179
+ parseFileForSymbol,
180
+ };
181
+ registerParser(pythonParserInstance);
182
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/parsers/python.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type SymbolKind = 'function' | 'class' | 'interface' | 'type' | 'enum' | 'const' | 'let' | 'var' | 'function_component' | 'class_component' | 'hook' | 'method' | 'getter' | 'setter' | 'contract' | 'library' | 'sol_interface' | 'struct' | 'event' | 'modifier' | 'error' | 'mapping' | 'element' | 'component' | 'selector' | 'variable' | 'mixin' | 'keyframes';
1
+ export type SymbolKind = 'function' | 'class' | 'interface' | 'type' | 'enum' | 'const' | 'let' | 'var' | 'function_component' | 'class_component' | 'hook' | 'method' | 'getter' | 'setter' | 'contract' | 'library' | 'sol_interface' | 'struct' | 'event' | 'modifier' | 'error' | 'mapping' | 'element' | 'component' | 'selector' | 'variable' | 'mixin' | 'keyframes' | 'decorator' | 'computed' | 'watch' | 'props' | 'emits';
2
2
  export interface SymbolLocation {
3
3
  startLine: number;
4
4
  endLine: number;
@@ -27,7 +27,7 @@ export interface ExportInfo {
27
27
  source?: string;
28
28
  location: SymbolLocation;
29
29
  }
30
- export type SupportedLanguage = 'typescript' | 'solidity' | 'html' | 'css';
30
+ export type SupportedLanguage = 'typescript' | 'solidity' | 'html' | 'css' | 'python' | 'vue';
31
31
  export interface LanguageParser {
32
32
  language: SupportedLanguage;
33
33
  extensions: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parsers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAElB,UAAU,GACV,OAAO,GACP,WAAW,GACX,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,GACL,KAAK,GACL,oBAAoB,GACpB,iBAAiB,GACjB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GAER,UAAU,GACV,SAAS,GACT,eAAe,GACf,QAAQ,GACR,OAAO,GACP,UAAU,GACV,OAAO,GACP,SAAS,GAET,SAAS,GACT,WAAW,GAEX,UAAU,GACV,UAAU,GACV,OAAO,GACP,WAAW,CAAC;AAEhB,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3E,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;IACzC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;CACtF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parsers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAElB,UAAU,GACV,OAAO,GACP,WAAW,GACX,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,GACL,KAAK,GACL,oBAAoB,GACpB,iBAAiB,GACjB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GAER,UAAU,GACV,SAAS,GACT,eAAe,GACf,QAAQ,GACR,OAAO,GACP,UAAU,GACV,OAAO,GACP,SAAS,GAET,SAAS,GACT,WAAW,GAEX,UAAU,GACV,UAAU,GACV,OAAO,GACP,WAAW,GAEX,WAAW,GAEX,UAAU,GACV,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9F,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;IACzC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;CACtF"}
@@ -0,0 +1,5 @@
1
+ import type { SymbolInfo, SymbolKind, ParseResult, LanguageParser } from './types.js';
2
+ export declare function parseFile(filePath: string): ParseResult;
3
+ export declare function parseFileForSymbol(filePath: string, query: string, type?: SymbolKind): SymbolInfo[];
4
+ export declare const vueParserInstance: LanguageParser;
5
+ //# sourceMappingURL=vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../../src/parsers/vue.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAc,cAAc,EAAE,MAAM,YAAY,CAAC;AAgrBlG,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CA+DvD;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,UAAU,GAChB,UAAU,EAAE,CAOd;AAED,eAAO,MAAM,iBAAiB,EAAE,cAK/B,CAAC"}
@@ -0,0 +1,661 @@
1
+ import Parser from 'tree-sitter';
2
+ import TypeScript from 'tree-sitter-typescript';
3
+ import { createRequire } from 'module';
4
+ import path from 'path';
5
+ import { readFileContent, formatRange } from '../utils/fileReader.js';
6
+ import { getCachedResult, setCachedResult } from './cache.js';
7
+ import { registerParser } from './registry.js';
8
+ const require = createRequire(import.meta.url);
9
+ const nodeGypBuild = require('node-gyp-build');
10
+ const cssPkgPath = path.dirname(require.resolve('tree-sitter-css/package.json'));
11
+ const CSS = nodeGypBuild(cssPkgPath);
12
+ const tsParser = new Parser();
13
+ tsParser.setLanguage(TypeScript.typescript);
14
+ const tsxParser = new Parser();
15
+ tsxParser.setLanguage(TypeScript.tsx);
16
+ const cssParser = new Parser();
17
+ cssParser.setLanguage(CSS);
18
+ function extractSfcBlocks(sourceCode) {
19
+ const result = {};
20
+ // 提取 <script> 块
21
+ const scriptMatch = sourceCode.match(/<script([^>]*)>([\s\S]*?)<\/script>/i);
22
+ if (scriptMatch) {
23
+ const attrs = scriptMatch[1];
24
+ const content = scriptMatch[2];
25
+ const startIdx = sourceCode.indexOf(scriptMatch[0]);
26
+ const startLine = sourceCode.slice(0, startIdx).split('\n').length;
27
+ const langMatch = attrs.match(/lang=["']?(\w+)["']?/);
28
+ result.script = {
29
+ content,
30
+ startLine,
31
+ lang: langMatch?.[1],
32
+ };
33
+ }
34
+ // 提取 <template> 块
35
+ const templateMatch = sourceCode.match(/<template([^>]*)>([\s\S]*?)<\/template>/i);
36
+ if (templateMatch) {
37
+ const content = templateMatch[2];
38
+ const startIdx = sourceCode.indexOf(templateMatch[0]);
39
+ const startLine = sourceCode.slice(0, startIdx).split('\n').length;
40
+ result.template = {
41
+ content,
42
+ startLine,
43
+ };
44
+ }
45
+ // 提取 <style> 块
46
+ const styleMatch = sourceCode.match(/<style([^>]*)>([\s\S]*?)<\/style>/i);
47
+ if (styleMatch) {
48
+ const attrs = styleMatch[1];
49
+ const content = styleMatch[2];
50
+ const startIdx = sourceCode.indexOf(styleMatch[0]);
51
+ const startLine = sourceCode.slice(0, startIdx).split('\n').length;
52
+ const langMatch = attrs.match(/lang=["']?(\w+)["']?/);
53
+ result.style = {
54
+ content,
55
+ startLine,
56
+ lang: langMatch?.[1],
57
+ };
58
+ }
59
+ return result;
60
+ }
61
+ function isPascalCase(name) {
62
+ return /^[A-Z][a-zA-Z0-9]*$/.test(name);
63
+ }
64
+ function collectTemplateComponents(templateContent, filePath, baseOffset, symbols) {
65
+ // 匹配 PascalCase 组件标签
66
+ const tagRegex = /<([A-Z][a-zA-Z0-9]*)[^>]*\/?>/g;
67
+ let match;
68
+ while ((match = tagRegex.exec(templateContent)) !== null) {
69
+ const tagName = match[1];
70
+ const beforeMatch = templateContent.slice(0, match.index);
71
+ const lineNum = beforeMatch.split('\n').length;
72
+ symbols.push({
73
+ name: tagName,
74
+ kind: 'component',
75
+ file: filePath,
76
+ location: {
77
+ startLine: lineNum + baseOffset,
78
+ endLine: lineNum + baseOffset,
79
+ startCol: 0,
80
+ endCol: match[0].length,
81
+ },
82
+ range: formatRange(lineNum + baseOffset, lineNum + baseOffset),
83
+ signature: `<${tagName}>`,
84
+ language: 'vue',
85
+ });
86
+ }
87
+ }
88
+ function extractSignature(node, sourceCode) {
89
+ const startLine = node.startPosition.row;
90
+ const lines = sourceCode.split('\n');
91
+ let sig = lines[startLine] ?? '';
92
+ const braceIdx = sig.indexOf('{');
93
+ if (braceIdx !== -1)
94
+ sig = sig.slice(0, braceIdx).trim();
95
+ return sig.trim();
96
+ }
97
+ function isHookName(name) {
98
+ return /^use[A-Z]/.test(name);
99
+ }
100
+ function collectScriptSymbols(node, filePath, sourceCode, baseOffset, symbols, exports) {
101
+ let kind = null;
102
+ let shouldProcess = false;
103
+ switch (node.type) {
104
+ case 'function_declaration': {
105
+ const nameNode = node.childForFieldName('name');
106
+ const name = nameNode?.text ?? '';
107
+ kind = isHookName(name) ? 'hook' : isPascalCase(name) ? 'function_component' : 'function';
108
+ shouldProcess = true;
109
+ break;
110
+ }
111
+ case 'class_declaration':
112
+ kind = 'class';
113
+ shouldProcess = true;
114
+ break;
115
+ case 'interface_declaration':
116
+ kind = 'interface';
117
+ shouldProcess = true;
118
+ break;
119
+ case 'type_alias_declaration':
120
+ kind = 'type';
121
+ shouldProcess = true;
122
+ break;
123
+ case 'enum_declaration':
124
+ kind = 'enum';
125
+ shouldProcess = true;
126
+ break;
127
+ case 'lexical_declaration': {
128
+ const declarator = node.namedChildren.find(c => c.type === 'variable_declarator');
129
+ const nameNode = declarator?.childForFieldName('name');
130
+ const name = nameNode?.text ?? '';
131
+ const value = declarator?.childForFieldName('value');
132
+ if (value?.type === 'arrow_function' && isPascalCase(name)) {
133
+ kind = 'function_component';
134
+ }
135
+ else if (isHookName(name) && value?.type === 'arrow_function') {
136
+ kind = 'hook';
137
+ }
138
+ else {
139
+ const kindNode = node.children.find(c => c.type === 'const' || c.type === 'let');
140
+ kind = kindNode?.type ?? 'const';
141
+ }
142
+ shouldProcess = true;
143
+ break;
144
+ }
145
+ case 'method_definition': {
146
+ const kindText = node.children.find(c => c.type === 'get' || c.type === 'set')?.type;
147
+ kind = kindText === 'get' ? 'getter' : kindText === 'set' ? 'setter' : 'method';
148
+ shouldProcess = true;
149
+ break;
150
+ }
151
+ case 'pair': {
152
+ const keyNode = node.childForFieldName('key');
153
+ const valueNode = node.childForFieldName('value');
154
+ const key = keyNode?.text;
155
+ if (key && valueNode) {
156
+ if (valueNode.type === 'function' || valueNode.type === 'arrow_function') {
157
+ const loc = {
158
+ startLine: node.startPosition.row + 1 + baseOffset,
159
+ endLine: node.endPosition.row + 1 + baseOffset,
160
+ startCol: node.startPosition.column,
161
+ endCol: node.endPosition.column,
162
+ };
163
+ symbols.push({
164
+ name: key,
165
+ kind: 'method',
166
+ file: filePath,
167
+ location: loc,
168
+ range: formatRange(loc.startLine, loc.endLine),
169
+ signature: `${key}()`,
170
+ language: 'vue',
171
+ });
172
+ }
173
+ }
174
+ break;
175
+ }
176
+ case 'call_expression': {
177
+ const callee = node.childForFieldName('function');
178
+ const calleeName = callee?.text;
179
+ if (calleeName === 'defineProps' || calleeName === 'withDefaults') {
180
+ collectDefinePropsSymbols(node, filePath, baseOffset, symbols);
181
+ }
182
+ else if (calleeName === 'defineEmits') {
183
+ collectDefineEmitsSymbols(node, filePath, baseOffset, symbols);
184
+ }
185
+ else if (calleeName === 'computed') {
186
+ collectComputedSymbol(node, filePath, baseOffset, symbols);
187
+ }
188
+ else if (calleeName === 'watch' || calleeName === 'watchEffect') {
189
+ collectWatchSymbol(node, filePath, baseOffset, symbols, calleeName);
190
+ }
191
+ break;
192
+ }
193
+ }
194
+ if (shouldProcess && kind) {
195
+ let nameNode = null;
196
+ switch (node.type) {
197
+ case 'function_declaration':
198
+ case 'class_declaration':
199
+ case 'interface_declaration':
200
+ case 'type_alias_declaration':
201
+ case 'enum_declaration':
202
+ nameNode = node.childForFieldName('name');
203
+ break;
204
+ case 'lexical_declaration': {
205
+ const declarator = node.namedChildren.find(c => c.type === 'variable_declarator');
206
+ nameNode = declarator?.childForFieldName('name') ?? null;
207
+ break;
208
+ }
209
+ case 'method_definition':
210
+ nameNode = node.childForFieldName('name');
211
+ break;
212
+ }
213
+ if (nameNode) {
214
+ const loc = {
215
+ startLine: node.startPosition.row + 1 + baseOffset,
216
+ endLine: node.endPosition.row + 1 + baseOffset,
217
+ startCol: node.startPosition.column,
218
+ endCol: node.endPosition.column,
219
+ };
220
+ symbols.push({
221
+ name: nameNode.text,
222
+ kind,
223
+ file: filePath,
224
+ location: loc,
225
+ range: formatRange(loc.startLine, loc.endLine),
226
+ signature: extractSignature(node, sourceCode),
227
+ language: 'vue',
228
+ });
229
+ }
230
+ }
231
+ collectExports(node, exports, baseOffset);
232
+ for (const child of node.namedChildren) {
233
+ collectScriptSymbols(child, filePath, sourceCode, baseOffset, symbols, exports);
234
+ }
235
+ }
236
+ function collectDefinePropsSymbols(node, filePath, baseOffset, symbols) {
237
+ const args = node.childForFieldName('arguments');
238
+ if (!args)
239
+ return;
240
+ const typeArgs = node.namedChildren.find(c => c.type === 'type_arguments');
241
+ if (typeArgs) {
242
+ const typeLiteral = typeArgs.namedChildren.find(c => c.type === 'object_type');
243
+ if (typeLiteral) {
244
+ for (const prop of typeLiteral.namedChildren) {
245
+ if (prop.type === 'property_signature') {
246
+ const nameNode = prop.childForFieldName('name');
247
+ if (nameNode) {
248
+ const loc = {
249
+ startLine: prop.startPosition.row + 1 + baseOffset,
250
+ endLine: prop.endPosition.row + 1 + baseOffset,
251
+ startCol: prop.startPosition.column,
252
+ endCol: prop.endPosition.column,
253
+ };
254
+ symbols.push({
255
+ name: nameNode.text,
256
+ kind: 'props',
257
+ file: filePath,
258
+ location: loc,
259
+ range: formatRange(loc.startLine, loc.endLine),
260
+ signature: prop.text,
261
+ language: 'vue',
262
+ });
263
+ }
264
+ }
265
+ }
266
+ }
267
+ }
268
+ const objArg = args.namedChildren.find(c => c.type === 'object');
269
+ if (objArg) {
270
+ for (const pair of objArg.namedChildren) {
271
+ if (pair.type === 'pair' || pair.type === 'shorthand_property_identifier') {
272
+ const keyNode = pair.type === 'pair' ? pair.childForFieldName('key') : pair;
273
+ if (keyNode) {
274
+ const loc = {
275
+ startLine: pair.startPosition.row + 1 + baseOffset,
276
+ endLine: pair.endPosition.row + 1 + baseOffset,
277
+ startCol: pair.startPosition.column,
278
+ endCol: pair.endPosition.column,
279
+ };
280
+ symbols.push({
281
+ name: keyNode.text,
282
+ kind: 'props',
283
+ file: filePath,
284
+ location: loc,
285
+ range: formatRange(loc.startLine, loc.endLine),
286
+ signature: `prop: ${keyNode.text}`,
287
+ language: 'vue',
288
+ });
289
+ }
290
+ }
291
+ }
292
+ }
293
+ }
294
+ function collectDefineEmitsSymbols(node, filePath, baseOffset, symbols) {
295
+ const args = node.childForFieldName('arguments');
296
+ if (!args)
297
+ return;
298
+ const arrArg = args.namedChildren.find(c => c.type === 'array');
299
+ if (arrArg) {
300
+ for (const elem of arrArg.namedChildren) {
301
+ if (elem.type === 'string') {
302
+ const name = elem.text.slice(1, -1);
303
+ const loc = {
304
+ startLine: elem.startPosition.row + 1 + baseOffset,
305
+ endLine: elem.endPosition.row + 1 + baseOffset,
306
+ startCol: elem.startPosition.column,
307
+ endCol: elem.endPosition.column,
308
+ };
309
+ symbols.push({
310
+ name,
311
+ kind: 'emits',
312
+ file: filePath,
313
+ location: loc,
314
+ range: formatRange(loc.startLine, loc.endLine),
315
+ signature: `emit: ${name}`,
316
+ language: 'vue',
317
+ });
318
+ }
319
+ }
320
+ }
321
+ }
322
+ function collectComputedSymbol(node, filePath, baseOffset, symbols) {
323
+ const parent = node.parent;
324
+ if (parent?.type === 'variable_declarator') {
325
+ const nameNode = parent.childForFieldName('name');
326
+ if (nameNode) {
327
+ const decl = parent.parent;
328
+ const loc = {
329
+ startLine: (decl ?? node).startPosition.row + 1 + baseOffset,
330
+ endLine: (decl ?? node).endPosition.row + 1 + baseOffset,
331
+ startCol: (decl ?? node).startPosition.column,
332
+ endCol: (decl ?? node).endPosition.column,
333
+ };
334
+ symbols.push({
335
+ name: nameNode.text,
336
+ kind: 'computed',
337
+ file: filePath,
338
+ location: loc,
339
+ range: formatRange(loc.startLine, loc.endLine),
340
+ signature: `computed: ${nameNode.text}`,
341
+ language: 'vue',
342
+ });
343
+ }
344
+ }
345
+ }
346
+ function collectWatchSymbol(node, filePath, baseOffset, symbols, watchType) {
347
+ const args = node.childForFieldName('arguments');
348
+ if (!args)
349
+ return;
350
+ const firstArg = args.namedChildren[0];
351
+ if (!firstArg)
352
+ return;
353
+ let watchTarget = '';
354
+ if (firstArg.type === 'identifier') {
355
+ watchTarget = firstArg.text;
356
+ }
357
+ else if (firstArg.type === 'arrow_function' || firstArg.type === 'function') {
358
+ watchTarget = '() => ...';
359
+ }
360
+ else if (firstArg.type === 'array') {
361
+ watchTarget = '[...]';
362
+ }
363
+ const loc = {
364
+ startLine: node.startPosition.row + 1 + baseOffset,
365
+ endLine: node.endPosition.row + 1 + baseOffset,
366
+ startCol: node.startPosition.column,
367
+ endCol: node.endPosition.column,
368
+ };
369
+ symbols.push({
370
+ name: watchTarget || watchType,
371
+ kind: 'watch',
372
+ file: filePath,
373
+ location: loc,
374
+ range: formatRange(loc.startLine, loc.endLine),
375
+ signature: `${watchType}(${watchTarget})`,
376
+ language: 'vue',
377
+ });
378
+ }
379
+ function collectOptionsApiSymbols(node, filePath, sourceCode, baseOffset, symbols) {
380
+ if (node.type !== 'pair') {
381
+ for (const child of node.namedChildren) {
382
+ collectOptionsApiSymbols(child, filePath, sourceCode, baseOffset, symbols);
383
+ }
384
+ return;
385
+ }
386
+ const keyNode = node.childForFieldName('key');
387
+ const valueNode = node.childForFieldName('value');
388
+ const key = keyNode?.text;
389
+ if (!key || !valueNode)
390
+ return;
391
+ if (key === 'computed' && valueNode.type === 'object') {
392
+ for (const pair of valueNode.namedChildren) {
393
+ if (pair.type === 'pair' || pair.type === 'method_definition') {
394
+ const nameNode = pair.type === 'pair'
395
+ ? pair.childForFieldName('key')
396
+ : pair.childForFieldName('name');
397
+ if (nameNode) {
398
+ const loc = {
399
+ startLine: pair.startPosition.row + 1 + baseOffset,
400
+ endLine: pair.endPosition.row + 1 + baseOffset,
401
+ startCol: pair.startPosition.column,
402
+ endCol: pair.endPosition.column,
403
+ };
404
+ symbols.push({
405
+ name: nameNode.text,
406
+ kind: 'computed',
407
+ file: filePath,
408
+ location: loc,
409
+ range: formatRange(loc.startLine, loc.endLine),
410
+ signature: `computed: ${nameNode.text}`,
411
+ language: 'vue',
412
+ });
413
+ }
414
+ }
415
+ }
416
+ }
417
+ else if (key === 'watch' && valueNode.type === 'object') {
418
+ for (const pair of valueNode.namedChildren) {
419
+ if (pair.type === 'pair' || pair.type === 'method_definition') {
420
+ const nameNode = pair.type === 'pair'
421
+ ? pair.childForFieldName('key')
422
+ : pair.childForFieldName('name');
423
+ if (nameNode) {
424
+ const loc = {
425
+ startLine: pair.startPosition.row + 1 + baseOffset,
426
+ endLine: pair.endPosition.row + 1 + baseOffset,
427
+ startCol: pair.startPosition.column,
428
+ endCol: pair.endPosition.column,
429
+ };
430
+ symbols.push({
431
+ name: nameNode.text,
432
+ kind: 'watch',
433
+ file: filePath,
434
+ location: loc,
435
+ range: formatRange(loc.startLine, loc.endLine),
436
+ signature: `watch: ${nameNode.text}`,
437
+ language: 'vue',
438
+ });
439
+ }
440
+ }
441
+ }
442
+ }
443
+ else if (key === 'props') {
444
+ if (valueNode.type === 'array') {
445
+ for (const elem of valueNode.namedChildren) {
446
+ if (elem.type === 'string') {
447
+ const name = elem.text.slice(1, -1);
448
+ const loc = {
449
+ startLine: elem.startPosition.row + 1 + baseOffset,
450
+ endLine: elem.endPosition.row + 1 + baseOffset,
451
+ startCol: elem.startPosition.column,
452
+ endCol: elem.endPosition.column,
453
+ };
454
+ symbols.push({
455
+ name,
456
+ kind: 'props',
457
+ file: filePath,
458
+ location: loc,
459
+ range: formatRange(loc.startLine, loc.endLine),
460
+ signature: `prop: ${name}`,
461
+ language: 'vue',
462
+ });
463
+ }
464
+ }
465
+ }
466
+ else if (valueNode.type === 'object') {
467
+ for (const pair of valueNode.namedChildren) {
468
+ const nameNode = pair.type === 'pair' ? pair.childForFieldName('key') : null;
469
+ if (nameNode) {
470
+ const loc = {
471
+ startLine: pair.startPosition.row + 1 + baseOffset,
472
+ endLine: pair.endPosition.row + 1 + baseOffset,
473
+ startCol: pair.startPosition.column,
474
+ endCol: pair.endPosition.column,
475
+ };
476
+ symbols.push({
477
+ name: nameNode.text,
478
+ kind: 'props',
479
+ file: filePath,
480
+ location: loc,
481
+ range: formatRange(loc.startLine, loc.endLine),
482
+ signature: `prop: ${nameNode.text}`,
483
+ language: 'vue',
484
+ });
485
+ }
486
+ }
487
+ }
488
+ }
489
+ else if (key === 'emits') {
490
+ if (valueNode.type === 'array') {
491
+ for (const elem of valueNode.namedChildren) {
492
+ if (elem.type === 'string') {
493
+ const name = elem.text.slice(1, -1);
494
+ const loc = {
495
+ startLine: elem.startPosition.row + 1 + baseOffset,
496
+ endLine: elem.endPosition.row + 1 + baseOffset,
497
+ startCol: elem.startPosition.column,
498
+ endCol: elem.endPosition.column,
499
+ };
500
+ symbols.push({
501
+ name,
502
+ kind: 'emits',
503
+ file: filePath,
504
+ location: loc,
505
+ range: formatRange(loc.startLine, loc.endLine),
506
+ signature: `emit: ${name}`,
507
+ language: 'vue',
508
+ });
509
+ }
510
+ }
511
+ }
512
+ }
513
+ else if (key === 'methods' && valueNode.type === 'object') {
514
+ for (const pair of valueNode.namedChildren) {
515
+ if (pair.type === 'pair' || pair.type === 'method_definition') {
516
+ const nameNode = pair.type === 'pair'
517
+ ? pair.childForFieldName('key')
518
+ : pair.childForFieldName('name');
519
+ if (nameNode) {
520
+ const loc = {
521
+ startLine: pair.startPosition.row + 1 + baseOffset,
522
+ endLine: pair.endPosition.row + 1 + baseOffset,
523
+ startCol: pair.startPosition.column,
524
+ endCol: pair.endPosition.column,
525
+ };
526
+ symbols.push({
527
+ name: nameNode.text,
528
+ kind: 'method',
529
+ file: filePath,
530
+ location: loc,
531
+ range: formatRange(loc.startLine, loc.endLine),
532
+ signature: `${nameNode.text}()`,
533
+ language: 'vue',
534
+ });
535
+ }
536
+ }
537
+ }
538
+ }
539
+ }
540
+ function collectExports(node, exports, baseOffset) {
541
+ if (node.type !== 'export_statement')
542
+ return;
543
+ const location = {
544
+ startLine: node.startPosition.row + 1 + baseOffset,
545
+ endLine: node.endPosition.row + 1 + baseOffset,
546
+ startCol: node.startPosition.column,
547
+ endCol: node.endPosition.column,
548
+ };
549
+ const defaultKeyword = node.children.find(c => c.type === 'default');
550
+ if (defaultKeyword) {
551
+ exports.push({
552
+ kind: 'default',
553
+ exportedName: 'default',
554
+ location,
555
+ });
556
+ return;
557
+ }
558
+ const declaration = node.namedChildren.find(c => ['function_declaration', 'class_declaration', 'lexical_declaration'].includes(c.type));
559
+ if (declaration) {
560
+ let name;
561
+ if (declaration.type === 'lexical_declaration') {
562
+ const declarator = declaration.namedChildren.find(c => c.type === 'variable_declarator');
563
+ name = declarator?.childForFieldName('name')?.text;
564
+ }
565
+ else {
566
+ name = declaration.childForFieldName('name')?.text;
567
+ }
568
+ if (name) {
569
+ exports.push({
570
+ kind: 'named',
571
+ localName: name,
572
+ exportedName: name,
573
+ location,
574
+ });
575
+ }
576
+ }
577
+ }
578
+ function collectCssSymbols(node, filePath, baseOffset, symbols) {
579
+ if (node.type === 'rule_set') {
580
+ const selectors = node.childForFieldName('selectors');
581
+ if (selectors) {
582
+ const selectorText = selectors.text.split('\n')[0].trim();
583
+ const loc = {
584
+ startLine: node.startPosition.row + 1 + baseOffset,
585
+ endLine: node.endPosition.row + 1 + baseOffset,
586
+ startCol: node.startPosition.column,
587
+ endCol: node.endPosition.column,
588
+ };
589
+ symbols.push({
590
+ name: selectorText,
591
+ kind: 'selector',
592
+ file: filePath,
593
+ location: loc,
594
+ range: formatRange(loc.startLine, loc.endLine),
595
+ signature: selectorText,
596
+ language: 'vue',
597
+ });
598
+ }
599
+ }
600
+ for (const child of node.namedChildren) {
601
+ collectCssSymbols(child, filePath, baseOffset, symbols);
602
+ }
603
+ }
604
+ export function parseFile(filePath) {
605
+ const cached = getCachedResult(filePath);
606
+ if (cached)
607
+ return cached;
608
+ const sourceCode = readFileContent(filePath);
609
+ if (!sourceCode) {
610
+ return { symbols: [], exports: [], errors: [`Failed to read file: ${filePath}`] };
611
+ }
612
+ try {
613
+ const blocks = extractSfcBlocks(sourceCode);
614
+ const symbols = [];
615
+ const exports = [];
616
+ // 解析 script 块
617
+ if (blocks.script) {
618
+ const { content, startLine, lang } = blocks.script;
619
+ const parser = lang === 'tsx' ? tsxParser : tsParser;
620
+ const scriptTree = parser.parse(content);
621
+ collectScriptSymbols(scriptTree.rootNode, filePath, content, startLine, symbols, exports);
622
+ collectOptionsApiSymbols(scriptTree.rootNode, filePath, content, startLine, symbols);
623
+ }
624
+ // 解析 template 块中的组件引用
625
+ if (blocks.template) {
626
+ collectTemplateComponents(blocks.template.content, filePath, blocks.template.startLine, symbols);
627
+ }
628
+ // 解析 style 块
629
+ if (blocks.style) {
630
+ const { content, startLine } = blocks.style;
631
+ const styleTree = cssParser.parse(content);
632
+ collectCssSymbols(styleTree.rootNode, filePath, startLine, symbols);
633
+ }
634
+ const result = { symbols, exports, errors: [] };
635
+ setCachedResult(filePath, result);
636
+ return result;
637
+ }
638
+ catch (err) {
639
+ return {
640
+ symbols: [],
641
+ exports: [],
642
+ errors: [`Failed to parse file: ${filePath} - ${err}`],
643
+ };
644
+ }
645
+ }
646
+ export function parseFileForSymbol(filePath, query, type) {
647
+ const { symbols } = parseFile(filePath);
648
+ return symbols.filter(s => {
649
+ const nameMatch = s.name.toLowerCase().includes(query.toLowerCase());
650
+ const typeMatch = !type || s.kind === type;
651
+ return nameMatch && typeMatch;
652
+ });
653
+ }
654
+ export const vueParserInstance = {
655
+ language: 'vue',
656
+ extensions: ['.vue'],
657
+ parseFile,
658
+ parseFileForSymbol,
659
+ };
660
+ registerParser(vueParserInstance);
661
+ //# sourceMappingURL=vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.js","sourceRoot":"","sources":["../../src/parsers/vue.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { rgPath } from '@vscode/ripgrep';
4
4
  import { getWorkspaceRoot } from '../utils/pathResolver.js';
5
5
  import { getIgnorePatterns } from '../utils/ignore.js';
6
6
  export async function searchPattern(pattern, options = {}) {
7
- const { scope, extensions = ['ts', 'tsx', 'js', 'jsx', 'sol', 'html', 'htm', 'css', 'less', 'sass', 'scss'], ignorePatterns = getIgnorePatterns(), maxResults = 1000, } = options;
7
+ const { scope, extensions = ['ts', 'tsx', 'js', 'jsx', 'sol', 'html', 'htm', 'css', 'less', 'sass', 'scss', 'py', 'pyw', 'vue'], ignorePatterns = getIgnorePatterns(), maxResults = 1000, } = options;
8
8
  const searchPath = scope ? path.join(getWorkspaceRoot(), scope) : getWorkspaceRoot();
9
9
  const args = [
10
10
  '--json',
@@ -1 +1 @@
1
- {"version":3,"file":"ripgrep.js","sourceRoot":"","sources":["../../src/search/ripgrep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAgBvD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,UAA0B,EAAE;IAE5B,MAAM,EACJ,KAAK,EACL,UAAU,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC5F,cAAc,GAAG,iBAAiB,EAAE,EACpC,UAAU,GAAG,IAAI,GAClB,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAErF,MAAM,IAAI,GAAa;QACrB,QAAQ;QACR,eAAe;QACf,UAAU;QACV,cAAc;QACd,eAAe,UAAU,EAAE;KAC5B,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAErC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE/B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACpC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACpC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACvB,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;4BACvD,IAAI,EAAE,IAAI,CAAC,WAAW;4BACtB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;4BACtC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;yBAC7B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB;gBACxB,CAAC;YACH,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,UAA0B,EAAE;IAE5B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"ripgrep.js","sourceRoot":"","sources":["../../src/search/ripgrep.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  import type { SymbolInfo } from '../parsers/types.js';
3
3
  export declare const searchSymbolSchema: z.ZodObject<{
4
4
  query: z.ZodString;
5
- type: z.ZodOptional<z.ZodEnum<["function", "class", "interface", "type", "enum", "const", "let", "var", "function_component", "class_component", "hook", "method", "getter", "setter", "contract", "library", "sol_interface", "struct", "event", "modifier", "error", "mapping", "element", "component", "selector", "variable", "mixin", "keyframes"]>>;
5
+ type: z.ZodOptional<z.ZodEnum<["function", "class", "interface", "type", "enum", "const", "let", "var", "function_component", "class_component", "hook", "method", "getter", "setter", "contract", "library", "sol_interface", "struct", "event", "modifier", "error", "mapping", "element", "component", "selector", "variable", "mixin", "keyframes", "decorator", "computed", "watch", "props", "emits"]>>;
6
6
  scope: z.ZodOptional<z.ZodString>;
7
7
  limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
8
8
  followExports: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -11,11 +11,11 @@ export declare const searchSymbolSchema: z.ZodObject<{
11
11
  limit: number;
12
12
  followExports: boolean;
13
13
  scope?: string | undefined;
14
- type?: "function" | "error" | "class" | "interface" | "type" | "enum" | "const" | "let" | "var" | "function_component" | "class_component" | "hook" | "method" | "getter" | "setter" | "contract" | "library" | "sol_interface" | "struct" | "event" | "modifier" | "mapping" | "element" | "component" | "selector" | "variable" | "mixin" | "keyframes" | undefined;
14
+ type?: "function" | "error" | "class" | "interface" | "type" | "enum" | "const" | "let" | "var" | "function_component" | "class_component" | "hook" | "method" | "getter" | "setter" | "contract" | "library" | "sol_interface" | "struct" | "event" | "modifier" | "mapping" | "element" | "component" | "selector" | "variable" | "mixin" | "keyframes" | "decorator" | "computed" | "watch" | "props" | "emits" | undefined;
15
15
  }, {
16
16
  query: string;
17
17
  scope?: string | undefined;
18
- type?: "function" | "error" | "class" | "interface" | "type" | "enum" | "const" | "let" | "var" | "function_component" | "class_component" | "hook" | "method" | "getter" | "setter" | "contract" | "library" | "sol_interface" | "struct" | "event" | "modifier" | "mapping" | "element" | "component" | "selector" | "variable" | "mixin" | "keyframes" | undefined;
18
+ type?: "function" | "error" | "class" | "interface" | "type" | "enum" | "const" | "let" | "var" | "function_component" | "class_component" | "hook" | "method" | "getter" | "setter" | "contract" | "library" | "sol_interface" | "struct" | "event" | "modifier" | "mapping" | "element" | "component" | "selector" | "variable" | "mixin" | "keyframes" | "decorator" | "computed" | "watch" | "props" | "emits" | undefined;
19
19
  limit?: number | undefined;
20
20
  followExports?: boolean | undefined;
21
21
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"searchSymbol.d.ts","sourceRoot":"","sources":["../../src/tools/searchSymbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,qBAAqB,CAAC;AAElE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EA0C7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAwDlF"}
1
+ {"version":3,"file":"searchSymbol.d.ts","sourceRoot":"","sources":["../../src/tools/searchSymbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,qBAAqB,CAAC;AAElE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAiD7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAwDlF"}
@@ -38,6 +38,13 @@ export const searchSymbolSchema = z.object({
38
38
  'variable',
39
39
  'mixin',
40
40
  'keyframes',
41
+ // Python
42
+ 'decorator',
43
+ // Vue
44
+ 'computed',
45
+ 'watch',
46
+ 'props',
47
+ 'emits',
41
48
  ])
42
49
  .optional()
43
50
  .describe('Optional filter by symbol type'),
@@ -1 +1 @@
1
- {"version":3,"file":"searchSymbol.js","sourceRoot":"","sources":["../../src/tools/searchSymbol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"searchSymbol.js","sourceRoot":"","sources":["../../src/tools/searchSymbol.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genifyai",
3
- "version": "0.1.2",
3
+ "version": "0.1.5",
4
4
  "type": "module",
5
5
  "description": "Intelligent coding assistant MCP tool with AST-based code indexing",
6
6
  "main": "dist/index.js",
@@ -14,7 +14,7 @@
14
14
  "build": "tsc",
15
15
  "dev": "tsc --watch",
16
16
  "start": "node dist/index.js",
17
- "prepublishOnly": "pnpm build"
17
+ "prepublishOnly": "pnpm build && chmod +x dist/index.js"
18
18
  },
19
19
  "keywords": [
20
20
  "mcp",
@@ -27,7 +27,7 @@
27
27
  "license": "MIT",
28
28
  "repository": {
29
29
  "type": "git",
30
- "url": "https://github.com/xiaozuoyou/Genify"
30
+ "url": "https://github.com/xiaozuoyou/GenifyAI"
31
31
  },
32
32
  "packageManager": "pnpm@10.26.1",
33
33
  "engines": {
@@ -40,6 +40,7 @@
40
40
  "tree-sitter": "^0.21.1",
41
41
  "tree-sitter-css": "0.21.1",
42
42
  "tree-sitter-html": "0.23.2",
43
+ "tree-sitter-python": "^0.21.0",
43
44
  "tree-sitter-solidity": "1.2.7",
44
45
  "tree-sitter-typescript": "^0.23.2",
45
46
  "zod": "^3.24.0"
@@ -56,7 +57,8 @@
56
57
  "tree-sitter-typescript",
57
58
  "tree-sitter-solidity",
58
59
  "tree-sitter-html",
59
- "tree-sitter-css"
60
+ "tree-sitter-css",
61
+ "tree-sitter-python"
60
62
  ]
61
63
  }
62
64
  }