update semantic index tests for javascript

KCaverly created

Change summary

crates/semantic_index/src/semantic_index_tests.rs | 196 ++++++++++------
crates/zed/src/languages/javascript/embedding.scm |  92 +++----
crates/zed/src/languages/tsx/embedding.scm        | 106 +++-----
crates/zed/src/languages/typescript/embedding.scm | 116 ++++-----
4 files changed, 259 insertions(+), 251 deletions(-)

Detailed changes

crates/semantic_index/src/semantic_index_tests.rs 🔗

@@ -388,43 +388,103 @@ fn assert_documents_eq(
     );
 }
 
-// #[gpui::test]
-// async fn test_code_context_retrieval_javascript() {
-//     let language = js_lang();
-//     let mut retriever = CodeContextRetriever::new();
+#[gpui::test]
+async fn test_code_context_retrieval_javascript() {
+    let language = js_lang();
+    let mut retriever = CodeContextRetriever::new();
 
-//     let text = "
-//         /* globals importScripts, backend */
-//         function _authorize() {}
+    let text = "
+        /* globals importScripts, backend */
+        function _authorize() {}
+
+        /**
+         * Sometimes the frontend build is way faster than backend.
+         */
+        export async function authorizeBank() {
+            _authorize(pushModal, upgradingAccountId, {});
+        }
 
-//         /**
-//          * Sometimes the frontend build is way faster than backend.
-//          */
-//         export async function authorizeBank() {
-//             _authorize(pushModal, upgradingAccountId, {});
-//         }
+        export class SettingsPage {
+            /* This is a test setting */
+            constructor(page) {
+                this.page = page;
+            }
+        }
 
-//         export class SettingsPage {
-//             /* This is a test setting */
-//             constructor(page) {
-//                 this.page = page;
-//             }
-//         }
+        /* This is a test comment */
+        class TestClass {}
 
-//         /* This is a test comment */
-//         class TestClass {}
+        /* Schema for editor_events in Clickhouse. */
+        export interface ClickhouseEditorEvent {
+            installation_id: string
+            operation: string
+        }
+        "
+    .unindent();
 
-//         /* Schema for editor_events in Clickhouse. */
-//         export interface ClickhouseEditorEvent {
-//             installation_id: string
-//             operation: string
-//         }
-//         "
-//     .unindent();
+    let documents = retriever.parse_file(&text, language.clone()).unwrap();
 
-//     let parsed_files = retriever
-//         .parse_file(Path::new("foo.js"), &text, language)
-//         .unwrap();
+    assert_documents_eq(
+        &documents,
+        &[
+            (
+                "
+            /* globals importScripts, backend */
+            function _authorize() {}"
+                    .unindent(),
+                37,
+            ),
+            (
+                "
+            /**
+             * Sometimes the frontend build is way faster than backend.
+             */
+            export async function authorizeBank() {
+                _authorize(pushModal, upgradingAccountId, {});
+            }"
+                .unindent(),
+                131,
+            ),
+            (
+                "
+                export class SettingsPage {
+                    /* This is a test setting */
+                    constructor(page) {
+                        this.page = page;
+                    }
+                }"
+                .unindent(),
+                225,
+            ),
+            (
+                "
+                /* This is a test setting */
+                constructor(page) {
+                    this.page = page;
+                }"
+                .unindent(),
+                290,
+            ),
+            (
+                "
+                /* This is a test comment */
+                class TestClass {}"
+                    .unindent(),
+                374,
+            ),
+            (
+                "
+                /* Schema for editor_events in Clickhouse. */
+                export interface ClickhouseEditorEvent {
+                    installation_id: string
+                    operation: string
+                }"
+                .unindent(),
+                440,
+            ),
+        ],
+    )
+}
 
 //     let test_documents = &[
 //         Document {
