diff options
| author | Laurenz <laurmaedje@gmail.com> | 2025-06-20 14:32:04 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-20 12:32:04 +0000 |
| commit | f364b3c3239261e98da4c28c53463b751addfee7 (patch) | |
| tree | d2b2538cdfc53a8f2a1a002e7c723512328baf47 /crates/typst-ide/src | |
| parent | f1c761e88ba50c5560360062c03d7d04f3925c49 (diff) | |
Fix param autocompletion false positive (#6475)
Diffstat (limited to 'crates/typst-ide/src')
| -rw-r--r-- | crates/typst-ide/src/complete.rs | 15 | ||||
| -rw-r--r-- | crates/typst-ide/src/tests.rs | 3 |
2 files changed, 12 insertions, 6 deletions
diff --git a/crates/typst-ide/src/complete.rs b/crates/typst-ide/src/complete.rs index c9832067..47727743 100644 --- a/crates/typst-ide/src/complete.rs +++ b/crates/typst-ide/src/complete.rs @@ -701,7 +701,10 @@ fn complete_params(ctx: &mut CompletionContext) -> bool { let mut deciding = ctx.leaf.clone(); while !matches!( deciding.kind(), - SyntaxKind::LeftParen | SyntaxKind::Comma | SyntaxKind::Colon + SyntaxKind::LeftParen + | SyntaxKind::RightParen + | SyntaxKind::Comma + | SyntaxKind::Colon ) { let Some(prev) = deciding.prev_leaf() else { break }; deciding = prev; @@ -1734,6 +1737,8 @@ mod tests { test("#numbering(\"foo\", 1, )", -2) .must_include(["integer"]) .must_exclude(["string"]); + // After argument list no completions. + test("#numbering()", -1).must_exclude(["string"]); } /// Test that autocompletion for values of known type picks up nested @@ -1829,17 +1834,17 @@ mod tests { #[test] fn test_autocomplete_fonts() { - test("#text(font:)", -1) + test("#text(font:)", -2) .must_include(["\"Libertinus Serif\"", "\"New Computer Modern Math\""]); - test("#show link: set text(font: )", -1) + test("#show link: set text(font: )", -2) .must_include(["\"Libertinus Serif\"", "\"New Computer Modern Math\""]); - test("#show math.equation: set text(font: )", -1) + test("#show math.equation: set text(font: )", -2) .must_include(["\"New Computer Modern Math\""]) .must_exclude(["\"Libertinus Serif\""]); - test("#show math.equation: it => { set text(font: )\nit }", -6) + test("#show math.equation: it => { set text(font: )\nit }", -7) .must_include(["\"New Computer Modern Math\""]) .must_exclude(["\"Libertinus Serif\""]); } diff --git a/crates/typst-ide/src/tests.rs b/crates/typst-ide/src/tests.rs index 1176e460..5edc05f1 100644 --- a/crates/typst-ide/src/tests.rs +++ b/crates/typst-ide/src/tests.rs @@ -202,7 +202,8 @@ impl WorldLike for &str { } } -/// Specifies a position in a file for a test. +/// Specifies a position in a file for a test. Negative numbers index from the +/// back. `-1` is at the very back. pub trait FilePos { fn resolve(self, world: &TestWorld) -> (Source, usize); } |
