logiguard fork v3: full patch set on verified 8c74db0 tree
Includes prior-session patches (carry forward so the app compiles): - crates/gpui/build.rs: cross-compile manifest fix - crates/gpui/src/platform.rs: PlatformWindow::activate_with_token trait method - crates/gpui/src/window.rs: Window::activate_with_token public API - crates/gpui_linux/src/linux/wayland/window.rs: WaylandWindow::activate_with_token + activate() keyboard-serial fix Plus the focus-serial fix: - serial.rs: SerialKind::KeyboardEnter - client.rs: store wl_keyboard.enter serial; latest_serial_of() Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
74
crates/project/tests/integration/lsp_store.rs
Normal file
74
crates/project/tests/integration/lsp_store.rs
Normal file
@@ -0,0 +1,74 @@
|
||||
use std::path::Path;
|
||||
|
||||
use language::{CodeLabel, HighlightId};
|
||||
|
||||
use project::lsp_store::*;
|
||||
|
||||
#[test]
|
||||
fn test_glob_literal_prefix() {
|
||||
assert_eq!(glob_literal_prefix(Path::new("**/*.js")), Path::new(""));
|
||||
assert_eq!(
|
||||
glob_literal_prefix(Path::new("node_modules/**/*.js")),
|
||||
Path::new("node_modules")
|
||||
);
|
||||
assert_eq!(
|
||||
glob_literal_prefix(Path::new("foo/{bar,baz}.js")),
|
||||
Path::new("foo")
|
||||
);
|
||||
assert_eq!(
|
||||
glob_literal_prefix(Path::new("foo/bar/baz.js")),
|
||||
Path::new("foo/bar/baz.js")
|
||||
);
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
{
|
||||
assert_eq!(glob_literal_prefix(Path::new("**\\*.js")), Path::new(""));
|
||||
assert_eq!(
|
||||
glob_literal_prefix(Path::new("node_modules\\**/*.js")),
|
||||
Path::new("node_modules")
|
||||
);
|
||||
assert_eq!(
|
||||
glob_literal_prefix(Path::new("foo/{bar,baz}.js")),
|
||||
Path::new("foo")
|
||||
);
|
||||
assert_eq!(
|
||||
glob_literal_prefix(Path::new("foo\\bar\\baz.js")),
|
||||
Path::new("foo/bar/baz.js")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_multi_len_chars_normalization() {
|
||||
let mut label = CodeLabel::new(
|
||||
"myElˇ (parameter) myElˇ: {\n foo: string;\n}".to_string(),
|
||||
0..6,
|
||||
vec![(0..6, HighlightId::new(1))],
|
||||
);
|
||||
ensure_uniform_list_compatible_label(&mut label);
|
||||
assert_eq!(
|
||||
label,
|
||||
CodeLabel::new(
|
||||
"myElˇ (parameter) myElˇ: { foo: string; }".to_string(),
|
||||
0..6,
|
||||
vec![(0..6, HighlightId::new(1))],
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_trailing_newline_in_completion_documentation() {
|
||||
let doc =
|
||||
lsp::Documentation::String("Inappropriate argument value (of correct type).\n".to_string());
|
||||
let completion_doc: CompletionDocumentation = doc.into();
|
||||
assert!(
|
||||
matches!(completion_doc, CompletionDocumentation::SingleLine(s) if s == "Inappropriate argument value (of correct type).")
|
||||
);
|
||||
|
||||
let doc = lsp::Documentation::String(" some value \n".to_string());
|
||||
let completion_doc: CompletionDocumentation = doc.into();
|
||||
assert!(matches!(
|
||||
completion_doc,
|
||||
CompletionDocumentation::SingleLine(s) if s == "some value"
|
||||
));
|
||||
}
|
||||
Reference in New Issue
Block a user