Thread overview
Lumen - KTextEditor/Kate/KDevelop Autocompletion Plugin
Aug 19, 2013
David
Aug 20, 2013
Kiith-Sa
Aug 20, 2013
David
Aug 20, 2013
David
Aug 20, 2013
David
Aug 20, 2013
Ilya Yaroshenko
August 19, 2013
Lumen
=====

Lumen is a KTextEditor autocompletion plugin for the D programming language, which works e.g. in Kate or KDevelop, based on the DCD autocompletion server.

Lumen: https://github.com/Dav1dde/lumen
DCD: https://github.com/Hackerpilot/DCD

With this Plugin KDevelop finally evolves to the most awesome D IDE out there (as DCD improves). You've got autocompletion(, semantic analysis, something I want to add to DCD overtime) and an amazing GDB integration, which works for D out of the be box!

Would be great if some of you could test it, it should work flawlessly.

TODO (lumen only):
 * Add include-paths UI
 * Get rid of dcd-client and implement its functionallity in pure C++

TODO (as DCD progresses):
 * "Best matches", e.g. `void foo(int x);` when completing `foo(`
display every local/function which returns an integer in a "best
matches" group
 * Sorting by inheritance
 * Sorting by scopes
August 20, 2013
On Monday, 19 August 2013 at 17:59:13 UTC, David wrote:
> Lumen
> =====
>
> Lumen is a KTextEditor autocompletion plugin for the D programming
> language, which works e.g. in Kate or KDevelop, based on the DCD
> autocompletion server.
>
> Lumen: https://github.com/Dav1dde/lumen
> DCD: https://github.com/Hackerpilot/DCD
>
> With this Plugin KDevelop finally evolves to the most awesome D IDE out
> there (as DCD improves). You've got autocompletion(, semantic analysis,
> something I want to add to DCD overtime) and an amazing GDB integration,
> which works for D out of the be box!
>
> Would be great if some of you could test it, it should work flawlessly.
>
> TODO (lumen only):
>  * Add include-paths UI
>  * Get rid of dcd-client and implement its functionallity in pure C++
>
> TODO (as DCD progresses):
>  * "Best matches", e.g. `void foo(int x);` when completing `foo(`
> display every local/function which returns an integer in a "best
> matches" group
>  * Sorting by inheritance
>  * Sorting by scopes


This is awesome. I've tried KDevelop recently and good D support might make me consider using it instead of Vim (especially if Vim mode improves further).

Is it viable, in longer-term future, to have features similar to what KDevelop
can do for C++? (semantic highlighting, esp. the color variation based on similarity of variable names, automatic creation of a stub of a nonexistent function based on a function call, etc.).
August 20, 2013
> Is it viable, in longer-term future, to have features similar to what
> KDevelop
> can do for C++? (semantic highlighting, esp. the color variation based
> on similarity of variable names, automatic creation of a stub of a
> nonexistent function based on a function call, etc.).

I don't think the semantic highlighting is possible. Creating a stub based on a function call, would be possible if the completion server would share this information with the plugin.
August 20, 2013
Great job!
I really like kate =)
August 20, 2013
Am 20.08.2013 11:59, schrieb David:
>> Is it viable, in longer-term future, to have features similar to what
>> KDevelop
>> can do for C++? (semantic highlighting, esp. the color variation based
>> on similarity of variable names, automatic creation of a stub of a
>> nonexistent function based on a function call, etc.).
> 
> I don't think the semantic highlighting is possible. Creating a stub based on a function call, would be possible if the completion server would share this information with the plugin.
> 

I am currently looking into "semantic highlighting" according to some KDevelop guys that isn't that big of a deal. I hope I don't need to implement a D parser for that...
August 20, 2013
Am 20.08.2013 12:13, schrieb David:
> Am 20.08.2013 11:59, schrieb David:
>>> Is it viable, in longer-term future, to have features similar to what
>>> KDevelop
>>> can do for C++? (semantic highlighting, esp. the color variation based
>>> on similarity of variable names, automatic creation of a stub of a
>>> nonexistent function based on a function call, etc.).
>>
>> I don't think the semantic highlighting is possible. Creating a stub based on a function call, would be possible if the completion server would share this information with the plugin.
>>
> 
> I am currently looking into "semantic highlighting" according to some KDevelop guys that isn't that big of a deal. I hope I don't need to implement a D parser for that...
> 

Ok ... turns out, quote:

"but be aware that if the completion thing you did was a one-week-project, this is at least a five-month-project"

I might still look into it and use Dscanner instead of implementing my own parser, lexer n' stuff (C-API).