Komodo / KomodoEdit

Komodo Edit is a fast and free multi-language code editor. Written in JS, Python, C++ and based on the Mozilla platform.
http://www.komodoide.com/komodo-edit
Other
2.15k stars 302 forks source link

Komodo Edit 10 Autocomplete not show options' list #1896

Open addonszz opened 8 years ago

addonszz commented 8 years ago

Komodo Edit 10 Autocomplete not show options' list as notepad++, when I press "ctrl+space". It just fills with the first option, instead of list them to me choose the right one.

It does such horrible thing. Is there a way to fix it, and make him show the options when I press "ctrl+space" as on notepad++, instead of just fill with the first one?

Update: I think I am already seeing it. I want it also to apply word complete based on all project files, not just the current one. (neither notepad++ does it, but Sublime Text with a extension does however only for the currently opened files)

Update2: On a new file's beginning, the user would have any base for completion and would be harder to start new files. Then could be buffered all opened files to fill the word completion (maybe until a certain maximum buffer size, which is shifted discarding old words as new words a written on the new file). This is helpful when starting writing a new file as on the example above on Sublime Text: image

That way is easier to start a new file from scratch, you just need to have open the file(s) you want as base consult.

Also, this thing is very useful: image

Because most times if forgot that, the variable I want to, is not exactly how I remember it. On the above example, it covers the case I forgot that "g_isThe" has "_test" before the "isThe".

mitchell-as commented 8 years ago

Komodo's Ctrl+Space binding behaves differently than Notepad++'s Ctrl+Space binding. There is currently no way to display a list of completions for words in the current document.

For reference, in the following document:

foobar
foobarbaz
foobarbazqux

foo|

would show all foobar* options in a list. Komodo's Ctrl+Space just inserts the word closest to the caret by default.

To be clear this would be a new command.

Naatan commented 8 years ago

@mitchell-as I doubt that's what he wants. Sounds like he is just looking for the shortcut to show completions.

@addonszz By default the key binding for this is Ctrl+J. You can change this under Preferences > Key Bindings. The command you're looking for is "Editor: Trigger preceding AutoComplete list or CallTip".

addonszz commented 8 years ago

"Ctrl+J" does nothing for word complete. Only "Ctrl+Space", but it does not show a list as notepad++ word complete.

mitchell-as commented 8 years ago

@Naatan Ctrl+J only works for codeintel languages, and not in plain text files. Also, it does not complete words, but only scoped identifiers. Ctrl+Space in Notepad++ is word autocomplete.

Naatan commented 8 years ago

So it references a spelling db or something?

mitchell-as commented 8 years ago

@Naatan please look at my first comment. There's no spelling db involved there.

Naatan commented 8 years ago

I see, ok then. Will reopen.

mitchell-as commented 8 years ago

For performance reasons we will not autocomplete words from all project files.

What you are seeing now is Komodo's code intelligence (alluded to earlier via Ctrl+J). Codeintel is designed to give intelligent completions based on all files in a project -- not a blanket autocomplete like Sublime Text. This enhancement request is restricted to showing a word autocompletion list for words in a document. Nothing more.

Naatan commented 8 years ago

@addonszz Sublime doesn't do this either I believe. I think what you are seeing in Sublime is fuzzy autocompletions for all your files, but it still only shows you symbols, which are incidentally also words.

@mitchell-as I don't really think this is worth doing to be honest. We do have an enhancement request for fuzzy matching, that should cover this use case.

addonszz commented 8 years ago

So, so. Only from opened files. It comes from: https://github.com/SublimeCodeIntel/SublimeCodeIntel

image

@mitchell-as "I don't really think this is worth doing to be honest. We do have an enhancement request for fuzzy matching, that should cover this use case."

If it is must to cover this case, then there is no need for this enhancement. But if it is a should, then wait until the 'enhancement request for fuzzy matching' to be completed, to know whether this still needed to be implemented or not.

Sistemas.m (Systems.m) [systems of equations]

%This is a commentary, on Matlab/Octave Programming
A = [   10 2 3; 
        1 -2 1; 
        1 0 -2; ]

b = [1; 2; 5;]

D = [   1 2 1 12; 
        1 -3 5 1; 
        2 -1 3 10; ]

B = [   0 2 3 4; 
        5 6.2 7 8; 
        0 4 6 50; ]

C = [   0 2 3 4; 
        5 6.2 7 8; 
        9 0.5 10 2; ]

%n = rows( B )
%Aaux = B;
%x = fGauss (n, B)
%resMax = fResiduo(n, Aaux, x)
n = rows( A );
Aaux = [ A b ];
A = fLUCrout(n, A)
%Commentaries
x = fSub1( n, A, b )
resMax = fResiduo(n, Aaux, x)

As we can see from the above image, the 'SublimeCodeIntel' extension complemented also words from the commentaries. Note that the definitions of 'fResiduo', 'fLUCrout', etc, ... are on another file.

Naatan commented 8 years ago

I don't know what is in Sistemas.m, but those look like symbols to me.

mitchell-as commented 8 years ago

@Naatan He's getting word autocompletion from words in an Octave source file.

@addonszz I am in favor of word autocompletion, but only in the current document, not project-wide. As I said, project-wide autocompletions are codeintel's realm, but with intelligence (i.e. not project-wide word autocompletion).

addonszz commented 8 years ago

@mitchell-as, thanks.