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();
// 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);
}
}

View file

@ -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
)