From c2b13af2e08622c177df4b12e48c47a61de01e69 Mon Sep 17 00:00:00 2001 From: Lucas Bullen Date: Tue, 6 Feb 2018 14:22:27 -0500 Subject: [PATCH] Issue #24: Project name confusing with the Redox OS project - redOx has been renamed to corrosion Signed-off-by: Lucas Bullen --- .project | 2 +- .travis.yml | 2 +- README.md | 19 ++- documentation/Installation.md | 20 +-- images/redOx.png | Bin 7170 -> 0 bytes .../.project | 2 +- .../build.properties | 0 org.eclipse.corrosion.feature/category.xml | 11 ++ .../feature.properties | 2 +- .../feature.xml | 4 +- .../pom.xml | 4 +- .../.classpath | 0 .../.gitignore | 0 .../.project | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 0 .../META-INF/MANIFEST.MF | 8 +- .../build.properties | 0 .../pom.xml | 6 +- .../projects/basic/Cargo.toml | 0 .../projects/basic/src/main.rs | 0 .../projects/basic_errors/Cargo.toml | 0 .../projects/basic_errors/src/main.rs | 0 .../projects/not_cargo/src/main.rs | 0 .../tests/AbstractCorrosionTest.java | 6 +- .../eclipse/corrosion}/tests/AllTests.java | 2 +- .../eclipse/corrosion}/tests/TestBuilder.java | 14 +- .../tests/TestExportCargoProjectWizard.java | 8 +- .../corrosion}/tests/TestIDEIntegration.java | 4 +- .../corrosion}/tests/TestLSPExtensions.java | 4 +- .../corrosion}/tests/TestLSPIntegration.java | 4 +- .../tests/TestNewCargoProjectWizard.java | 8 +- .../corrosion}/tests/TestPerspective.java | 6 +- .../tests/TestRunConfiguration.java | 6 +- .../tests/TestSyntaxHighlighting.java | 4 +- .../.classpath | 0 .../.gitignore | 0 .../.project | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 0 .../META-INF/MANIFEST.MF | 16 +- .../build.properties | 0 .../grammar/Rust.tmLanguage | 0 .../grammar/TOML.tmLanguage | 0 .../icons/cargo.png | Bin .../icons/cargo@2x.png | Bin .../icons/link_obj.png | Bin .../icons/rust.png | Bin .../icons/rust@x2.png | Bin .../images/cargo.png | Bin .../plugin.xml | 152 +++++++++--------- .../pom.xml | 4 +- .../scripts/rustup.sh | 0 .../snippets/rust.json | 0 .../corrosion}/CargoProjectTester.java | 2 +- .../eclipse/corrosion/CorrosionPlugin.java | 12 +- .../CorrosionPreferenceInitializer.java | 24 +-- .../corrosion/CorrosionPreferencePage.java | 68 ++++---- .../corrosion}/RLSClientImplementation.java | 4 +- .../corrosion}/RLSServerInterface.java | 2 +- .../RLSStreamConnectionProvider.java | 36 ++--- .../org/eclipse/corrosion}/RustManager.java | 10 +- .../eclipse/corrosion}/RustPerspective.java | 6 +- .../corrosion}/builder/AddCargoBuilder.java | 2 +- .../builder/IncrementalCargoBuilder.java | 12 +- .../builder/RemoveCargoBuilder.java | 2 +- .../builder/TestCargoBuilderEnabled.java | 2 +- .../corrosion}/debug/RustDebugDelegate.java | 20 +-- .../corrosion}/debug/RustDebugTab.java | 4 +- .../corrosion}/debug/RustDebugTabGroup.java | 2 +- .../debug/SourceLookupDirector.java | 6 +- .../debug/ToggleBreakpointAdapter.java | 2 +- .../debug/ToggleBreakpointsTargetFactory.java | 6 +- .../extensions/Implementations.java | 2 +- .../ImplementationsSearchQuery.java | 4 +- .../corrosion}/run/CargoRunDelegate.java | 18 +-- .../eclipse/corrosion}/run/CargoRunTab.java | 4 +- .../corrosion}/run/CargoRunTabGroup.java | 2 +- .../eclipse/corrosion}/snippet/Snippet.java | 2 +- .../SnippetContentAssistProcessor.java | 4 +- .../wizards/export/CargoExportWizard.java | 10 +- .../wizards/export/CargoExportWizardPage.java | 14 +- .../newCargo/NewCargoProjectWizard.java | 14 +- .../newCargo/NewCargoProjectWizardPage.java | 12 +- org.eclipse.redox.feature/category.xml | 11 -- pom.xml | 10 +- site/artifacts.jar | Bin 1798 -> 1799 bytes site/content.jar | Bin 10562 -> 13473 bytes ....corrosion.feature_0.1.0.201802080934.jar} | Bin 11969 -> 11967 bytes site/images/installSoftwareWizard.png | Bin 75869 -> 60930 bytes site/index.html | 10 +- ...g.eclipse.corrosion_0.1.0.201802080934.jar | Bin 0 -> 121766 bytes ... org.eclipse.lsp4e_0.5.0.201802011509.jar} | Bin 281733 -> 283260 bytes ...se.lsp4j.jsonrpc_0.4.0.v20180201-0800.jar} | Bin 86056 -> 86055 bytes ...rg.eclipse.lsp4j_0.4.0.v20180201-0800.jar} | Bin 294839 -> 294935 bytes .../org.eclipse.redox_0.1.0.201801301640.jar | Bin 120194 -> 0 bytes site/site.xml | 8 +- target-platform/pom.xml | 2 +- target-platform/target-platform.target | 2 +- 97 files changed, 338 insertions(+), 335 deletions(-) delete mode 100644 images/redOx.png rename {org.eclipse.redox.feature => org.eclipse.corrosion.feature}/.project (88%) rename {org.eclipse.redox.feature => org.eclipse.corrosion.feature}/build.properties (100%) create mode 100644 org.eclipse.corrosion.feature/category.xml rename {org.eclipse.redox.feature => org.eclipse.corrosion.feature}/feature.properties (88%) rename {org.eclipse.redox.feature => org.eclipse.corrosion.feature}/feature.xml (98%) rename {org.eclipse.redox.feature => org.eclipse.corrosion.feature}/pom.xml (79%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/.classpath (100%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/.gitignore (100%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/.project (93%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/.settings/org.eclipse.jdt.core.prefs (100%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/META-INF/MANIFEST.MF (79%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/build.properties (100%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/pom.xml (83%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/projects/basic/Cargo.toml (100%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/projects/basic/src/main.rs (100%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/projects/basic_errors/Cargo.toml (100%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/projects/basic_errors/src/main.rs (100%) rename {org.eclipse.redox.tests => org.eclipse.corrosion.tests}/projects/not_cargo/src/main.rs (100%) rename org.eclipse.redox.tests/src/org/eclipse/redox/tests/AbstractRedoxTest.java => org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/AbstractCorrosionTest.java (95%) rename {org.eclipse.redox.tests/src/org/eclipse/redox => org.eclipse.corrosion.tests/src/org/eclipse/corrosion}/tests/AllTests.java (96%) rename {org.eclipse.redox.tests/src/org/eclipse/redox => org.eclipse.corrosion.tests/src/org/eclipse/corrosion}/tests/TestBuilder.java (89%) rename {org.eclipse.redox.tests/src/org/eclipse/redox => org.eclipse.corrosion.tests/src/org/eclipse/corrosion}/tests/TestExportCargoProjectWizard.java (94%) rename {org.eclipse.redox.tests/src/org/eclipse/redox => org.eclipse.corrosion.tests/src/org/eclipse/corrosion}/tests/TestIDEIntegration.java (94%) rename {org.eclipse.redox.tests/src/org/eclipse/redox => org.eclipse.corrosion.tests/src/org/eclipse/corrosion}/tests/TestLSPExtensions.java (94%) rename {org.eclipse.redox.tests/src/org/eclipse/redox => org.eclipse.corrosion.tests/src/org/eclipse/corrosion}/tests/TestLSPIntegration.java (96%) rename {org.eclipse.redox.tests/src/org/eclipse/redox => org.eclipse.corrosion.tests/src/org/eclipse/corrosion}/tests/TestNewCargoProjectWizard.java (92%) rename {org.eclipse.redox.tests/src/org/eclipse/redox => org.eclipse.corrosion.tests/src/org/eclipse/corrosion}/tests/TestPerspective.java (95%) rename {org.eclipse.redox.tests/src/org/eclipse/redox => org.eclipse.corrosion.tests/src/org/eclipse/corrosion}/tests/TestRunConfiguration.java (96%) rename {org.eclipse.redox.tests/src/org/eclipse/redox => org.eclipse.corrosion.tests/src/org/eclipse/corrosion}/tests/TestSyntaxHighlighting.java (95%) rename {org.eclipse.redox => org.eclipse.corrosion}/.classpath (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/.gitignore (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/.project (94%) rename {org.eclipse.redox => org.eclipse.corrosion}/.settings/org.eclipse.jdt.core.prefs (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/META-INF/MANIFEST.MF (65%) rename {org.eclipse.redox => org.eclipse.corrosion}/build.properties (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/grammar/Rust.tmLanguage (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/grammar/TOML.tmLanguage (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/icons/cargo.png (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/icons/cargo@2x.png (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/icons/link_obj.png (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/icons/rust.png (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/icons/rust@x2.png (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/images/cargo.png (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/plugin.xml (63%) rename {org.eclipse.redox => org.eclipse.corrosion}/pom.xml (93%) rename {org.eclipse.redox => org.eclipse.corrosion}/scripts/rustup.sh (100%) rename {org.eclipse.redox => org.eclipse.corrosion}/snippets/rust.json (100%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/CargoProjectTester.java (97%) rename org.eclipse.redox/src/org/eclipse/redox/RedoxPlugin.java => org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPlugin.java (81%) rename org.eclipse.redox/src/org/eclipse/redox/RedoxPreferenceInitializer.java => org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPreferenceInitializer.java (83%) rename org.eclipse.redox/src/org/eclipse/redox/RedoxPreferencePage.java => org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPreferencePage.java (84%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/RLSClientImplementation.java (95%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/RLSServerInterface.java (96%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/RLSStreamConnectionProvider.java (82%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/RustManager.java (95%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/RustPerspective.java (94%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/builder/AddCargoBuilder.java (98%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/builder/IncrementalCargoBuilder.java (86%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/builder/RemoveCargoBuilder.java (97%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/builder/TestCargoBuilderEnabled.java (96%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/debug/RustDebugDelegate.java (93%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/debug/RustDebugTab.java (99%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/debug/RustDebugTabGroup.java (97%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/debug/SourceLookupDirector.java (92%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/debug/ToggleBreakpointAdapter.java (99%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/debug/ToggleBreakpointsTargetFactory.java (92%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/extensions/Implementations.java (98%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/extensions/ImplementationsSearchQuery.java (98%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/run/CargoRunDelegate.java (93%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/run/CargoRunTab.java (98%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/run/CargoRunTabGroup.java (96%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/snippet/Snippet.java (98%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/snippet/SnippetContentAssistProcessor.java (98%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/wizards/export/CargoExportWizard.java (93%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/wizards/export/CargoExportWizardPage.java (94%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/wizards/newCargo/NewCargoProjectWizard.java (95%) rename {org.eclipse.redox/src/org/eclipse/redox => org.eclipse.corrosion/src/org/eclipse/corrosion}/wizards/newCargo/NewCargoProjectWizardPage.java (97%) delete mode 100644 org.eclipse.redox.feature/category.xml rename site/features/{org.eclipse.redox.feature_0.1.0.201801301640.jar => org.eclipse.corrosion.feature_0.1.0.201802080934.jar} (65%) create mode 100644 site/plugins/org.eclipse.corrosion_0.1.0.201802080934.jar rename site/plugins/{org.eclipse.lsp4e_0.5.0.201712182048.jar => org.eclipse.lsp4e_0.5.0.201802011509.jar} (74%) rename site/plugins/{org.eclipse.lsp4j.jsonrpc_0.4.0.v20180102-1024.jar => org.eclipse.lsp4j.jsonrpc_0.4.0.v20180201-0800.jar} (80%) rename site/plugins/{org.eclipse.lsp4j_0.4.0.v20180102-1024.jar => org.eclipse.lsp4j_0.4.0.v20180201-0800.jar} (68%) delete mode 100644 site/plugins/org.eclipse.redox_0.1.0.201801301640.jar diff --git a/.project b/.project index 4fde434..e3aec00 100644 --- a/.project +++ b/.project @@ -1,6 +1,6 @@ - redOx + corrosion diff --git a/.travis.yml b/.travis.yml index 12a8860..9d582b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,4 +23,4 @@ script: else mvn clean verify; fi -after_failure: "cat /home/travis/build/LucasBullen/redOx/org.eclipse.redox.tests/target/work/data/.metadata/.log" \ No newline at end of file +after_failure: "cat /home/travis/build/LucasBullen/corrosion/org.eclipse.corrosion.tests/target/work/data/.metadata/.log" \ No newline at end of file diff --git a/README.md b/README.md index 1ed1289..21985ad 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,14 @@ -# RedOx +# Corrosion + +> Corrosion was formerly called RedOx, but required a name change due to naming overlap with another project ([See issue #24](https://github.com/LucasBullen/redOx/issues/24)) + Support for Rust editing in Eclipse IDE. -RedOx (short for reduction–oxidation, the reaction that causes rust), is a Rust development plugin for the Eclipse IDE. Both [issue reports](https://github.com/LucasBullen/redOx/issues) and [pull requests](https://github.com/LucasBullen/redOx/pulls) are greatly appreciated. +Corrosion is a Rust development plugin for the Eclipse IDE. Both [issue reports](https://github.com/LucasBullen/corrosion/issues) and [pull requests](https://github.com/LucasBullen/corrosion/pulls) are greatly appreciated. -[![Build Status](https://travis-ci.org/LucasBullen/redOx.svg?branch=master)](https://travis-ci.org/LucasBullen/redOx) +[![Build Status](https://travis-ci.org/LucasBullen/corrosion.svg?branch=master)](https://travis-ci.org/LucasBullen/corrosion) -![Screenshot](images/editorOverview.png "Screenshot of RedOx editor") +![Screenshot](images/editorOverview.png "Screenshot of Corrosion editor") ## Installation Refer to our [Installation Guide](documentation/Installation.md) @@ -15,14 +18,14 @@ Refer to our [Installation Guide](documentation/Installation.md) The Rustup and Cargo commands are required for accessing the language server and performing most tasks. Go into the Rust preferences and either install the commands or input their paths if not automatically found. ## Contributing -[Issue reports](https://github.com/LucasBullen/redOx/issues) and [pull requests](https://github.com/LucasBullen/redOx/pulls) are always appreciated. +[Issue reports](https://github.com/LucasBullen/corrosion/issues) and [pull requests](https://github.com/LucasBullen/corrosion/pulls) are always appreciated. -For setting up RedOx for testing and development follow the [Using Github Installation Instructions](documentation/Installation.md#using-github) +For setting up Corrosion for testing and development follow the [Using Github Installation Instructions](documentation/Installation.md#using-github) -The p2 repository is not kept up to date with the master branch. Releases to the p2 repository will be made in more controlled released after the initial release of RedOx v1. +The p2 repository is not kept up to date with the master branch. Releases to the p2 repository will be made in more controlled released after the initial release of Corrosion v1. ## Concept -RedOx uses the [lsp4e](https://projects.eclipse.org/projects/technology.lsp4e) project to integrate with the [Rust Language Server](https://github.com/rust-lang-nursery/rls) and [TM4E](https://projects.eclipse.org/projects/technology.tm4e) project to provide syntax highlighting in order to provide a rich Rust editor in the Eclipse IDE. +Corrosion uses the [lsp4e](https://projects.eclipse.org/projects/technology.lsp4e) project to integrate with the [Rust Language Server](https://github.com/rust-lang-nursery/rls) and [TM4E](https://projects.eclipse.org/projects/technology.tm4e) project to provide syntax highlighting in order to provide a rich Rust editor in the Eclipse IDE. The Rust and Cargo logos are owned by Mozilla and distributed under the terms of the [Creative Commons Attribution license (CC-BY)](https://creativecommons.org/licenses/by/4.0/). [More Info](https://www.rust-lang.org/en-US/legal.html) diff --git a/documentation/Installation.md b/documentation/Installation.md index 7d20fb2..bd39973 100644 --- a/documentation/Installation.md +++ b/documentation/Installation.md @@ -1,15 +1,15 @@ -## Installing RedOx +## Installing Corrosion ### Using Eclipse Marketplace -Download [RedOx from the Eclipse Marketplace](https://marketplace.eclipse.org/content/redox-rust-edition-eclipse-ide) +Download [Corrosion from the Eclipse Marketplace](https://marketplace.eclipse.org/content/corrosion-rust-edition-eclipse-ide) For further instructions on how to install using Eclipse Marketplace, see [their tutorial](https://marketplace.eclipse.org/marketplace-client-intro?mpc_install=3835145) ### Using p2 repository -The p2 site: https://lucasbullen.github.io/redOx/site/ +The p2 site: https://lucasbullen.github.io/corrosion/site/ - Open Eclipse IDE - Open the Install New Software Wizard (Under the Help menu) - - Enter https://lucasbullen.github.io/redOx/site/ in the site field - - Select RedOx - Rust in Eclipse IDE and click Next + - Enter https://lucasbullen.github.io/corrosion/site/ in the site field + - Select Corrosion - Rust in Eclipse IDE and click Next - Wait for the dependencies to load - Press Next again - Accept the license and press Finish @@ -18,15 +18,15 @@ The p2 site: https://lucasbullen.github.io/redOx/site/ ### Using Github ##### For contributors and testers, This will allow running the plugin within a child Eclipse to test and develop new features - Download [Eclipse for Eclipse Contributors](https://www.eclipse.org/downloads/packages/eclipse-ide-eclipse-committers/oxygen2) or any version of Eclipse with the `Eclipse Plug-in Development Environment` package - - Clone the repo: https://github.com/LucasBullen/redOx + - Clone the repo: https://github.com/LucasBullen/corrosion - In the root of the repository, run `mvn clean verify` (You will need [Maven](http://maven.apache.org/)) - Open the following projects in Eclipse: - - org.eclipse.redox + - org.eclipse.corrosion - target-platform - - org.eclipse.redox.tests (If you intend on contributing) + - org.eclipse.corrosion.tests (If you intend on contributing) - Set the Target Platform - Preferences > Plug-in Development > Target Platform - - Select the `redOx` target defininition - - Run the `org.eclipse.redox` project as an `Eclipse Application` + - Select the `corrosion` target defininition + - Run the `org.eclipse.corrosion` project as an `Eclipse Application` diff --git a/images/redOx.png b/images/redOx.png deleted file mode 100644 index d25b54cdc656b6416fe692e6c8f28ee02abf180f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7170 zcmV+d9R1^oP)b9hoWLvf+^)4@9%Pa;0HVKf0ogon9B)|*~gaDHT^1Yb{ z%p-vS!;tN<#+d+PVsPRFyx@fZ16d4a48|CPkvDAh-dZeKOKWL$_q}!AAAKda+TAVL zmV91FKJv%AKnlHe-g zhz2#sv?@}FYz*kZ=BD0pNJd9uEMMld*Ax%_teQcJYI<0hOj{MR>5O!1JcmduArea< zcn$z4X44tMWZJ5jOb=Vl2PabIyT<8IQpV~7$0D-ZkrL|=MK)BZB-eUl#89?U}+jWAdE=QZ=z>QjmIh^GHodZG-OFaOf zbc8A$0D{cC6F?UcEdt>RkHfK^(jsy`fDUH)JV2F1G#h{mz{COyxx{UE*hvT%7^MKe z>ko&z#(^tLGf2>C0t5@?V$5*QKugPq3+JKLB{0u3bcUgh<(Flx$_m z-}QwbWH7B4S()BF7=X32~cXzLJRMGC{KB^8subcLxekMOoPd0xlw= zY6G-vj?NtW`S0WGmK9Btas-P6-I_|RHhv{e;q8-T9>2s86{{Nd2r!ROsQJ$+rV z?%kFNme&;$Z-S_wh|bFLHA{`QRWR=Xu=GTA7e>u-T0#$-Eb4Xub%!z;_A$%bA>{^t zG!oBMzo}`zblDwC2>fRN2~MRVxym&+x26ER@2RoxU?E;75>F6edXA#owS*oX_v3Qu zHG9oWBK43phNaYXIS^`!YMHkkRn=8yvw0_={f#?vTmCI+&4<#vN(l|e+d9mUYBb%n4Vz9 z2mWwi;D|WR<8+<{&~-%QBH-k)9Du`;oWL%Y@(zDE^hSn1d94s)c~;Tg4D4d&Ai&E7 ziB^0HDHVYXi}hM8o2olLwIk> z65Iy>c9&Z*gD)e{%G~0NZw2rwgA$OOWDt>H8-c0-eBBVYnUgyPDNkw)hnk1!I)~c~ zf%5>Y0$|H(qz}OT%=j;6Xe3}JpahIs5bgkQWu9-@&cFq}V4(A`j1!OD`Hw;ozcyx4 zkCgluB9s!*=Z%lqXVjlG0#^vGosSd%r`0iX%MKQ;yff6K1pbi2$ZrpEx>k~SNTH0^L@d<0%rN{kdzTr=W#gadur@Mvp%+MkIXS?(jT9+_GbY7@Y>nkGy=c=(=NKu{?g4Pnzod8NQIt8KW3_vF$tE$k#miBNzK-vg;D$XoI{%|;w zc?BZTXfPVy;R^-tW#*Sh0M6$Rhk8kf+X)0P_hdX9{JDgP?i7O7lA=86sK7mLuneU;irpC#@Tq-1LnO`+TW;+pqNL=G}x)|w% zY?iA+l>jGmXxy4*Jra2J5(dRioo8TrGZowY9aCIFw$@pzuc z>73;ch4$nHE*K3b-FC;_M5GHLZp-wGi0HbsEl9;b78mbhTU zgP8)Nd4~0vPrp5->8U>hfTrvBD8L6qbhjY-cAnY$8)m*I7!4;!>R7GIeUb5Fu@RLy zH!sTv0~>4Y?k$axz%j`QGI%+Gasej=i7No?Dd>O)BH<2?-T5?t3o`sSX6Co0rr#Q9 zitNg;K1XysiO5c%YmeYtlFYokUr*lE($t&;fN)bZ4&Zl_CzUTRv6fyTgz^v(=42RI zyP5gvKqNfcjKT9pUDdD#3kD>P6=(oJOz-630RiCj5pSNO&EL3snx!=fPo zl3Cz?DkS7Utia=v!o~?9#LO=d(bYLnH~(FMBRU_T$K4Ls^?`6OFeDWmb|R*!44%Y* zhjO?y41NiO&?uVu4uB%0SCd`+X@&LxKv&fA0;`kz3IgX3hxfVd_M1p3uL+_D3{hfm zCQUrD*c)$W;3)tpV+t@az|5xzA#O1SE)RG(o0z`_;E@bKO@hR?i0EGp2R_pZY?aLS zveaJ;L?R=uMQIEMmK`)yT(1K3M;;CzDUGB?kU2fA@0>^~;`Qy&KtFUomx0BcD zx=<0cB+Eo60_^tcs$u}BnpjR%6UzxKX_RcI2SZ_*zCtn(iAVtOM?!Ccv2=vmCzC=o z8OpC5z~}M>r4>O-JWl6@&KmoX#8fj)?qRCI?Q)b5u)>HfE(cIQ#sT%~^Vw-&db6;O zV^{(F47vR(hgmf*@;Y6C4DqA_JfpBLM>Zmy=5e?TQ?tD%op5_0=whG?7v z;D;WE^N%1B0Ins%7Ya03NuZxm+L`S?%+b3a%!>gKr{k*!Ss%(@01S$=2m=jc1)A6C zs>?SS0rdDnf!7NHrwWl^=KC4Af{4xoFg=4StBGjw;TsuP033|w6HyT}-!rwM>e1HD zW(k(N(&Lmr8%snt6L2#V6`CRvz&>Vvi&?%b1SLik1aVR_Ey~6~pbNk-FKtSA+N@8NC&VMz*>*P`3)h&uTfxu>L^Ji%1(8Vl}R1s z@(yNvLNr3svoL4?&?Tk3*Ke%T9F+vO78dnhm-}=84*|F|$xn#!h`&LyH-09>1= ze+g#3(I1ZXjT$(w!}$#&aU;fX|6E=VIIbm&tm+y7H`CFrT~Ua{jb4Xy69a3A=nF)2 zreQ>w^UTg?YF+Lv0HTIUm}0mCZUCN~oWlnQjb8EJmo5tIZ_R30rCOy^@IT2XOWX@2fQ~Jwx0TqPH7Efp>;bG%03)eq(S{K7Ujg zj{QkSJ0rEx#lWp(Gh8MYA|3+ z1xDV)%sYh8_@M6??QzvO?iPv&3E-5B_~_tZ5&#_xI|Q9~h*iS!w=DU2X83~9a7(Sr z?La!>KiaL*qm?W_%AvbT3k4BI(azvF=m3^N;yzzE&@`gqknce-8g2p5;&Hex&I3cU zuRU@j_v^{(s_H3bMV-kc`-9=g2S>tx!DzS(z<&(+O*QsYB~hxgr>n82yC;F-2`2BP z%HL5=T}7?_NN7`5P&{nt=&^`HDqu7=h5~Qq7<6B*SRx8rzX_xhz|8>mfcZVmM1Kl4 z21XqZE-31p_L^xX#k3uH^JV-OF#18{HOlBx)4t)4Mm8RmU*m9IPeS|@KoX4oM&w`` z5nY<6N?S@#of3*fTX2GqIzs&HjNzbVs~Gw+2uWuCFulhORZx^`3@hzYT`bcfDz76a?EjRI!=g)bC5Th~+P0q7tU zjB1Qd3J{&fKtS&wnCS}z-ORiaS?L=F*6S>1>6-4)b`~3qJkV30T_`;AnhzV zra_Q3Yu+aryaxb!n!6e+9F?6!G^46=nytC5C3Zw&((as1z(i)=9%ySB3_I;aI=f&V z7M_zF3#4`N2}h&f*jQdZT@c*`Q04}E6M(7Zwz4*BS@9wwx(L7oMHK_(Hrs*H;?llY zZ_lU{uA{o9cw%|Q3=(u35uFX9it;jBdxfp6nuuu1a9=}EF}9RKNMW-s;Mp^5>^6r;sm8p z1Lu!~H2`fH16q<5xlrlK;wi%2z^}=YcB}8F&QFY?gi0FhdCQ|gQ&#t;dC(ewzajz+JJkfs(4_qtwD-EKDET8 zh$=JX%q03c==(`72G>&cH3TJPrW-oX3d zp?v@VfI81YI|#R6^d}c702-j<6)3n7=^!(YAlbSAEN}3w==juu8_q2HMrOK6Po*{o zo11!EHTDWp`2&D1kt`oh#`}I^wiMqWNIYWz{XjC_x6EuUzE6<&HzNLkb>0(eg2}lUF01%exb~Q$X3&4B!oxorLf^TgAOOtwq*ckQ|xtZzNixoTYU(-4)%G*Mb^EAva1+d`3O5&*hl-SIM8 z*~<*94n#uT01%7yq{?ii9}>vd73gafhN z%`NTQzXD+A9C!Ux68Kku{#OC;-fHlzIOG(HI&b|S0QzPIHxigPfasS1wl(-xG>zq$ z9QVKtJUPt?Qh%=qaqjkT?+-8e&D2FxD(1|ivFbWAnmV_?+tKyOB}kvMf;w;g?*Y0l zPmMlZ$_sY|Rt@Rj+1~nD0@RSHdYJh!0v>GeuRJDajfvx$(;l6w0Ae9PpC@Q5Z&+rX zJ+ZX5j>dAn5uwsH<8#Fmrrj}guP5b?pPB`e4asGNbP@C@2;`TJ!P(|dfHT&P3q``{746U z7|%6LL;Ha$_l{4rOZ~yEivge^xO(p#&%#@Y@NAw5f88AKLI!ZdaKlC3)8JdxdR#l; z#~e7Oe;`35|$!G zQ(t{~Q*z(-Fp4ZiP*nkwYK0Igj_^zv00b#Dr1SykDIEg?2}GKFIjzV#PyOitzEnU$ zm4nrFNS{{m?Z|{N$l9M58>#ZVVf0Ct@;N=XZi^UU&^?>7{E7?wF4*Z%Hs!h z-uf*KzLo1va8aqRV<~Q(QdZ;~2)y<7|NVJSS6NAExvD52Az(3=!DO;#CISlTv<#hu zWU3E|WDJb7p6l=L?eRxG+K^dJvs%7Kz-<{iaRU+m3qyQNz;AN&xD25GnC)4(W2b*b z`K5dVC_`f)|KH%mx;B{6T% zq;l1BHzfSA{@{C3YC~h1OvTU}-w#bsfJi`5%*JIhuJrFj3N$@|zW9D5Qn4WeMVBeG z_xLu(2il$hfV$di%7qYr!tfn9>sZpNUA~uwlBPR+E4LW>E|Eu+Ju=5rf6cKP8wJNX z{rhXZJwLj%I3yu1v`;KLUDH~YzOh@GR&23N6G9o{yp+}tDN|r6!N%Eq%nVH?kxcet zAkl?*yd5b$4k7^}0Zk^+(c|CV-nrve0O30C!kGY`0Vs3-Lmz=EygeNu*Ed`!j=g1NeA{Z>2mTfCGSm zAA;bmx)?(F6*CpB{b=Bce_B>Hr+T7mQK@xen!|=HO3wL-L}@PU8#sXO-tZrL<1If) zrh4|&c^CSSUN9sIgkQP=Y;W+bIDd|(-bRFn0a}Fg&ezdUADA}+xVpi=@~Dj#@mT@R z@)+21d-H3G)V@fpzy8%zi|!6T(3hHO*>*>`edpHxL?@>?k3dk2PfG`*2?CNC{R16n z?cDKU^MP&Gb@c50b~4p7c#=@n2xCD=Z^E}9950KT1k zeA+YR6O&6flw;unv{}CMKKjI09_^%iB#|YfkgM#{(;uj zx}N+S(tjo;TbwB)#LpC?+#m;P8Ffe1b))Q<9N_kuU#^{eveKa_ruo9e<*+99?b_SX zIQxFYaq#^AZlu>T>KLcv*!N@5_$Z9iIE~XdjT3 - org.eclipse.redox.feature + org.eclipse.corrosion.feature diff --git a/org.eclipse.redox.feature/build.properties b/org.eclipse.corrosion.feature/build.properties similarity index 100% rename from org.eclipse.redox.feature/build.properties rename to org.eclipse.corrosion.feature/build.properties diff --git a/org.eclipse.corrosion.feature/category.xml b/org.eclipse.corrosion.feature/category.xml new file mode 100644 index 0000000..6a53fd9 --- /dev/null +++ b/org.eclipse.corrosion.feature/category.xml @@ -0,0 +1,11 @@ + + + + + + + + Corrosion enables Rust application development in the Eclipse IDE. + + + diff --git a/org.eclipse.redox.feature/feature.properties b/org.eclipse.corrosion.feature/feature.properties similarity index 88% rename from org.eclipse.redox.feature/feature.properties rename to org.eclipse.corrosion.feature/feature.properties index 5158786..1b6c91a 100644 --- a/org.eclipse.redox.feature/feature.properties +++ b/org.eclipse.corrosion.feature/feature.properties @@ -1,4 +1,4 @@ -name=RedOx: Rust edition in Eclipse IDE +name=Corrosion: Rust edition in Eclipse IDE description=Rust editor in Eclipse IDE. Relies on the Rust Language Server (RLS). copyright=Copyright (c) 2017 Red Hat Inc. and others.\ \ diff --git a/org.eclipse.redox.feature/feature.xml b/org.eclipse.corrosion.feature/feature.xml similarity index 98% rename from org.eclipse.redox.feature/feature.xml rename to org.eclipse.corrosion.feature/feature.xml index 17a4110..0d75f37 100644 --- a/org.eclipse.redox.feature/feature.xml +++ b/org.eclipse.corrosion.feature/feature.xml @@ -1,6 +1,6 @@ 4.0.0 - org.eclipse.redox.feature + org.eclipse.corrosion.feature - org.eclipse.redox + org.eclipse.corrosion parent 0.1.0-SNAPSHOT diff --git a/org.eclipse.redox.tests/.classpath b/org.eclipse.corrosion.tests/.classpath similarity index 100% rename from org.eclipse.redox.tests/.classpath rename to org.eclipse.corrosion.tests/.classpath diff --git a/org.eclipse.redox.tests/.gitignore b/org.eclipse.corrosion.tests/.gitignore similarity index 100% rename from org.eclipse.redox.tests/.gitignore rename to org.eclipse.corrosion.tests/.gitignore diff --git a/org.eclipse.redox.tests/.project b/org.eclipse.corrosion.tests/.project similarity index 93% rename from org.eclipse.redox.tests/.project rename to org.eclipse.corrosion.tests/.project index d60cba5..1742448 100644 --- a/org.eclipse.redox.tests/.project +++ b/org.eclipse.corrosion.tests/.project @@ -1,6 +1,6 @@ - org.eclipse.redox.tests + org.eclipse.corrosion.tests diff --git a/org.eclipse.redox.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.corrosion.tests/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from org.eclipse.redox.tests/.settings/org.eclipse.jdt.core.prefs rename to org.eclipse.corrosion.tests/.settings/org.eclipse.jdt.core.prefs diff --git a/org.eclipse.redox.tests/META-INF/MANIFEST.MF b/org.eclipse.corrosion.tests/META-INF/MANIFEST.MF similarity index 79% rename from org.eclipse.redox.tests/META-INF/MANIFEST.MF rename to org.eclipse.corrosion.tests/META-INF/MANIFEST.MF index aea4313..a4673d0 100644 --- a/org.eclipse.redox.tests/META-INF/MANIFEST.MF +++ b/org.eclipse.corrosion.tests/META-INF/MANIFEST.MF @@ -1,12 +1,12 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 -Bundle-Name: Tests for RedOx -Bundle-SymbolicName: org.eclipse.redox.tests;singleton:=true +Bundle-Name: Tests for Corrosion +Bundle-SymbolicName: org.eclipse.corrosion.tests;singleton:=true Bundle-Version: 0.1.0.qualifier Bundle-Vendor: Red Hat Inc. Eclipse-BundleShape: dir -Automatic-Module-Name: org.eclipse.redox.tests -Require-Bundle: org.eclipse.redox;bundle-version="0.1.0", +Automatic-Module-Name: org.eclipse.corrosion.tests +Require-Bundle: org.eclipse.corrosion;bundle-version="0.1.0", org.junit;bundle-version="4.11.0", org.eclipse.core.runtime;bundle-version="3.13.0", org.eclipse.core.resources;bundle-version="3.12.0", diff --git a/org.eclipse.redox.tests/build.properties b/org.eclipse.corrosion.tests/build.properties similarity index 100% rename from org.eclipse.redox.tests/build.properties rename to org.eclipse.corrosion.tests/build.properties diff --git a/org.eclipse.redox.tests/pom.xml b/org.eclipse.corrosion.tests/pom.xml similarity index 83% rename from org.eclipse.redox.tests/pom.xml rename to org.eclipse.corrosion.tests/pom.xml index 1b2e013..6320e88 100644 --- a/org.eclipse.redox.tests/pom.xml +++ b/org.eclipse.corrosion.tests/pom.xml @@ -1,8 +1,8 @@ 4.0.0 - org.eclipse.redox.tests + org.eclipse.corrosion.tests - org.eclipse.redox + org.eclipse.corrosion parent 0.1.0-SNAPSHOT @@ -10,7 +10,7 @@ ${project.artifactId} - org.eclipse.redox.tests.AllTests + org.eclipse.corrosion.tests.AllTests diff --git a/org.eclipse.redox.tests/projects/basic/Cargo.toml b/org.eclipse.corrosion.tests/projects/basic/Cargo.toml similarity index 100% rename from org.eclipse.redox.tests/projects/basic/Cargo.toml rename to org.eclipse.corrosion.tests/projects/basic/Cargo.toml diff --git a/org.eclipse.redox.tests/projects/basic/src/main.rs b/org.eclipse.corrosion.tests/projects/basic/src/main.rs similarity index 100% rename from org.eclipse.redox.tests/projects/basic/src/main.rs rename to org.eclipse.corrosion.tests/projects/basic/src/main.rs diff --git a/org.eclipse.redox.tests/projects/basic_errors/Cargo.toml b/org.eclipse.corrosion.tests/projects/basic_errors/Cargo.toml similarity index 100% rename from org.eclipse.redox.tests/projects/basic_errors/Cargo.toml rename to org.eclipse.corrosion.tests/projects/basic_errors/Cargo.toml diff --git a/org.eclipse.redox.tests/projects/basic_errors/src/main.rs b/org.eclipse.corrosion.tests/projects/basic_errors/src/main.rs similarity index 100% rename from org.eclipse.redox.tests/projects/basic_errors/src/main.rs rename to org.eclipse.corrosion.tests/projects/basic_errors/src/main.rs diff --git a/org.eclipse.redox.tests/projects/not_cargo/src/main.rs b/org.eclipse.corrosion.tests/projects/not_cargo/src/main.rs similarity index 100% rename from org.eclipse.redox.tests/projects/not_cargo/src/main.rs rename to org.eclipse.corrosion.tests/projects/not_cargo/src/main.rs diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/AbstractRedoxTest.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/AbstractCorrosionTest.java similarity index 95% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/AbstractRedoxTest.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/AbstractCorrosionTest.java index 4d35c4d..99340b8 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/AbstractRedoxTest.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/AbstractCorrosionTest.java @@ -11,7 +11,7 @@ * Mickael Istria (Red Hat Inc.) - Source Reference * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import java.io.File; import java.io.IOException; @@ -39,7 +39,7 @@ * Takes care of creating a temporary project and resource before test and to * clean it up after. */ -public class AbstractRedoxTest { +public class AbstractCorrosionTest { private Map provisionedProjects; @@ -58,7 +58,7 @@ public void setUp() throws Exception { * @throws CoreException */ protected IProject provisionProject(String projectName) throws IOException, CoreException { - URL url = FileLocator.find(Platform.getBundle("org.eclipse.redox.tests"), + URL url = FileLocator.find(Platform.getBundle("org.eclipse.corrosion.tests"), Path.fromPortableString("projects/" + projectName), Collections.emptyMap()); url = FileLocator.toFileURL(url); File folder = new File(url.getFile()); diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/AllTests.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/AllTests.java similarity index 96% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/AllTests.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/AllTests.java index 773dc75..6c075a5 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/AllTests.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/AllTests.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import org.junit.runner.RunWith; import org.junit.runners.Suite; diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestBuilder.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestBuilder.java similarity index 89% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestBuilder.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestBuilder.java index f71f875..83499a1 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestBuilder.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestBuilder.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -27,16 +27,16 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.redox.builder.AddCargoBuilder; -import org.eclipse.redox.builder.RemoveCargoBuilder; -import org.eclipse.redox.builder.TestCargoBuilderEnabled; +import org.eclipse.corrosion.builder.AddCargoBuilder; +import org.eclipse.corrosion.builder.RemoveCargoBuilder; +import org.eclipse.corrosion.builder.TestCargoBuilderEnabled; import org.eclipse.ui.ISources; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.commands.ICommandService; import org.eclipse.ui.tests.harness.util.DisplayHelper; import org.junit.Test; -public class TestBuilder extends AbstractRedoxTest { +public class TestBuilder extends AbstractCorrosionTest { @Test public void testBuild() throws Exception { @@ -60,9 +60,9 @@ protected boolean condition() { } private static final ICommandService COMMAND_SERVICE = PlatformUI.getWorkbench().getService(ICommandService.class); - private static final Command ADD_COMMAND = COMMAND_SERVICE.getCommand("org.eclipse.redox.builder.AddCargoBuilder"); + private static final Command ADD_COMMAND = COMMAND_SERVICE.getCommand("org.eclipse.corrosion.builder.AddCargoBuilder"); private static final Command REMOVE_COMMAND = COMMAND_SERVICE - .getCommand("org.eclipse.redox.builder.RemoveCargoBuilder"); + .getCommand("org.eclipse.corrosion.builder.RemoveCargoBuilder"); private void addBuilder(IProject project) throws Exception { IEvaluationContext evaluationContext = new EvaluationContext(null, project); diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestExportCargoProjectWizard.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestExportCargoProjectWizard.java similarity index 94% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestExportCargoProjectWizard.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestExportCargoProjectWizard.java index b622d1c..13424bf 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestExportCargoProjectWizard.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestExportCargoProjectWizard.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -20,8 +20,8 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.redox.wizards.export.CargoExportWizard; -import org.eclipse.redox.wizards.export.CargoExportWizardPage; +import org.eclipse.corrosion.wizards.export.CargoExportWizard; +import org.eclipse.corrosion.wizards.export.CargoExportWizardPage; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; @@ -29,7 +29,7 @@ import org.eclipse.ui.tests.harness.util.DisplayHelper; import org.junit.Test; -public class TestExportCargoProjectWizard extends AbstractRedoxTest { +public class TestExportCargoProjectWizard extends AbstractCorrosionTest { private WizardDialog dialog; private CargoExportWizard wizard; diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestIDEIntegration.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestIDEIntegration.java similarity index 94% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestIDEIntegration.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestIDEIntegration.java index e7948e7..39dc371 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestIDEIntegration.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestIDEIntegration.java @@ -11,7 +11,7 @@ * Mickael Istria (Red Hat Inc.) - Source Reference * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import java.io.IOException; @@ -24,7 +24,7 @@ import org.junit.Assert; import org.junit.Test; -public class TestIDEIntegration extends AbstractRedoxTest { +public class TestIDEIntegration extends AbstractCorrosionTest { @Test public void testRustEditorAssociation() throws IOException, CoreException { diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestLSPExtensions.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestLSPExtensions.java similarity index 94% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestLSPExtensions.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestLSPExtensions.java index 14ac516..31caed8 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestLSPExtensions.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestLSPExtensions.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -18,7 +18,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.jobs.IJobManager; import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.redox.RLSClientImplementation; +import org.eclipse.corrosion.RLSClientImplementation; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.tests.harness.util.DisplayHelper; import org.junit.Test; diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestLSPIntegration.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestLSPIntegration.java similarity index 96% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestLSPIntegration.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestLSPIntegration.java index 67d8b59..0a14724 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestLSPIntegration.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestLSPIntegration.java @@ -11,7 +11,7 @@ * Mickael Istria (Red Hat Inc.) - Source Reference * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -40,7 +40,7 @@ import org.junit.Assert; import org.junit.Test; -public class TestLSPIntegration extends AbstractRedoxTest { +public class TestLSPIntegration extends AbstractCorrosionTest { @Test public void testLSFound() throws Exception { diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestNewCargoProjectWizard.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestNewCargoProjectWizard.java similarity index 92% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestNewCargoProjectWizard.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestNewCargoProjectWizard.java index e6e77ea..1f80f3d 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestNewCargoProjectWizard.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestNewCargoProjectWizard.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -22,14 +22,14 @@ import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.wizard.IWizard; import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.redox.wizards.newCargo.NewCargoProjectWizard; -import org.eclipse.redox.wizards.newCargo.NewCargoProjectWizardPage; +import org.eclipse.corrosion.wizards.newCargo.NewCargoProjectWizard; +import org.eclipse.corrosion.wizards.newCargo.NewCargoProjectWizardPage; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.tests.harness.util.DisplayHelper; import org.junit.Test; -public class TestNewCargoProjectWizard extends AbstractRedoxTest { +public class TestNewCargoProjectWizard extends AbstractCorrosionTest { @Test public void testNewProjectPage() throws Exception { diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestPerspective.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestPerspective.java similarity index 95% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestPerspective.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestPerspective.java index e82da39..aaf65fd 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestPerspective.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestPerspective.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; @@ -18,8 +18,8 @@ import java.util.ArrayList; import java.util.List; -import org.eclipse.redox.RustPerspective; -import org.eclipse.redox.wizards.newCargo.NewCargoProjectWizard; +import org.eclipse.corrosion.RustPerspective; +import org.eclipse.corrosion.wizards.newCargo.NewCargoProjectWizard; import org.eclipse.search.ui.NewSearchUI; import org.eclipse.ui.IPageLayout; import org.eclipse.ui.IPerspectiveDescriptor; diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestRunConfiguration.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestRunConfiguration.java similarity index 96% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestRunConfiguration.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestRunConfiguration.java index cf77eaf..3a5069f 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestRunConfiguration.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestRunConfiguration.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -31,7 +31,7 @@ import org.eclipse.ui.tests.harness.util.DisplayHelper; import org.junit.Test; -public class TestRunConfiguration extends AbstractRedoxTest { +public class TestRunConfiguration extends AbstractCorrosionTest { @Test public void testBasicRun() throws Exception { @@ -103,7 +103,7 @@ private ILaunchConfigurationWorkingCopy createLaunchConfiguration(IProject proje throws CoreException { ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager(); ILaunchConfigurationType configType = launchManager - .getLaunchConfigurationType("org.eclipse.redox.run.CargoRunDelegate"); + .getLaunchConfigurationType("org.eclipse.corrosion.run.CargoRunDelegate"); ILaunchConfigurationWorkingCopy wc = configType.newInstance(project, name); wc.setAttribute("PROJECT", project.getName()); return wc; diff --git a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestSyntaxHighlighting.java b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestSyntaxHighlighting.java similarity index 95% rename from org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestSyntaxHighlighting.java rename to org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestSyntaxHighlighting.java index a5edd4c..8e06226 100644 --- a/org.eclipse.redox.tests/src/org/eclipse/redox/tests/TestSyntaxHighlighting.java +++ b/org.eclipse.corrosion.tests/src/org/eclipse/corrosion/tests/TestSyntaxHighlighting.java @@ -11,7 +11,7 @@ * Mickael Istria (Red Hat Inc.) - Source Reference * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.tests; +package org.eclipse.corrosion.tests; import java.io.IOException; @@ -26,7 +26,7 @@ import org.junit.Assert; import org.junit.Test; -public class TestSyntaxHighlighting extends AbstractRedoxTest { +public class TestSyntaxHighlighting extends AbstractCorrosionTest { @Test public void testRustSyntaxHighlighting() throws CoreException, IOException { diff --git a/org.eclipse.redox/.classpath b/org.eclipse.corrosion/.classpath similarity index 100% rename from org.eclipse.redox/.classpath rename to org.eclipse.corrosion/.classpath diff --git a/org.eclipse.redox/.gitignore b/org.eclipse.corrosion/.gitignore similarity index 100% rename from org.eclipse.redox/.gitignore rename to org.eclipse.corrosion/.gitignore diff --git a/org.eclipse.redox/.project b/org.eclipse.corrosion/.project similarity index 94% rename from org.eclipse.redox/.project rename to org.eclipse.corrosion/.project index c3180a5..fb473d2 100644 --- a/org.eclipse.redox/.project +++ b/org.eclipse.corrosion/.project @@ -1,6 +1,6 @@ - org.eclipse.redox + org.eclipse.corrosion diff --git a/org.eclipse.redox/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.corrosion/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from org.eclipse.redox/.settings/org.eclipse.jdt.core.prefs rename to org.eclipse.corrosion/.settings/org.eclipse.jdt.core.prefs diff --git a/org.eclipse.redox/META-INF/MANIFEST.MF b/org.eclipse.corrosion/META-INF/MANIFEST.MF similarity index 65% rename from org.eclipse.redox/META-INF/MANIFEST.MF rename to org.eclipse.corrosion/META-INF/MANIFEST.MF index c74a4a8..6507e14 100644 --- a/org.eclipse.redox/META-INF/MANIFEST.MF +++ b/org.eclipse.corrosion/META-INF/MANIFEST.MF @@ -1,10 +1,10 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Rust edition in Eclipse IDE -Bundle-SymbolicName: org.eclipse.redox;singleton:=true +Bundle-SymbolicName: org.eclipse.corrosion;singleton:=true Bundle-Version: 0.1.0.qualifier -Automatic-Module-Name: org.eclipse.redox -Bundle-Activator: org.eclipse.redox.RedoxPlugin +Automatic-Module-Name: org.eclipse.corrosion +Bundle-Activator: org.eclipse.corrosion.CorrosionPlugin Bundle-Vendor: Red Hat Inc. Require-Bundle: org.eclipse.core.contenttype, org.eclipse.ui.genericeditor;bundle-version="1.0.1", @@ -36,8 +36,8 @@ Require-Bundle: org.eclipse.core.contenttype, org.eclipse.cdt.dsf.gdb.ui Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.redox;x-friends:="org.eclipse.redox.tests", - org.eclipse.redox.builder;x-friends:="org.eclipse.redox.tests", - org.eclipse.redox.extensions;x-friends:="org.eclipse.redox.tests", - org.eclipse.redox.wizards.export;x-friends:="org.eclipse.redox.tests", - org.eclipse.redox.wizards.newCargo;x-friends:="org.eclipse.redox.tests" +Export-Package: org.eclipse.corrosion;x-friends:="org.eclipse.corrosion.tests", + org.eclipse.corrosion.builder;x-friends:="org.eclipse.corrosion.tests", + org.eclipse.corrosion.extensions;x-friends:="org.eclipse.corrosion.tests", + org.eclipse.corrosion.wizards.export;x-friends:="org.eclipse.corrosion.tests", + org.eclipse.corrosion.wizards.newCargo;x-friends:="org.eclipse.corrosion.tests" diff --git a/org.eclipse.redox/build.properties b/org.eclipse.corrosion/build.properties similarity index 100% rename from org.eclipse.redox/build.properties rename to org.eclipse.corrosion/build.properties diff --git a/org.eclipse.redox/grammar/Rust.tmLanguage b/org.eclipse.corrosion/grammar/Rust.tmLanguage similarity index 100% rename from org.eclipse.redox/grammar/Rust.tmLanguage rename to org.eclipse.corrosion/grammar/Rust.tmLanguage diff --git a/org.eclipse.redox/grammar/TOML.tmLanguage b/org.eclipse.corrosion/grammar/TOML.tmLanguage similarity index 100% rename from org.eclipse.redox/grammar/TOML.tmLanguage rename to org.eclipse.corrosion/grammar/TOML.tmLanguage diff --git a/org.eclipse.redox/icons/cargo.png b/org.eclipse.corrosion/icons/cargo.png similarity index 100% rename from org.eclipse.redox/icons/cargo.png rename to org.eclipse.corrosion/icons/cargo.png diff --git a/org.eclipse.redox/icons/cargo@2x.png b/org.eclipse.corrosion/icons/cargo@2x.png similarity index 100% rename from org.eclipse.redox/icons/cargo@2x.png rename to org.eclipse.corrosion/icons/cargo@2x.png diff --git a/org.eclipse.redox/icons/link_obj.png b/org.eclipse.corrosion/icons/link_obj.png similarity index 100% rename from org.eclipse.redox/icons/link_obj.png rename to org.eclipse.corrosion/icons/link_obj.png diff --git a/org.eclipse.redox/icons/rust.png b/org.eclipse.corrosion/icons/rust.png similarity index 100% rename from org.eclipse.redox/icons/rust.png rename to org.eclipse.corrosion/icons/rust.png diff --git a/org.eclipse.redox/icons/rust@x2.png b/org.eclipse.corrosion/icons/rust@x2.png similarity index 100% rename from org.eclipse.redox/icons/rust@x2.png rename to org.eclipse.corrosion/icons/rust@x2.png diff --git a/org.eclipse.redox/images/cargo.png b/org.eclipse.corrosion/images/cargo.png similarity index 100% rename from org.eclipse.redox/images/cargo.png rename to org.eclipse.corrosion/images/cargo.png diff --git a/org.eclipse.redox/plugin.xml b/org.eclipse.corrosion/plugin.xml similarity index 63% rename from org.eclipse.redox/plugin.xml rename to org.eclipse.corrosion/plugin.xml index 88ba5f8..a3f1fdd 100644 --- a/org.eclipse.redox/plugin.xml +++ b/org.eclipse.corrosion/plugin.xml @@ -6,14 +6,14 @@ @@ -21,26 +21,26 @@ + class="org.eclipse.corrosion.RLSStreamConnectionProvider" + id="org.eclipse.corrosion.rls" + label="org.eclipse.corrosion.RLS" + clientImpl="org.eclipse.corrosion.RLSClientImplementation" + serverInterface="org.eclipse.corrosion.RLSServerInterface"> + contentType="org.eclipse.corrosion.rust" + id="org.eclipse.corrosion.rls"> @@ -66,38 +66,38 @@ point="org.eclipse.ui.genericeditor.presentationReconcilers"> + contentType="org.eclipse.corrosion.rust"> + class="org.eclipse.corrosion.snippet.SnippetContentAssistProcessor" + contentType="org.eclipse.corrosion.rust"> + class="org.eclipse.corrosion.CorrosionPreferenceInitializer"> - + - @@ -108,14 +108,14 @@ @@ -123,9 +123,9 @@ A wizard to assist with packaging Cargo based Rust projects into crates @@ -138,76 +138,76 @@ + sourceLocatorId="com.eclipse.corrosion.debug.SourceLocator"> + class="org.eclipse.corrosion.run.CargoRunTabGroup" + id="org.eclipse.corrosion.run.CargoRunTabGroup" + type="org.eclipse.corrosion.run.CargoRunDelegate"> + class="org.eclipse.corrosion.debug.RustDebugTabGroup" + id="org.eclipse.corrosion.debug.RustDebugTabGroup" + type="org.eclipse.corrosion.debug.RustDebugDelegate"> + class="org.eclipse.corrosion.CargoProjectTester"> - + - + @@ -215,19 +215,19 @@ - + - + + property="org.eclipse.corrosion.builder.isCargoBuilderEnabled"> @@ -254,16 +254,16 @@ - + + property="org.eclipse.corrosion.builder.isCargoBuilderEnabled"> @@ -274,7 +274,7 @@ allPopups="true" locationURI="popup:#TextEditorContext?after=additions"> @@ -282,26 +282,26 @@ + id="org.eclipse.corrosion.builder.AddCargoBuilder"> + class="org.eclipse.corrosion.extensions.Implementations" + commandId="org.eclipse.corrosion.commands.Implementations"> @@ -329,17 +329,17 @@ + class="org.eclipse.corrosion.debug.ToggleBreakpointsTargetFactory" + id="com.eclipse.corrosion.debug.ToggleBreakpointsTargetFactory"> diff --git a/org.eclipse.redox/pom.xml b/org.eclipse.corrosion/pom.xml similarity index 93% rename from org.eclipse.redox/pom.xml rename to org.eclipse.corrosion/pom.xml index cfdfccf..e42ff51 100644 --- a/org.eclipse.redox/pom.xml +++ b/org.eclipse.corrosion/pom.xml @@ -1,8 +1,8 @@ 4.0.0 - org.eclipse.redox + org.eclipse.corrosion - org.eclipse.redox + org.eclipse.corrosion parent 0.1.0-SNAPSHOT diff --git a/org.eclipse.redox/scripts/rustup.sh b/org.eclipse.corrosion/scripts/rustup.sh similarity index 100% rename from org.eclipse.redox/scripts/rustup.sh rename to org.eclipse.corrosion/scripts/rustup.sh diff --git a/org.eclipse.redox/snippets/rust.json b/org.eclipse.corrosion/snippets/rust.json similarity index 100% rename from org.eclipse.redox/snippets/rust.json rename to org.eclipse.corrosion/snippets/rust.json diff --git a/org.eclipse.redox/src/org/eclipse/redox/CargoProjectTester.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/CargoProjectTester.java similarity index 97% rename from org.eclipse.redox/src/org/eclipse/redox/CargoProjectTester.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/CargoProjectTester.java index 990e918..3034819 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/CargoProjectTester.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/CargoProjectTester.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox; +package org.eclipse.corrosion; import org.eclipse.core.expressions.PropertyTester; import org.eclipse.core.resources.IProject; diff --git a/org.eclipse.redox/src/org/eclipse/redox/RedoxPlugin.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPlugin.java similarity index 81% rename from org.eclipse.redox/src/org/eclipse/redox/RedoxPlugin.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPlugin.java index b42f862..22309b6 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/RedoxPlugin.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPlugin.java @@ -10,25 +10,25 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox; +package org.eclipse.corrosion; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; -public class RedoxPlugin extends AbstractUIPlugin { +public class CorrosionPlugin extends AbstractUIPlugin { // The plug-in ID - public static final String PLUGIN_ID = "org.eclipse.redox"; //$NON-NLS-1$ + public static final String PLUGIN_ID = "org.eclipse.corrosion"; //$NON-NLS-1$ // The shared instance - private static RedoxPlugin plugin; + private static CorrosionPlugin plugin; /** * The constructor */ - public RedoxPlugin() { + public CorrosionPlugin() { } @Override @@ -48,7 +48,7 @@ public void stop(BundleContext context) throws Exception { * * @return the shared instance */ - public static RedoxPlugin getDefault() { + public static CorrosionPlugin getDefault() { return plugin; } diff --git a/org.eclipse.redox/src/org/eclipse/redox/RedoxPreferenceInitializer.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPreferenceInitializer.java similarity index 83% rename from org.eclipse.redox/src/org/eclipse/redox/RedoxPreferenceInitializer.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPreferenceInitializer.java index a9da6b9..6554e72 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/RedoxPreferenceInitializer.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPreferenceInitializer.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox; +package org.eclipse.corrosion; import java.io.BufferedReader; import java.io.File; @@ -20,20 +20,20 @@ import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; import org.eclipse.jface.preference.IPreferenceStore; -public class RedoxPreferenceInitializer extends AbstractPreferenceInitializer { +public class CorrosionPreferenceInitializer extends AbstractPreferenceInitializer { - private static final IPreferenceStore STORE = RedoxPlugin.getDefault().getPreferenceStore(); + private static final IPreferenceStore STORE = CorrosionPlugin.getDefault().getPreferenceStore(); - public static String rustSourcePreference = "redox.rustSource"; + public static String rustSourcePreference = "corrosion.rustSource"; - public static String defaultPathsPreference = "redox.rustup_defaultPaths"; - public static String rustupPathPreference = "redox.rustup_rustupPath"; - public static String cargoPathPreference = "redox.rustup_cargoPath"; - public static String toolchainIdPreference = "redox.rustup_toolchain_Id"; - public static String toolchainTypePreference = "redox.rustup_toolchain_type"; + public static String defaultPathsPreference = "corrosion.rustup_defaultPaths"; + public static String rustupPathPreference = "corrosion.rustup_rustupPath"; + public static String cargoPathPreference = "corrosion.rustup_cargoPath"; + public static String toolchainIdPreference = "corrosion.rustup_toolchain_Id"; + public static String toolchainTypePreference = "corrosion.rustup_toolchain_type"; - public static String rlsPathPreference = "redox.rslPath"; - public static String sysrootPathPreference = "redox.sysrootPath"; + public static String rlsPathPreference = "corrosion.rslPath"; + public static String sysrootPathPreference = "corrosion.sysrootPath"; @Override public void initializeDefaultPreferences() { @@ -100,7 +100,7 @@ private void setToolchainBestGuesses() { STORE.setDefault(toolchainIdPreference, toolchain); STORE.setDefault(toolchainTypePreference, "Nightly"); } else { - for (String option : RedoxPreferencePage.RUSTUP_TOOLCHAIN_OPTIONS) { + for (String option : CorrosionPreferencePage.RUSTUP_TOOLCHAIN_OPTIONS) { if (option.toLowerCase().equals(type)) { STORE.setDefault(toolchainIdPreference, type); STORE.setDefault(toolchainTypePreference, option); diff --git a/org.eclipse.redox/src/org/eclipse/redox/RedoxPreferencePage.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPreferencePage.java similarity index 84% rename from org.eclipse.redox/src/org/eclipse/redox/RedoxPreferencePage.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPreferencePage.java index 6b1db87..360e2ea 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/RedoxPreferencePage.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/CorrosionPreferencePage.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox; +package org.eclipse.corrosion; import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter; @@ -45,8 +45,8 @@ import org.eclipse.ui.IWorkbenchPreferencePage; import org.osgi.framework.Bundle; -public class RedoxPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { - public static final String PAGE_ID = "org.eclipse.redox.preferencePage"; +public class CorrosionPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { + public static final String PAGE_ID = "org.eclipse.corrosion.preferencePage"; public static final List RUST_SOURCE_OPTIONS = Arrays.asList("rustup", "other", "disabled"); public static final List RUSTUP_TOOLCHAIN_OPTIONS = Arrays.asList("Stable", "Beta", "Nightly", "Other"); @@ -101,11 +101,11 @@ protected Control createContents(Composite parent) { } private void initializeContent() { - int sourceIndex = RUST_SOURCE_OPTIONS.indexOf(store.getString(RedoxPreferenceInitializer.rustSourcePreference)); + int sourceIndex = RUST_SOURCE_OPTIONS.indexOf(store.getString(CorrosionPreferenceInitializer.rustSourcePreference)); setRadioSelection(sourceIndex); int toolchainIndex = RUSTUP_TOOLCHAIN_OPTIONS - .indexOf(store.getString(RedoxPreferenceInitializer.toolchainTypePreference)); - String toolchainId = store.getString(RedoxPreferenceInitializer.toolchainIdPreference); + .indexOf(store.getString(CorrosionPreferenceInitializer.toolchainTypePreference)); + String toolchainId = store.getString(CorrosionPreferenceInitializer.toolchainIdPreference); otherIdText.setText(toolchainId); for (int i = 0; i < RUSTUP_TOOLCHAIN_OPTIONS.size(); i++) { if (RUSTUP_TOOLCHAIN_OPTIONS.get(i).toLowerCase().equals(toolchainId.toLowerCase())) { @@ -114,16 +114,16 @@ private void initializeContent() { } } setToolchainSelection(toolchainIndex); - rustupPathText.setText(store.getString(RedoxPreferenceInitializer.rustupPathPreference)); - cargoPathText.setText(store.getString(RedoxPreferenceInitializer.cargoPathPreference)); - setDefaultPathsSelection(store.getBoolean(RedoxPreferenceInitializer.defaultPathsPreference)); - rlsPathText.setText(store.getString(RedoxPreferenceInitializer.rlsPathPreference)); - sysrootPathText.setText(store.getString(RedoxPreferenceInitializer.sysrootPathPreference)); + rustupPathText.setText(store.getString(CorrosionPreferenceInitializer.rustupPathPreference)); + cargoPathText.setText(store.getString(CorrosionPreferenceInitializer.cargoPathPreference)); + setDefaultPathsSelection(store.getBoolean(CorrosionPreferenceInitializer.defaultPathsPreference)); + rlsPathText.setText(store.getString(CorrosionPreferenceInitializer.rlsPathPreference)); + sysrootPathText.setText(store.getString(CorrosionPreferenceInitializer.sysrootPathPreference)); } @Override protected IPreferenceStore doGetPreferenceStore() { - return RedoxPlugin.getDefault().getPreferenceStore(); + return CorrosionPlugin.getDefault().getPreferenceStore(); } private boolean isPageValid() { @@ -205,11 +205,11 @@ private boolean isOtherInstallSectionValid() { @Override protected void performDefaults() { int sourceIndex = RUST_SOURCE_OPTIONS - .indexOf(store.getDefaultString(RedoxPreferenceInitializer.rustSourcePreference)); + .indexOf(store.getDefaultString(CorrosionPreferenceInitializer.rustSourcePreference)); setRadioSelection(sourceIndex); int toolchainIndex = RUSTUP_TOOLCHAIN_OPTIONS - .indexOf(store.getDefaultString(RedoxPreferenceInitializer.toolchainTypePreference)); - String toolchainId = store.getDefaultString(RedoxPreferenceInitializer.toolchainIdPreference); + .indexOf(store.getDefaultString(CorrosionPreferenceInitializer.toolchainTypePreference)); + String toolchainId = store.getDefaultString(CorrosionPreferenceInitializer.toolchainIdPreference); otherIdText.setText(toolchainId); for (int i = 0; i < RUSTUP_TOOLCHAIN_OPTIONS.size(); i++) { if (RUSTUP_TOOLCHAIN_OPTIONS.get(i).toLowerCase().equals(toolchainId.toLowerCase())) { @@ -218,19 +218,19 @@ protected void performDefaults() { } } setToolchainSelection(toolchainIndex); - setDefaultPathsSelection(store.getDefaultBoolean(RedoxPreferenceInitializer.defaultPathsPreference)); - rustupPathText.setText(store.getDefaultString(RedoxPreferenceInitializer.rustupPathPreference)); - cargoPathText.setText(store.getDefaultString(RedoxPreferenceInitializer.cargoPathPreference)); - rlsPathText.setText(store.getDefaultString(RedoxPreferenceInitializer.rlsPathPreference)); - sysrootPathText.setText(store.getDefaultString(RedoxPreferenceInitializer.sysrootPathPreference)); + setDefaultPathsSelection(store.getDefaultBoolean(CorrosionPreferenceInitializer.defaultPathsPreference)); + rustupPathText.setText(store.getDefaultString(CorrosionPreferenceInitializer.rustupPathPreference)); + cargoPathText.setText(store.getDefaultString(CorrosionPreferenceInitializer.cargoPathPreference)); + rlsPathText.setText(store.getDefaultString(CorrosionPreferenceInitializer.rlsPathPreference)); + sysrootPathText.setText(store.getDefaultString(CorrosionPreferenceInitializer.sysrootPathPreference)); super.performDefaults(); } private void setDefaultPathsSelection(boolean selection) { useDefaultPathsCheckbox.setSelection(selection); if (selection) { - rustupPathText.setText(store.getDefaultString(RedoxPreferenceInitializer.rustupPathPreference)); - cargoPathText.setText(store.getDefaultString(RedoxPreferenceInitializer.cargoPathPreference)); + rustupPathText.setText(store.getDefaultString(CorrosionPreferenceInitializer.rustupPathPreference)); + cargoPathText.setText(store.getDefaultString(CorrosionPreferenceInitializer.cargoPathPreference)); } setDefaultPathsEnabled(!selection); } @@ -276,18 +276,18 @@ private void setRadioSelection(int selection) { @Override public boolean performOk() { int source = getRadioSelection(); - store.setValue(RedoxPreferenceInitializer.rustSourcePreference, RUST_SOURCE_OPTIONS.get(source)); + store.setValue(CorrosionPreferenceInitializer.rustSourcePreference, RUST_SOURCE_OPTIONS.get(source)); if (source == 0) { String id = getToolchainId(); - store.setValue(RedoxPreferenceInitializer.toolchainTypePreference, rustupToolchainCombo.getText()); - store.setValue(RedoxPreferenceInitializer.toolchainIdPreference, id); - store.setValue(RedoxPreferenceInitializer.defaultPathsPreference, useDefaultPathsCheckbox.getSelection()); - store.setValue(RedoxPreferenceInitializer.rustupPathPreference, rustupPathText.getText()); - store.setValue(RedoxPreferenceInitializer.cargoPathPreference, cargoPathText.getText()); + store.setValue(CorrosionPreferenceInitializer.toolchainTypePreference, rustupToolchainCombo.getText()); + store.setValue(CorrosionPreferenceInitializer.toolchainIdPreference, id); + store.setValue(CorrosionPreferenceInitializer.defaultPathsPreference, useDefaultPathsCheckbox.getSelection()); + store.setValue(CorrosionPreferenceInitializer.rustupPathPreference, rustupPathText.getText()); + store.setValue(CorrosionPreferenceInitializer.cargoPathPreference, cargoPathText.getText()); RustManager.setDefaultToolchain(id); } else if (source == 1) { - store.setValue(RedoxPreferenceInitializer.rlsPathPreference, rlsPathText.getText()); - store.setValue(RedoxPreferenceInitializer.sysrootPathPreference, sysrootPathText.getText()); + store.setValue(CorrosionPreferenceInitializer.rlsPathPreference, rlsPathText.getText()); + store.setValue(CorrosionPreferenceInitializer.sysrootPathPreference, sysrootPathText.getText()); } return true; } @@ -329,8 +329,8 @@ private void createCommandPathsPart(Composite container) { useDefaultPathsCheckbox.addSelectionListener(widgetSelectedAdapter(e -> { setDefaultPathsEnabled(!useDefaultPathsCheckbox.getSelection()); if (useDefaultPathsCheckbox.getSelection()) { - rustupPathText.setText(store.getDefaultString(RedoxPreferenceInitializer.rustupPathPreference)); - cargoPathText.setText(store.getDefaultString(RedoxPreferenceInitializer.cargoPathPreference)); + rustupPathText.setText(store.getDefaultString(CorrosionPreferenceInitializer.rustupPathPreference)); + cargoPathText.setText(store.getDefaultString(CorrosionPreferenceInitializer.cargoPathPreference)); } setValid(isPageValid()); })); @@ -392,14 +392,14 @@ private void installCommands() { installButton.setEnabled(false); Job.create("Installing Rustup and Cargo", (ICoreRunnable) monitor -> { try { - Bundle bundle = Platform.getBundle("org.eclipse.redox"); + Bundle bundle = Platform.getBundle("org.eclipse.corrosion"); URL fileURL = FileLocator.toFileURL(bundle.getEntry("scripts/rustup.sh")); File file = new File(new URI(fileURL.getProtocol(), fileURL.getPath(), null)); String[] command = new String[] { "/bin/bash", "-c", file.getAbsolutePath() }; ProcessBuilder builder = new ProcessBuilder(command); Process process = builder.start(); if (process.waitFor() == 0) { - RedoxPreferenceInitializer initializer = new RedoxPreferenceInitializer(); + CorrosionPreferenceInitializer initializer = new CorrosionPreferenceInitializer(); initializer.initializeDefaultPreferences(); Display.getDefault().asyncExec(() -> { setInstallRequired(false); diff --git a/org.eclipse.redox/src/org/eclipse/redox/RLSClientImplementation.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/RLSClientImplementation.java similarity index 95% rename from org.eclipse.redox/src/org/eclipse/redox/RLSClientImplementation.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/RLSClientImplementation.java index 4522241..9d2f75d 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/RLSClientImplementation.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/RLSClientImplementation.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox; +package org.eclipse.corrosion; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; @@ -42,7 +42,7 @@ public void diagnosticsBegin() { public void diagnosticsEnd() { status = null; if (diagnosticsJob != null) { - diagnosticsJob.done(new Status(IStatus.OK, RedoxPlugin.PLUGIN_ID, null)); + diagnosticsJob.done(new Status(IStatus.OK, CorrosionPlugin.PLUGIN_ID, null)); diagnosticsJob = null; } } diff --git a/org.eclipse.redox/src/org/eclipse/redox/RLSServerInterface.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/RLSServerInterface.java similarity index 96% rename from org.eclipse.redox/src/org/eclipse/redox/RLSServerInterface.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/RLSServerInterface.java index 768b021..58031f0 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/RLSServerInterface.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/RLSServerInterface.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox; +package org.eclipse.corrosion; import java.util.List; import java.util.concurrent.CompletableFuture; diff --git a/org.eclipse.redox/src/org/eclipse/redox/RLSStreamConnectionProvider.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/RLSStreamConnectionProvider.java similarity index 82% rename from org.eclipse.redox/src/org/eclipse/redox/RLSStreamConnectionProvider.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/RLSStreamConnectionProvider.java index 5e8983e..1910781 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/RLSStreamConnectionProvider.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/RLSStreamConnectionProvider.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox; +package org.eclipse.corrosion; import java.io.BufferedReader; import java.io.FilterInputStream; @@ -54,16 +54,16 @@ public void start() throws IOException { } private boolean setSystemProperties() { - RedoxPlugin plugin = RedoxPlugin.getDefault(); + CorrosionPlugin plugin = CorrosionPlugin.getDefault(); IPreferenceStore preferenceStore = plugin.getPreferenceStore(); - int rustSourceIndex = RedoxPreferencePage.RUST_SOURCE_OPTIONS - .indexOf(preferenceStore.getString(RedoxPreferenceInitializer.rustSourcePreference)); + int rustSourceIndex = CorrosionPreferencePage.RUST_SOURCE_OPTIONS + .indexOf(preferenceStore.getString(CorrosionPreferenceInitializer.rustSourcePreference)); String sysrootPath = ""; if (rustSourceIndex == 0) { - String rustup = preferenceStore.getString(RedoxPreferenceInitializer.rustupPathPreference); - String toolchain = preferenceStore.getString(RedoxPreferenceInitializer.toolchainIdPreference); + String rustup = preferenceStore.getString(CorrosionPreferenceInitializer.rustupPathPreference); + String toolchain = preferenceStore.getString(CorrosionPreferenceInitializer.toolchainIdPreference); if (!(rustup.isEmpty() || toolchain.isEmpty())) { String[] command = new String[] { rustup, "run", toolchain, "rustc", "--print", "sysroot" }; try { @@ -76,7 +76,7 @@ private boolean setSystemProperties() { } } } else if (rustSourceIndex == 1) { - sysrootPath = preferenceStore.getString(RedoxPreferenceInitializer.sysrootPathPreference); + sysrootPath = preferenceStore.getString(CorrosionPreferenceInitializer.sysrootPathPreference); } if (!sysrootPath.isEmpty()) { @@ -88,33 +88,33 @@ private boolean setSystemProperties() { return true; } } - RedoxPlugin.getDefault().getLog().log(new Status(IStatus.ERROR, - RedoxPlugin.getDefault().getBundle().getSymbolicName(), + CorrosionPlugin.getDefault().getLog().log(new Status(IStatus.ERROR, + CorrosionPlugin.getDefault().getBundle().getSymbolicName(), "Was unable to set the `SYS_ROOT` and `LD_LIBRARY_PATH` environment variables. Please do so manually.")); return false; } private String getRLS() { - RedoxPlugin plugin = RedoxPlugin.getDefault(); + CorrosionPlugin plugin = CorrosionPlugin.getDefault(); IPreferenceStore preferenceStore = plugin.getPreferenceStore(); - int rustSourceIndex = RedoxPreferencePage.RUST_SOURCE_OPTIONS - .indexOf(preferenceStore.getString(RedoxPreferenceInitializer.rustSourcePreference)); + int rustSourceIndex = CorrosionPreferencePage.RUST_SOURCE_OPTIONS + .indexOf(preferenceStore.getString(CorrosionPreferenceInitializer.rustSourcePreference)); if (rustSourceIndex == 0) { - String rustup = preferenceStore.getString(RedoxPreferenceInitializer.rustupPathPreference); - String toolchain = preferenceStore.getString(RedoxPreferenceInitializer.toolchainIdPreference); + String rustup = preferenceStore.getString(CorrosionPreferenceInitializer.rustupPathPreference); + String toolchain = preferenceStore.getString(CorrosionPreferenceInitializer.toolchainIdPreference); if (!(rustup.isEmpty() || toolchain.isEmpty())) { return rustup + " run " + toolchain + " rls"; } } else if (rustSourceIndex == 1) { - String rls = preferenceStore.getString(RedoxPreferenceInitializer.rlsPathPreference); + String rls = preferenceStore.getString(CorrosionPreferenceInitializer.rlsPathPreference); if (!rls.isEmpty()) { return rls; } } - RedoxPlugin.getDefault().getLog() - .log(new Status(IStatus.ERROR, RedoxPlugin.getDefault().getBundle().getSymbolicName(), + CorrosionPlugin.getDefault().getLog() + .log(new Status(IStatus.ERROR, CorrosionPlugin.getDefault().getBundle().getSymbolicName(), "Rust Language Server not found. Update in Rust preferences.")); return ""; } @@ -129,7 +129,7 @@ private void showSetupRustNotification() { SWT.NONE, "Open Preferences", "Cancel"); if (dialogResponse == 0) { PreferenceDialog preferenceDialog = PreferencesUtil.createPreferenceDialogOn(shell, - RedoxPreferencePage.PAGE_ID, new String[] { RedoxPreferencePage.PAGE_ID }, null); + CorrosionPreferencePage.PAGE_ID, new String[] { CorrosionPreferencePage.PAGE_ID }, null); preferenceDialog.setBlockOnOpen(true); preferenceDialog.open(); } else { diff --git a/org.eclipse.redox/src/org/eclipse/redox/RustManager.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/RustManager.java similarity index 95% rename from org.eclipse.redox/src/org/eclipse/redox/RustManager.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/RustManager.java index b254bec..3aef716 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/RustManager.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/RustManager.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox; +package org.eclipse.corrosion; import java.io.BufferedReader; import java.io.IOException; @@ -41,10 +41,10 @@ //TODO: investigate solution not requiring breaking restrictions @SuppressWarnings("restriction") public class RustManager { - private static final IPreferenceStore STORE = RedoxPlugin.getDefault().getPreferenceStore(); + private static final IPreferenceStore STORE = CorrosionPlugin.getDefault().getPreferenceStore(); public static String getDefaultToolchain() { - String rustup = STORE.getString(RedoxPreferenceInitializer.rustupPathPreference); + String rustup = STORE.getString(CorrosionPreferenceInitializer.rustupPathPreference); if (!rustup.isEmpty()) { try { ProcessBuilder builder = new ProcessBuilder(new String[] { rustup, "show" }); @@ -174,7 +174,7 @@ private static void showToolchainSelectionError(String message) { } private static boolean runRustupCommand(SubMonitor monitor, String... arguments) { - String rustup = STORE.getString(RedoxPreferenceInitializer.rustupPathPreference); + String rustup = STORE.getString(CorrosionPreferenceInitializer.rustupPathPreference); if (rustup.isEmpty()) { return false; } @@ -201,7 +201,7 @@ private static boolean runRustupCommand(SubMonitor monitor, String... arguments) public static List getToolchains() { List toolchainsList = new ArrayList<>(); - String rustup = STORE.getString(RedoxPreferenceInitializer.rustupPathPreference); + String rustup = STORE.getString(CorrosionPreferenceInitializer.rustupPathPreference); if (!rustup.isEmpty()) { try { ProcessBuilder builder = new ProcessBuilder(new String[] { rustup, "show" }); diff --git a/org.eclipse.redox/src/org/eclipse/redox/RustPerspective.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/RustPerspective.java similarity index 94% rename from org.eclipse.redox/src/org/eclipse/redox/RustPerspective.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/RustPerspective.java index 3469bae..a8f06e1 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/RustPerspective.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/RustPerspective.java @@ -10,10 +10,10 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox; +package org.eclipse.corrosion; import org.eclipse.debug.ui.IDebugUIConstants; -import org.eclipse.redox.wizards.newCargo.NewCargoProjectWizard; +import org.eclipse.corrosion.wizards.newCargo.NewCargoProjectWizard; import org.eclipse.search.ui.NewSearchUI; import org.eclipse.ui.IFolderLayout; import org.eclipse.ui.IPageLayout; @@ -23,7 +23,7 @@ import org.eclipse.ui.wizards.newresource.BasicNewFolderResourceWizard; public class RustPerspective implements IPerspectiveFactory { - public static final String ID = "org.eclipse.redox.rustPerspective"; + public static final String ID = "org.eclipse.corrosion.rustPerspective"; @Override public void createInitialLayout(IPageLayout layout) { diff --git a/org.eclipse.redox/src/org/eclipse/redox/builder/AddCargoBuilder.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/builder/AddCargoBuilder.java similarity index 98% rename from org.eclipse.redox/src/org/eclipse/redox/builder/AddCargoBuilder.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/builder/AddCargoBuilder.java index ee77ef2..934f4ea 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/builder/AddCargoBuilder.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/builder/AddCargoBuilder.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.builder; +package org.eclipse.corrosion.builder; import java.util.ArrayList; import java.util.Arrays; diff --git a/org.eclipse.redox/src/org/eclipse/redox/builder/IncrementalCargoBuilder.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/builder/IncrementalCargoBuilder.java similarity index 86% rename from org.eclipse.redox/src/org/eclipse/redox/builder/IncrementalCargoBuilder.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/builder/IncrementalCargoBuilder.java index f8491cd..dc69613 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/builder/IncrementalCargoBuilder.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/builder/IncrementalCargoBuilder.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.builder; +package org.eclipse.corrosion.builder; import java.util.Map; @@ -26,12 +26,12 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.redox.RedoxPlugin; -import org.eclipse.redox.RedoxPreferenceInitializer; +import org.eclipse.corrosion.CorrosionPlugin; +import org.eclipse.corrosion.CorrosionPreferenceInitializer; public class IncrementalCargoBuilder extends IncrementalProjectBuilder { - public static final String BUILDER_ID = "org.eclipse.redox.builder.IncrementalCargoBuilder"; + public static final String BUILDER_ID = "org.eclipse.corrosion.builder.IncrementalCargoBuilder"; private static Job buildJob; private static boolean wasCausedByRefresh = false; @@ -53,8 +53,8 @@ protected IProject[] build(int kind, Map args, IProgressMonitor SubMonitor subMonitor = SubMonitor.convert(buildMonitor, 2); subMonitor.worked(1); try { - IPreferenceStore store = RedoxPlugin.getDefault().getPreferenceStore(); - String cargo = store.getString(RedoxPreferenceInitializer.cargoPathPreference); + IPreferenceStore store = CorrosionPlugin.getDefault().getPreferenceStore(); + String cargo = store.getString(CorrosionPreferenceInitializer.cargoPathPreference); String[] commandList = { cargo, "build", "--manifest-path", manifest.toString() }; Process buildProcess = DebugPlugin.exec(commandList, project.getLocation().makeAbsolute().toFile()); while (buildProcess.isAlive() && !subMonitor.isCanceled()) { diff --git a/org.eclipse.redox/src/org/eclipse/redox/builder/RemoveCargoBuilder.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/builder/RemoveCargoBuilder.java similarity index 97% rename from org.eclipse.redox/src/org/eclipse/redox/builder/RemoveCargoBuilder.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/builder/RemoveCargoBuilder.java index eb82daf..fee63b0 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/builder/RemoveCargoBuilder.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/builder/RemoveCargoBuilder.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.builder; +package org.eclipse.corrosion.builder; import java.util.ArrayList; import java.util.Arrays; diff --git a/org.eclipse.redox/src/org/eclipse/redox/builder/TestCargoBuilderEnabled.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/builder/TestCargoBuilderEnabled.java similarity index 96% rename from org.eclipse.redox/src/org/eclipse/redox/builder/TestCargoBuilderEnabled.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/builder/TestCargoBuilderEnabled.java index ad20ec9..b6244bb 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/builder/TestCargoBuilderEnabled.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/builder/TestCargoBuilderEnabled.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.builder; +package org.eclipse.corrosion.builder; import org.eclipse.core.expressions.PropertyTester; import org.eclipse.core.resources.IProject; diff --git a/org.eclipse.redox/src/org/eclipse/redox/debug/RustDebugDelegate.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/RustDebugDelegate.java similarity index 93% rename from org.eclipse.redox/src/org/eclipse/redox/debug/RustDebugDelegate.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/debug/RustDebugDelegate.java index b506073..b9c5236 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/debug/RustDebugDelegate.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/RustDebugDelegate.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.debug; +package org.eclipse.corrosion.debug; import java.io.File; import java.util.ArrayList; @@ -46,21 +46,21 @@ import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.redox.RedoxPlugin; -import org.eclipse.redox.RedoxPreferenceInitializer; +import org.eclipse.corrosion.CorrosionPlugin; +import org.eclipse.corrosion.CorrosionPreferenceInitializer; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.PlatformUI; public class RustDebugDelegate extends GdbLaunchDelegate implements ILaunchShortcut { - public static final String BUILD_COMMAND_ATTRIBUTE = RedoxPlugin.PLUGIN_ID + "BUILD_COMMAND"; + public static final String BUILD_COMMAND_ATTRIBUTE = CorrosionPlugin.PLUGIN_ID + "BUILD_COMMAND"; @Override public void launch(ILaunchConfiguration config, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException { - IPreferenceStore store = RedoxPlugin.getDefault().getPreferenceStore(); - String cargo = store.getString(RedoxPreferenceInitializer.cargoPathPreference); + IPreferenceStore store = CorrosionPlugin.getDefault().getPreferenceStore(); + String cargo = store.getString(CorrosionPreferenceInitializer.cargoPathPreference); String buildCommand = config.getAttribute(BUILD_COMMAND_ATTRIBUTE, ""); File projectLocation = new File( config.getAttribute(ICDTLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, "")); @@ -114,7 +114,7 @@ public void launch(ISelection selection, String mode) { launchConfig.launch(mode, new NullProgressMonitor()); } } catch (CoreException e) { - RedoxPlugin.logError(e); + CorrosionPlugin.logError(e); } return; } @@ -137,7 +137,7 @@ public void launch(IEditorPart editor, String mode) { launchConfig.launch(mode, new NullProgressMonitor()); } } catch (CoreException e) { - RedoxPlugin.logError(e); + CorrosionPlugin.logError(e); } } @@ -181,7 +181,7 @@ protected IPath checkBinaryDetails(ILaunchConfiguration config) throws CoreExcep private ILaunchConfiguration getLaunchConfiguration(String mode, IResource resource) { ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager(); ILaunchConfigurationType configType = launchManager - .getLaunchConfigurationType("org.eclipse.redox.debug.RustDebugDelegate"); + .getLaunchConfigurationType("org.eclipse.corrosion.debug.RustDebugDelegate"); try { ILaunchConfiguration[] launchConfigurations = launchManager.getLaunchConfigurations(configType); final IProject project = resource.getProject(); @@ -203,7 +203,7 @@ private ILaunchConfiguration getLaunchConfiguration(String mode, IResource resou wc.doSave(); return wc; } catch (CoreException e) { - RedoxPlugin.logError(e); + CorrosionPlugin.logError(e); } return null; } diff --git a/org.eclipse.redox/src/org/eclipse/redox/debug/RustDebugTab.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/RustDebugTab.java similarity index 99% rename from org.eclipse.redox/src/org/eclipse/redox/debug/RustDebugTab.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/debug/RustDebugTab.java index e854a57..5d81c3c 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/debug/RustDebugTab.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/RustDebugTab.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.debug; +package org.eclipse.corrosion.debug; import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter; @@ -25,7 +25,7 @@ import org.eclipse.debug.ui.AbstractLaunchConfigurationTab; import org.eclipse.debug.ui.StringVariableSelectionDialog; import org.eclipse.jface.layout.GridLayoutFactory; -import org.eclipse.redox.CargoProjectTester; +import org.eclipse.corrosion.CargoProjectTester; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; diff --git a/org.eclipse.redox/src/org/eclipse/redox/debug/RustDebugTabGroup.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/RustDebugTabGroup.java similarity index 97% rename from org.eclipse.redox/src/org/eclipse/redox/debug/RustDebugTabGroup.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/debug/RustDebugTabGroup.java index 78c2ce8..37fb4f4 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/debug/RustDebugTabGroup.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/RustDebugTabGroup.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.debug; +package org.eclipse.corrosion.debug; import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; import org.eclipse.cdt.dsf.gdb.internal.ui.launching.LocalApplicationCDebuggerTab; diff --git a/org.eclipse.redox/src/org/eclipse/redox/debug/SourceLookupDirector.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/SourceLookupDirector.java similarity index 92% rename from org.eclipse.redox/src/org/eclipse/redox/debug/SourceLookupDirector.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/debug/SourceLookupDirector.java index cff6824..d84ee66 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/debug/SourceLookupDirector.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/SourceLookupDirector.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.debug; +package org.eclipse.corrosion.debug; import org.eclipse.cdt.debug.internal.core.sourcelookup.CSourceLookupDirector; import org.eclipse.cdt.debug.internal.core.sourcelookup.CSourcePathComputerDelegate; @@ -19,7 +19,7 @@ import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.sourcelookup.ISourceContainer; import org.eclipse.debug.core.sourcelookup.ISourcePathComputer; -import org.eclipse.redox.RedoxPlugin; +import org.eclipse.corrosion.CorrosionPlugin; public class SourceLookupDirector extends CSourceLookupDirector { @Override @@ -40,7 +40,7 @@ public ISourceContainer[] computeSourceContainers(ILaunchConfiguration configura @Override public String getId() { - return RedoxPlugin.PLUGIN_ID + ".SourceLocator"; + return CorrosionPlugin.PLUGIN_ID + ".SourceLocator"; } }; } diff --git a/org.eclipse.redox/src/org/eclipse/redox/debug/ToggleBreakpointAdapter.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/ToggleBreakpointAdapter.java similarity index 99% rename from org.eclipse.redox/src/org/eclipse/redox/debug/ToggleBreakpointAdapter.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/debug/ToggleBreakpointAdapter.java index 9d2b614..cc82052 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/debug/ToggleBreakpointAdapter.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/ToggleBreakpointAdapter.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.debug; +package org.eclipse.corrosion.debug; import java.math.BigInteger; import java.util.HashMap; diff --git a/org.eclipse.redox/src/org/eclipse/redox/debug/ToggleBreakpointsTargetFactory.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/ToggleBreakpointsTargetFactory.java similarity index 92% rename from org.eclipse.redox/src/org/eclipse/redox/debug/ToggleBreakpointsTargetFactory.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/debug/ToggleBreakpointsTargetFactory.java index 23e9d37..4973958 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/debug/ToggleBreakpointsTargetFactory.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/debug/ToggleBreakpointsTargetFactory.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.debug; +package org.eclipse.corrosion.debug; import java.util.Collections; import java.util.Set; @@ -18,14 +18,14 @@ import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget; import org.eclipse.debug.ui.actions.IToggleBreakpointsTargetFactory; import org.eclipse.jface.viewers.ISelection; -import org.eclipse.redox.RedoxPlugin; +import org.eclipse.corrosion.CorrosionPlugin; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.part.FileEditorInput; import org.eclipse.ui.texteditor.ITextEditor; public class ToggleBreakpointsTargetFactory implements IToggleBreakpointsTargetFactory { - public static final String FACTORY_ID = RedoxPlugin.PLUGIN_ID + "BreakpointFactory"; + public static final String FACTORY_ID = CorrosionPlugin.PLUGIN_ID + "BreakpointFactory"; public ToggleBreakpointsTargetFactory() { } diff --git a/org.eclipse.redox/src/org/eclipse/redox/extensions/Implementations.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/extensions/Implementations.java similarity index 98% rename from org.eclipse.redox/src/org/eclipse/redox/extensions/Implementations.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/extensions/Implementations.java index 1e7aece..08abc4d 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/extensions/Implementations.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/extensions/Implementations.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.extensions; +package org.eclipse.corrosion.extensions; import java.util.Collection; diff --git a/org.eclipse.redox/src/org/eclipse/redox/extensions/ImplementationsSearchQuery.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/extensions/ImplementationsSearchQuery.java similarity index 98% rename from org.eclipse.redox/src/org/eclipse/redox/extensions/ImplementationsSearchQuery.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/extensions/ImplementationsSearchQuery.java index 4558f7e..83a1b5e 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/extensions/ImplementationsSearchQuery.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/extensions/ImplementationsSearchQuery.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.extensions; +package org.eclipse.corrosion.extensions; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -33,7 +33,7 @@ import org.eclipse.lsp4j.ReferenceParams; import org.eclipse.lsp4j.TextDocumentIdentifier; import org.eclipse.osgi.util.NLS; -import org.eclipse.redox.RLSServerInterface; +import org.eclipse.corrosion.RLSServerInterface; import org.eclipse.search.internal.ui.text.FileMatch; import org.eclipse.search.internal.ui.text.FileSearchQuery; import org.eclipse.search.internal.ui.text.FileSearchResult; diff --git a/org.eclipse.redox/src/org/eclipse/redox/run/CargoRunDelegate.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/run/CargoRunDelegate.java similarity index 93% rename from org.eclipse.redox/src/org/eclipse/redox/run/CargoRunDelegate.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/run/CargoRunDelegate.java index 602034a..3ab43ee 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/run/CargoRunDelegate.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/run/CargoRunDelegate.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.run; +package org.eclipse.corrosion.run; import java.util.ArrayList; import java.util.Arrays; @@ -41,8 +41,8 @@ import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.redox.RedoxPlugin; -import org.eclipse.redox.RedoxPreferenceInitializer; +import org.eclipse.corrosion.CorrosionPlugin; +import org.eclipse.corrosion.CorrosionPreferenceInitializer; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; @@ -74,7 +74,7 @@ public void launch(ISelection selection, String mode) { launchConfig.launch(mode, new NullProgressMonitor()); } } catch (CoreException e) { - RedoxPlugin.logError(e); + CorrosionPlugin.logError(e); } return; } @@ -97,7 +97,7 @@ public void launch(IEditorPart editor, String mode) { launchConfig.launch(mode, new NullProgressMonitor()); } } catch (CoreException e) { - RedoxPlugin.logError(e); + CorrosionPlugin.logError(e); } } @@ -105,8 +105,8 @@ public void launch(IEditorPart editor, String mode) { public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException { List cargoRunCommand = new ArrayList<>(); - IPreferenceStore store = RedoxPlugin.getDefault().getPreferenceStore(); - String cargo = store.getString(RedoxPreferenceInitializer.cargoPathPreference); + IPreferenceStore store = CorrosionPlugin.getDefault().getPreferenceStore(); + String cargo = store.getString(CorrosionPreferenceInitializer.cargoPathPreference); cargoRunCommand.add(cargo); String projectName = configuration.getAttribute(PROJECT_ATTRIBUTE, ""); String runCommand = configuration.getAttribute(RUN_COMMAND_ATTRIBUTE, ""); @@ -160,7 +160,7 @@ public void launch(ILaunchConfiguration configuration, String mode, ILaunch laun private ILaunchConfiguration getLaunchConfiguration(String mode, IResource resource) { ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager(); ILaunchConfigurationType configType = launchManager - .getLaunchConfigurationType("org.eclipse.redox.run.CargoRunDelegate"); + .getLaunchConfigurationType("org.eclipse.corrosion.run.CargoRunDelegate"); try { ILaunchConfiguration[] launchConfigurations = launchManager.getLaunchConfigurations(configType); final String projectName = resource.getProject().getName(); @@ -175,7 +175,7 @@ private ILaunchConfiguration getLaunchConfiguration(String mode, IResource resou wc.setAttribute("PROJECT", projectName); return wc; } catch (CoreException e) { - RedoxPlugin.logError(e); + CorrosionPlugin.logError(e); } return null; } diff --git a/org.eclipse.redox/src/org/eclipse/redox/run/CargoRunTab.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/run/CargoRunTab.java similarity index 98% rename from org.eclipse.redox/src/org/eclipse/redox/run/CargoRunTab.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/run/CargoRunTab.java index 0544259..c87d702 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/run/CargoRunTab.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/run/CargoRunTab.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.run; +package org.eclipse.corrosion.run; import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter; @@ -22,7 +22,7 @@ import org.eclipse.debug.ui.AbstractLaunchConfigurationTab; import org.eclipse.debug.ui.StringVariableSelectionDialog; import org.eclipse.jface.layout.GridLayoutFactory; -import org.eclipse.redox.CargoProjectTester; +import org.eclipse.corrosion.CargoProjectTester; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; diff --git a/org.eclipse.redox/src/org/eclipse/redox/run/CargoRunTabGroup.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/run/CargoRunTabGroup.java similarity index 96% rename from org.eclipse.redox/src/org/eclipse/redox/run/CargoRunTabGroup.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/run/CargoRunTabGroup.java index ef4eda2..2e08e4e 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/run/CargoRunTabGroup.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/run/CargoRunTabGroup.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.run; +package org.eclipse.corrosion.run; import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup; import org.eclipse.debug.ui.CommonTab; diff --git a/org.eclipse.redox/src/org/eclipse/redox/snippet/Snippet.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/snippet/Snippet.java similarity index 98% rename from org.eclipse.redox/src/org/eclipse/redox/snippet/Snippet.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/snippet/Snippet.java index ad81034..99ce896 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/snippet/Snippet.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/snippet/Snippet.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.snippet; +package org.eclipse.corrosion.snippet; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.contentassist.ICompletionProposal; diff --git a/org.eclipse.redox/src/org/eclipse/redox/snippet/SnippetContentAssistProcessor.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/snippet/SnippetContentAssistProcessor.java similarity index 98% rename from org.eclipse.redox/src/org/eclipse/redox/snippet/SnippetContentAssistProcessor.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/snippet/SnippetContentAssistProcessor.java index 22900fe..68fb6c2 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/snippet/SnippetContentAssistProcessor.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/snippet/SnippetContentAssistProcessor.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.snippet; +package org.eclipse.corrosion.snippet; import java.io.File; import java.io.IOException; @@ -51,7 +51,7 @@ public class SnippetContentAssistProcessor implements IContentAssistProcessor { JsonArray snippetArray = null; JsonParser parser = new JsonParser(); try { - URL url = FileLocator.toFileURL(FileLocator.find(Platform.getBundle("org.eclipse.redox"), + URL url = FileLocator.toFileURL(FileLocator.find(Platform.getBundle("org.eclipse.corrosion"), Path.fromPortableString("snippets/rust.json"), Collections.emptyMap())); StringBuilder snippetsBuilder = new StringBuilder(); Files.readAllLines(new File(url.getFile()).toPath()).forEach(line -> snippetsBuilder.append(line)); diff --git a/org.eclipse.redox/src/org/eclipse/redox/wizards/export/CargoExportWizard.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/export/CargoExportWizard.java similarity index 93% rename from org.eclipse.redox/src/org/eclipse/redox/wizards/export/CargoExportWizard.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/export/CargoExportWizard.java index 3212b7a..5dbc3d2 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/wizards/export/CargoExportWizard.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/export/CargoExportWizard.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.wizards.export; +package org.eclipse.corrosion.wizards.export; import java.io.BufferedReader; import java.io.IOException; @@ -32,8 +32,8 @@ import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; -import org.eclipse.redox.RedoxPlugin; -import org.eclipse.redox.RedoxPreferenceInitializer; +import org.eclipse.corrosion.CorrosionPlugin; +import org.eclipse.corrosion.CorrosionPreferenceInitializer; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IExportWizard; import org.eclipse.ui.IWorkbench; @@ -75,8 +75,8 @@ public boolean performFinish() { Boolean noMetadata = wizardPage.noMetadata(); Boolean allowDirty = wizardPage.allowDirty(); - IPreferenceStore store = RedoxPlugin.getDefault().getPreferenceStore(); - String cargo = store.getString(RedoxPreferenceInitializer.cargoPathPreference); + IPreferenceStore store = CorrosionPlugin.getDefault().getPreferenceStore(); + String cargo = store.getString(CorrosionPreferenceInitializer.cargoPathPreference); List exportCommandList = new ArrayList<>(); exportCommandList.add(cargo); diff --git a/org.eclipse.redox/src/org/eclipse/redox/wizards/export/CargoExportWizardPage.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/export/CargoExportWizardPage.java similarity index 94% rename from org.eclipse.redox/src/org/eclipse/redox/wizards/export/CargoExportWizardPage.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/export/CargoExportWizardPage.java index 38f1012..923f131 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/wizards/export/CargoExportWizardPage.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/export/CargoExportWizardPage.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.wizards.export; +package org.eclipse.corrosion.wizards.export; import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter; @@ -25,10 +25,10 @@ import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.redox.CargoProjectTester; -import org.eclipse.redox.RedoxPlugin; -import org.eclipse.redox.RedoxPreferenceInitializer; -import org.eclipse.redox.RustManager; +import org.eclipse.corrosion.CargoProjectTester; +import org.eclipse.corrosion.CorrosionPlugin; +import org.eclipse.corrosion.CorrosionPreferenceInitializer; +import org.eclipse.corrosion.RustManager; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; @@ -174,12 +174,12 @@ public void createControl(Composite parent) { setPageComplete(isPageComplete()); } - private IPreferenceStore store = RedoxPlugin.getDefault().getPreferenceStore(); + private IPreferenceStore store = CorrosionPlugin.getDefault().getPreferenceStore(); private static CargoProjectTester tester = new CargoProjectTester(); @Override public boolean isPageComplete() { - File cargo = new File(store.getString(RedoxPreferenceInitializer.cargoPathPreference)); + File cargo = new File(store.getString(CorrosionPreferenceInitializer.cargoPathPreference)); if (!(cargo.exists() && cargo.isFile() && cargo.canExecute())) { setErrorMessage("Cargo command not found. Fix path in the Rust Preferences Page."); return false; diff --git a/org.eclipse.redox/src/org/eclipse/redox/wizards/newCargo/NewCargoProjectWizard.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/newCargo/NewCargoProjectWizard.java similarity index 95% rename from org.eclipse.redox/src/org/eclipse/redox/wizards/newCargo/NewCargoProjectWizard.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/newCargo/NewCargoProjectWizard.java index db5e7c0..c96551c 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/wizards/newCargo/NewCargoProjectWizard.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/newCargo/NewCargoProjectWizard.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.wizards.newCargo; +package org.eclipse.corrosion.wizards.newCargo; import java.io.BufferedReader; import java.io.File; @@ -43,9 +43,9 @@ import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; -import org.eclipse.redox.RedoxPlugin; -import org.eclipse.redox.RedoxPreferenceInitializer; -import org.eclipse.redox.builder.IncrementalCargoBuilder; +import org.eclipse.corrosion.CorrosionPlugin; +import org.eclipse.corrosion.CorrosionPreferenceInitializer; +import org.eclipse.corrosion.builder.IncrementalCargoBuilder; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.INewWizard; import org.eclipse.ui.IWorkbench; @@ -57,7 +57,7 @@ public class NewCargoProjectWizard extends Wizard implements INewWizard { private NewCargoProjectWizardPage wizardPage; - public static final String ID = "org.eclipse.redox.wizards.newCargo"; + public static final String ID = "org.eclipse.corrosion.wizards.newCargo"; public NewCargoProjectWizard() { super(); @@ -111,8 +111,8 @@ public boolean performFinish() { Boolean isBin = wizardPage.isBinaryTemplate(); String vcs = wizardPage.getVCS(); - IPreferenceStore store = RedoxPlugin.getDefault().getPreferenceStore(); - String cargo = store.getString(RedoxPreferenceInitializer.cargoPathPreference); + IPreferenceStore store = CorrosionPlugin.getDefault().getPreferenceStore(); + String cargo = store.getString(CorrosionPreferenceInitializer.cargoPathPreference); Boolean makeLocation = !location.exists(); if (makeLocation) { diff --git a/org.eclipse.redox/src/org/eclipse/redox/wizards/newCargo/NewCargoProjectWizardPage.java b/org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/newCargo/NewCargoProjectWizardPage.java similarity index 97% rename from org.eclipse.redox/src/org/eclipse/redox/wizards/newCargo/NewCargoProjectWizardPage.java rename to org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/newCargo/NewCargoProjectWizardPage.java index 87b8126..6057d85 100644 --- a/org.eclipse.redox/src/org/eclipse/redox/wizards/newCargo/NewCargoProjectWizardPage.java +++ b/org.eclipse.corrosion/src/org/eclipse/corrosion/wizards/newCargo/NewCargoProjectWizardPage.java @@ -10,7 +10,7 @@ * Contributors: * Lucas Bullen (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.redox.wizards.newCargo; +package org.eclipse.corrosion.wizards.newCargo; import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter; @@ -32,8 +32,8 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.redox.RedoxPlugin; -import org.eclipse.redox.RedoxPreferenceInitializer; +import org.eclipse.corrosion.CorrosionPlugin; +import org.eclipse.corrosion.CorrosionPreferenceInitializer; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; @@ -129,7 +129,7 @@ public void createControl(Composite parent) { } } - private IPreferenceStore store = RedoxPlugin.getDefault().getPreferenceStore(); + private IPreferenceStore store = CorrosionPlugin.getDefault().getPreferenceStore(); @Override public boolean isPageComplete() { @@ -137,7 +137,7 @@ public boolean isPageComplete() { String projectNameError = ""; String cargoError = ""; - File cargo = new File(store.getString(RedoxPreferenceInitializer.cargoPathPreference)); + File cargo = new File(store.getString(CorrosionPreferenceInitializer.cargoPathPreference)); if (!(cargo.exists() && cargo.isFile() && cargo.canExecute())) { cargoError = "Cargo command not found. Fix path in the Rust Preferences Page."; } else if (directory == null || directory.getPath().isEmpty()) { @@ -258,7 +258,7 @@ private void createLocationPart(Composite container) { linkImage = new Image(linkButton.getDisplay(), iconStream); linkButton.setImage(linkImage); } catch (IOException e) { - RedoxPlugin.logError(e); + CorrosionPlugin.logError(e); } linkButton.addSelectionListener(widgetSelectedAdapter(s -> { isDirectoryAndProjectLinked = linkButton.getSelection(); diff --git a/org.eclipse.redox.feature/category.xml b/org.eclipse.redox.feature/category.xml deleted file mode 100644 index 83c2f88..0000000 --- a/org.eclipse.redox.feature/category.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - RedOx enables Rust application development in the Eclipse IDE. - - - diff --git a/pom.xml b/pom.xml index fb04af1..751d187 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,6 @@ 4.0.0 - org.eclipse.redox + org.eclipse.corrosion parent 0.1.0-SNAPSHOT pom @@ -11,13 +11,13 @@ 1.0.0 ${tycho-version} - scm:git:https://github.com/lucasbullen/redox.git + scm:git:https://github.com/lucasbullen/corrosion.git target-platform - org.eclipse.redox - org.eclipse.redox.tests + org.eclipse.corrosion + org.eclipse.corrosion.tests @@ -85,7 +85,7 @@ true ${sonar.jacoco.reportPath} - org.eclipse.redox* + org.eclipse.corrosion* diff --git a/site/artifacts.jar b/site/artifacts.jar index 1dac632c0cc7f74e9480fe98732facbe136135ad..95b68704d8931fa18b1cb0bb975a27a768c0e959 100644 GIT binary patch delta 1733 zcmV;$20HnM4u=j6P)h>@6aWYa2moMANRbUEe>M=t?|BLxGF5vpjm3XV?c~%xK&L%- zKwzOTkw})L61$nadzZE)k%^s198n#QJtCox1b$U1?e*)=Mf~#j>(5U#zGUxxv!DKtPLmg z!{gvLCph}x!<)OUqwg?F=(}z6(j`5Oe(#!Yu6INqwswKCzvF5LcsH^bOlUcvf4W>0 zaU6f$Mq;+{&4*ZhDhJWU`pC{W1H&W;`Y})EcrN6`e(c-e*++H%)qU^?W~|&XeNNU- zXI=R?Rkn$0uhNi5;XJo07>xpjNrw9rP;tqui-!Y#9m)Nk-33fWyt!ZBm)WP{L($<~ z_Z)1|qvkzr%Yf4(DFuVG^0r(Xe{(wT<7GqM%xR?^GfH|c1oLQJ9wLLNZJtof&HEvw zL)GB(;q1V14(zOW!6_x}>3mPn4FOy5R-<-0`XoFPxpY3DLxw(=+QUTxno7c^D%-5A zNM8is75&y%+^Ik+0{`(Tk-!zjwmdI-DJlP*PX1`wII^R_K%9Xyp_BE@e{m-bT~uIJ zh`GSOf3zj-2rPxPeF7_(z5*lpdBJLHz`z8wCkTgdla-WhtTj=1p&}^c5U@`{^y`Or zYreFxEuKvpbh|YG=<@;=PKhaekJk!q<8?#gltLg`Lq#$QsbXLbfmxt}8BI{$%tYMRKD@&{>a{Od1Ij$pPmm>( z+%V41>p-}(nokJo6LdqyIfb*=K|2{k9=Sjt6yx4R>wRQ~&m7h3f3}umd#4^VwPo}N z6m#c=YX#SA0^H+uBe+pxV##A<5nWWqGJ@?jIFLM;x$WIUA#89}wB2aIVc?;A%nHPr zTSA!D5*{lXBKFEt4puxsN=Zf;9gi_#$|+|g#{3M3DKTWLs#>ivTW$SEKTHli*j)xj7|tBS)P^)w5BItF z?W30-De=832j4;bLbc*x^c>}U7&z_dig;%BVFTPx8F109ER1PslG( z%zH1o^(zcjnTpl6d1$*{SREs$Z1{QYlN10G79Wq7jruK@lrhxgI;V0)CWQ)7h(Hk@ zlcG;^EzwkEe=*9;)W*V`%QGCLc2hj*@wy>a9wcZVG&z2x*41j8r~|On*d|1Z=?fVC z_oIlFPwDu<@n2CrKX*SRotUt$c!F+}jzi=KF=zo4_MZH|_MAJ7TqAS#9E&qAzL)xr zdpdk&nv3GcxG2g>9hTjn_w@mzuj}>G^3e6aMLl8de*m1GtJ8nqR@-{CVr4S^*xLiy zFi>z_^G-40rXP6WFU~{QBp8)%K-Kdx2(t2aPVp5ZjSLjg$ z?+G*ZKHAL;`|jag`(5t)j8f!dYqlp1)MH$+v%fi00D3})ae{708iLFrMTIhXDPmv< zrtdX?%!J}_f;BsA(eTan;s21{y!sDNO9u!aBo`Sea|QqaFC_o~P)h*<6aW+e2nYxO bU`$9%9~T)Za|QqaFO$j!HU_c=0000065&lp delta 1716 zcmV;l221&e4u%d5P)h>@6aWYa2mlC$K9LP4e>f7x?|BLxQlpuJX*B+$)=o~l53n_J z-U5M!!bBpuB$e2c%DZpVu_Q8MXCxM>EtjfH!XF9!*y#Qm^xgZ1-FEdEo3^OR`!!^2 zy}~k7u_!n9>py<~*Nt7jfA{9@y>GfA`Oy6v>#8lfs(Bo$dR_l#&1tmsJG@{2^P#Sq ze-7j7q+74L$C`$!W|Lvq7Iljm{&!!L)k9YE>~N#(bgir{cJ&sAmpI*f{qD_bbyqi4 zjikhO)fRu!)%nx;)5u{$bce3kVcYp#O_%Z8J)HyvMo25c80FTtuPQ^es~c=vj7MqL z?D4ze?)Ef^r{kTkYr=S#kvPn#*>7=`e~N8~&HehD-)`&eep8g~?c1+K{Pv%>U!Q4w%Rc(%IQ_r7OC<_X2pyq`ikR1Lly&JG;sz-Gk@ zPAO?G=X-%}2-t$R8nx5WC*hgMrSkzDGW5CB9xn|uN&eGQGW-fT{PMtP~GF6N6AuhJQ*~(T^R4St>woNT=|?BsOB+#L!WsQ z11(G|+~s&L&<*i&&XtY`#(MBtfD$Zskc%W_!l2FnF(;3Ldijj3IcRY?_w!{#>>?Tk z+JWWHgdCLRLdp<>%sJ#T>Z@Y^QZ=7)Y9c?3yd4)u-inDE#(!Yu3TPx_Q_RQtx*>7O z(2%Sl4-$n`F))X~ERY|GCMdsjp!a!X?CjJrNmCRsvQx8W5lap7glN7%H-sCdv_>(n zllMm2lpuNKQR@WK>3k{c>}wxB;4zN3zT6BD^GrWSuw;@O#`(PNnLDfb6vpT4hKzH{ z6Ba5Ag1-0ZK`Us z#cZ?ppZ#!6_FxZXh4=nn9=CyJT9uj-(WGU0fp7>|@qeT=Q_AN771b9<_K8{>jFS8* zrS^pZw^cdHdFF^0xVvEv=G~Fu%2CTWf$sUbQPoZie9|trDu78IQ*h)_k?~wJqnF;3 zd2;{RM`GO6;hJ55rHIm(Q$AldgiNNB+ozC4$#Muza_$)qCfAmlgE>0bS9h0RDKw|y zX$6O$Q-5$mRd!f*zdzO|g1)Y|&mG9^pG7^vo`Tcvs`h=CUS&R$=WB^NU$a0X{u?ddheBEe6D@f2jXzG)Y3Y*n7 zQQu^>gM>&iy%g5A+SjA~DwFZ=%_oo%0|oQiTtSWXlvuq$HwsoGlBKMoFh*yc(}pLG z)PFx%!;R%jbP=x?yf!q5W&5G(+N)MRAe%SE`(B_MCFH1b9=Q)v2S0KJWLJRArQ&=7?DKV_MuSW1jrEF2P1RhXM-jXy%-C1cr5)YF(>wNu-1kjK zk&hGfku;FgxM8!uF;hTpdIIV5bwkn+WJ(SxDwN4f5d%Xoz2kuX?E{Ak67=bahVO1q z|9|xE&Hn&UO9u!F(36021^@sjB>(_WO928D02BZS2nYZOg+5FQ(36021^@sjlgkD+ K2C)VJ0001@6kgl_ diff --git a/site/content.jar b/site/content.jar index 2610f0066adfb1d0daeb1e31d41ca5c3dd552b64..28645384232f7a442def8d585800286c6c19f8be 100644 GIT binary patch literal 13473 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 VDA<250RCt3{%4o_&!YeU{};u`{3!qc literal 10562 zcma*NV{j!5&?TH?V%wP5nb@{%Om1x3_Kj^j6WcZ?Htxi>lYRErzTa21Roi{4y1KgS z{O;;=l;wUvVuHcK!h*qt3Ce^0k3ax}1T%54cQvzjW%9JM{h9;=yA-fd14$?CK5Nk& z7?*XC+Zy3np5$e27X;-M#%tYVNXhH#k2@PJjVEa(5v;Y71Y|zWH<`+5rWOn|HL(3G znXaj+s+q3w{rIShsI>4UH~I(t^~-_5 zKVyEPCyZRBh&Kr2g41kf4~f}qZme%@Y&W{YZ0b31()GCppE6LWh>uQ`J8@HA#N>0S zlAT<;?8ag^yF&`REIEz=sSWX-iw6s84DL4_0hfrJFxT%Zvnw}9fw$DeQMa)Kn=#`A zCZfLR8!VsFK(W)SnD&*1q?B zV_HX+SMdUOe79pF8II=(f51TugdI-s0W3f@&m`fO#<{VkJ(G3okoEf}NB{ADdt~^X zx1%^2ZOE~RY}VR(DoFSb?fSnPOgHG?++{DtnV0Gq`?I^I6*WC6oM}ceR7}U+*e`~c z4y|xPJL}2bu)1RGm*Y+bNRGMvFd_$Iyp~ib$eH_BD`0$CXk$H2L`VfDsBCB-qOOB0 zJYWfPS>yR*wdK&Zw(7}%EKcdE`Co^LS^`qwh zDV;`YCZ`>s6$dSlm*|TWYfnn@K%-z`KMQegHfOrj;ES+UJh;N58D})QCI}F{kPu9& zIo+xK>mmIjP<#uN#n}Y$0$JeT@PyzWjf*KYNnP?GJtUcg;J$zt{^%c-p1$Z0nQVJj zw?Z7`NlpK(>KE@NvCi(**Km|DA;8MqFSfq!jxOT?TAvSTLSKgn^PXNWSAP-$(mFn` z3^YIBtkU@#z(-;)ha1T$UyJuW-7yD-lj;lVI5}%rn<*-irJR^O>@C2xtKa}pTT&3% zkuR9z;JA&AMjb!@40eRDkqOB(IpBIg9$8txUm@uza4B2Mo+dWbh9k4ULEA3wWd$ zoy<3L28qh%any%@iqOZjqZ{oAry2io_=$ppJMMO|D3r(qGQKKq8{~GEDkKuDs#gz# z`=Unf%Pj4z9#%GR8`Nsnb1SSy@5A%`@}!X{g?JilsE|x}Ib+R$Zc#rhi-hM?o!M94 z;HXyoI%joB(<2=+lZ-UI=NVYafdn77bYYD!OHh$$%?Lf5jFhx9DJQTiZUK6&Pf9`g zlypX>s2H4+ElOQ4NI86C24+5scyf{Tx@7O)m+{Dt6WXG1zJ~<0EUW*h6i;3iFKIus zA(MD^UZ0sg{&{R6B(eeYlgxJVYu?hypDtMfDebqoZ&=W3?6=GdIww8!?}1IFD6qtugG?dye)ys)aJ0?pJS_tPNR+6OJ=$JV}n#6-b1xm6dMGRtaZS zcLK{IEnYDj5AL-MyQ(y&NH44!#Ma)gmUUJ^5H3yT5UHtt5-KWwJuRpoj(-i6DF*|3 ztvg(~ISv^)woR&+jb!1rSFMoRX^pD;8!@E>MK-krf2zEcvjl92RiOkZ8s;xnn8i)x z`j;##36hmGpSl2U)$T@N=n`6rEnZ-Cb)-Jh{x6}UT-c752~iIdR9*O2OSKsICi@>F zA0&CiJfdD}1LwEy#hB03emtbkN_cxYzjoT`p(INmbFU6$jud8==9Ej-gTs4+r zccThJYYns}F-ke0;(F|P;=;#Kc<8!}PaUfF1MY}v7Fe4)7>?F*v{t5!o9Qa;g=KZN zUbX{MhnBAmTX;wAzdAnk-x{ptN`#QVQ%qJ?gwYOPV;u%WcKuJc=yysC#~Q5O{ZThN zAWKL!Jo8S%8wB)szm60yK02O=hvN>iSpfuP2$Y>IXJMVN*=IK9OA3AF3P+4atW#q4 z*}ic%+uZHX%Va?kF;2OIFssrMevW$B&DSR;Q zzf<%&qNtDEUgBw`tY4$2y3Ynx^mQ{cDWY8dl2;n zRBdqeNpjot{dK}K+`~!4k?xsk$I{z9YO9K7qe{f+Y|7!nv*PU4&&$Qn>m(eFw&rUA z9~>YI!Ia+H9=&CFYj0q20&Tv+Qr<%A2@tqGx)KfUI!4s&A!q>$N5LuNNEz}a?1Hk% zS4qytloi#~LnRSTD>-njf>5&3q)zNrQ3&Gjjg<&O(s-{3nBG{?=*jbuhj+%fgF-9yTiW5szI#bK?6eu}HuK}I81Jzuj2e)s9iq!G62 zzq#(zFWRsFsY>tGpQ`OojLtb_b?8KX4T8es$NaUn(7HvWo&DqdbEUv)93?^<@s&3C zvX)|Mgg+X|)e$7#>Cf3M6{g|>PIk)0#~J54<~w@&YP$bwxtr`^&=bNZy z;Nyg@(ZC16D1cXCWhBuJb&DMMz974PehNJk)dC$NkjR zxC-5*g3%4^;9b`p!AiMj{Y)S=7}4;G+bf^LY>JNZxXjUL!M2t2NJS@{+M;5mpxa_0 zwD-niLmCzLBicpB$6qVo38TC@A%a?Da|2(U!h5{%*sN>RyOxi%N zKZ_C20(FRA1Hdw`$CqzGM53iLGY1AL2K+QpSdkZS|6`XGXP0G%<%Fth3zl8U8Dvq#BB&8c3t7Ww4663xxUb6!j~ z%p?MI^u9d97e38t{K*onk_@<6c8zK7xlYyTUTFWcI_Yobd@Eo zvDUOIldLKs-+_i^jXK?Bj|#nrLQTSP;V3$Fo7b9(51Jr@(ktnpwqWxOl^R^*hV(f2 z3|u0jO@Bh#a5-W^GTC_cP`yg_6KFeJ(YJSi3}5cX^hvdWmq&+p%y<@@!t~k|=jYRmr}Y^ak(Q=~%uqH!B;Q%ba!9 z48Nw3NNFeCV7kKVCnZ(#j>P0i59XNxX#Vmz_5Bnw&S=wqIh8uj~r!oy#WH zi1?b~3_WwIUU5rEiB~e=mFZ-sSPVS+avaAfi`W$YcLW#--fuz0AqbSKukMhlGHGQN zJ3}czH}SI`anK4(O}%6iR$_qPAH{zr)#n5pju{hr(q)aUFm&GVdsffPwhAJ2#3`KE1rQ zzJ1d~VC4A5l@J+CMV;V#rRr}X%Y3+c6^i@U992g0`)9$xUMyIAamkwgoH9cK#_~Wl z`1M*r)&P_rTW!~N%Dbk%+(Jc5unaG^ev?jM+)Yxo$A1mLe?ieY;k+LU{2&5?dM}{_ z3zr(1;yz&m37%|^D2)}u)^}FQnUM)yh`l?q?nt;ehqG^%N7+$2S2!w52Rt2^)KaxC z&lXmiOyoSxT2Ao5H(0XB>-(?rz^*SiOJdDO86JwZn0$_Ji@Tu`}nX0yX+IV zq|_IGEcy=hGOfxX&5gfn)K;alhrMOf9fuIt2h>|T-BZ2QX4UK+Hnyv|ilTbNs7vqL zH#nnhG5+1M>%q>MmX>aV>iN91vs%YQ)Y5(H5X+I*@rOtmS>7N$`iNeR=H5*gr7o+n zRwl?tj^9Rbf^Ds*{+&!+KTK6Qr8HSzYv5nw&aeGwivG{|jW&BGXxSs~`(?3jdwqRN zaAWJMzQeCQ{pd6WYu5Nr$0!lW_{+t9abfFi$n>@(8s2a@WeQ#|Fk}cf*D}>fv(v6apBiOp-XG>MT^~VJ1NA81yVloobr+a3jmA?nT{g$63T2`W z2e*f>E9uk|Ky9mDy|>qt1KlzM0V3A7-7A)?r?tG1<^s+1iv1>72j0$+=wAQTQ~c^B zpSCweoqxtQ&AzMtEoEp@N}Kd|c<$u3q`Hf0J~81))nfyc)>4tI!OcH_l^+*iI&_?T z!c;Dn3=(bbmePdy)u*g=LotaU1&Jr`OgV!NCR=Sl8wFh3V0(hT`K*uP`U=3NoedWm zrg~FdRefaZ30-g|Ec}T^g{*LhTe2w4-0ff09s6uTUFyq;0RK7CY)P zc@=LZMTY#rT)BknB$~J`ONvii)!0DMwOgZ1R#6@Plq+#DfyS@uJ0!9ta%n`^Two(e zFBcYnsJ1yXJ0^bBjG1ewfEq^HJb_+yl&ec+RF6>gmmWqsa~T<^bGWFyLxkb?gm26J zb|*cbM7o4TgRX~(#FC+cNy;|*SAt)KaCNFjPMzw8kqoL3-T8U`4{hj+ygSzRC>GqU z_Bd(F3!`yxT&Hy}JUXlfK#oF5{eSz_>rdPU&~&+vPm>mXIKCA3wWb zzCk|mg#l4+EXFYxnc%%X~ZkyYJ)J&WO<*H}__rAP;{}(e)#+cyZ1G zhx($pXE7wU2?72Iaql-+O7&1oaSuoi%+Dw%mn09O;5_D24D@kuF}44-Tzc#Neer_p z&-?ay^YRNc7BCm`QvTVrNZ;S@?`6@52Igmxk3^CFz0Tdq?l18Ed2{e^)Bo~-^NCTw z*CEb(QyM~Ea+c)h?mF>ue?GELnlu+>@Uncn@U>67ryv+yZtGcYp>@+Hhx<9OAc%Me z_65)<^cU>r=HHfbMvkBRVn(7kf4e(*SY_B20M#{}r{KOU?qCUaGM@p_h$;Rt|C}0Y z@OVpa@bE_-Ds<5y#?Ed;D88zX6C@v~$GkxZK>;CJ0c@-X7;roADk!p5)I(fNc-G~k z$xa1^J!Gwf*56~$9x8yxWi4li@Erso+8Q@|);nHM)gU=tp^w?2HJ zE*sn>?K{*sSgm5z%mFJmZRR@qa7Qm_MkM$dxWF&T`uUTS-{WjFrBWb-!-rbWd7`3f=B6WD^_=aV;@OMCvyne%&^7_Rl+Gm~;O(?qO)v%W6daTPD_f zq>hxlPDb%@R#_^Gp6N7tBxKYLxur>lUMO)h%dNg^&};H<__e)L19lZ8(iscp>K7Y( zve@b|ybF?F;IXDR9qjWSi!h%Oh(|f!vtvm^qq`#|9dL@KcMBG`!oCuf`<-%c*xxFpG*&(8$K}s+bZ1qdU(AoE)3@3ywgjG z`ZpxskgA|edhs&eqmxsMt>^aG7X_@C-3Zz+j$FVutiS@$35Qr5Ore-~QAd!bxfFOgnv_@=U7pLUSe)Xc!k*WFz)S>^C-m`H(tJ4((cBM3 zj3lz@Kw7w>z&br!#F!_UT~AEw4vQ&T`fC$&GqOmao@`)uHK zJOG(}Z>8DryOoqggeqUu5b&#=l6QsL=7~6O91QDXTui~A(WRI0k5`0`)LTX`H__Z} z{(Ddu%HTI8R9vnIK-g(iLh*_d1uJ&C4QKA4cALyEO>I;8S5q!cUsAXk06)q| zfjZk7Fh?^P@mrHDg$Bo2uZEl!Wfvm(@5ViY12OaDj-S+jXJE7wF&^HaF{QDKnPR(o zl=-oK<8>o7IIf&e{%ma>laXbFkJc(qln%7gd^Cnq-5g3kuH2Wj0+V$r3-{9R5-ONC z=!(7q+nq;r5VDia7c>IGdp#_! z)(eN|84#qj#{`(EFHfgUItM=gAQ;D=uTLY2+ri@K zFI?m!={%+&+Rx5nY-G~P1E=8cUTG1i)ts{&kD)Y{LK`{Cu`~{Za|ZAxU3$Zag$~iB zhM-}lYoLrGf@(a36MxVmjut&z!fpoTUXN2XjId6!FhrM}jG4?~)@A5jkR)-ZHvD%*k_cfhAOLl5we*AR6D-X=gRRGTqU@d}aB zB!{aonl~scP7Of8rDE&$tbdohL91WK&v9EXT{hnr~$FFcBL#SCr8H26H#)Fbe*n|4%KtP)1`n> zJK(z`&vBBH8hD!H1r=f$y5!-r9kN8~Rsr^3^p7P9^K#Qk+0n!gq1NMyTJmE~-6WNu{esVc{vbYhS#Yicin0R@9 zB#$p)bEdQHvzmuMCMNSuKD^xsTT^h38J`K-%s5%WU}BChI1w1^o)R&;_&k8)i3JtL zHBp8r7(HabJ_H}~CCfm{W2E&=rXl#QjwK)Q&O%@o!3Nnc0-3(2N@KsMXThKSP1EkD zA@jHcL-@DIo}bbvyA%gThWy~m&qSjv7r5)F(GRLjtd&)KCeNXnF2o*S)8uzN%f)tA zYjQ2I2isNc!6}9%!QhiKu@%1Oc#Pdop-Nm#b0}XIF4~{u__jKh4^*C7PJPro1czLpqtS9O+Raop zN%&@EpwExF?t>rR5%i~P0ih^nY}>B!`-&o(N?ls z#)sgBi2G(Ui?gWc#|h_nbHuN@N@z>$G{GXPV>d<$xL{kW9v;|IL{l59;@Im&Q=L!k z0HPzgM4^^WDp{V@RI7Uqc;`PEj4oq@jk<_w93KEXz0GPv2*|r3ec};Iu{Wi8NJC%ZofS%Jz*hh|#b%K}F`~Y4*qY#HSj|1Y732#+2{Ev-cqyzT z@kYxsrjSBQKk95)qkVz2!uCtOPxO=&itXB*Lnm&jVe)ZnY>{2e>#llkjG5}yI&1jt zR@vsNe=gcJZKH!xhu(HrWuk9`ZD50)&A6RzxSvAReO6;^K`x-8A2A}<7V&%8L=3LO zb>KKB{j9(033PVP%{CsYaj$woy|OnG9$RSip^aj~-q$hVeyfZi;0-ipU9SHt$~xeU z6we_XkiT=dVsSmyDxcO=nby@Y-Cz3$cfB-eRyZr?UjSzz`#E>k_4xai@hM$wiAr#T zPKhLVX&eC6+r3i+N81}?^Vd_l?^&}s{olH3w&3^kKpZhW4snY9ym*nv!-^NFWzsJiU!y98uxYy zv(%NMzE@if&Q)GZLh)n1O>D77w)3WMlAa?I|4$tM&*pG$m55*c)^vNo^jrKL5VL!EoxIhZqs?+@?_tkrVo_=&H60m{JDB*g@Y*_NMXy4~{wB`ilhM!T z_?Rd0t*^XgoSE*aUug+y&!-u%qFQE1+i%hZQ*w;Ur zi$}&T|;L)z@TYwGy#EKZ%nLh<8nB zXr7f|F;G-}5QQqGGL{+eqtazexcwZMU8$$`tBNeCQw(HEl(zvV>}r`Bd8dl@C=q#6$3g;J zA9@0GHPQMWDi5r5Qf_Eto71TStxMrA`i3`^OVGHR4a!vBn#J&&vM)Q7X{yoQZOgc) z>W@Vi{ZMyeVJ{shDD8ae*GU4ASCR#nMK^kUj*p^~K4K#y#A=IC+Jb1ae`sd6J*d-5 zB&lghhEh^0gh}RCj;398t8TOCplOWw>dZ4V7FMRpbxn)bt(tt+Oi|L-?QUz# zxvAsMh##$UwLFOuw^*fVK3yjGT~_q#-f9YBD#tLz7CV7xMr3UPb|i3@J0Sw^17W!8R=>C0^=jNPeh{& z?Vi}mk=vXG*Mv2MCxje<2$;e31=tX@r25cB_{wymK24vB`8on@Mw*+JrnFbxP0**; z;ljkhWeWvS6E z9a+C*NtG_O38d~gOjCmM!f;6Y`CvBxo{}7E7aWqKAvXHjYs1fP}*{ywZVyQ3y@1SF9fa@l(IH8bUeGDKN^!|DbSmva(>ZwY_{;?9+r*pd= z25DJ2*EyK5>h3z`{&4?irSqrkiP@^19XajqTF&KA!xrmKS)Nz+EG>NFk3IPZJWBchRy>1n+>s;ca}?1|^Ovzvn>sno*_l2VyX!>2zG zn_(mnoKf1+Gf@=rViL6=Ya#|oKrg1yIa!%@ng%&)yE(oRoue58DBpM{PKl}f$*p?X z#HTO%cmYPf%*WSHo-#YD3>VwP7pi}M4rWyJ_8v;N7oE^u5tWNa%fxVezNfgwiA=P-=9^_4mqd)U$QFqEK=P2c^ zLwTsSny!&4%KR7ky5>UeU5?IbATx-znx&W(Hd3M{$K0Xh273=u2GfJ8wvXK?a9a-pWtY>|ZYt$av&>F%sU~aHSWH&) zeuZ-P3N$g}Ew^}CzkCNcCU4AS#qh8m`Fhw;fh*Wu5YTl{Z0VmH**vLG-T* zodtY<-3vJa_|A6MpBY!@ zb8JL#R;sK^Wmz@pBz3Bk#^4wJATsG$$1SJW9Fhc1K=XBn{L6(Hgdh5rIKFFMur!Pq z$a9piu1I0D8aNlSz~A_|C;3KEmV<$v4E?d+NCO52*$xh-EC&vO3HE;skNV|D9e)ywBFlve!W?%ZjD_b%VUj5^8hWij zWquka^y+iDPN%Py^~6F&p~?gZa!+&)x#qKCjaUO0% zm3|W5d`yd;--&i)UauG9HfevCs5C!`uE4#Mu>GWDUO*#Dsoi=f0xe>li#(Na7C~+C zBBMfK-=Ac9e-GP3Pc0H1#yMR`5oupWs+%RshZMf}x|)ndf&*$*B7C-&y?uU&TCGaF zGud+WE58tKodhIDO~!1mizpBqC6Y+OVR#!nfxM2kThc=AQl$6P4_=OTEpHbmr>}N8ESxp5y0MKS{$#{G&tu^*4Gzzja1_IopbX20ycq zeygvZ@CM`2eCdg&*?KzcuST<}nDqbYEk*xZe>Cntjy`o340W zM~tRVv&F=0>Q9Fcvju-qoq_BEL{{En)E_TFc_C(VZwfl=#lREu#q1Anuv&_{!E8Ln z)##fy{vq0f*>nZk?fV|f44Gz6f<&}0#AqqL%)WVxsW%jlKll}ROqRr(77a%v$}5N}Zs4@zN}#_yHrPk)I1d=6ds>@IcUBU*^J>NI*H zadGmrLs%tdBm#TT4f~5T<6jk;<#~hL;`c%mDVDoK+@>t}r2m5@Cv(?q-E%R}PZGo$ zW1WrVtPGntQdxgyF!>lF1j9JMQbcS=$S88r#K>EN%*~0Af(SH(uEF$|Ffd_%(!~W( z6W04WHVKMwn@HV&?r#=iKJ?y;yEdQ}5hVJ85>E;G^D#IRos#)6%=dT)d7K)=m#{y| z^ko9LiT^Jj-ZO%-QJ;`5lOj!Yrm`CUj%d$KGHZi3tapD<(qvD|zdR8qPZ;}AfrQ)< zn<6L4C<8>{AvBQL5t%MhUqR78b%fshsr=mB5S2jt1%aY5dzo9sHpHRg$bh`~fl?Ts z<;B`r)#ww&R6!@I22L>ZqP%I}6N$`0@<9g$aky(w%oW}f_j4y9dNM;=JI0Zgfw6Sz z@52|~I<$Y!GYf|N%eys?J5k2S^0e?N8wJcFk^WBrJ*foOa)RJ;EB!DEbIMl%3K!%g zln)(4R0yOg1#iO>rcxw0B)UC29I-kj@cpPHOCs14LcS|@-7qG}=k~IFU(&a4#Ws~Y zIuTm-}Z4jVji>u%^@>29G1$YNzGZS0PoC1D_PE@p!Fsq&JMc@c=3 zyIfPY6!!nqxvuO5`!Y^f*MNMdK_{lbs#~dMqOyP_GFB!7P-jObH@e6fZ`-g#pYB-s zGsc$0CGXON#QQ>vS`k|cK%`#FP_LWYRm^{uDU?$XOJ;O5uZfad;e4FR^xSBPwx;IM zFtQX52r0k}o*HRLY(^|f4d;1*&u*)uNFPaGrcXBbR0mSFl}@^mdQp+MOSR7LE8cFE zL!A0Cm8(MMS6!GfLr%SRto0}c5|z7_wRjGzTzL`GS?agxrH^)mywtII6*L!uQQ?28 zbM;At+bSZOiqC^DN6i0Yhb2nq;#wo?8+){)*JD^f;NTXx!wg8hN* zRNx$_N8_%?c4oG4soaLEt@DNo$5Es%3t2&oU?^dH)MY&}G6r)*ti!VM7mnRITYApR zIlT%QWNe8hwUQ$QVbkVA{e*{bRhJ_8xjyq$?w3OJ@UW zt{iOWRpBL#=x!IlGuoES@fA`sd@T#)AQQG7@j9eC^+>*u(Ltznkw#nH!5FF9LjTw| zg-J#Xo7UcQejrN5z+|u#UZ`A@)Y3^+FPfxM22cgbsQdemv-N5TwY>gny(oVh3_PKB z#64Zl(F0d6xqIOLg2`~(!^JeUwA|)i_9>mROQBA!q2V#6o=sf)M}6QGTFiem9gNpQ zPuxAO(Mdr_YG=ly$%y)&)$INZ*jykFk;u{z=tvRM*eSfJ#J9)$paQD$d#234ugcNG z0pxD=BX4gc{8}SXa_9p*aoT_7z{BzQ(ED(mw&YFc3Rv6zmhi`0Lf;@vkkIr9PTn6i{*Oo zwRv1HUyNqXvoFUH46v~_fN+5a9j?P0(STEQ)#rB50VtVSfJTpYCEsVVWPGpR7A*E)jS#0D+WE7VMY_HArk}G-ulqmzOO`J7p z&-&tyO-^N#{9x#sYP)}$FW>p7rvR#Go1&9I?QPOA8O24AsX%e;KB8np?dIuh*g*-$ zi5wchu1n0B;I-Ht+nd_Hl&xcp)!o3O0wN!v1vb_9sICh+tu4KXev`1L0ToAr7zt?=Y#~&P4X!wm)uiiU6rEu!l~=S>yCmLdGc&7Bz)8izR{6^7CG$mdHQQ1P=zZeF0FDD=6|K?fbGCOedbrM!R z=een@^ndN43P`g;n$J>K+>8gJuJ5qR`1G#!9j-iPCCYrL>LqfcYIlv`U428c(@F}Z z+cqk9ROo+G+Gd;TLxV}qUL}7!*g5WkZB+$ zK?s8!qsHcR7EY9eOWryC(?he2Sj^EE6oVq(%^}UkJ>6XvrB_f zk3-ibX>|VZbHbW0%q0fG54-XWVD4#SuEz3B9q_I7NkDWWFs;hp{N=~h@ zNvoE9hm>uU@zHylE%>{Z$u%^PYFJnmw0q_MWU(yizhokk$E;&M7wigSWaE4Z`;cjs z{n~%bph+Xmy>7?luu7X|$vfOjD@BtY{-i^N7bh4byn${k+~%na)Ip{{ z&HoY9ZozGqNHcMcI%P#4&0wB0<;*cMtVuOcZ-+EX5aiG*bhL@v@ zcW?e{{SQz}2MAI`i>et6007Y;002-+0|W^a00;;O0ANf=ll&?kf6Z> zV_c7uG#~-Jt#+k7Roe$Ji3tYBj_icOKK(KF0IoVfMVQ#dycG z;Y!XUKsXvRS*ViBY977*`W8>3=f!BYVzliv8;$#mm-9&J3b8`)#xPVUt(98=dA-Oh z3c6%s9z94}53=E9e;C=USEDj z!vbD*obDg|s&rEWsCZo*Yt`CS?JgF?)ALfDBKA0B!;Trrv}-VQeEN zj14zvW5Y%_f5rce+SX~GghFn)&p){h?I|G;2+~DPM=Mq+x#Cr)X?v5bX{qr9a&o<+ z_S7}iTSs;a&=eB;$-{tZR&mqn!!1Cazh;nx0qyt=5W(ho0C>6@ao@6ii}p+E(g0ru zO!bhQiW1nu8RI-97t?NzhdmPv&)E?szGfz_W?qG-e`L5#ww6Nxq0mnITpz?i4plv9 z0!g@aPfB!p9yH@ zd*Hq)y+FKZ9` zI$~7UBm~S2IU>hy3vA~K8JzD5XOI4mk;Ui_P)i30Sc?=clmY+%a+A9)gAHIzNK8^h ni>et6007aGOD;1FU`$9%Sc?=clmY+%a+8ZLFb2FW00000jHX4q delta 3827 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 diff --git a/site/images/installSoftwareWizard.png b/site/images/installSoftwareWizard.png index 0e67cfa83caf2f9820db5d0762d5e2c5d49196dc..d5354b464566400685c9ace4ad2d3062e79f2e77 100644 GIT binary patch literal 60930 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�N?m{vG(hjK`T-K9-9780pXab{@g7R* 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 AjsO4v diff --git a/site/index.html b/site/index.html index d8c4c4b..6d52783 100644 --- a/site/index.html +++ b/site/index.html @@ -1,6 +1,6 @@ -

How to install RedOx

+

How to install Eclipse Corrosion

Rust IDE built in Eclipse