[ESQL] New and improved autosuggestion#171664
[ESQL] New and improved autosuggestion#171664dej611 merged 26 commits intoelastic:feature/esql-validationfrom
Conversation
…fix/esql-autocomplete-ast
…/kibana into fix/esql-autocomplete-ast
|
Pinging @elastic/kibana-visualizations (Team:Visualizations) |
stratoula
left a comment
There was a problem hiding this comment.
@dej611 this looks fantastic. I found some cases where autocomplete can be improved:
- On stats after selecting comma, comma is again suggested instead of a new variable
- The fourth option here is wrong. (We have a bug in Discover table and list and for some reason we display the column with underscores while it is not correct but I will create an issue). Can we not suggest it? Also the third is correct but unfortunately should be like
avg(bytes)to work properly. Can we add the `` when the user clicks it?
- Not autocomplete related but this is red while it should not. This is a valid syntax
- Eval function arguments suggestions are wrong
- Nothing is suggested here :(
|
@dej611 we have this problem also in main but it is more prominent here. It seems that we error out on the capitalized version of the BY operator.
Also not related to autocomplete. We can fix on a separate PR. |
|
@dej611 this is great work ! Huge improvement! So nice to e.g get suggestions on index nr 2,3,4 and the meta field . |
Fixed by b07f157 and 819e40c (added unit test as well)
Fixed by 985486f (added unit test as well)
Fixed by e9a514d (added unit test that checks no consecutive fn suggested) Solving this issue avoiding duplicates has a side effect the fix also for the tooltip scroll and now the scroll is moved on top to fields again.
Fixed by 2816c95 (added unit tests as well)
Fixed by 304621d (added unit tests as well)
Fixed by d448041 (added unit tests as well)
Fixed by 43d8d84 (added unit tests as well) |
stratoula
left a comment
There was a problem hiding this comment.
Supercalifragilisticexpialidocious! Bugs fixed, changes LGTM!
💚 Build Succeeded
Metrics [docs]Async chunks
Page load bundle
History
To update your PR or re-run it, just comment with: |
## Summary Fixes #166242 , #166876, #166173 , part of #166092, #166084 List of tasks: * [x] AST work ( #166185 ) * [x] Basic validate work ( #166185 ) * [x] Hover feature ( #166185 ) * [x] Initial autocomplete work with new AST ( #166185 ) * Complete validation feature for MVP * [x] wildcards support ( #170014 ) * [x] remote index validation support ( #171996 ) * [x] wildcard support as `count` argument ( #172054 ) * [x] Aggressive caching for field queries: * cache as much as possible the `FROM` queries - possible clear the cache every 10/15 minutes? * do not fire a query when code == submitted code * cache as much as possible the custom `FROM` built from `ENRICH` policies - same clear policy as above * [x] Add unsupported fields warning messages * [x] Notify usage of `project` command with deprecation `warning` * Complete autocomplete work ( #171664 ) * [x] `stats` * [x] `where` * [x] `eval` * `math syntax` * [x] Aggressive cache for fields queries? ( #171866 ) * [x] Fix when cursor is not at the end position ( #172060 ) * [x] Revisit copy messages * Label Kibana-only messages * [x] Extend hover feature ( #171940 ) * [x] Disable editor query highlight for warnings ( #171968 ) * Fix editor highlight with new grammar * [x] on multi-line ( #172080 ) * [x] for functions ( #172287 ) ## Release notes Enhance ES|QL query editing experience with client side validation. Enhance ES|QL suggestions experience with more in context suggestions leveraging field and variable types. Show meta informations on ES|QL query hover on policy names. Show function signature on ES|QL query hover on function text. ### Checklist Delete any items that are not applicable to this PR. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [x] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co> Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

Summary
With this PR the autocomplete feature for ESQL is set at the same/better level than the previous one in
main.In particular:
*+or other builtin functions)**,together with the selected argument=where it make senseFile hierarchy has changed as well in this PR to accomodate better modularization for different services: ast, validation, autocomplete, hover and signature.
Also various bug fixes have been provided for existing features/services:
renameAST walker had some bugs for partial/incomplete commandsrenamevalidation had some bugs due to the bug aboveONoption forENRICHwas set as mandatory, now it's set to optionalENRICHoptions had several bugs on location extents computation. This was due to the specific grammar definition that didn't make it automatic as other commands to define correct location. It should be fixed now.ASTfunctions/options contained empty values which were confusing for services built upon it, and all occurency of this type of bug has been fixed*there are still some edge cases that were required to be handled specifically. But most of the times the logic goes thru thedefinitiondata structure.**some tests - i.e. suggest open brackets - have been removed as now functions are proposed entirely. For the "closing brackets" suggestion the editor is now configured to automatically open/close them.Checklist
Delete any items that are not applicable to this PR.