@@ -924,86 +984,74 @@ fn js_lang() -> Arc<Language> {
             (
                 (comment)* @context
                 .
+                [
                 (export_statement
                     (function_declaration
                         "async"? @name
                         "function" @name
-                        name: (_) @name)) @item
-                    )
-
-            (
-                (comment)* @context
-                .
+                        name: (_) @name))
                 (function_declaration
                     "async"? @name
                     "function" @name
-                    name: (_) @name) @item
-                    )
+                    name: (_) @name)
+                ] @item
+            )
 
             (
                 (comment)* @context
                 .
+                [
                 (export_statement
                     (class_declaration
                         "class" @name
-                        name: (_) @name)) @item
-                    )
-
-            (
-                (comment)* @context
-                .
+                        name: (_) @name))
                 (class_declaration
                     "class" @name
-                    name: (_) @name) @item
-                    )
-
-            (
-                (comment)* @context
-                .
-                (method_definition
-                    [
-                        "get"
-                        "set"
-                        "async"
-                        "*"
-                        "static"
-                    ]* @name
-                    name: (_) @name) @item
-                )
+                    name: (_) @name)
+                ] @item
+            )
 
             (
                 (comment)* @context
                 .
+                [
                 (export_statement
                     (interface_declaration
                         "interface" @name
-                        name: (_) @name)) @item
-                )
-
-            (
-                (comment)* @context
-                .
+                        name: (_) @name))
                 (interface_declaration
                     "interface" @name
-                    name: (_) @name) @item
-                )
+                    name: (_) @name)
+                ] @item
+            )
 
             (
                 (comment)* @context
                 .
+                [
                 (export_statement
                     (enum_declaration
                         "enum" @name
-                        name: (_) @name)) @item
-                )
+                        name: (_) @name))
+                (enum_declaration
+                    "enum" @name
+                    name: (_) @name)
+                ] @item
+            )
 
             (
                 (comment)* @context
                 .
-                (enum_declaration
-                    "enum" @name
+                (method_definition
+                    [
+                        "get"
+                        "set"
+                        "async"
+                        "*"
+                        "static"
+                    ]* @name
                     name: (_) @name) @item
-                )
+            )
 
                     "#
             .unindent(),

crates/zed/src/languages/javascript/embedding.scm 🔗

@@ -1,38 +1,60 @@
 (
     (comment)* @context
     .
-    (export_statement
+    [
+        (export_statement
+            (function_declaration
+                "async"? @name
+                "function" @name
+                name: (_) @name))
         (function_declaration
             "async"? @name
             "function" @name
-            name: (_) @name)) @item
-    )
+            name: (_) @name)
+    ] @item
+)
 
 (
     (comment)* @context
     .
-    (function_declaration
-        "async"? @name
-        "function" @name
-        name: (_) @name) @item
-    )
+    [
+        (export_statement
+            (class_declaration
+                "class" @name
+                name: (_) @name))
+        (class_declaration
+            "class" @name
+            name: (_) @name)
+    ] @item
+)
 
 (
     (comment)* @context
     .
-    (export_statement
-        (class_declaration
-            "class" @name
-            name: (_) @name)) @item
-    )
+    [
+        (export_statement
+            (interface_declaration
+                "interface" @name
+                name: (_) @name))
+        (interface_declaration
+            "interface" @name
+            name: (_) @name)
+    ] @item
+)
 
 (
     (comment)* @context
     .
-    (class_declaration
-        "class" @name
-        name: (_) @name) @item
-    )
+    [
+        (export_statement
+            (enum_declaration
+                "enum" @name
+                name: (_) @name))
+        (enum_declaration
+            "enum" @name
+            name: (_) @name)
+    ] @item
+)
 
 (
     (comment)* @context
@@ -46,38 +68,4 @@
             "static"
             ]* @name
         name: (_) @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (export_statement
-        (interface_declaration
-            "interface" @name
-            name: (_) @name)) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (interface_declaration
-        "interface" @name
-        name: (_) @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (export_statement
-        (enum_declaration
-            "enum" @name
-            name: (_) @name)) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (enum_declaration
-        "enum" @name
-        name: (_) @name) @item
-    )
+)

crates/zed/src/languages/tsx/embedding.scm 🔗

