Rust-Ride: Ride is a Rust IDE. It's named after concatenating R from rust and IDE.

This project is currently unmaintained. I'd like to rewrite a revision 2 in rust (rust branch) but can't seem to find a good ui library that lets me create a window and just draw text, rectangles, lines and respond to various events. Currently thinking about creating a small FFI wxWidgets based library that does just that.

In the mean time I still think ride c++ is useable but far from good or recomended for any serious rust development.

screenshot

Ride is a Rust IDE. It's named after concatenating R from rust and IDE. It's currently not in a usable state. If you're looking for something more complete, perhaps RustDT for Eclipse, SolidOak or Rust for brackets is your thing.

Build Status Build status Project Stats Join the chat at https://gitter.im/madeso/ride

The current features are:

  • A pretty ok editor (scintilla based)
  • Shortcuts for running various cargo commands
  • Listing its output and
    • Double clicking on warnings/errors to go to them.
    • Context clicking on warnings/errors to google them.
  • A basic project/cargo (file) explorer
  • Space/tab settings are saved per project so the same settings are used by everyone on the project
  • Autocompile protobuf files

The project aim is to implement as much of it in C++ and then port it to rust when wxWidgets for rust is available.

Some of the development is streamed on twitch and later uploaded to youtube.

Screenshots

screenshot screenshot

Getting ride

This isn't finished. Eventually there should be a installer here, but that isn't finished. Issue #13 is looking to fix this. If you want to try it, you need to download the source and build it yourself.

Since it isn't finished at first launch you might want to set all the colors to something other than black. Issue 64 should fix this.

Building ride

You need CMake, a C++ compiler, protobuf and wxWidgets 3+. Doxygen, Python 2, clang-format and cppcheck are optional and can be disabled via the CMake BUILD_USE_ variables. To actually build it, it is pretty standard. Use CMake to generate a configuration and then build that configuration.

wxWidgets 3.x

Currently the wxWidgets used is a fork from the public wxWidgets master. Issue #16 is looking to fix this. The public download of wxWidgets 3.0 or the public master can be used but then the CMake variables USE_CPP_AS_RUST use WX_WIDGETS_LEGACY_FINDTEXT has to be changed to true.

Contributing

I accept pull requests. Follow the google C++ style guide when writing new code.

