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,40 +1,46 @@
; (internal_module (
; "namespace" @context (comment)* @context
; name: (_) @name) @item .
(enum_declaration (enum_declaration
"enum" @context "enum" @context
name: (_) @name) @item name: (_) @name) @item
)
; (type_alias_declaration (
; "type" @context (comment)* @context
; name: (_) @name) @item .
[
(export_statement
(function_declaration (function_declaration
"async"? @context "async"? @name
"function" @context "function" @name
name: (_) @name)
) @item
(function_declaration
"async"? @name
"function" @name
name: (_) @name) @item name: (_) @name) @item
])
(
(comment)* @context
.
(interface_declaration (interface_declaration
"interface" @context "interface" @name
name: (_) @name) @item name: (_) @name) @item
)
; (export_statement (
; (lexical_declaration (comment)* @context
; ["let" "const"] @context .
; (variable_declarator
; name: (_) @name) @item))
(program
(lexical_declaration
["let" "const"] @context
(variable_declarator
name: (_) @name) @item))
(class_declaration (class_declaration
"class" @context "class" @name
name: (_) @name) @item name: (_) @name) @item
)
(
(comment)* @context
.
(method_definition (method_definition
[ [
"get" "get"
@ -45,15 +51,6 @@
"static" "static"
(override_modifier) (override_modifier)
(accessibility_modifier) (accessibility_modifier)
]* @context ]* @name
name: (_) @name) @item name: (_) @name) @item
)
; (public_field_definition
; [
; "declare"
; "readonly"
; "abstract"
; "static"
; (accessibility_modifier)
; ]* @context
; name: (_) @name) @item