@@ -1,99 +1,85 @@
 (
     (comment)* @context
     .
-    (export_statement
+    [
+        (export_statement
+            (function_declaration
+                "async"? @name
+                "function" @name
+                name: (_) @name))
         (function_declaration
             "async"? @name
             "function" @name
-            name: (_) @name)) @item
+            name: (_) @name)
+        ] @item
     )
 
 (
     (comment)* @context
     .
-    (function_declaration
-        "async"? @name
-        "function" @name
-        name: (_) @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (export_statement
+    [
+        (export_statement
+            (class_declaration
+                "class" @name
+                name: (_) @name))
         (class_declaration
             "class" @name
-            name: (_) @name)) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (class_declaration
-        "class" @name
-        name: (_) @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (method_definition
-        [
-            "get"
-            "set"
-            "async"
-            "*"
-            "static"
-            ]* @name
-        name: (_) @name) @item
+            name: (_) @name)
+        ] @item
     )
 
 (
     (comment)* @context
     .
-    (export_statement
+    [
+        (export_statement
+            (interface_declaration
+                "interface" @name
+                name: (_) @name))
         (interface_declaration
             "interface" @name
-            name: (_) @name)) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (interface_declaration
-        "interface" @name
-        name: (_) @name) @item
+            name: (_) @name)
+        ] @item
     )
 
 (
     (comment)* @context
     .
-    (export_statement
+    [
+        (export_statement
+            (enum_declaration
+                "enum" @name
+                name: (_) @name))
         (enum_declaration
             "enum" @name
-            name: (_) @name)) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (enum_declaration
-        "enum" @name
-        name: (_) @name) @item
+            name: (_) @name)
+        ] @item
     )
 
 (
     (comment)* @context
     .
-    (export_statement
+    [
+        (export_statement
+            (type_alias_declaration
+                "type" @name
+                name: (_) @name))
         (type_alias_declaration
             "type" @name
-            name: (_) @name)) @item
+            name: (_) @name)
+        ] @item
     )
 
 (
     (comment)* @context
     .
-    (type_alias_declaration
-        "type" @name
-        name: (_) @name) @item)
+    (method_definition
+        [
+            "get"
+            "set"
+            "async"
+            "*"
+            "static"
+            ]* @name
+        name: (_) @name) @item
+    )

crates/zed/src/languages/typescript/embedding.scm 🔗

@@ -1,99 +1,85 @@
 (
     (comment)* @context
     .
-    (export_statement
+    [
+        (export_statement
+            (function_declaration
+                "async"? @name
+                "function" @name
+                name: (_) @name))
         (function_declaration
             "async"? @name
             "function" @name
-            name: (_) @name)) @item
-    )
+            name: (_) @name)
+    ] @item
+)
 
 (
     (comment)* @context
     .
-    (function_declaration
-        "async"? @name
-        "function" @name
-        name: (_) @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (export_statement
+    [
+        (export_statement
+            (class_declaration
+                "class" @name
+                name: (_) @name))
         (class_declaration
             "class" @name
-            name: (_) @name)) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (class_declaration
-        "class" @name
-        name: (_) @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (method_definition
-        [
-            "get"
-            "set"
-            "async"
-            "*"
-            "static"
-            ]* @name
-        name: (_) @name) @item
-    )
+            name: (_) @name)
+    ] @item
+)
 
 (
     (comment)* @context
     .
-    (export_statement
+    [
+        (export_statement
+            (interface_declaration
+                "interface" @name
+                name: (_) @name))
         (interface_declaration
             "interface" @name
-            name: (_) @name)) @item
-    )
+            name: (_) @name)
+    ] @item
+)
 
 (
     (comment)* @context
     .
-    (interface_declaration
-        "interface" @name
-        name: (_) @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (export_statement
+    [
+        (export_statement
+            (enum_declaration
+                "enum" @name
+                name: (_) @name))
         (enum_declaration
             "enum" @name
-            name: (_) @name)) @item
-    )
+            name: (_) @name)
+    ] @item
+)
 
 (
     (comment)* @context
     .
-    (enum_declaration
-        "enum" @name
-        name: (_) @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (export_statement
+    [
+        (export_statement
+            (type_alias_declaration
+                "type" @name
+                name: (_) @name))
         (type_alias_declaration
             "type" @name
-            name: (_) @name)) @item
-    )
+            name: (_) @name)
+    ] @item
+)
 
 (
     (comment)* @context
     .
-    (type_alias_declaration
-        "type" @name
-        name: (_) @name) @item)
+    (method_definition
+        [
+            "get"
+            "set"
+            "async"
+            "*"
+            "static"
+            ]* @name
+        name: (_) @name) @item
+)