<div dir="ltr">Hello,<div><br></div><div>Firstly, I want to apologize since I understand that ideally some kind of proposal should have been submitted before actual start of application.</div><div><br></div><div>Briefly about me:</div><div>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. </div><div><br></div><div>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:</div><div>1. For support building \ project exploring:</div><div>    - Implement IProjectBuilder in something like projectbuilders/golangbuilder</div><div>    - Implement IBuildSystemManager in smtg like projectmanagers/golang</div><div>    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).</div><div>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".</div><div>3. For autocompletion support it's possible to use gocode (<a href="https://github.com/nsf/gocode">https://github.com/nsf/gocode</a>). 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.</div><div>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.</div><div>5. Addition but probably even more hard part could be implementing support for calling "gometalinter" (<a href="https://github.com/alecthomas/gometalinter">https://github.com/alecthomas/gometalinter</a>) and parsing \ displaying list of warnings.</div><div><br></div><div>I personally would like to go with 1-4 and try to work on 5 if I'll have time remaining.</div><div><br></div><div>Does it look interesting to anyone? Could someone mentor me please?</div><div><br></div><div>Best regards,</div><div>Mikhail Ivchenko</div></div>