AutoComplete HeidiSQL Without Ctrl+Space and Dot

[expired user #8716]'s profile image [expired user #8716] posted 10 years ago in Feature discussion Permalink
When i start select query, i Press "S" and Ctrl+Space to bring up autocomplete for keyword "Select" and i need to press following keys to complete "Select" keyword

S
Ctrl+Space
el
Enter

isn't against HCI (Human Computer Interactions) usability Rules. You should allow auto complete without Ctrl+Space.

I have read your previous Articles to press dot to bring up autocomplete. That's good for table.column etc and but not for MySQL keywords. No doubt, HeidiSQL is the best DB Client and should be even better...

Thumbs up for you.
ansgar's profile image ansgar posted 10 years ago Permalink
You want to see the auto completion proposal without any additional key pressing? That sounds quite annoying to me. The proposal also steals focus, so I guess this is a bad idea.
[expired user #8716]'s profile image [expired user #8716] posted 10 years ago Permalink
Without out this, write a procedure is really really hard. Think of a procedure with more than 100 lines. Steal focus is not an issue, just one Esc key and till word complete don't need to show auto list again and you just need to show auto list till any match exist.

Currently auto list keep showing even no match and bad thing is it keep displaying even i lost focus to whole heidisql... see this screenshot http://prntscr.com/643azt

You should give an option to enable/disable to show auto list without ctrl+space for users who need to write long procedures like me. or even better to show button on toolbar like http://prntscr.com/643bon to instantly enable/disable.

I hope i have convinced you now :)
ansgar's profile image ansgar posted 10 years ago Permalink
The point that the empty proposal is sticked to the screen: That's an error in SynEdit, which I am unlikely to be able to fix.

An additional button in the myriad of other buttons is not an option, especially for newbies.

Please give more arguments here, why the proposal should be displayed without any keyboard interaction.
[expired user #8716]'s profile image [expired user #8716] posted 10 years ago Permalink
First of all, don't show proposal on each key. only show proposal when there exist a word against that key in proposal list. Seems like, you have no controll over it because of some external lib usage, however if so, let proceed...

suppose i want to write this short procedure...
-----------------------------------------------
DELIMITER $$

CREATE PROCEDURE build_email_list (INOUT email_list varchar(4000))
BEGIN

DECLARE v_finished INTEGER DEFAULT 0;
DECLARE v_email varchar(100) DEFAULT "";

-- declare cursor for employee email
DEClARE email_cursor CURSOR FOR
SELECT email FROM employees;

-- declare NOT FOUND handler
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET v_finished = 1;

OPEN email_cursor;

get_email: LOOP

FETCH email_cursor INTO v_email;

IF v_finished = 1 THEN
LEAVE get_email;
END IF;

-- build email list
SET email_list = CONCAT(v_email,";",email_list);

END LOOP get_email;

CLOSE email_cursor;

END$$

DELIMITER ;
--------------------------------------------------
Now there are many of keywords in this procedures. To display proposal against each keyword using ctrl+space is really time consuming. Suppose i want to write "CLOSE", what is short way here... C+CTRL&space+l+o+enter how many keys i pressed to complete "ClOSE" from proposal are 6, so that's mean we are not getting any advantage from auto complete list. instead we should simple write CLOSE which is 5 key press.

Now if do it without CTRL+space... how only need to Press clo+enter, so 4 key pressed.

Auto Complete is introduced to reduce key press effort and if we are not getting advantage of it, there is no use of it.
[expired user #8716]'s profile image [expired user #8716] posted 10 years ago Permalink
you have not replied this time, got busy smile
[expired user #8397]'s profile image [expired user #8397] posted 10 years ago Permalink
IMHO it's OK to have the function on demand, by pressing ctrl+space. But it would also be fine to use this shortcut to turn on/off the permanent auto-completer instead.

But it would be great if the search condition for searching the keywords would be "contains" instead of "starts with". This is because very often there are some prefixes used in the table or column names.
[expired user #8801]'s profile image [expired user #8801] posted 10 years ago Permalink
This featire is in all sql IDE, but not in HeidiSQL!
I don`t want to press ctrl+space after each word. IDE must help me with my routine, but not to add more routine in my work.
If you don`t have descision about it, you can add option is HeidiSQL settings.
qupear's profile image qupear posted 6 years ago Permalink

Such behavior of autocomplete is the only reason why HeidiSQL isn't favorite IDE. It's better then in Mysql Workbench still, but not as good as it may be. As others had pointed out, writing big queries and procedures is pain in the neck without immediate autocomplete. For example if you have tables HeidiSQL_functions and HeidiSQL_procedures in query you normally type HF or HP and hit enter. But in HeidiSQL if you type HF you get nothing in autocomplete suggestions. So you need to type first several letters and then Ctrl+Space and then scroll. Fast and intuitive autocomplete may affect speed and resources usage maybe but let users decide whether they want to enable this feature or not.

LucaC's profile image LucaC posted 5 years ago Permalink

HeidiSql is the best sql client, thanks for developing it. It has only a defect but a big one, the autocomplete feature should work like all text editors with autocomplete of world, i.e: when you write the autocomplete should popup (without clicking any button) and the completion should be inserted only when a key is pressed with a key ( possibly configurable, usually TAB or ENTER ). Please fix this, is the only reason why i'm searching an alternative to Heidi.

marcelogrsp@gmail.com's profile image marcelogrsp@gmail.com posted 4 years ago Permalink

In my opinion this is a must-have! I use DBeaver as well but Heidi has a better performance, it is a deal breaker to migrate from DBeaver until the intellisense to be, in fact, Intelli ;)

ansgar's profile image ansgar posted 4 years ago Permalink

Do we still talk about triggering the completion proposal, or what's the point here, after 5 years?

Heidi has a completion proposal, and apart from it being triggered by a dot after an identifier, you can trigger it per Ctrl/Space, or with a custom shortcut:

Description

marcelogrsp@gmail.com's profile image marcelogrsp@gmail.com posted 4 years ago Permalink

Yeah... five years for a must have intellisense! It is annoying to press CTRL+SPACE everytime! Is that reinventing the wheel to include SELECT when I type SEL..., UPDATE for UP.... ?

qupear's profile image qupear posted 4 years ago Permalink

Completion after dot is great but this still means you need to type table name each time. And if you do this 100 times each day 5 days a week 11 months in a year = 5500. Well, no thanks! Pressing Ctrl+Space each time may help but this is step backward anyway.

LucaC's profile image LucaC posted 4 years ago Permalink

Me too using DBeaver to write query for this reason, but i really prefer HeidiSQL... Please add an option to use autocomplete without triggering a key

Please login to leave a reply, or register at first.