Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ES|QL] menu should open again automatically when users accept suggestions #189662

Closed
Tracked by #176033
drewdaemon opened this issue Jul 31, 2024 · 6 comments · Fixed by #189585
Closed
Tracked by #176033

[ES|QL] menu should open again automatically when users accept suggestions #189662

drewdaemon opened this issue Jul 31, 2024 · 6 comments · Fixed by #189585
Labels
enhancement New value added to drive a business result Feature:ES|QL ES|QL related features in Kibana impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. Team:ESQL ES|QL related features in Kibana

Comments

@drewdaemon
Copy link
Contributor

drewdaemon commented Jul 31, 2024

Describe the feature:
When a user is typing a query and accepts a suggestion, there are many cases where we can know exactly what they need to do next.

One example that we already support is accepting a command suggestion:

Screen.Recording.2024-07-31.at.10.59.25.AM.mov

Once the command is selected, we advance the cursor and open the suggestions menu again so that the user can make their selection.

We should do this everywhere we can.

Our current support

Scenario Supported?
Source command
Pipe command
Function argument (when the minimum args aren't met)
Pipe |
Assignment var0 =
FROM source
FROM source METADATA
FROM source METADATA field
FROM source METADATA field,
EVAL argument
DISSECT field
DISSECT field pattern
DISSECT field pattern APPEND_SEPARATOR
DISSECT field pattern APPEND_SEPARATOR = separator
DROP field
DROP field1, field2
ENRICH policy
ENRICH policy ON
ENRICH policy ON field
ENRICH policy WITH
ENRICH policy WITH field
GROK field
GROK field pattern
KEEP field
KEEP field1, field2
LIMIT number
MV_EXPAND field
RENAME field
RENAME field AS
RENAME field AS var0
SORT field
SORT field order
SORT field order nulls-order
STATS argument
STATS argument BY
STATS argument BY expression
WHERE argument
WHERE argument comparison
WHERE argument comparison argument
@drewdaemon drewdaemon added Feature:ES|QL ES|QL related features in Kibana Team:ESQL ES|QL related features in Kibana labels Jul 31, 2024
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-esql (Team:ESQL)

@drewdaemon drewdaemon added the impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. label Jul 31, 2024
@drewdaemon
Copy link
Contributor Author

@ryankeairns special priorities:

  • Function argument
  • Pipe |
  • FROM source
  • KEEP field
  • LIMIT number
  • SORT
  • STATS
  • WHERE
  • (INLINESTATS ?)

@ryankeairns
Copy link
Contributor

Very special.

@drewdaemon
Copy link
Contributor Author

Opening this again because we're going to fill in some more gaps.

@drewdaemon drewdaemon reopened this Aug 9, 2024
drewdaemon added a commit that referenced this issue Aug 23, 2024
## Summary

Part of #189662

## Suggests comma and pipe


https://github.com/user-attachments/assets/c09bc6fd-20a6-4f42-a871-c70e68e6d81a

## Doesn't suggest comma when there are no more fields


https://github.com/user-attachments/assets/29fce13e-e58b-4d93-bce5-6b1f913b4d92

## Doesn't work for escaped columns :(


https://github.com/user-attachments/assets/3d65f3b9-923d-4c0e-9c50-51dd83115c8b

As part of this effort I discovered
#191100 and
#191105, as well as a problem
with column name validation (see
#177699)

I think we can revisit column escaping and probably resolve all of these
issues (issue [here](#191111)).


### Checklist

- [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
@drewdaemon
Copy link
Contributor Author

drewdaemon commented Aug 28, 2024

A couple last items to complete after #191312

@stratoula stratoula added the enhancement New value added to drive a business result label Aug 29, 2024
drewdaemon added a commit that referenced this issue Sep 16, 2024
…191312)

## Summary

Part of #189662

Also, a follow-on to #187184
with certain source names (e.g. `foo$bar`, `my-policy`) and fields in
the `ENRICH` command.

During this effort I discovered
#191321 and a bug with the
validation of field names in the "ENRICH ... WITH" list (documented
[here](#177699)), both of which
will be addressed separately.

## Sources

### General flow


https://github.com/user-attachments/assets/4b103621-0e66-4c36-807f-4932f0cb8faf

### Works with wild-card matches


https://github.com/user-attachments/assets/6b47fffc-e922-4e2d-b6aa-3d9a2fc2236c

### `METADATA` field list


https://github.com/user-attachments/assets/d3bdf4dc-1d0c-4d56-81d7-af6bc4e25a4a

## ENRICH

Autosuggest now helps you along


https://github.com/user-attachments/assets/d627484c-e729-4dc7-9e7b-795395a31d4f

Also, fixed this bug (follow on to
#187184 )



https://github.com/user-attachments/assets/aa62a0c3-6db5-434a-829a-59f14c5c4c85


### Checklist

- [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

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>
kibanamachine pushed a commit to kibanamachine/kibana that referenced this issue Sep 16, 2024
…lastic#191312)

## Summary

Part of elastic#189662

Also, a follow-on to elastic#187184
with certain source names (e.g. `foo$bar`, `my-policy`) and fields in
the `ENRICH` command.

During this effort I discovered
elastic#191321 and a bug with the
validation of field names in the "ENRICH ... WITH" list (documented
[here](elastic#177699)), both of which
will be addressed separately.

## Sources

### General flow

https://github.com/user-attachments/assets/4b103621-0e66-4c36-807f-4932f0cb8faf

### Works with wild-card matches

https://github.com/user-attachments/assets/6b47fffc-e922-4e2d-b6aa-3d9a2fc2236c

### `METADATA` field list

https://github.com/user-attachments/assets/d3bdf4dc-1d0c-4d56-81d7-af6bc4e25a4a

## ENRICH

Autosuggest now helps you along

https://github.com/user-attachments/assets/d627484c-e729-4dc7-9e7b-795395a31d4f

Also, fixed this bug (follow on to
elastic#187184 )

https://github.com/user-attachments/assets/aa62a0c3-6db5-434a-829a-59f14c5c4c85

### Checklist

- [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

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>
(cherry picked from commit e404a39)
kibanamachine referenced this issue Sep 16, 2024
…60;ENRICH&#x60; (#191312) (#193013)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[ES|QL] open suggestions automatically in sources lists and
&#x60;ENRICH&#x60;
(#191312)](#191312)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Drew
Tate","email":"drew.tate@elastic.co"},"sourceCommit":{"committedDate":"2024-09-16T13:41:38Z","message":"[ES|QL]
open suggestions automatically in sources lists and `ENRICH`
(#191312)\n\n## Summary\r\n\r\nPart of
https://github.com/elastic/kibana/issues/189662\r\n\r\nAlso, a follow-on
to https://github.com/elastic/kibana/issues/187184\r\nwith certain
source names (e.g. `foo$bar`, `my-policy`) and fields in\r\nthe `ENRICH`
command.\r\n\r\nDuring this effort I
discovered\r\nhttps://github.com//issues/191321 and a bug
with the\r\nvalidation of field names in the \"ENRICH ... WITH\" list
(documented\r\n[here](#177699)),
both of which\r\nwill be addressed separately.\r\n\r\n##
Sources\r\n\r\n### General
flow\r\n\r\n\r\nhttps://github.com/user-attachments/assets/4b103621-0e66-4c36-807f-4932f0cb8faf\r\n\r\n###
Works with wild-card
matches\r\n\r\n\r\nhttps://github.com/user-attachments/assets/6b47fffc-e922-4e2d-b6aa-3d9a2fc2236c\r\n\r\n###
`METADATA` field
list\r\n\r\n\r\nhttps://github.com/user-attachments/assets/d3bdf4dc-1d0c-4d56-81d7-af6bc4e25a4a\r\n\r\n##
ENRICH\r\n\r\nAutosuggest now helps you
along\r\n\r\n\r\nhttps://github.com/user-attachments/assets/d627484c-e729-4dc7-9e7b-795395a31d4f\r\n\r\nAlso,
fixed this bug (follow on
to\r\nhttps://github.com//issues/187184
)\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/aa62a0c3-6db5-434a-829a-59f14c5c4c85\r\n\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine
<elasticmachine@users.noreply.github.com>\r\nCo-authored-by: Stratoula
Kalafateli
<efstratia.kalafateli@elastic.co>","sha":"e404a3992e220735ae51918c532a1a032e7f7993","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement","v9.0.0","backport:prev-minor","Feature:ES|QL","Team:ESQL"],"title":"[ES|QL]
open suggestions automatically in sources lists and
`ENRICH`","number":191312,"url":"https://github.com/elastic/kibana/pull/191312","mergeCommit":{"message":"[ES|QL]
open suggestions automatically in sources lists and `ENRICH`
(#191312)\n\n## Summary\r\n\r\nPart of
https://github.com/elastic/kibana/issues/189662\r\n\r\nAlso, a follow-on
to https://github.com/elastic/kibana/issues/187184\r\nwith certain
source names (e.g. `foo$bar`, `my-policy`) and fields in\r\nthe `ENRICH`
command.\r\n\r\nDuring this effort I
discovered\r\nhttps://github.com//issues/191321 and a bug
with the\r\nvalidation of field names in the \"ENRICH ... WITH\" list
(documented\r\n[here](#177699)),
both of which\r\nwill be addressed separately.\r\n\r\n##
Sources\r\n\r\n### General
flow\r\n\r\n\r\nhttps://github.com/user-attachments/assets/4b103621-0e66-4c36-807f-4932f0cb8faf\r\n\r\n###
Works with wild-card
matches\r\n\r\n\r\nhttps://github.com/user-attachments/assets/6b47fffc-e922-4e2d-b6aa-3d9a2fc2236c\r\n\r\n###
`METADATA` field
list\r\n\r\n\r\nhttps://github.com/user-attachments/assets/d3bdf4dc-1d0c-4d56-81d7-af6bc4e25a4a\r\n\r\n##
ENRICH\r\n\r\nAutosuggest now helps you
along\r\n\r\n\r\nhttps://github.com/user-attachments/assets/d627484c-e729-4dc7-9e7b-795395a31d4f\r\n\r\nAlso,
fixed this bug (follow on
to\r\nhttps://github.com//issues/187184
)\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/aa62a0c3-6db5-434a-829a-59f14c5c4c85\r\n\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine
<elasticmachine@users.noreply.github.com>\r\nCo-authored-by: Stratoula
Kalafateli
<efstratia.kalafateli@elastic.co>","sha":"e404a3992e220735ae51918c532a1a032e7f7993"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/191312","number":191312,"mergeCommit":{"message":"[ES|QL]
open suggestions automatically in sources lists and `ENRICH`
(#191312)\n\n## Summary\r\n\r\nPart of
https://github.com/elastic/kibana/issues/189662\r\n\r\nAlso, a follow-on
to https://github.com/elastic/kibana/issues/187184\r\nwith certain
source names (e.g. `foo$bar`, `my-policy`) and fields in\r\nthe `ENRICH`
command.\r\n\r\nDuring this effort I
discovered\r\nhttps://github.com//issues/191321 and a bug
with the\r\nvalidation of field names in the \"ENRICH ... WITH\" list
(documented\r\n[here](#177699)),
both of which\r\nwill be addressed separately.\r\n\r\n##
Sources\r\n\r\n### General
flow\r\n\r\n\r\nhttps://github.com/user-attachments/assets/4b103621-0e66-4c36-807f-4932f0cb8faf\r\n\r\n###
Works with wild-card
matches\r\n\r\n\r\nhttps://github.com/user-attachments/assets/6b47fffc-e922-4e2d-b6aa-3d9a2fc2236c\r\n\r\n###
`METADATA` field
list\r\n\r\n\r\nhttps://github.com/user-attachments/assets/d3bdf4dc-1d0c-4d56-81d7-af6bc4e25a4a\r\n\r\n##
ENRICH\r\n\r\nAutosuggest now helps you
along\r\n\r\n\r\nhttps://github.com/user-attachments/assets/d627484c-e729-4dc7-9e7b-795395a31d4f\r\n\r\nAlso,
fixed this bug (follow on
to\r\nhttps://github.com//issues/187184
)\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/aa62a0c3-6db5-434a-829a-59f14c5c4c85\r\n\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios\r\n\r\n---------\r\n\r\nCo-authored-by: Elastic Machine
<elasticmachine@users.noreply.github.com>\r\nCo-authored-by: Stratoula
Kalafateli
<efstratia.kalafateli@elastic.co>","sha":"e404a3992e220735ae51918c532a1a032e7f7993"}}]}]
BACKPORT-->

Co-authored-by: Drew Tate <drew.tate@elastic.co>
drewdaemon added a commit that referenced this issue Sep 23, 2024
## Summary

Part of #189662. This PR
- updates the autocomplete behavior for `SORT` to be in line with other
field-list-based experiences like `KEEP`
- introduces a shared function, `handleFragment`, which is used to
abstract some of the logic required to support this behavior
- bulks up the `SORT` tests
- restores the function suggestions which I noticed got lost in
#189959

**Before**


https://github.com/user-attachments/assets/cad1d073-c010-426f-9628-c0fc6b65eb3c

**After**


https://github.com/user-attachments/assets/e148ae58-4430-482c-9f8e-c55779c4d822

### Checklist

- [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

---------

Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>
drewdaemon added a commit to drewdaemon/kibana that referenced this issue Sep 23, 2024
## Summary

Part of elastic#189662. This PR
- updates the autocomplete behavior for `SORT` to be in line with other
field-list-based experiences like `KEEP`
- introduces a shared function, `handleFragment`, which is used to
abstract some of the logic required to support this behavior
- bulks up the `SORT` tests
- restores the function suggestions which I noticed got lost in
elastic#189959

**Before**

https://github.com/user-attachments/assets/cad1d073-c010-426f-9628-c0fc6b65eb3c

**After**

https://github.com/user-attachments/assets/e148ae58-4430-482c-9f8e-c55779c4d822

### Checklist

- [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

---------

Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>
(cherry picked from commit f450e22)
drewdaemon added a commit that referenced this issue Sep 24, 2024
# Backport

This will backport the following commits from `main` to `8.x`:
- [[ES|QL] new pattern for `SORT` autocomplete
(#193595)](#193595)

<!--- Backport version: 8.9.8 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Drew
Tate","email":"drew.tate@elastic.co"},"sourceCommit":{"committedDate":"2024-09-23T14:23:23Z","message":"[ES|QL]
new pattern for `SORT` autocomplete (#193595)\n\n## Summary\r\n\r\nPart
of #189662. This PR\r\n- updates
the autocomplete behavior for `SORT` to be in line with
other\r\nfield-list-based experiences like `KEEP`\r\n- introduces a
shared function, `handleFragment`, which is used to\r\nabstract some of
the logic required to support this behavior\r\n- bulks up the `SORT`
tests\r\n- restores the function suggestions which I noticed got lost
in\r\nhttps://github.com//pull/189959\r\n\r\n**Before**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/cad1d073-c010-426f-9628-c0fc6b65eb3c\r\n\r\n**After**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/e148ae58-4430-482c-9f8e-c55779c4d822\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios\r\n\r\n---------\r\n\r\nCo-authored-by: Stratoula Kalafateli
<efstratia.kalafateli@elastic.co>","sha":"f450e228b38d317a57d906f6c59f6e69d1dd458d","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement","v9.0.0","backport:prev-minor","Feature:ES|QL","Team:ESQL"],"number":193595,"url":"https://github.com/elastic/kibana/pull/193595","mergeCommit":{"message":"[ES|QL]
new pattern for `SORT` autocomplete (#193595)\n\n## Summary\r\n\r\nPart
of #189662. This PR\r\n- updates
the autocomplete behavior for `SORT` to be in line with
other\r\nfield-list-based experiences like `KEEP`\r\n- introduces a
shared function, `handleFragment`, which is used to\r\nabstract some of
the logic required to support this behavior\r\n- bulks up the `SORT`
tests\r\n- restores the function suggestions which I noticed got lost
in\r\nhttps://github.com//pull/189959\r\n\r\n**Before**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/cad1d073-c010-426f-9628-c0fc6b65eb3c\r\n\r\n**After**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/e148ae58-4430-482c-9f8e-c55779c4d822\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios\r\n\r\n---------\r\n\r\nCo-authored-by: Stratoula Kalafateli
<efstratia.kalafateli@elastic.co>","sha":"f450e228b38d317a57d906f6c59f6e69d1dd458d"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/193595","number":193595,"mergeCommit":{"message":"[ES|QL]
new pattern for `SORT` autocomplete (#193595)\n\n## Summary\r\n\r\nPart
of #189662. This PR\r\n- updates
the autocomplete behavior for `SORT` to be in line with
other\r\nfield-list-based experiences like `KEEP`\r\n- introduces a
shared function, `handleFragment`, which is used to\r\nabstract some of
the logic required to support this behavior\r\n- bulks up the `SORT`
tests\r\n- restores the function suggestions which I noticed got lost
in\r\nhttps://github.com//pull/189959\r\n\r\n**Before**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/cad1d073-c010-426f-9628-c0fc6b65eb3c\r\n\r\n**After**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/e148ae58-4430-482c-9f8e-c55779c4d822\r\n\r\n###
Checklist\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common
scenarios\r\n\r\n---------\r\n\r\nCo-authored-by: Stratoula Kalafateli
<efstratia.kalafateli@elastic.co>","sha":"f450e228b38d317a57d906f6c59f6e69d1dd458d"}}]}]
BACKPORT-->
@drewdaemon
Copy link
Contributor Author

#195679 was the last thing we decided to do as part of this effort and it has been merged!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New value added to drive a business result Feature:ES|QL ES|QL related features in Kibana impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. Team:ESQL ES|QL related features in Kibana
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants