diff --git a/crates/tabby-common/src/index.rs b/crates/tabby-common/src/index.rs index 14926f8..a0fc9e3 100644 --- a/crates/tabby-common/src/index.rs +++ b/crates/tabby-common/src/index.rs @@ -79,6 +79,15 @@ impl Default for CodeSearchSchema { impl CodeSearchSchema { pub fn language_query(&self, language: &str) -> Box { + let language = if language == "javascript" + || language == "typescript" + || language == "javascriptreact" + || language == "typescriptreact" + { + "javascript-typescript" + } else { + language + }; Box::new(TermQuery::new( Term::from_field_text(self.field_language, language), IndexRecordOption::WithFreqsAndPositions, @@ -93,3 +102,18 @@ impl CodeSearchSchema { )) } } + +#[cfg(test)] +mod tests { + use super::CodeSearchSchema; + + #[test] + fn test_language_query() { + let schema = CodeSearchSchema::new(); + let lhs = schema.language_query("javascript-typescript"); + assert_eq!(lhs.term(), schema.language_query("javascript").term()); + assert_eq!(lhs.term(), schema.language_query("typescript").term()); + assert_eq!(lhs.term(), schema.language_query("typescriptreact").term()); + assert_eq!(lhs.term(), schema.language_query("javascriptreact").term()); + } +}