diff --git a/crates/vector_store/src/parsing.rs b/crates/vector_store/src/parsing.rs index 8d6e03d6eb..4ce8b6763a 100644 --- a/crates/vector_store/src/parsing.rs +++ b/crates/vector_store/src/parsing.rs @@ -51,6 +51,7 @@ impl CodeContextRetriever { let mut documents = Vec::new(); // Iterate through query matches + let mut name_ranges: Vec> = 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); } } diff --git a/crates/zed/src/languages/typescript/embedding.scm b/crates/zed/src/languages/typescript/embedding.scm index f261a0a565..d850f9b823 100644 --- a/crates/zed/src/languages/typescript/embedding.scm +++ b/crates/zed/src/languages/typescript/embedding.scm @@ -1,59 +1,56 @@ -; (internal_module -; "namespace" @context -; name: (_) @name) @item +( + (comment)* @context + . + (enum_declaration + "enum" @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 + . [ - "get" - "set" - "async" - "*" - "readonly" - "static" - (override_modifier) - (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 + ]) -; (public_field_definition -; [ -; "declare" -; "readonly" -; "abstract" -; "static" -; (accessibility_modifier) -; ]* @context -; 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 + )