Ask Reuben

Control Space (Auto Completion)

Why is Auto Completion not working for me in Genero Studio?

I first became aware of this when I was on site at a customer in Asia.   The developers were typing in Genero Studio and weren’t using Auto Completion.  Auto Completion for those who aren’t aware is where the editor can offer a list of syntactically correct code that you can select as opposed to typing out in its entirety.  In the two screenshots below, note how the user can select from what is correct syntax at that point …

… the way it should work is you can press Control+Space (or from the TopMenu select Edit>Completion->Auto Complete), a list of options are presented, and you can select an entry and carry on.  This improves developer productivity, particularly when dealing with long variable names.  Used correctly, you get it right first time and aren’t spending time trying to figure out why your code does not compile or run as expected because you have misspelled an identifier.

When investigating the reason these developers were not using Auto Completion, it was because the Control+Space accelerator was being mapped at the Operating System level to change the keyboard input used from English to Chinese and vice versa.  It turned out that this was a common issue impacting other code editors as well as evidenced by posts such as https://superuser.com/questions/327479/ctrl-space-always-toggles-chinese-ime-windows-7 and https://stackoverflow.com/questions/5951960/ctrlspace-changes-keyboard-instead-of-showing-intellisenses-auto-complete-list.

On OSX this conflict can also happen, if you go System Preferences -> Keyboard -> Input Sources -> Shortcuts – > Input Sources, you will see Control+Space is the default key to change the input source .

The solution where there is a conflict over a key like this is that someone has to change the accelerator being used.  If you don’t want to change the accelerator used at the Operating System level, Genero Studio does allow you to change the accelerator used for most actions within Genero Studio.  The way to do this is to enter Preferences->User Interface -> Accelerators, find the action and amend the Accelerators that are defined for that action.

Hopefully you can see that I have Control+Shift+Space as an alternative accelerator for Auto Completion.  What key(s) you use is upto you, as long as it is not associated to any other active action.  It should be fairly self-explanatory but you can refer to the documentation for additional details.

So in summary, if you are a Genero Studio user and not making regular use of auto completion, this maybe the reason why.  Control+Space is the default accelerator but if your operating system does something with that key combination, you can configure Genero Studio to use another key combination.  There is a note about this in the documentation