On Mon, Nov 18, 2013 at 3:25 PM, Gokcehan Kara <[email protected]>wrote:
> I have been thinking of working on an editor agnostic code helper library > with an autocomplete engine for rust (since there isn't anything yet?) as a > hobby project to get to know the internals of the compiler. Examples of > similar projects in different languages include; > This is a great idea. Rust needs to have something like libclang. In fact, I think the Clang project was started because GCC had such poor support for being used as a library (well, that and the GPLv3 license making it hard for Apple to link it into Xcode). This should teach us something. > - [youcompleteme](https://github.com/Valloric/YouCompleteMe) > (C/C++/Objective-C/Objective-C++) (this one is specific to vim and a more > general solution to autocompletion in vim but it includes a clang based > completion engine for c family languages) > YCM is a bit more complicated than that (and I'd know since I wrote it :)). It provides a general framework for tying together various semantic engines and building an awesome code completion experience on top. YCM currently uses libclang as the semantic engine for C/C++/ObjC/ObjC++, Jedi for Python, OmniSharp for C# etc. Plugging in a new semantic engine is very easy. YCM can use the Vim omnifunc as the semantic source so it can tie into other plugins that provide an omnifunc, like Eclim for Java or gocode for Go. YCM then provides its own features on top of that. YCM *used* to be specific to Vim, but that's slowly changing. I recently rewrote it from scratch to have a client-server architecture where almost all of the logic is in the server; the client is a very thin shell that merely queries the server. Some time in the future you'll see YCM clients for other editors like SublimeText, emacs and others. I first have to pull out the server source code into a separate repo on GitHub. Bottom line, if you get to a point where you have a library with an API that can provide completions for Rust code, I'd love to hook it into YCM. There's a similar project (DCD <https://github.com/Hackerpilot/DCD>) going for D as well; when that's more stable it will be hooked up to YCM too.
_______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
