From 928f1c527c612ae00884a04f2ab9a61a3e60d0b6 Mon Sep 17 00:00:00 2001 From: Meng Zhang Date: Fri, 8 Dec 2023 11:04:09 +0800 Subject: [PATCH] fix: normalize javascript / typescript / jsx /tsx in query side (#980) --- crates/tabby-common/src/index.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) 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()); + } +}