[Geany-devel] Scope (struct/class) completion broken
lists.ban at xxxxx
Mon Apr 18 17:12:33 UTC 2011
Le 18/04/2011 15:38, Thomas Martitz a écrit :
> Am 18.04.2011 15:26, schrieb Colomban Wendling:
>> Le 18/04/2011 15:17, Thomas Martitz a écrit :
>>> Am 18.04.2011 15:04, schrieb Thomas Martitz:
>>>> I just tried my patch again to make scope completion work better (see
>>>> r4840), but I now noticed that scope completion doesn't work at all
>>> Just for completeness. My way to open the scope completion list was (in
>>> this case) to type "editor->" or "editor." in e.g. autocomplete_scope().
>> It still works for me, and I'd be surprised it to be broken by recent
>> changes. Maybe r5642 would have broken this, but it has been reverted by
>> r5711 because it did actually broke calltips.
>> However, scope completion only works when the variable type is known,
>> e.g. with globals only.
> Pretty sure it worked with locals also, but I may be wrong.
Since all completions, including scope ones, are based on tags, and we
never had local tags parsed AFAIK, I'm pretty sure it never worked. But
I'd be happy to be proven wrong :)
> Anyway, I tried it with something global and it doesn't work too. In
> editor.c, no list at all with editor_prefs, and a wrong list with
Hum, true. I'm investigating this, but first things I found:
1) scope completion of anonymous structs/unions got "broken" since
r5563, because it made these anonymous have a non-unique name in the
whole workspace (and since scope completion is based upon var type, it
gets the completion for all who shares a name). This prehaps may be
fixable in scope completion itself to chose only one -- and the right
one :D -- parent.
However a quick & dirty "fix" is to revert r5563, but it was meant to
stop reparsing to lead to infinite increasing of the anonymous suffix.
2) if there is more than one possible candidate in the whole project for
scope completion, the first match is taken without further care (AFAICT).
However I can't tell yet why editor_prefs don't complete at all, since
it works with a resolver I wrote for debugging (e.g. replicating what I
understand tm_workspace_find_scope_members() does).
I think I gonna need understanding tm_workspace... :'(
More information about the Devel