Comments

  • "error: linking with `cc` failed: signal: 11" while building in ride

    Nov 10, 2015

    Download racer or another similar rust project and build it.

    BUG 
    Reply
  • Add autocomplete settings
    Add autocomplete settings

    Nov 11, 2015

                                                                                                                                                                                                           
    Reply
  • Delay stc creation, syling and loading until needed to improve startup time
    Delay stc creation, syling and loading until needed to improve startup time

    Nov 27, 2015

                                                                                                                                                                                                           
    Reply
  • Refactor to class/function
    Refactor to class/function

    Dec 10, 2015

    Refactor a block of code to either a static or non-static class method or a free function

    refactoring-command 
    Reply
  • Use xi-editor for text editing?
    Use xi-editor for text editing?

    May 19, 2017

    I know that you have chosen Scintilla based text editor for the text editor component, but there is pure Rust text editor engine called xi-editor.

    I wich you would take a look at it as possible alternative for Scintilla.

    Reply
  • Support editor components
    Support editor components

    May 19, 2017

    Editor components are part of the editor, like editor replacements but only covers part of the editor.

    The most useful implentation might be a formula editor in the style of Words forumla editor that covers only certain(marked up?) math expressions but Im sure there are opter applications.

    146123-232129-mircosoft-equation-editor2 microsoft_office_2007_equation_editor 1 _2 1

    scintilla 
    Reply
  • Don't require cargo and racer to be on path
    Don't require cargo and racer to be on path

    Sep 11, 2015

    Provide "path overrides" in options for racer, cargo and other dependencies

    Reply
  • Detect invalid configurations
    Detect invalid configurations

    Sep 11, 2015

    run cargo -v at startup and check the result perhaps some racer tests too

    Reply
  • Which wxWidgets version required?
    Which wxWidgets version required?

    Aug 22, 2015

    Trying to build with wxwidgets-3.0.2:

    error: no matching function for call to ‘wxStyledTextCtrl::FindText(int&, int&, const wxString&, int&, int*&)’
    

    Trying to build with wxWidgets 2.8.12.1-12:

    ride/ride/wxutils.h:35:30: error: ‘ButtonLabel’ in ‘class wxMessageDialogBase’ does not name a type
    
    Reply
  • Change data file formats to xml or json
    Change data file formats to xml or json

    Nov 25, 2015

    The reason is two-fold:

    • XML/json is more standard
    • We can get better error messages when parsing fails
    Reply
  • Build and test on OSX
    Build and test on OSX

    Sep 11, 2015

    More information: https://wiki.wxwidgets.org/WxMac-specific_topics

    Reply
  • Compile error on Mac OS X
    Compile error on Mac OS X

    Sep 23, 2015

    All the dependencies were installed.

    brew install protobuf
    brew install doxygen
    brew install wxwidgets
    brew install cppcheck
    brew install clang-format
    

    Build :

    mkdir build
    cd build
    cmake .. 
    make 
    

    The error message:

                                                  ^
    /Users/foobar/src/ride/ride/language.cc:351:40: error: use of undeclared identifier 'wxSTC_LEX_RUST'
      RustLanguage() : Language(_("Rust"), wxSTC_LEX_RUST) {
                                           ^
    /Users/foobar/src/ride/ride/language.cc:410:20: error: use of undeclared identifier 'wxSTC_RUST_DEFAULT'
        SetStyle(text, wxSTC_RUST_DEFAULT,
                       ^
    /Users/foobar/src/ride/ride/language.cc:412:20: error: use of undeclared identifier 'wxSTC_RUST_COMMENTBLOCK'
        SetStyle(text, wxSTC_RUST_COMMENTBLOCK,
                       ^
    /Users/foobar/src/ride/ride/language.cc:414:20: error: use of undeclared identifier 'wxSTC_RUST_COMMENTLINE'
        SetStyle(text, wxSTC_RUST_COMMENTLINE,
                       ^
    /Users/foobar/src/ride/ride/language.cc:416:20: error: use of undeclared identifier 'wxSTC_RUST_COMMENTBLOCKDOC'
        SetStyle(text, wxSTC_RUST_COMMENTBLOCKDOC,
                       ^
    /Users/foobar/src/ride/ride/language.cc:418:20: error: use of undeclared identifier 'wxSTC_RUST_COMMENTLINEDOC'
        SetStyle(text, wxSTC_RUST_COMMENTLINEDOC,
                       ^
    /Users/foobar/src/ride/ride/language.cc:420:20: error: use of undeclared identifier 'wxSTC_RUST_NUMBER'
        SetStyle(text, wxSTC_RUST_NUMBER,
                       ^
    /Users/foobar/src/ride/ride/language.cc:422:20: error: use of undeclared identifier 'wxSTC_RUST_WORD'
        SetStyle(text, wxSTC_RUST_WORD,
                       ^
    /Users/foobar/src/ride/ride/language.cc:432:20: error: use of undeclared identifier 'wxSTC_RUST_CHARACTER'
        SetStyle(text, wxSTC_RUST_CHARACTER,
                       ^
    /Users/foobar/src/ride/ride/language.cc:434:20: error: use of undeclared identifier 'wxSTC_RUST_STRING'
        SetStyle(text, wxSTC_RUST_STRING,
                       ^
    /Users/foobar/src/ride/ride/language.cc:436:20: error: use of undeclared identifier 'wxSTC_RUST_STRINGR'
        SetStyle(text, wxSTC_RUST_STRINGR,
                       ^
    /Users/foobar/src/ride/ride/language.cc:439:20: error: use of undeclared identifier 'wxSTC_RUST_OPERATOR'
        SetStyle(text, wxSTC_RUST_OPERATOR,
                       ^
    /Users/foobar/src/ride/ride/language.cc:441:20: error: use of undeclared identifier 'wxSTC_RUST_IDENTIFIER'
        SetStyle(text, wxSTC_RUST_IDENTIFIER,
                       ^
    /Users/foobar/src/ride/ride/language.cc:443:20: error: use of undeclared identifier 'wxSTC_RUST_LIFETIME'
        SetStyle(text, wxSTC_RUST_LIFETIME,
                       ^
    /Users/foobar/src/ride/ride/language.cc:445:20: error: use of undeclared identifier 'wxSTC_RUST_MACRO'
        SetStyle(text, wxSTC_RUST_MACRO,
                       ^
    /Users/foobar/src/ride/ride/language.cc:447:20: error: use of undeclared identifier 'wxSTC_RUST_LEXERROR'
        SetStyle(text, wxSTC_RUST_LEXERROR,
                       ^
    10 warnings and 16 errors generated.
    make[2]: *** [ride/CMakeFiles/ride.dir/language.cc.o] Error 1
    make[1]: *** [ride/CMakeFiles/ride.dir/all] Error 2
    make: *** [all] Error 2
    
    Reply