@@ -34,9 +34,12 @@ pub fn find_queries_in_code(
3434 match file_extension. as_ref ( ) {
3535 "py" => (
3636 tree_sitter_python:: language ( ) ,
37- python:: extract_query_from_node,
37+ python:: extract_query_string_from_node,
38+ ) ,
39+ "rs" => (
40+ tree_sitter_rust:: language ( ) ,
41+ rust:: extract_query_string_from_node,
3842 ) ,
39- "rs" => ( tree_sitter_rust:: language ( ) , rust:: extract_query_from_node) ,
4043 _ => panic ! ( "{}" , format!( "File not supported {file_extension}" ) ) ,
4144 } ;
4245
@@ -78,39 +81,33 @@ fn find_queries_in_ast(
7881 let mut cursor = node. walk ( ) ;
7982
8083 for child in node. children ( & mut cursor) {
81- let mut child_cursor = child. walk ( ) ;
82-
83- for component in child. children ( & mut child_cursor) {
84- match query_extractor ( & component, code) {
85- Some ( string_content) => {
86- // ! Duct tape
87- if string_content. find ( "REPLACE" ) . is_some ( ) {
88- continue ;
89- }
90- // !
84+ match query_extractor ( & child, code) {
85+ Some ( string_content) => {
86+ // ! Duct tape
87+ if string_content. find ( "REPLACE" ) . is_some ( ) {
88+ find_queries_in_ast ( & child, code, query_extractor, dialect, queries, None )
89+ }
90+ // !
9191
92- let query_at = component . start_position ( ) ;
92+ let query_at = child . start_position ( ) ;
9393
94- let statements = sqlparser:: parser:: Parser :: parse_sql ( dialect, & string_content) ;
94+ let statements = sqlparser:: parser:: Parser :: parse_sql ( dialect, & string_content) ;
9595
96- match statements {
97- Ok ( statements) => {
98- queries. push ( super :: QueryInCode {
99- line : query_at. row + 1 ,
100- statements,
101- } ) ;
102- }
103- Err ( err) => {
104- if verbose. unwrap_or ( 0 ) > 0 {
105- eprintln ! ( "{err} {string_content}" ) ;
106- }
96+ match statements {
97+ Ok ( statements) => {
98+ queries. push ( super :: QueryInCode {
99+ line : query_at. row + 1 ,
100+ statements,
101+ } ) ;
102+ }
103+ Err ( err) => {
104+ if verbose. unwrap_or ( 0 ) > 0 {
105+ eprintln ! ( "{err} {string_content}" ) ;
107106 }
108107 }
109108 }
110- None => continue ,
111109 }
110+ None => find_queries_in_ast ( & child, code, query_extractor, dialect, queries, None ) ,
112111 }
113-
114- find_queries_in_ast ( & child, code, query_extractor, dialect, queries, None ) ;
115112 }
116113}
0 commit comments