mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-01 14:21:16 +00:00
LSP: Improvements on complete ergonomics
This commit is contained in:
parent
b94ea38965
commit
131f4d6682
1 changed files with 20 additions and 2 deletions
|
@ -69,7 +69,7 @@ fn run_lsp_server() -> Result<(), Error> {
|
||||||
let capabilities = ServerCapabilities {
|
let capabilities = ServerCapabilities {
|
||||||
completion_provider: Some(CompletionOptions {
|
completion_provider: Some(CompletionOptions {
|
||||||
resolve_provider: Some(true),
|
resolve_provider: Some(true),
|
||||||
trigger_characters: None,
|
trigger_characters: Some(vec![".".to_owned()]),
|
||||||
work_done_progress_options: WorkDoneProgressOptions::default(),
|
work_done_progress_options: WorkDoneProgressOptions::default(),
|
||||||
}),
|
}),
|
||||||
hover_provider: Some(HoverProviderCapability::Simple(true)),
|
hover_provider: Some(HoverProviderCapability::Simple(true)),
|
||||||
|
@ -345,7 +345,25 @@ fn token_descr(
|
||||||
if !node.text_range().contains(o.into()) {
|
if !node.text_range().contains(o.into()) {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
let token = node.token_at_offset(o.into()).last()?;
|
let mut taf = node.token_at_offset(o.into());
|
||||||
|
let token = match (taf.next(), taf.next()) {
|
||||||
|
(None, _) => return None,
|
||||||
|
(Some(t), None) => t,
|
||||||
|
(Some(l), Some(r)) => match (l.kind(), r.kind()) {
|
||||||
|
// Prioritize identifier
|
||||||
|
(SyntaxKind::Identifier, _) => l,
|
||||||
|
(_, SyntaxKind::Identifier) => r,
|
||||||
|
// then the dot
|
||||||
|
(SyntaxKind::Dot, _) => l,
|
||||||
|
(_, SyntaxKind::Dot) => r,
|
||||||
|
// de-prioritize the white spaces
|
||||||
|
(SyntaxKind::Whitespace, _) => r,
|
||||||
|
(SyntaxKind::Comment, _) => r,
|
||||||
|
(_, SyntaxKind::Whitespace) => l,
|
||||||
|
(_, SyntaxKind::Comment) => l,
|
||||||
|
_ => l,
|
||||||
|
},
|
||||||
|
};
|
||||||
Some(SyntaxToken { token, source_file: node.source_file.clone() })
|
Some(SyntaxToken { token, source_file: node.source_file.clone() })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue