From 5d7925d42bc236d9ba87325c18c1eee8de5688d7 Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Sat, 28 Dec 2024 16:29:10 -0700 Subject: [PATCH 1/3] Freshen Cargo.lock --- bindings/rust/Cargo.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bindings/rust/Cargo.lock b/bindings/rust/Cargo.lock index afe072d6..6882fc94 100644 --- a/bindings/rust/Cargo.lock +++ b/bindings/rust/Cargo.lock @@ -65,9 +65,9 @@ dependencies = [ [[package]] name = "protobuf" -version = "3.2.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55bad9126f378a853655831eb7363b7b01b81d19f8cb1218861086ca4a1a61e" +checksum = "a3a7c64d9bf75b1b8d981124c14c179074e8caa7dfe7b6a12e6222ddcd0c8f72" dependencies = [ "once_cell", "protobuf-support", @@ -76,9 +76,9 @@ dependencies = [ [[package]] name = "protobuf-support" -version = "3.2.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d4d7b8601c814cfb36bcebb79f0e61e45e1e93640cf778837833bbed05c372" +checksum = "b088fd20b938a875ea00843b6faf48579462630015c3788d397ad6a786663252" dependencies = [ "thiserror", ] @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "scip" -version = "0.3.1" +version = "0.5.1" dependencies = [ "pretty_assertions", "protobuf", From 1e23f7967de99908279a70c6159febbf6f5ab1fe Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Sat, 28 Dec 2024 16:29:23 -0700 Subject: [PATCH 2/3] cargo fmt --- bindings/rust/src/symbol.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bindings/rust/src/symbol.rs b/bindings/rust/src/symbol.rs index 1174816d..d1c15364 100644 --- a/bindings/rust/src/symbol.rs +++ b/bindings/rust/src/symbol.rs @@ -30,7 +30,8 @@ pub fn is_local_symbol(sym: &str) -> bool { } pub fn is_simple_identifier(sym: &str) -> bool { - sym.chars().all(|c| c.is_alphanumeric() || c == '$' || c == '+' || c == '-' || c == '_') + sym.chars() + .all(|c| c.is_alphanumeric() || c == '$' || c == '+' || c == '-' || c == '_') } pub fn try_parse_local_symbol(sym: &str) -> Result, SymbolError> { @@ -180,7 +181,7 @@ pub fn parse_symbol(symbol: &str) -> Result { match try_parse_local_symbol(symbol) { Ok(Some(s)) => return Ok(internal_local_symbol(s)), Err(err) => return Err(err), - Ok(None) => {}, + Ok(None) => {} } let mut parser = SymbolParser::new(symbol); @@ -615,7 +616,10 @@ mod test { let symbol_struct = Symbol { scheme: "scip-ctags".to_string(), package: None.into(), - descriptors: vec![new_descriptor("foo=".to_string(), descriptor::Suffix::Term)], + descriptors: vec![new_descriptor( + "foo=`bar`".to_string(), + descriptor::Suffix::Term, + )], ..Default::default() }; let symbol = format_symbol(symbol_struct.clone()); From dced090d3fc9e06acae7fcdd53a745d95bc86831 Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Sat, 28 Dec 2024 16:29:45 -0700 Subject: [PATCH 3/3] Fix escaping of backticks in symbol https://github.com/sourcegraph/scip/blob/94484d93a21313b0f2f1d5466cfb945c20f7b4f7/scip.proto#L177 --- bindings/rust/src/symbol.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bindings/rust/src/symbol.rs b/bindings/rust/src/symbol.rs index d1c15364..f61fe4a1 100644 --- a/bindings/rust/src/symbol.rs +++ b/bindings/rust/src/symbol.rs @@ -155,7 +155,7 @@ fn escape_name(name: &str) -> String { { name.to_string() } else { - format!("`{}`", name) + format!("`{}`", name.replace("`", "``")) } } @@ -624,7 +624,7 @@ mod test { }; let symbol = format_symbol(symbol_struct.clone()); - assert_eq!(symbol, "scip-ctags . . . `foo=`."); + assert_eq!(symbol, "scip-ctags . . . `foo=``bar```."); assert_eq!(parse_symbol(&symbol).expect("to parse"), symbol_struct); }