Skip to content
This repository has been archived by the owner on Dec 29, 2022. It is now read-only.

Tracking issue - support other editors #87

Open
8 of 12 tasks
nrc opened this issue Nov 6, 2016 · 37 comments
Open
8 of 12 tasks

Tracking issue - support other editors #87

nrc opened this issue Nov 6, 2016 · 37 comments
Labels

Comments

@nrc
Copy link
Member

nrc commented Nov 6, 2016

@autozimu
Copy link
Member

autozimu commented Feb 11, 2017

FYI, for vim/neovim users, one can check https://github.com/autozimu/LanguageClient-neovim. Thanks.

@booyaa
Copy link
Contributor

booyaa commented Mar 17, 2017

Don't forget the rust extension for vscode: https://marketplace.visualstudio.com/items?itemName=kalitaalexey.vscode-rust

@aergonaut
Copy link

aergonaut commented May 17, 2017

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.

@Nashenas88
Copy link
Contributor

@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!

@aergonaut
Copy link

@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.

@booyaa
Copy link
Contributor

booyaa commented Jun 30, 2017

probably worth tracking these related issues...

#261 - website for configuring RLS with your favourite editor
#214 - sublime support
#55 - eclipse che support

@booyaa
Copy link
Contributor

booyaa commented Jun 30, 2017

Haven't tested this yet, but I've found emacs support: https://github.com/emacs-lsp/lsp-rust

@bbigras
Copy link

bbigras commented Jun 30, 2017

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.

@Dushistov
Copy link

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.

@rrichardson
Copy link

booyaa/rustlangserver.github.io#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)

@nrc
Copy link
Member Author

nrc commented Sep 7, 2017

@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.

@ghost
Copy link

ghost commented Sep 13, 2017

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.

@sophiajt
Copy link

@Slikrick - great minds. I just added it. Yeah, it seems to work great so I checked Sublime off the list.

@mehcode
Copy link

mehcode commented Sep 13, 2017

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.

@aergonaut
Copy link

@mehcode that actually sounds like a great idea

@nrc nrc added the clients label Sep 13, 2017
@nrc
Copy link
Member Author

nrc commented Sep 13, 2017

I added some docs about implementing clients - https://github.com/rust-lang-nursery/rls/blob/master/clients.md

@nrc
Copy link
Member Author

nrc commented Sep 14, 2017

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.

@mehcode
Copy link

mehcode commented Sep 14, 2017

@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

@nrc
Copy link
Member Author

nrc commented Sep 14, 2017

@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?

@nrc
Copy link
Member Author

nrc commented Sep 14, 2017

Actually let me move this conversation over to #478

@jankeromnes
Copy link

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:

  • Making Cloud9 support the Language Server Protocol (by hooking up its relevant IDE features with a new LSP plugin, as described in this thread)
  • Integrating 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! 😄

@Xanewok
Copy link
Member

Xanewok commented Oct 4, 2017

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).

@bkchr
Copy link
Contributor

bkchr commented Oct 30, 2017

For spacemacs users (an emacs distribution), I maintain a rust rls layer here: https://github.com/bkchr/rustrls

@nrc
Copy link
Member Author

nrc commented Jan 25, 2018

There is some new work on using the RLS from Eclipse: https://github.com/LucasBullen/redOx

@mickaelistria
Copy link

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

@LucasBullen
Copy link

@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/)

@david-christiansen
Copy link

RLS seems to work reasonably well in Emacs using the eglot package. No special configuration was necessary.

@Xanewok
Copy link
Member

Xanewok commented Mar 1, 2019

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 xi-editor/xi-editor#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.

@svenefftinge
Copy link

@Xanewok
Theia as well as https://gitpod.io support Rust, based on the extension you referenced.
So, yes, please add them. ❤️

@Xanewok
Copy link
Member

Xanewok commented Mar 1, 2019

Done, thanks! (Just checked and gitpod.io indeed works out of box, nice work!)

@ZoeyR
Copy link
Contributor

ZoeyR commented Mar 1, 2019

@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.

@cmyr
Copy link
Contributor

cmyr commented Mar 2, 2019

@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 xi-editor/xi-editor#845; there's no explicit tracking issue at the moment.

@Xanewok Xanewok mentioned this issue Mar 3, 2019
@ShalokShalom
Copy link

Eclipse Che is deprecated in favor of Theia, somebody might like to remove it from the OP.

@Xanewok
Copy link
Member

Xanewok commented May 5, 2019

@ShalokShalom thanks for the heads up! Do you have any link to a post or an article with deprecation notice?

@ShalokShalom
Copy link

It seems like I misread something. Che is actually integrated in Theia. Thanks

@mickaelistria
Copy link

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.

@jwhite927
Copy link

Kakoune works with RLS via: kak-lsp

https://github.com/ul/kak-lsp

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests