Skip to content

Workbench autocomplete should be smater #17628

@JRobTS

Description

@JRobTS

Description

The Druid Console Workbench will auto-complete in the wrong contexts and should be smarter.

I propose the following changes:

  • "enter" shouldn't trigger an auto-complete
  • Numerals should not be candidate for autocompletion
  • Inside of double quote "" blocks, function names should not be candidate for autocompletion: datasource and field names only
  • Inside of single quote '' blocks, should not be candidate for autocompletion
  • Other common / completed phrases such as NULL and "count" should not be candidate for autocompletion

Motivation

Make working with Workbench less annoying.

For example, "1" will auto-complete as "LOG10" on (enter). This is extremely annoying as it's pretty typical to write a query that ends in GROUP BY 1; only to have auto-complete change it to GROUP BY LOG10.

Other annoyances include when writing inside of a string block ("" or '') the auto-completer will try to fill in function names. AND subject = 'foo' will auto-complete to AND subject = 'FLOOR'

Datasource and field names should be within context for double quotes "", but not function names. And I can't think of any reason to auto-complete when inside of single quotes '' (maybe local context)

More examples of auto-complete annoyances:

  • IS NOT NULL auto-completes to IS NOT NULLIF
  • SUM("count") auto-completes to SUM("COUNT")

Activity

gianm

gianm commented on Apr 1, 2025

@gianm
Contributor

I'm not familiar with how the autocomplete is coded, in particular I'm not sure how much control we have over it (vs. it coming in as part of a component we're importing). Perhaps @vogievetsky has a comment on that.

As to the specifics, some 2¢:

  • I have also been bit by the autocompleting within single quotes and agree it doesn't seem that useful.
  • Perhaps autocompleting on tab only rather than tab and enter would be an improvement. I'd be interested in trying it at least.
  • I haven't personally experienced 1 autocompleting as LOG10 (it doesn't autocomplete at all when I tried it just now on a relatively recent build-- maybe something changed).
JRobTS

JRobTS commented on Apr 28, 2025

@JRobTS
Author

I should note I'm using Apache Druid 29.0.0

I agree with autocompleting on tab only

Tested again and even SELECT 1 recommends LOG10
Image

vogievetsky

vogievetsky commented on May 24, 2025

@vogievetsky
Contributor

Sorry it took me a while to get around to responding to this issue. I somehow missed it. I am planning on upgrading the autocomplete based on the feedback in this issue. Here are my thoughts:

Numerals should not be candidate for autocompletion

100% agree. This was actually fixed in https://github.com/apache/druid/pull/16586/files#diff-71a7ad6a5ecf4d541e559dcff8be182e9cdbf75f353284272b36e8bf6542e22cR190 so if you upgrade to Druid 31 or later this is done.

Inside of double quote "" blocks, function names should not be candidate for autocompletion: datasource and field names only
Inside of single quote '' blocks, should not be candidate for autocompletion

Agree. That will be a huge improvement. I am working on his right now as a direct result of this issue.

Other common / completed phrases such as NULL and "count" should not be candidate for autocompletion

I think this can be addressed by tweaking the scores of the completions. Like a full match should always be the highest score. Specifically I 100% agree that typing IS NOT NULL (Enter) should not autocomplete to IS NOT NULLIF in this case it would be solved if the NULL completion was scored higher due to being a perfect match.

"enter" shouldn't trigger an auto-complete

This one I do not agree with. Enter appears to be a standard autocomplete trigger. Specifically it is a trigger in WebStorm/InteliJ, VSCode, and even in this window where I am typing right now @JRobTS (I just typed your handle by typing @, J, (enter)). I think you are saying that because of all the other issues in autocomplete. Let's see if we can make autocomplete work so well that you won't even mind having Enter be a trigger. Challenge accepted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @vogievetsky@gianm@JRobTS

      Issue actions

        Workbench autocomplete should be smater · Issue #17628 · apache/druid