language: Remove embeds support (#46076)

Finn Evers created

Embeddings have neither been used nor maintained in over a year and
there are currently no plans to use these again any time soon. Hence,
remove support for these here to more clearly indicate that these are
actually not used.

Release Notes:

- N/A

Change summary

crates/language/src/language.rs               | 52 ------------
crates/language/src/language_registry.rs      |  2 
crates/languages/src/c/embedding.scm          | 43 ----------
crates/languages/src/cpp/embedding.scm        | 61 ---------------
crates/languages/src/go/embedding.scm         | 24 -----
crates/languages/src/javascript/embedding.scm | 71 -----------------
crates/languages/src/json/embedding.scm       | 14 ---
crates/languages/src/jsonc/embedding.scm      | 14 ---
crates/languages/src/python/embedding.scm     |  9 --
crates/languages/src/rust/embedding.scm       | 32 -------
crates/languages/src/tsx/embedding.scm        | 85 ---------------------
crates/languages/src/typescript/embedding.scm | 85 ---------------------
12 files changed, 492 deletions(-)

Detailed changes

crates/language/src/language.rs 🔗

@@ -1326,7 +1326,6 @@ pub struct Grammar {
     pub(crate) indents_config: Option<IndentConfig>,
     pub outline_config: Option<OutlineConfig>,
     pub text_object_config: Option<TextObjectConfig>,
-    pub embedding_config: Option<EmbeddingConfig>,
     pub(crate) injection_config: Option<InjectionConfig>,
     pub(crate) override_config: Option<OverrideConfig>,
     pub(crate) debug_variables_config: Option<DebugVariablesConfig>,
@@ -1413,16 +1412,6 @@ pub struct TextObjectConfig {
     pub text_objects_by_capture_ix: Vec<(u32, TextObject)>,
 }
 
-#[derive(Debug)]
-pub struct EmbeddingConfig {
-    pub query: Query,
-    pub item_capture_ix: u32,
-    pub name_capture_ix: Option<u32>,
-    pub context_capture_ix: Option<u32>,
-    pub collapse_capture_ix: Option<u32>,
-    pub keep_capture_ix: Option<u32>,
-}
-
 struct InjectionConfig {
     query: Query,
     content_capture_ix: u32,
@@ -1519,7 +1508,6 @@ impl Language {
                     brackets_config: None,
                     outline_config: None,
                     text_object_config: None,
-                    embedding_config: None,
                     indents_config: None,
                     injection_config: None,
                     override_config: None,
@@ -1574,11 +1562,6 @@ impl Language {
                 .with_outline_query(query.as_ref())
                 .context("Error loading outline query")?;
         }
-        if let Some(query) = queries.embedding {
-            self = self
-                .with_embedding_query(query.as_ref())
-                .context("Error loading embedding query")?;
-        }
         if let Some(query) = queries.injections {
             self = self
                 .with_injection_query(query.as_ref())
@@ -1727,38 +1710,6 @@ impl Language {
         Ok(self)
     }
 
-    pub fn with_embedding_query(mut self, source: &str) -> Result<Self> {
-        let query = Query::new(&self.expect_grammar()?.ts_language, source)?;
-        let mut item_capture_ix = 0;
-        let mut name_capture_ix = None;
-        let mut context_capture_ix = None;
-        let mut collapse_capture_ix = None;
-        let mut keep_capture_ix = None;
-        if populate_capture_indices(
-            &query,
-            &self.config.name,
-            "embedding",
-            &[],
-            &mut [
-                Capture::Required("item", &mut item_capture_ix),
-                Capture::Optional("name", &mut name_capture_ix),
-                Capture::Optional("context", &mut context_capture_ix),
-                Capture::Optional("keep", &mut keep_capture_ix),
-                Capture::Optional("collapse", &mut collapse_capture_ix),
-            ],
-        ) {
-            self.grammar_mut()?.embedding_config = Some(EmbeddingConfig {
-                query,
-                item_capture_ix,
-                name_capture_ix,
-                context_capture_ix,
-                collapse_capture_ix,
-                keep_capture_ix,
-            });
-        }
-        Ok(self)
-    }
-
     pub fn with_debug_variables_query(mut self, source: &str) -> Result<Self> {
         let query = Query::new(&self.expect_grammar()?.ts_language, source)?;
 
@@ -2805,9 +2756,6 @@ pub fn rust_lang() -> Arc<Language> {
         highlights: Some(Cow::from(include_str!(
             "../../languages/src/rust/highlights.scm"
         ))),
-        embedding: Some(Cow::from(include_str!(
-            "../../languages/src/rust/embedding.scm"
-        ))),
         injections: Some(Cow::from(include_str!(
             "../../languages/src/rust/injections.scm"
         ))),

crates/language/src/language_registry.rs 🔗

@@ -228,7 +228,6 @@ pub const QUERY_FILENAME_PREFIXES: &[(
     ("brackets", |q| &mut q.brackets),
     ("outline", |q| &mut q.outline),
     ("indents", |q| &mut q.indents),
-    ("embedding", |q| &mut q.embedding),
     ("injections", |q| &mut q.injections),
     ("overrides", |q| &mut q.overrides),
     ("redactions", |q| &mut q.redactions),
@@ -245,7 +244,6 @@ pub struct LanguageQueries {
     pub brackets: Option<Cow<'static, str>>,
     pub indents: Option<Cow<'static, str>>,
     pub outline: Option<Cow<'static, str>>,
-    pub embedding: Option<Cow<'static, str>>,
     pub injections: Option<Cow<'static, str>>,
     pub overrides: Option<Cow<'static, str>>,
     pub redactions: Option<Cow<'static, str>>,

crates/languages/src/c/embedding.scm 🔗

@@ -1,43 +0,0 @@
-(
-    (comment)* @context
-    .
-    (declaration
-        declarator: [
-            (function_declarator
-                declarator: (_) @name)
-            (pointer_declarator
-                "*" @name
-                declarator: (function_declarator
-                    declarator: (_) @name))
-            (pointer_declarator
-                "*" @name
-                declarator: (pointer_declarator
-                    "*" @name
-                    declarator: (function_declarator
-                        declarator: (_) @name)))
-            ]
-        ) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (function_definition
-        declarator: [
-            (function_declarator
-                declarator: (_) @name
-                )
-            (pointer_declarator
-                "*" @name
-                declarator: (function_declarator
-                    declarator: (_) @name
-                    ))
-            (pointer_declarator
-                "*" @name
-                declarator: (pointer_declarator
-                    "*" @name
-                    declarator: (function_declarator
-                        declarator: (_) @name)))
-            ]
-        ) @item
-    )

crates/languages/src/cpp/embedding.scm 🔗

@@ -1,61 +0,0 @@
-(
-    (comment)* @context
-    .
-    (function_definition
-        (type_qualifier)? @name
-        type: (_)? @name
-        declarator: [
-            (function_declarator
-                declarator: (_) @name)
-            (pointer_declarator
-                "*" @name
-                declarator: (function_declarator
-                declarator: (_) @name))
-            (pointer_declarator
-                "*" @name
-                declarator: (pointer_declarator
-                    "*" @name
-                declarator: (function_declarator
-                    declarator: (_) @name)))
-            (reference_declarator
-                ["&" "&&"] @name
-                (function_declarator
-                declarator: (_) @name))
-        ]
-        (type_qualifier)? @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (template_declaration
-        (class_specifier
-            "class" @name
-            name: (_) @name)
-            ) @item
-)
-
-(
-    (comment)* @context
-    .
-    (class_specifier
-        "class" @name
-        name: (_) @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (enum_specifier
-        "enum" @name
-        name: (_) @name) @item
-    )
-
-(
-    (comment)* @context
-    .
-    (declaration
-        type: (struct_specifier
-        "struct" @name)
-        declarator: (_) @name) @item
-)

crates/languages/src/go/embedding.scm 🔗

@@ -1,24 +0,0 @@
-(
-    (comment)* @context
-    .
-    (type_declaration
-        (type_spec
-            name: (_) @name)
-    ) @item
-)
-
-(
-    (comment)* @context
-    .
-    (function_declaration
-        name: (_) @name
-    ) @item
-)
-
-(
-    (comment)* @context
-    .
-    (method_declaration
-        name: (_) @name
-    ) @item
-)

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

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

crates/languages/src/json/embedding.scm 🔗

@@ -1,14 +0,0 @@
-; Only produce one embedding for the entire file.
-(document) @item
-
-; Collapse arrays, except for the first object.
-(array
-  "[" @keep
-  .
-  (object)? @keep
-  "]" @keep) @collapse
-
-; Collapse string values (but not keys).
-(pair value: (string
-  "\"" @keep
-  "\"" @keep) @collapse)

crates/languages/src/jsonc/embedding.scm 🔗

@@ -1,14 +0,0 @@
-; Only produce one embedding for the entire file.
-(document) @item
-
-; Collapse arrays, except for the first object.
-(array
-  "[" @keep
-  .
-  (object)? @keep
-  "]" @keep) @collapse
-
-; Collapse string values (but not keys).
-(pair value: (string
-  "\"" @keep
-  "\"" @keep) @collapse)

crates/languages/src/python/embedding.scm 🔗

@@ -1,9 +0,0 @@
-(class_definition
-    "class" @context
-    name: (identifier) @name
-    ) @item
-
-(function_definition
-    "async"? @context
-    "def" @context
-    name: (_) @name) @item

crates/languages/src/rust/embedding.scm 🔗

@@ -1,32 +0,0 @@
-(
-    [(line_comment) (attribute_item)]* @context
-    .
-    [
-
-        (struct_item
-            name: (_) @name)
-
-        (enum_item
-            name: (_) @name)
-
-        (impl_item
-            trait: (_)? @name
-            "for"? @name
-            type: (_) @name)
-
-        (trait_item
-            name: (_) @name)
-
-        (function_item
-            name: (_) @name
-            body: (block
-                "{" @keep
-                "}" @keep) @collapse)
-
-        (macro_definition
-            name: (_) @name)
-        ] @item
-    )
-
-(attribute_item) @collapse
-(use_declaration) @collapse

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

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

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

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