update typescript parsing to manage for leading tsdoc comments

This commit is contained in:
KCaverly 2023-07-14 13:47:10 -04:00
parent 3a625d15d3
commit d4971e9ead
2 changed files with 60 additions and 57 deletions

View file

@ -51,6 +51,7 @@ impl CodeContextRetriever {
let mut documents = Vec::new(); let mut documents = Vec::new();
// Iterate through query matches // Iterate through query matches
let mut name_ranges: Vec<Range<usize>> = vec![];
for mat in self.cursor.matches( for mat in self.cursor.matches(
&embedding_config.query, &embedding_config.query,
tree.root_node(), tree.root_node(),
@ -65,7 +66,12 @@ impl CodeContextRetriever {
byte_range = Some(capture.node.byte_range()); byte_range = Some(capture.node.byte_range());
item = content.get(capture.node.byte_range()); item = content.get(capture.node.byte_range());
} else if capture.index == embedding_config.name_capture_ix { } 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); name.push(name_content);
} }
} }

View file

@ -1,59 +1,56 @@
; (internal_module (
; "namespace" @context (comment)* @context
; name: (_) @name) @item .
(enum_declaration
"enum" @context
name: (_) @name) @item
)
(enum_declaration (
"enum" @context (comment)* @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
[ [
"get" (export_statement
"set" (function_declaration
"async" "async"? @name
"*" "function" @name
"readonly" name: (_) @name)
"static" ) @item
(override_modifier) (function_declaration
(accessibility_modifier) "async"? @name
]* @context "function" @name
name: (_) @name) @item name: (_) @name) @item
])
; (public_field_definition (
; [ (comment)* @context
; "declare" .
; "readonly" (interface_declaration
; "abstract" "interface" @name
; "static" name: (_) @name) @item
; (accessibility_modifier) )
; ]* @context
; 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
)