The Rust programming language is continuing to grow in popularity as the 5th most discussed project on GitHub (https://octoverse.github.com/). However, almost 10% of Rust users are looking for better IDE support and 5% of past users stopped using Rust due to it's lacking IDE support (https://blog.rust-lang.org/2017/09/05/Rust-2017-Survey-Results.html). The Eclipse marketplace does have RustDT, which excluding Eclipse Corrosion, is the only Rust support plugin, but as of 2017, RustDT is no longer actively maintained (https://github.com/RustDT/RustDT).
Within one year VSCode went from 3.8% to 34% of the Rust developer market share due to its available Rust Language Server integration. There is the opportunity to develop and popularize a Language Server based plugin for complete Rust project support in Eclipse. This not only helps those who are looking for better IDE support but exposes more Eclipse IDE users to Rust, and more Rust users to Eclipse.
The scope of the project is to provide development tools for Rust and Cargo based Rust applications in the Eclipse IDE. This includes creating projects, rich edition of source code files and manifest files, running and debugging code under development, running test suites, and packaging and deploying projects.
Support for in IDE Cargo Crate management is currently out of scope but can be reconsidered in the future.
Eclipse Corrosion provides development tools for Rust and Cargo inside the Eclipse IDE.
- Eclipse Corrosion contains TextMate grammars for Rust (https://github.com/tomgrohl/Rust.tmbundle) under MIT and TOML (https://github.com/textmate/toml.tmbundle) under an unspecified license
- Corrosion requires the Rust Languae Server (https://github.com/rust-lang-nursery/rls) which is under Apache-2.0 License or the MIT license at our option
- Corrosion does not ship, but has the potential to download rustup (https://github.com/rust-lang-nursery/rustup.rs) and Cargo (https://github.com/rust-lang/cargo), both under the Apache-2.0 license
- Corrosion uses the Rust and Cargo logos are owned by Mozilla and distributed under the terms of the Creative Commons Attribution license (CC-BY)
Joining the Eclipse Community, we expect Corrosion to get higher visibility, leading to more users and contributors. Getting a more active community raises the quality of Corrosion through contributions and raised issues, making a better Rust development process for all Eclipse users.
Eclipse is a leading IDE for Java, C, and C++, which make up 3 of the 4 most common non-Rust languages used by Rust developers (https://blog.rust-lang.org/images/2016-06-Survey/what_language.png). This cross in communities will allow for easier communication and shared collaboration with other Eclipse.org projects.
Depending on the future popularity of Rust, we'd like to consider the creating of an "Eclipse IDE for Rust developers" just like other typical Eclipse IDE package. Being part of Eclipse Community is a requirement to succeed in implementing this and will hopefully help the adoption of the Rust programming language.
Bugfix and incremental improvements will be happening on the existing code.
An Eclipse Corrosion 1.0.0 version will be released once debug support is added. If implemented for Rust, support will be added using the Debug Protocol, but in the mean time using CDT GDB.
Beyond this, as the user base grows, more requirments will come to light and added, including further integration of `cargo` commands.
Eclipse Corrosion already has automated builds and is able to produce a build anytime.
We'd like to make a 1st incubation release of Eclipse Corrosion 0.1.0 in the week after it's moved under the Eclipse.org community.
- Red Hat Inc.
The initial contribution comes with:
- Wizards to bootstrap a Cargo based Rust project (delegating to `cargo` CLI)
- Rich editor for Rust, with content-assist, hover, error reporting, find references, jump to declaration, hierarchical navigation (outline)... relying on the Rust Language Server and TextMate grammars
- Launch Configuration to run project code from Eclipse IDE (delegating to `cargo` CLI)
- Wizard to package Cargo Based Rust projects into distributable tarballs (delegating to `cargo` CLI)
- Preference options to install rust compiler and language server along with installing new toolchains and setting the system default toolchain
- Log in to post comments