[GSoC2017] Proposal of golang integration.

Mikhail Ivchenko ematirov at gmail.com
Mon Mar 20 20:43:53 UTC 2017


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20170320/275a0c5a/attachment.html>


More information about the KDevelop-devel mailing list