Change summary
crates/vector_store/src/parsing.rs | 8 +
crates/zed/src/languages/typescript/embedding.scm | 113 ++++++++--------
2 files changed, 62 insertions(+), 59 deletions(-)
Detailed changes
@@ -51,6 +51,7 @@ impl CodeContextRetriever {
let mut documents = Vec::new();
// Iterate through query matches
+ let mut name_ranges: Vec<Range<usize>> = vec![];
for mat in self.cursor.matches(
&embedding_config.query,
tree.root_node(),
@@ -65,7 +66,12 @@ impl CodeContextRetriever {
byte_range = Some(capture.node.byte_range());
item = content.get(capture.node.byte_range());
} else if capture.index == embedding_config.name_capture_ix {
- if let Some(name_content) = content.get(capture.node.byte_range()) {
+ let name_range = capture.node.byte_range();
+ if name_ranges.contains(&name_range) {
+ continue;
+ }
+ name_ranges.push(name_range.clone());
+ if let Some(name_content) = content.get(name_range.clone()) {
name.push(name_content);
}
}
@@ -1,59 +1,56 @@
-; (internal_module
-; "namespace" @context
-; name: (_) @name) @item
-
-(enum_declaration
- "enum" @context
- name: (_) @name) @item
-
-; (type_alias_declaration
-; "type" @context
-; name: (_) @name) @item
-
-(function_declaration
- "async"? @context
- "function" @context
- name: (_) @name) @item
-
-(interface_declaration
- "interface" @context
- name: (_) @name) @item
-
-; (export_statement
-; (lexical_declaration
-; ["let" "const"] @context
-; (variable_declarator
-; name: (_) @name) @item))
-
-(program
- (lexical_declaration
- ["let" "const"] @context
- (variable_declarator
- name: (_) @name) @item))
-
-(class_declaration
- "class" @context
- name: (_) @name) @item
-
-(method_definition
+(
+ (comment)* @context
+ .
+ (enum_declaration
+ "enum" @context
+ name: (_) @name) @item
+ )
+
+(
+ (comment)* @context
+ .
[
- "get"
- "set"
- "async"
- "*"
- "readonly"
- "static"
- (override_modifier)
- (accessibility_modifier)
- ]* @context
- name: (_) @name) @item
-
-; (public_field_definition
-; [
-; "declare"
-; "readonly"
-; "abstract"
-; "static"
-; (accessibility_modifier)
-; ]* @context
-; name: (_) @name) @item
+ (export_statement
+ (function_declaration
+ "async"? @name
+ "function" @name
+ name: (_) @name)
+ ) @item
+ (function_declaration
+ "async"? @name
+ "function" @name
+ name: (_) @name) @item
+ ])
+
+(
+ (comment)* @context
+ .
+ (interface_declaration
+ "interface" @name
+ name: (_) @name) @item
+ )
+
+(
+ (comment)* @context
+ .
+ (class_declaration
+ "class" @name
+ name: (_) @name) @item
+ )
+
+(
+ (comment)* @context
+ .
+ (method_definition
+ [
+ "get"
+ "set"
+ "async"
+ "*"
+ "readonly"
+ "static"
+ (override_modifier)
+ (accessibility_modifier)
+ ]* @name
+ name: (_) @name) @item
+ )