GSOC 2017 Proposal ( Rust Language Support for KDevelop )
Sven Brauch
mail at svenbrauch.de
Sat Apr 1 09:11:59 UTC 2017
Hello Shashwat,
nice proposal, thanks. The biggest issue I see (and which we should
maybe discuss on this list at this opportunity?) is this:
Lots of code in KDevelop assumes the DUChain database as the source it
can get information from. This includes some of the things you
mentioned, like
* semantic higlighting
* completion
* goto definition / declaration
If you want e.g. semantic highlighting to work with your custom
information source, you not only need to extract the information from
that source, but you also need to touch the highlighting code to
actually access that -- which IMO essentially means duplicating it, or
rewriting it all to use an extra abstraction layer.
This also includes some other things you probably didn't think about,
such as
* the QuickOpen and Outline widgets
* the class browser
* the navigation widgets
* the Rename feature
* the Document Declaration feature
* and some others
All of these need to be touched, if not essentially duplicated if you
want to have your code database outside of the DUChain.
Back when clang-based C++ support was implemented, this was considered
already, and deemed infeasible -- clang-c++ instead feeds the
information from the language server into the DUChain.
Maybe it is time to think about a different way to impleme these things,
but I'm a bit at loss regarding how to do that properly.
Another thing which is often overlooked is that the DUChain design is
quite clever in the sense that it allows accessing information (e.g.
"which declarations are there in this context") at each point in time
with just few ms delay, albeit that information is possibly incomplete
and potentially slightly outdated. This is for example great for
completion. Most language servers I've seen are not capable of doing
that -- when they are parsing the document you query information about,
they are busy, and it might take several hundred ms to respond.
Best,
Sven
On 31/03/17 22:48, Shashwat Dixit wrote:
> Project Proposal
>
> https://docs.google.com/document/d/1ACACp20M-D3gk673lPYrF0CgdnVdRxZLxSAGe4jdPrk/edit?usp=sharing
>
> Please review and comment in the docs for changes thanks
>
> Regards Shashwat Dixit
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20170401/0a90baa8/attachment.sig>
More information about the KDevelop-devel
mailing list