[Qt-creator] Overzealous autocomplete

Eike Ziller Eike.Ziller at qt.io
Fri Feb 1 09:30:33 CET 2019



> On 31. Jan 2019, at 18:03, Jason H <jhihn at gmx.com> wrote:
> 
> Here's one for ya....in QML...
> 
> I type:
> 'text',
> and expect to get that.
> 
> But what I get is:
> 'text','
> 
> It does not happen with “ 

Indeed. https://codereview.qt-project.org/251690 . Thanks.

Br, Eike


>> Sent: Friday, January 25, 2019 at 3:33 AM
>> From: "Eike Ziller" <Eike.Ziller at qt.io>
>> To: "Jason H" <jhihn at gmx.com>
>> Cc: "Christian Stenger" <Christian.Stenger at qt.io>, qt-creator <qt-creator at qt-project.org>
>> Subject: Re: [Qt-creator] Overzealous autocomplete
>> 
>> 
>> 
>>> On 24. Jan 2019, at 16:54, Jason H <jhihn at gmx.com> wrote:
>>> 
>>> Many thanks to those who responded and provided clarity. 
>>> 
>>> I would propose that if there is whitespace in the preceding position, that it is a tab. If it is non-whitespace, then it should trigger autocomplete.
>>> \s|tab
>>> \S|autocomplete
>>> (| denotes cursor position)
>> 
>> IMO it is fine if it is just configurable. It might be nice to provide some kind of option or hint about how to do that in the Completion settings though. (And of course currently setting “tab” as the shortcut doesn’t work out because of the mentioned issues, which could be improved independently.)
>> 
>>> 
>>> Also, I think should behave like a bash shell, completing as far as it has commonality. comp[tab] ->complete|[d,s,ing] rather than selecting the entry outright (unless that's the only candidate). Opinions?
>> 
>> That is how “CompleteThis” behaves (if you have "Options > Text Editor > Completion > Autocomplete common prefix” turned on, which is the default afaik).
>> 
>>> 
>>> 
>>> 
>>>> Sent: Thursday, January 24, 2019 at 3:28 AM
>>>> From: "Christian Stenger" <Christian.Stenger at qt.io>
>>>> To: "Eike Ziller" <Eike.Ziller at qt.io>, "Jason H" <jhihn at gmx.com>
>>>> Cc: qt-creator <qt-creator at qt-project.org>
>>>> Subject: Re: [Qt-creator] Overzealous autocomplete
>>>> 
>>>> Hi,
>>>> 
>>>> This is basically a different issue that came with some special re-ordering inside the proposal widget (done for the C++/Clang side of QC) and the QmlJSEditor uses the same infrastructure but the re-ordering broke there several stuff...
>>>> 
>>>> See https://bugreports.qt.io/browse/QTCREATORBUG-21527
>>>> 
>>>> Kind regards,
>>>> Christian
>>>> 
>>>> ________________________________________
>>>> From: Qt-creator <qt-creator-bounces at qt-project.org> on behalf of Eike Ziller <Eike.Ziller at qt.io>
>>>> Sent: Thursday, January 24, 2019 9:10:55 AM
>>>> To: Jason H
>>>> Cc: qt-creator
>>>> Subject: Re: [Qt-creator] Overzealous autocomplete
>>>> 
>>>> 
>>>> 
>>>>> On 23. Jan 2019, at 20:33, Jason H <jhihn at gmx.com> wrote:
>>>>> 
>>>>> Camera {
>>>>>  id: camera[enter]
>>>>> 
>>>>> becomes
>>>>> Camera {
>>>>>  id: cameraStateChanged()
>>>>> 
>>>>> 
>>>>> 
>>>>> This is very clearly wrong. Since when did enter start being autocomplete key? So I did some digging... Autocomplete was set to "always" with a timeout of 400ms. It seems the max is 500ms, which is waaaay not enough time.
>>>>> I also don't know how "when triggered" or "manually" works. But in my version of autocomplete, [tab] is what I'm used to.
>>>>> 
>>>>> 1. How do I "trigger" autocomplete, what is "manual" and what is the difference?
>>>> 
>>>> I think “when triggered” includes automatic completion popup when certain characters are typed in the right context, like “.” after a variable name in case of C++,
>>>> while “Manually” only pops up completion when pressing the shortcut.
>>>> 
>>>>> 2. Why is the timeout limited to 500ms? I'd like at least a full second.
>>>> 
>>>> Looks like the configuration was added in 2014 after complains that the delay is too long. I don’t see a reason why to disallow longer timeouts too.
>>>> https://codereview.qt-project.org/250787
>>>> 
>>>>> 3. Is there anyway to use [tab] to complete?
>>>> 
>>>> Well, you can set the shortcut for “Trigger completion” in Options > Environment > Keyboard.
>>>> But since completion is offered everywhere, you’ll no longer be able to indent with tab, which is probably not what you want.
>>>> 
>>>> Br, Eike
>>>> 
>>>> --
>>>> Eike Ziller
>>>> Principal Software Engineer
>>>> 
>>>> The Qt Company GmbH
>>>> Rudower Chaussee 13
>>>> D-12489 Berlin
>>>> eike.ziller at qt.io
>>>> http://qt.io
>>>> Geschäftsführer: Mika Pälsi,
>>>> Juha Varelius, Mika Harjuaho
>>>> Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B
>>>> 
>>>> _______________________________________________
>>>> Qt-creator mailing list
>>>> Qt-creator at qt-project.org
>>>> https://lists.qt-project.org/listinfo/qt-creator
>>>> 
>> 
>> -- 
>> Eike Ziller
>> Principal Software Engineer
>> 
>> The Qt Company GmbH
>> Rudower Chaussee 13
>> D-12489 Berlin
>> eike.ziller at qt.io
>> http://qt.io
>> Geschäftsführer: Mika Pälsi,
>> Juha Varelius, Mika Harjuaho
>> Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B
>> 
>> 

-- 
Eike Ziller
Principal Software Engineer

The Qt Company GmbH
Rudower Chaussee 13
D-12489 Berlin
eike.ziller at qt.io
http://qt.io
Geschäftsführer: Mika Pälsi,
Juha Varelius, Mika Harjuaho
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B



More information about the Qt-creator mailing list