On Tue, Nov 19, 2013 at 1:12 PM, Gokcehan Kara <[email protected]>wrote:
> I will be speculating a little since I haven't actually read the source. > As far as I understand, YouCompleteMe uses python for some parts but at its > core it has a cpp component using libclang library. libclang library itself > is already something that provides code completion which is the thing > missing for rust language. > > [libclang]: http://clang.llvm.org/doxygen/group__CINDEX.html > This is mostly correct. libclang is clang compiler API (the entire compiler is in the binary and is exposed through the C API). YCM is written is several languages: VimScript for the Vim client and Python & C++ for the server binary. Python is the glue code between the various components and semantic engines. Jedi is a semantic engine written in Python, OmniSharp is written in C#. There's a C++ component that talks to libclang. There's another C++ component that does the complex subsequence candidate string matching and candidate ranking. > > > On Tue, Nov 19, 2013 at 10:13 PM, Gaetan <[email protected]> wrote: > >> I think we can write in rust and perhaps reuse part of the compiler, but >> we cannot allow to support only fully compiler crates. >> >> It may be possible to begin a draft in language such as python >> (YouCompleteMe seems to be written mostly in python) >> >> ----- >> Gaetan >> >> >> >> 2013/11/19 Gokcehan Kara <[email protected]> >> >>> I'm willing to help on this task, I think having a good completion >>>> library can help a lot smoothing the learning curve of a new language. I >>>> learned python in a few days with aptana, and I remember a few years ago >>>> how it was easy to write C++ with visual studio. Having an IDE integration >>>> is almost as important as having good tutorials. >>> >>> >>> That's great. I agree that it would be nice for newbies and I think also >>> for others as most people are already quite spoiled by the capabilities of >>> modern IDE's these days. >>> >>> I'm also a newbe in Rust and I imagine you want to write in rust itself. >>>> I can help on the integration with sublime. >>> >>> >>> I was hoping to write in rust because I don't want to implement/maintain >>> a parser and typechecker from scratch. I was very pleased to see that it's >>> possible to access everything in `librustc` and `libsyntax` with a simple >>> `extern`, not sure if this will be removed later. >>> >>> rustfind (https://github.com/dobkeratops/rustfind) does this and more, >>>> for crates that compile. >>> >>> >>> I wasn't aware of that, looks very nice indeed. I will take a look and >>> see if I can contribute somehow when I have some time. >>> >>> Not very, for the general case. If you want autocompletion as you >>>> type, you currently need to have a fully-compilable crate. Otherwise, >>>> parsing or typechecking or something else will fail and you won't be >>>> able to get any results. rustc is currently very all-or-nothing. >>> >>> >>> It's a bummer. Are there any plans to implement some error recovery to >>> rustc? >>> >>> But, you can get useful information for completion out of an >>>> already-compiling crate, though I'm not sure how much better it would >>>> be than what etags already does. >>> >>> >>> It has been some time since I last tried tags for autocompletion but it >>> wasn't very accurate as far as I remember. As far as I know you also need >>> some editor plugin for this, something like [OmniCppComplete]( >>> http://www.vim.org/scripts/script.php?script_id=1520) which is >>> basically a cpp parser implemented in vimscript. >>> >>> Very, since it would require reworking most of the compiler ;) >>> >>> >>> :) >>> >> >> > > _______________________________________________ > Rust-dev mailing list > [email protected] > https://mail.mozilla.org/listinfo/rust-dev > >
_______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
