Hacker News new | ask | show | jobs
YouCompleteMe as a Server (val.markovic.io)
18 points by syncontrol 4331 days ago
3 comments

As an emacs C++ user YouCompleteMe is the only VIM plugin that makes me jealous. I want the code navigation and completion you get with VS or XCode but within emacs. I know there are other plugins that try to do this, but as the author mentioned, all the repeated works leads to an overall mediocre results in most cases.

Maybe the front end of something like irony-mode [0] can be adapted to use the YouCompleteMe backend.

[0] - https://github.com/Sarcasm/irony-mode

Author of YCM here; supporting emacs is one of the big reasons why ycmd is now vim-agnostic and targeting other editors. I don't use emacs and never have, but plenty of people I respect do and they all say they'd love to see something like YCM for their editor of choice.

Problem is, I know nothing of emacs scripting and have even less time to maintain Yet Another open-source project. So if I end up being the person who writes such a client, it will be shitty.

I'm really hoping someone from the emacs community takes the lead on building a ycmd client. I'd provide any and all support they'd need.

This is comparable in scope to Microsoft's Project Roslyn (compiler as a service).
Author of YCM/ycmd here; I'd be happy to answer any questions you might have!
Is there a specific API document for ycmd? I tried looking through the code base and did not see anything explicit. For emacs support the implementation will have to be in elisp, so having a python independent way of describing the API would be helpful.
I'm still in the process of writing API docs[1], but I did write a pretty thorough example client[2] that demonstrates how to talk to ycmd. It echos out all the chatter between the client and server and even pretty-prints and syntax-highlights the requests and responses. It should be pretty easy to understand how things work.

[1]: https://github.com/Valloric/ycmd/blob/master/README.md

[2]: https://github.com/Valloric/ycmd/blob/master/examples/exampl...