Fix menu interaction & cleanup logic #858
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
Issue #811 reports that autocomplete is "flaky" when filling function parameters in Evaluate nodes. Two main problems - optional parameters showing up before required ones in suggestions, and caret jumping to random positions after inserting parameters.
Related issues
Verification
Added filtering logic to prioritize required parameters in autocomplete. When there are unfilled required params, optional ones get filtered out. Did this in three places - Evaluate.getPossibleEvaluations(), Autocomplete.getRelativeFieldEdits(), and Autocomplete.getPossibleNodes().
Also fixed the caret position issue in Assign.ts - now it stays at the insertion point instead of jumping to placeholders unless it's explicitly a completion operation.
Tested on Chrome with basic function calls that have required and optional parameters. Required params show up first, optional ones stay hidden until all required are filled. Caret stays where you're typing.
Haven't fully tested variable-length params or nested Evaluate nodes yet.
Checklist