-
Notifications
You must be signed in to change notification settings - Fork 255
Atom support #478
Comments
Atom-IDE announcement: https://blog.atom.io/2017/09/12/announcing-atom-ide.html |
Added checklist of stuff to do to the OP. There's probably more done than I know about - I've just ticked off what I know for sure about. We should track any bugs or opportunity for polish that come. |
@aergonaut As ide-* are the official names do you want to just move over to ide-rust? I can make you a collaborator. From a quick glance the difference in our packages is mine installs rustup and rls with a prompt. Going to sleep now but I can run through that checklist tomorrow and give updates. |
@mehcode works for me! |
I am working on integrating http://vertexclique.github.io/tokamak/ I propose adding all those implementations on top of it is better than creating yet another package. |
Hasn't been done yet. Looks simple enough. @nrc FYI
These are not done. I understood
Done.
Done. Did you mean for the line above here to be different?
These features are not part of the LSP implementation but I'd agree are part of a good IDE experience. Atom already has notions of where to do these things though.
There is https://atom.io/packages/build-cargo supports this.
Yes.
There exists install documentation. Usage will need to be updated once we have configuration.
Done. Briefly going over tokamak. It does look very nice. From talking to the Atom team, the I added you as a collaborator on Also added you @aergonaut I won't be able to start working on anything till likely early next week. If you want to get started I'm on IRC or Slack and can help direct you how to do the thing in Atom. @nrc Would you like me to move |
Sidenote:
features are included in Tokamak. |
rls.toml has been removed we depend on the client for configuration now.
Hmm, that is disappointing. What is the likelihood of them addressing this? Seems essential for an IDE to me.
They were meant to be headings and sub-headings, but that is lost in this check-list, sorry. To confirm on the user experience here, do we get user consent before installing anything? It should be configurable which branch to use (nightly vs stable vs beta) too.
I assume the client is required to do some work though to actually specify them? As a philosophical point, I think a Rust plugin (ide-rust) should be a Rust plugin, not an RLS plugin, so all the client-side stuff is important to include and get right (and track).
|
@vertexclique @mehcode So, I'm not sure what to do about the two different implementations. I agree with @mehcode that we should try and use the official 'ide-rust' name, and I think it would be better for users if there were a single implementation. Tokamak does seem to be further along in terms of implementing features. Do the two of you think there is a good path forward to merge the projects? |
Building with cargo is already supported with the atom build plugin atom-build-cargo. Unfortunately atom-build outputs in the old linter format (linter-indie v1) and atom-ide-ui consumes only the new format (linter-indie v2). As a result of this inconsistency it doesn't show up in the atom-ide-ui-diagnostic-ui panel (which replaces the linter package). Heres the issue with some pointers on the atom-build repo. I'll take a crack at it when I've got time but wont be jealous if I get swooped ;-) |
Unfortunately test failures are not currently parsed properly by anything in the ecosystem that I have found. When I get my shit together I'll send an rfc to rust to make the test formatter be configurable so we can have a machine readable option, but until then, it's hardcoded human-readable, so we need to write a parser or something. /cc @steveklabnik |
Atom-ide-ui does support linter v1 although it's a bit more strict than actual linter - I'd check the console for errors. |
So ide-rust is the official plugin I should be using? Atom 1.21 was just released 🎉 and it is supposed to have good language server support. (I'm guessing that's why I couldn't install the latest ide-rust until now) |
Yeah, I think ide-rust should be the promoted one. I'm going to add a deprecation notice to my repository and see if I can mark it as such in |
Should I still be using language-rust? Or does ide-rust replace that too? |
ide-rust will install language-rust if it is not installed already. You still need language-rust to provide syntax highlighting and language detection. ide-rust is separate and just provides RLS features. |
I've been working a little on improving ide-rust & rls on atom.
We have these since rust-lang/atom-ide-rust#14. It's currently implemented in a client watched Also worth mentioning my Rls changes #534, #552, #565 improve/will improve the performance situation greatly for the atom client. |
ide-rust 0.11 is now available, it has decent toolchain handling now with update notifications & graceful handling of missing rls-preview. |
ide-rust 0.13 is now out. I'd actually like for this package to be a little better advertised by the rust ide sites. Currently areweideyet.com has:
So ide-rust really should be mentioned as it's a single-package solution for rust in Atom. It automatically installs language-rust and afaik provides the functionality of the rest. forge.rust-lang.org/ides.html links to language-rust and here it also might make more sense to link to ide-rust there. |
Congrats on the release! I'll mention the release in the next tools news. The forge page shouldn't exist, it was removed from the repo some time ago but is still live for some reason. I filed an issue to remove it. I don't know who manages areweideyet.com. I think the best course of action would be to submit a PR to https://github.com/contradictioned/areweideyet. |
ide-rust 0.14 is out and now mentioned on areweideyet.com. The latest version brings support for the upcoming window/progress messages from Rls. |
ide-rust 0.15 is out with, amongst other improvements, support for CodeActions. That means rustc & clippy suggestions. |
ide-rust 0.16 is now available. It brings global setting of the Released today as today we have the first Rls nightly with This means you can turn the setting to |
ide-rust 0.17 is out with detection of potentially conflicting atom rust packages showing a simple notification dialog to allow disabling them, or ide-rust. This is mostly because of the large amount of rust packages doing the same sort of thing for atom. This should hopefully avoid a whole class of conflict issues, and help people keep their atom a little trimmer. |
Is there a configuration file I can use for ide-rust RLS options? I want to specify which features (i.e. |
It's mentioned in the readme. A rls.toml file at the project root can be used for all rls configuration. # rls.toml
features = ["foo"] |
Thanks! I want to specify a particular feature for when the crate is compiled as if it was being tested. (i.e. |
Any rls config can be used see https://github.com/rust-lang-nursery/rls#configuration. So you could try the unstable |
ide-rust 0.18 is now available. It brings the ability to disable ide-rust/rls on certain project paths. This is also the first release as part of rust-lang-nursery 🎉 |
I'll close this issue now as ide-rust is fairly mature nowadays, ide-rust repo is: https://github.com/rust-lang/atom-ide-rust |
Tracking issue for Atom support.
Existing work: https://github.com/aergonaut/languageserver-rust and https://github.com/mehcode/atom-ide-rust
Checklist (from clients.md):
The text was updated successfully, but these errors were encountered: