Case insensitive Identifiers
David Nolden
zwabel at googlemail.com
Mon Feb 15 12:13:04 UTC 2010
Am Montag 15 Februar 2010 12:49:50 schrieb Niko Sams:
> Hi all (David),
>
> In Php class identifiers and function identifiers as case insensitive.
> Currently there are two problems
> with that:
> - QuickOpen displays the tolower version
> - I want to change code completion to use CodeModel only (for
> performance) and i'ts tolower then too
>
> two ideas how to solve this:
> 1. add a CaseInsensitive flag to findDeclarations
That's not possible, because the global PersistentSymbolTable does not support
case-insensitive look-up, and it would probably be a major amount of work to
make that work.
> 2. when showing QuickOpen/CodeCompletion items load shown declarations
At least for quick-open, this shouldn't be a problem, as it happens anyway!
Quickopen loads all the declarations that are currently visible completely, so
it can disambiguate multiple overloads of the same function, and such stuff.
You'd just have to modify it so it also extract the non-tolower name when
loading the declarations. I think the place to do this is
DUChainItemData::text.
> This is not easily possible with CodeCompeltion as kate uses the
> NameColumn and DisplayRole for sorting
>
>
> Any ideas how to solve this isue?
Hmm in code-completion it's more problematic, that's true. So you don't want
to use declarations any more at all? At least in C++, the declarations are
used anyway so they can be filtered and such, and in that case it wouldn't be
a problem to also extract the non-tolower name at that point.
There's also a general problem when trying to use CodeModel for code-
completion: The code-model only contains one entry for multiple overloads of a
function. That's a major pain already in the quickopen list, as the number of
items has to be increased dynamically depending on whether a shown function
has multiple overloads, and this will be impossible to do in code-completion.
Greetings, David
More information about the KDevelop-devel
mailing list