Open nrc opened 8 years ago
FYI, for vim/neovim users, one can check https://github.com/autozimu/LanguageClient-neovim. Thanks.
Don't forget the rust extension for vscode: https://marketplace.visualstudio.com/items?itemName=kalitaalexey.vscode-rust
I'm working on creating an Atom package using the atom/atom-languageclient package. The package code can be found here: https://github.com/aergonaut/languageserver-rust
Autocomplete, definitions, hover, and lint diagnostics all work currently.
@aergonaut, I'll definitely be watching yours closely. My visualizer project can do much more in atom than in vscode. I'm looking forward to it!
@Nashenas88 Major derp on my part, I had an outdated version of RLS installed that had a bug in it making it report paths incorrectly. Updating RLS cleared up the problems I was having with showing lints.
probably worth tracking these related issues...
Haven't tested this yet, but I've found emacs support: https://github.com/emacs-lsp/lsp-rust
Haven't tested this yet, but I've found emacs support: https://github.com/emacs-lsp/lsp-rust
According to http://langserver.org/ , https://github.com/emacs-lsp/lsp-mode may be better.
Haven't tested this yet, but I've found emacs support: https://github.com/emacs-lsp/lsp-rust
According to http://langserver.org/ , https://github.com/emacs-lsp/lsp-mode may be better.
Actually it is the same thing, lsp-mode is like "main function",
and lsp-rust is "subroutine" that called from "main function".
To work with rust you need lsp-mode+lsp-rust, to work with go
you need lsp-mode+lsp-go and so on.
https://github.com/booyaa/rustlangserver.github.io/pull/4 added to document the installation process for vim 8. It also includes a bash script which will install the entire rustc/rls toolchain and configure vim (on a posix machine)
@vibhavp @aergonaut @autozimu and others in this thread. We'll be using next week's dev-tools team meeting to discuss getting more clients supporting the RLS. It would be really useful if people who are (or who are interested in) implementing editor support can attend. The meeting will be on irc, in the #rust-dev-tools channel on the Mozilla server at 8pm UTC on Monday 11th September. If you have anything specific to add to the agenda, or any questions please feel free to ask here or email me at my github username at mozilla.com.
I haven't seen it mentioned on any issues but there is a new sublime LSP plugin that is tested with RLS and works well from my initial testing: https://github.com/tomv564/LSP
Dunno if its enough to be checked off on the list, if you need any more information i can do some testing.
@Slikrick - great minds. I just added it. Yeah, it seems to work great so I checked Sublime off the list.
To be clear on Atom, both langaugeserver-rust
and ide-rust
would need language-rust
and atom-ide-ui
installed for them to work ( ide-rust
now will install the dependencies automatically so you don't need to worry about it ).
I apparently didn't realize there was a languageserver-rust
when I wrote ide-rust
. Care to merge in some way, @aergonaut ? It'd be nice to have 2 pairs of eyes on one.
@mehcode that actually sounds like a great idea
I added some docs about implementing clients - https://github.com/rust-lang-nursery/rls/blob/master/clients.md
For the impl period, I'd really like to push ahead in this area. If people have an editor they'd like to work on that is great, if you'd like to help out I'd recommend working on Atom - there is already existing work, Atom are keen on supporting the LSP as a first-class component (see Atom-IDE), and it is a popular editor. If work there progresses quickly, or lots of people are interested then we should pick another target editor to focus on.
@nrc The ide-rust package is as feature complete as it can be with the status of atom-ide.
See https://github.com/mehcode/atom-ide-rust/blob/master/README.md#features
@mehcode can we support our extensions to the LSP in Atom (I hope we can, the LSP is designed to be extensible). Are all the configuration options implemented?
Actually let me move this conversation over to #478
Could you please add Cloud9 IDE to the list? It's a super efficient web-based IDE, which we use for https://janitor.technology (a web service that makes it easy to contribute to Firefox, Servo and other open source projects).
Cloud9 already has basic support for Rust (well, syntax highlighting at least) but nothing too advanced like it does for other languages like JavaScript (e.g. jump to definition, rename symbol, linting, etc). It would be amazing to integrate rls
in Cloud9, especially since many Janitor users use Cloud9 to work on Rust code in Servo and Firefox.
It can be done by writing Cloud9 SDK plugins, and more specifically by:
rls
in Cloud9 by connecting the IDE to the language server itself (see above thread for details as well)I'd love to work on this, but I'd appreciate any help and suggestions I can get. Thanks! 😄
So there seems to be no LSP support for the Cloud9 itself (which seems to be requested and would improve language support considerably in general) so the very first step would be to implement an LSP client for that.
This section might also prove useful to see what needs to be done from the LSP side: https://github.com/rust-lang-nursery/rls/blob/master/clients.md#where-there-is-no-lsp-support.
@jankeromnes would you be willing to start working on such client? From what I understand the language handler would have to register itself as the provider for all the necessary IDE features. A generic LSP client could be implemented as a separate package, which other language-specific language handlers could consume (just like with rls-vscode using the LSP client of https://github.com/Microsoft/vscode-languageserver-node).
For spacemacs users (an emacs distribution), I maintain a rust rls layer here: https://github.com/bkchr/rustrls
There is some new work on using the RLS from Eclipse: https://github.com/LucasBullen/redOx
The Eclipse Corrosion project provides Rust edition in Eclipse IDE using RLS. This project is part of the package "Eclipse IDE for Rust Developers" which will be available as release in a month, and which is already available for testing at https://www.eclipse.org/downloads/index-developer.php
@nrc Are you able to add a link to Corrosion in this issue's initial comment for exposure? Either the project link (https://github.com/eclipse/corrosion) or the link to the one-click Eclipse IDE for Rust Developers (https://www.eclipse.org/downloads/eclipse-packages/)
RLS seems to work reasonably well in Emacs using the eglot
package. No special configuration was necessary.
Thanks for comments everyone! I updated the list with most recent plugins/extensions.
@dgriffen does VS support work out of box with https://github.com/dgriffen/rls-vs2017? Should I link in the OP?
@cmyr @raphlinus is the link at https://github.com/xi-editor/xi-editor/issues/659 the most recent tracking issue on LSP/plugins support? Is there anything we can do on our side to help with this?
@svenefftinge does Theia work out of box with Rust? I noticed https://github.com/theia-ide/theia-rust-extension/ and I'm not sure whether it should be linked in the OP as well.
@Xanewok Theia as well as https://gitpod.io support Rust, based on the extension you referenced. So, yes, please add them. :heart:
Done, thanks! (Just checked and gitpod.io indeed works out of box, nice work!)
@Xanewok it should work out of the box. Right now I'm chasing down a few issues that seem to have surfaced with recent versions of the Rust compiler.
@Xanewok LSP support in xi is currently blocked on a rewrite of the plugin system, although I'm hoping to make progress on that this month. The best overview of the current situation and what the rewrite would address is probably https://github.com/xi-editor/xi-editor/issues/845; there's no explicit tracking issue at the moment.
Eclipse Che is deprecated in favor of Theia, somebody might like to remove it from the OP.
@ShalokShalom thanks for the heads up! Do you have any link to a post or an article with deprecation notice?
It seems like I misread something. Che is actually integrated in Theia. Thanks
It's the other way round Eclipse Che (that is a container based Development Environment where "editor" is only one brick of the solution) embeds by default Eclipse Theia as editor/IDE. But Eclipse Che using containers allows an addition/different way of creating plugins, defining the language servers in containers and hooking them in Theia.
cc #18
Cloud
Check out all issues labelled with 'clients'