[GSoC2017] Proposal of golang integration.

Aleix Pol aleixpol at kde.org
Mon Mar 20 23:29:31 UTC 2017


On Mon, Mar 20, 2017 at 9:43 PM, Mikhail Ivchenko <ematirov at gmail.com> wrote:
> Hello,
>
> Firstly, I want to apologize since I understand that ideally some kind of
> proposal should have been submitted before actual start of application.
>
> Briefly about me:
> I'm 18 years old student from Russia who has some kind of experience in
> C++\Qt and Go. I was Google Code-In GP Winner with KDE in 2013 and 2014
> years and have some commits to KDevelop as well. Also, I mentored few tasks
> in GCI this year.
>
> So, my proposal is mostly inspired by GSoC 2017 page. I had a quick research
> and come up with such ideas about Go language integration:
> 1. For support building \ project exploring:
>     - Implement IProjectBuilder in something like
> projectbuilders/golangbuilder
>     - Implement IBuildSystemManager in smtg like projectmanagers/golang
>     Main goal is to add 1) possibility to open golang projects and handle
> files of it. (Probably all files inside specific folder using
> AbstractFileManagerPlugin); 2) possibility to build \ install project and
> change such parameters as "GOPATH" and "go" executable path (for using
> different versions of Gofor example).
> 2. For source code formatting it's possible to use "go fmt" - standard tool
> for formatting. Just need to implement ISourceFormatter and pass calls to
> "go fmt".
> 3. For autocompletion support it's possible to use gocode
> (https://github.com/nsf/gocode). It's a popular autocompletion daemon for Go
> which is used in such editors as Vim, Atom, Emacs, VS Code. This will be
> probably one of hardest features to implement.
> 4. Re semantic highlighting - as far as I know there are no real tools for
> highlighting - so I can only try to update existing Kate syntax files if
> they are outdated.
> 5. Addition but probably even more hard part could be implementing support
> for calling "gometalinter" (https://github.com/alecthomas/gometalinter) and
> parsing \ displaying list of warnings.
>
> I personally would like to go with 1-4 and try to work on 5 if I'll have
> time remaining.
>
> Does it look interesting to anyone? Could someone mentor me please?
>
> Best regards,
> Mikhail Ivchenko

Hi Mikhail,
That's certainly interesting.

Do you have any experience with KDevelop? It would be really
interesting to see a patch of yours (maybe fix a bug that bothers
you?). This way we get to see how you work.

You only mentioned code completion, does that mean you are not
interested in working on a DUChain implementation for Go?

Somebody worked on a go plugin some time ago:
https://github.com/KDE/kdev-go

Would it make sense to build on top of it?

Looking forward to your reply!
Aleix


More information about the KDevelop-devel mailing list