Draft proposal for GSoC project for CDT/LSP integration

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Draft proposal for GSoC project for CDT/LSP integration

Nathan Ridge
Hi,

I would like to propose a GSoC project for integrating CDT with the Language Server Protocol.

Please find below a draft of the proposal. I'm posting it here for comment before adding it to the 2018 GSoC proposals wiki page [1]. Any feedback is welcome!

========
= Eclipse CDT: Integration with the Language Server Protocol =

[https://www.eclipse.org/cdt/ Eclipse CDT] (C/C++ Development Tools) currently uses a homegrown C++ parser and code analysis engine for providing semantics-aware navigation, completion, refactoring, and other editing features. This parser has fallen behind in C++ language support (e.g. it currently has only partial C++14 support and no C++17 support) and is increasingly a maintenance burden.

The [https://microsoft.github.io/language-server-protocol/ Language Server Protocol] is a protocol that allows decoupling "language servers" that provide support for semantics-aware features, from editors / IDEs that provide the UI for these features. This facilitates reusing the parser and code analysis engine already present in a compiler like [https://clang.llvm.org/ clang], exposed via a language server. There is a project underway to support the client side of the protocol in Eclipse, [https://projects.eclipse.org/projects/technology.lsp4e LSP4E].

The goal of this GSoC project is to integrate Eclipse CDT with clang-based C/C++ language servers such as [https://clang.llvm.org/extra/clangd.html clangd] or [https://github.com/jacobdufault/cquery/ cquery].

Specific work that this could involve includes:

* Enhancements to LSP4E (support for new parts of the protocol, or enhancements to the implementation of existing parts), as motivated by CDT's needs
* Enhancements to CDT to make using the LSP integration smoother (e.g. project configuration, making use of existing settings)
* Enhancements to CDT to implement LSP protocol extensions that are specific to C/C++, or to a particular C/C++ language server (for example, cquery supports a protocol extension for semantic highlighting that might be neat to support in CDT)

Possible mentors: [mailto:[hidden email] Nathan Ridge]
========

As mentioned, I would be happy to mentor this project. Of course, if someone else would prefer to mentor it, I would be happy with that too, so just let me know :)

Regards,
Nate

[1] https://wiki.eclipse.org/Google_Summer_of_Code_2018_Ideas
_______________________________________________
cdt-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cdt-dev
Reply | Threaded
Open this post in threaded view
|

Re: Draft proposal for GSoC project for CDT/LSP integration

Doug Schaefer-3
Looks awesome Nate! Thanks for this. You would make a great mentor. Please proceed.

Cheers,
Doug.

> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On
> Behalf Of Nathan Ridge
> Sent: Saturday, January 20, 2018 8:00 PM
> To: CDT Mailing List <[hidden email]>
> Subject: [cdt-dev] Draft proposal for GSoC project for CDT/LSP integration
>
> Hi,
>
> I would like to propose a GSoC project for integrating CDT with the Language
> Server Protocol.
>
> Please find below a draft of the proposal. I'm posting it here for comment
> before adding it to the 2018 GSoC proposals wiki page [1]. Any feedback is
> welcome!
>
> ========
> = Eclipse CDT: Integration with the Language Server Protocol =
>
> [https://www.eclipse.org/cdt/ Eclipse CDT] (C/C++ Development Tools)
> currently uses a homegrown C++ parser and code analysis engine for providing
> semantics-aware navigation, completion, refactoring, and other editing
> features. This parser has fallen behind in C++ language support (e.g. it currently
> has only partial C++14 support and no C++17 support) and is increasingly a
> maintenance burden.
>
> The [https://microsoft.github.io/language-server-protocol/ Language Server
> Protocol] is a protocol that allows decoupling "language servers" that provide
> support for semantics-aware features, from editors / IDEs that provide the UI
> for these features. This facilitates reusing the parser and code analysis engine
> already present in a compiler like [https://clang.llvm.org/ clang], exposed via a
> language server. There is a project underway to support the client side of the
> protocol in Eclipse, [https://projects.eclipse.org/projects/technology.lsp4e
> LSP4E].
>
> The goal of this GSoC project is to integrate Eclipse CDT with clang-based C/C++
> language servers such as [https://clang.llvm.org/extra/clangd.html clangd] or
> [https://github.com/jacobdufault/cquery/ cquery].
>
> Specific work that this could involve includes:
>
> * Enhancements to LSP4E (support for new parts of the protocol, or
> enhancements to the implementation of existing parts), as motivated by CDT's
> needs
> * Enhancements to CDT to make using the LSP integration smoother (e.g.
> project configuration, making use of existing settings)
> * Enhancements to CDT to implement LSP protocol extensions that are specific
> to C/C++, or to a particular C/C++ language server (for example, cquery supports
> a protocol extension for semantic highlighting that might be neat to support in
> CDT)
>
> Possible mentors: [mailto:[hidden email] Nathan Ridge] ========
>
> As mentioned, I would be happy to mentor this project. Of course, if someone
> else would prefer to mentor it, I would be happy with that too, so just let me
> know :)
>
> Regards,
> Nate
>
> [1] https://wiki.eclipse.org/Google_Summer_of_Code_2018_Ideas
> _______________________________________________
> cdt-dev mailing list
> [hidden email]
> To change your delivery options, retrieve your password, or unsubscribe from
> this list, visit https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cdt-dev
Reply | Threaded
Open this post in threaded view
|

Re: Draft proposal for GSoC project for CDT/LSP integration

Nathan Ridge
Thanks! I've now added the proposal to the wiki page [1].

Regards,
Nate

[1] https://wiki.eclipse.org/Google_Summer_of_Code_2018_Ideas

________________________________________
From: [hidden email] <[hidden email]> on behalf of Doug Schaefer <[hidden email]>
Sent: January 22, 2018 4:02:58 AM
To: CDT General developers list.
Subject: Re: [cdt-dev] Draft proposal for GSoC project for CDT/LSP      integration

Looks awesome Nate! Thanks for this. You would make a great mentor. Please proceed.

Cheers,
Doug.

> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On
> Behalf Of Nathan Ridge
> Sent: Saturday, January 20, 2018 8:00 PM
> To: CDT Mailing List <[hidden email]>
> Subject: [cdt-dev] Draft proposal for GSoC project for CDT/LSP integration
>
> Hi,
>
> I would like to propose a GSoC project for integrating CDT with the Language
> Server Protocol.
>
> Please find below a draft of the proposal. I'm posting it here for comment
> before adding it to the 2018 GSoC proposals wiki page [1]. Any feedback is
> welcome!
>
> ========
> = Eclipse CDT: Integration with the Language Server Protocol =
>
> [https://www.eclipse.org/cdt/ Eclipse CDT] (C/C++ Development Tools)
> currently uses a homegrown C++ parser and code analysis engine for providing
> semantics-aware navigation, completion, refactoring, and other editing
> features. This parser has fallen behind in C++ language support (e.g. it currently
> has only partial C++14 support and no C++17 support) and is increasingly a
> maintenance burden.
>
> The [https://microsoft.github.io/language-server-protocol/ Language Server
> Protocol] is a protocol that allows decoupling "language servers" that provide
> support for semantics-aware features, from editors / IDEs that provide the UI
> for these features. This facilitates reusing the parser and code analysis engine
> already present in a compiler like [https://clang.llvm.org/ clang], exposed via a
> language server. There is a project underway to support the client side of the
> protocol in Eclipse, [https://projects.eclipse.org/projects/technology.lsp4e
> LSP4E].
>
> The goal of this GSoC project is to integrate Eclipse CDT with clang-based C/C++
> language servers such as [https://clang.llvm.org/extra/clangd.html clangd] or
> [https://github.com/jacobdufault/cquery/ cquery].
>
> Specific work that this could involve includes:
>
> * Enhancements to LSP4E (support for new parts of the protocol, or
> enhancements to the implementation of existing parts), as motivated by CDT's
> needs
> * Enhancements to CDT to make using the LSP integration smoother (e.g.
> project configuration, making use of existing settings)
> * Enhancements to CDT to implement LSP protocol extensions that are specific
> to C/C++, or to a particular C/C++ language server (for example, cquery supports
> a protocol extension for semantic highlighting that might be neat to support in
> CDT)
>
> Possible mentors: [mailto:[hidden email] Nathan Ridge] ========
>
> As mentioned, I would be happy to mentor this project. Of course, if someone
> else would prefer to mentor it, I would be happy with that too, so just let me
> know :)
>
> Regards,
> Nate
>
> [1] https://wiki.eclipse.org/Google_Summer_of_Code_2018_Ideas
> _______________________________________________
> cdt-dev mailing list
> [hidden email]
> To change your delivery options, retrieve your password, or unsubscribe from
> this list, visit https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cdt-dev
Reply | Threaded
Open this post in threaded view
|

Re: Draft proposal for GSoC project for CDT/LSP integration

Doug Schaefer-3
Hey Nate, in case you're not watching Twitter, Wayne has announced Eclipse has been selected for the GSOC and to contact [hidden email] to get hooked up. Not sure what the process is after that.

https://twitter.com/waynebeaton/status/964298424278433794

Thanks!
Doug.



> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On
> Behalf Of Nathan Ridge
> Sent: Monday, January 22, 2018 5:10 PM
> To: CDT General developers list. <[hidden email]>
> Cc: Wayne Beaton <[hidden email]>
> Subject: Re: [cdt-dev] Draft proposal for GSoC project for CDT/LSP integration
>
> Thanks! I've now added the proposal to the wiki page [1].
>
> Regards,
> Nate
>
> [1] https://wiki.eclipse.org/Google_Summer_of_Code_2018_Ideas
>
> ________________________________________
> From: [hidden email] <[hidden email]> on behalf
> of Doug Schaefer <[hidden email]>
> Sent: January 22, 2018 4:02:58 AM
> To: CDT General developers list.
> Subject: Re: [cdt-dev] Draft proposal for GSoC project for CDT/LSP
> integration
>
> Looks awesome Nate! Thanks for this. You would make a great mentor. Please
> proceed.
>
> Cheers,
> Doug.
>
> > -----Original Message-----
> > From: [hidden email] [mailto:[hidden email]]
> > On Behalf Of Nathan Ridge
> > Sent: Saturday, January 20, 2018 8:00 PM
> > To: CDT Mailing List <[hidden email]>
> > Subject: [cdt-dev] Draft proposal for GSoC project for CDT/LSP
> > integration
> >
> > Hi,
> >
> > I would like to propose a GSoC project for integrating CDT with the
> > Language Server Protocol.
> >
> > Please find below a draft of the proposal. I'm posting it here for
> > comment before adding it to the 2018 GSoC proposals wiki page [1]. Any
> > feedback is welcome!
> >
> > ========
> > = Eclipse CDT: Integration with the Language Server Protocol =
> >
> > [https://www.eclipse.org/cdt/ Eclipse CDT] (C/C++ Development Tools)
> > currently uses a homegrown C++ parser and code analysis engine for
> > providing semantics-aware navigation, completion, refactoring, and
> > other editing features. This parser has fallen behind in C++ language
> > support (e.g. it currently has only partial C++14 support and no C++17
> > support) and is increasingly a maintenance burden.
> >
> > The [https://microsoft.github.io/language-server-protocol/ Language
> > Server Protocol] is a protocol that allows decoupling "language
> > servers" that provide support for semantics-aware features, from
> > editors / IDEs that provide the UI for these features. This
> > facilitates reusing the parser and code analysis engine already
> > present in a compiler like [https://clang.llvm.org/ clang], exposed
> > via a language server. There is a project underway to support the
> > client side of the protocol in Eclipse,
> > [https://projects.eclipse.org/projects/technology.lsp4e
> > LSP4E].
> >
> > The goal of this GSoC project is to integrate Eclipse CDT with
> > clang-based C/C++ language servers such as
> > [https://clang.llvm.org/extra/clangd.html clangd] or
> [https://github.com/jacobdufault/cquery/ cquery].
> >
> > Specific work that this could involve includes:
> >
> > * Enhancements to LSP4E (support for new parts of the protocol, or
> > enhancements to the implementation of existing parts), as motivated by
> > CDT's needs
> > * Enhancements to CDT to make using the LSP integration smoother (e.g.
> > project configuration, making use of existing settings)
> > * Enhancements to CDT to implement LSP protocol extensions that are
> > specific to C/C++, or to a particular C/C++ language server (for
> > example, cquery supports a protocol extension for semantic
> > highlighting that might be neat to support in
> > CDT)
> >
> > Possible mentors: [mailto:[hidden email] Nathan Ridge]
> > ========
> >
> > As mentioned, I would be happy to mentor this project. Of course, if
> > someone else would prefer to mentor it, I would be happy with that
> > too, so just let me know :)
> >
> > Regards,
> > Nate
> >
> > [1] https://wiki.eclipse.org/Google_Summer_of_Code_2018_Ideas
> > _______________________________________________
> > cdt-dev mailing list
> > [hidden email]
> > To change your delivery options, retrieve your password, or
> > unsubscribe from this list, visit
> > https://dev.eclipse.org/mailman/listinfo/cdt-dev
> _______________________________________________
> cdt-dev mailing list
> [hidden email]
> To change your delivery options, retrieve your password, or unsubscribe from
> this list, visit https://dev.eclipse.org/mailman/listinfo/cdt-dev
> _______________________________________________
> cdt-dev mailing list
> [hidden email]
> To change your delivery options, retrieve your password, or unsubscribe from
> this list, visit https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cdt-dev
Reply | Threaded
Open this post in threaded view
|

Re: Draft proposal for GSoC project for CDT/LSP integration

Nathan Ridge
> Hey Nate, in case you're not watching Twitter, Wayne has announced Eclipse has been
> selected for the GSOC and to contact [hidden email] to get hooked up. Not sure what
> the process is after that.

Thanks for the heads up :) I don't follow Twitter but I'm subscribed to soc-dev, and saw Wayne's note there. I haven't registered as a mentor yet but will in the coming days.

Best,
Nate
_______________________________________________
cdt-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cdt-dev