Skip to content

Commit

Permalink
Make autocomplete less aggressive
Browse files Browse the repository at this point in the history
  • Loading branch information
valtzu committed Jan 12, 2025
1 parent 7d90487 commit 85b0b6c
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 6 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ CHANGELOG

* **BC BREAK:** Separate files are no longer included in the release (due to using `cm-buildhelper`)
* Tests are now in TypeScript too

* Autocomplete is now less aggressive

0.8
---
Expand Down
10 changes: 6 additions & 4 deletions src/complete.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,12 @@ export function expressionLanguageCompletion(context: CompletionContext): Comple
}

if (
[Expression, UnaryExpression, BinaryExpression, TernaryExpression].includes(prevNode.type.id) && prevNode.lastChild && !prevNode.lastChild?.type.isError
|| [Arguments, Array].includes(prevNode.type.id) && prevNode.lastChild && !prevNode.lastChild?.type.isError
|| [Expression, UnaryExpression, BinaryExpression, TernaryExpression].includes(prevNode.parent?.type.id) && prevNode.type.isError
|| [Variable, Function].includes(prevNode.parent?.type.id) && prevNode.type.isError
/^[\sa-z]*$/.test(lastChar) && (
[Expression, UnaryExpression, BinaryExpression, TernaryExpression].includes(prevNode.type.id) && prevNode.lastChild && !prevNode.lastChild?.type.isError
|| [Arguments, Array].includes(prevNode.type.id) && prevNode.lastChild && !prevNode.lastChild?.type.isError
|| [Expression, UnaryExpression, BinaryExpression, TernaryExpression].includes(prevNode.parent?.type.id) && prevNode.type.isError
|| [Variable, Function].includes(prevNode.parent?.type.id) && prevNode.type.isError
)
) {
return completeOperatorKeyword(state, config, prevNode, ![Expression, UnaryExpression, BinaryExpression, TernaryExpression, Arguments].includes(prevNode.type.id) ? prevNode.from : pos, pos, explicit);
}
Expand Down
6 changes: 5 additions & 1 deletion test/test-complete.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ describe("Expression language completion", () => {
});

it("completes only operators after method call", async () => {
const c = await get("obj.firstMethod()‸") ?? [];
const c = await get("obj.firstMethod() ‸") ?? [];
ist(!c.find(x => x.label === 'firstMethod()'));
ist(!c.find(x => x.label === 'obj'));
ist(c.find((x: Completion) => x.label === 'starts with'));
Expand Down Expand Up @@ -159,6 +159,10 @@ describe("Expression language completion", () => {
ist(null, await get("1 and‸"));
});

it("does not complete right after closing bracket", async () => {
ist(null, await get("(1)‸"));
});

it("does complete after ternary expression", async () => {
let c = await get("(foobar ? obj : false).‸") ?? [];
ist(c.length, 3);
Expand Down

0 comments on commit 85b0b6c

Please sign in to comment.