An IDE for Rust

Related tags

IDEs SolidOak
Overview

screenshot

Introduction

SolidOak is a simple IDE for Rust. See the website for binary releases. It has the following features:

  • An embedded copy of Neovim as its text editor
    • On first launch, it will create ~/.soak and ~/.soakrc (equivalent to ~/.vim and ~/.vimrc)
    • It starts off in "Easy Mode" (locked in insert mode) for Vim newbies, but you can toggle it off
  • An easy-to-use GUI written with gtk-rs
    • Buttons for common editing actions and a project tree that stays in sync with Neovim
    • You can bypass the GUI and run it as a console app by passing the -nw flag

Build Instructions

Note: If neovim fails to build, try cloning it directly and running make libnvim to get more specific errors.

Linux (apt-get)

apt-get install libgtk-3-dev libglib2.0-dev libcairo2-dev libvte-2.91-dev
apt-get install libtool-bin autoconf automake cmake libncurses5-dev g++ pkg-config unzip
cargo build --release

Linux (yum)

yum install gtk3-devel glib2-devel vte291-devel
yum install autoconf automake cmake gcc gcc-c++ libtool ncurses-devel pkgconfig
cargo build --release

OS X (homebrew)

brew install gtk+3 vte3
brew install libtool automake cmake pkg-config gettext
cargo build --release

OS X (macports)

port install gtk3 vte
port install libtool automake cmake pkgconfig gettext
cargo build --release

Windows

The following instructions are a work in progress. Building does not currently work because msys2 does not contain a package for vte.

Install MSYS2 and run this in its shell:

pacman -S mingw-w64-x86_64-gtk3

In cmd.exe, install Rust's GNU toolchain and build:

rustup install stable-gnu
set RUSTUP_TOOLCHAIN=stable-x86_64-pc-windows-gnu
cargo build --release

Licensing

All files that originate from this project are dedicated to the public domain. I would love pull requests, and will assume that they are also dedicated to the public domain.

Comments
  • cargo build failed

    cargo build failed

    saklhc-2:SolidOak saklhc$ cargo build Compiling neovim-rs v0.1.0 (https://github.com/oakes/neovim-rs#a622fa28) Compiling gtk-sys v0.1.1 (https://github.com/oakes/gtk#a706742f) Build failed, waiting for other jobs to finish... error: could not find native static library nvim, perhaps an -L flag is missing? failed to run custom build command for gtk-sys v0.1.1 (https://github.com/oakes/gtk#a706742f) Process didn't exit successfully: /Users/saklhc/Support/SolidOak/target/debug/build/gtk-sys-52a287d39e6c515b/build-script-build (exit code: 101) --- stdout cargo:rustc-link-search=native=/usr/local/Cellar/gtk+3/3.14.6/lib cargo:rustc-link-search=native=/usr/local/Cellar/pango/1.36.8/lib cargo:rustc-link-search=native=/usr/local/Cellar/atk/2.16.0/lib cargo:rustc-link-search=native=/usr/local/Cellar/cairo/1.14.2/lib cargo:rustc-link-search=native=/usr/local/Cellar/gdk-pixbuf/2.30.8/lib cargo:rustc-link-search=native=/usr/local/Cellar/glib/2.44.0/lib cargo:rustc-link-search=native=/usr/local/opt/gettext/lib cargo:rustc-link-lib=gtk-3 cargo:rustc-link-lib=gdk-3 cargo:rustc-link-lib=pangocairo-1.0 cargo:rustc-link-lib=pango-1.0 cargo:rustc-link-lib=atk-1.0 cargo:rustc-link-lib=cairo-gobject cargo:rustc-link-lib=cairo cargo:rustc-link-lib=gdk_pixbuf-2.0 cargo:rustc-link-lib=gio-2.0 cargo:rustc-link-lib=gobject-2.0 cargo:rustc-link-lib=glib-2.0 cargo:rustc-link-lib=intl

    --- stderr thread '

    ' panicked at '"pkg-config" "--libs" "--cflags" "vte-2.90" did not exit successfully: exit code: 1 --- stderr Package vte-2.90 was not found in the pkg-config search path. Perhaps you should add the directory containing `vte-2.90.pc' to the PKG_CONFIG_PATH environment variable No package 'vte-2.90' found ', /Users/saklhc/.cargo/git/checkouts/gtk-38cf3f4d9926c12a/master/gtk-sys/build.rs:25

    opened by xooder 19
  • Build error: failed to run custom build command for glib-sys

    Build error: failed to run custom build command for glib-sys

    Error

    λ ~/projects/SolidOak/ master cargo build --verbose                                                                                                     
           Fresh c_vec v1.0.8 (https://github.com/oakes/c_vec-rs.git#6cb6f620)                                                                              
           Fresh pkg-config v0.3.0                                                                                                                          
           Fresh rustc-serialize v0.3.1                                                                                                                     
           Fresh libc v0.1.2                                                                                                                                
           Fresh bitflags v0.1.1                                                                                                                            
           Fresh neovim-rs v0.0.9 (https://github.com/oakes/neovim-rs#dbaabf31)                                                                             
           Fresh racer v0.0.1 (https://github.com/oakes/racer#fd596824)                                                                                     
           Fresh gcc v0.3.1                                                                                                                                 
       Compiling cairo-sys v0.1.0 (https://github.com/oakes/rgtk#01b611cf)                                                                                  
         Running `/home/vagrant/projects/SolidOak/target/debug/build/cairo-sys-fbbf5b476f8c9abf/build-script-build`                                         
       Compiling glib-sys v0.1.0 (https://github.com/oakes/rgtk#01b611cf)                                                                                   
         Running `/home/vagrant/projects/SolidOak/target/debug/build/glib-sys-315c48ed6be1c944/build-script-build`                                          
    Build failed, waiting for other jobs to finish...                                                                                                       
    failed to run custom build command for `glib-sys v0.1.0 (https://github.com/oakes/rgtk#01b611cf)`                                                       
    Process didn't exit successfully: `/home/vagrant/projects/SolidOak/target/debug/build/glib-sys-315c48ed6be1c944/build-script-build` (exit code: 101)    
    --- stderr                                                                                                                                              
    thread '<main>' panicked at '`"pkg-config" "--libs" "--cflags" "glib-2.0"` did not exit successfully: exit code: 1                                      
    --- stderr                                                                                                                                              
    Package glib-2.0 was not found in the pkg-config search path.                                                                                           
    Perhaps you should add the directory containing `glib-2.0.pc'                                                                                           
    to the PKG_CONFIG_PATH environment variable                                                                                                             
    No package 'glib-2.0' found                                                                                                                             
    ', /home/vagrant/.cargo/git/checkouts/rgtk-3e0fc177da20fde3/master/glib-sys/build.rs:6                                                                  
    

    Sys Info

    λ ~/projects/SolidOak/ master cat /etc/lsb-release
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=14.04
    DISTRIB_CODENAME=trusty
    DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS"
    
    λ ~/projects/SolidOak/ master uname -a
    Linux localdev 3.13.0-44-generic #73-Ubuntu SMP Tue Dec 16 00:22:43 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux```
    
    opened by leonardinius 18
  • Cann't build SolidOak with rustc-1.15.0

    Cann't build SolidOak with rustc-1.15.0

    It built with rustc-1.14 but after upgrate I get error:

    $ cargo build --release --verbose
           Fresh pkg-config v0.3.8
           Fresh rustc-serialize v0.3.19
           Fresh libc v0.2.15
           Fresh c_vec v1.0.12
           Fresh bitflags v0.3.3
           Fresh libc v0.1.12
       Compiling solidoak v0.1.3 (file:///tmp/SolidOak)
           Fresh neovim-rs v0.1.0 (https://github.com/oakes/neovim-rs#61d61015)
           Fresh gcc v0.3.35
         Running `/tmp/SolidOak/target/release/build/solidoak-105501f62ce91171/build-script-build`
           Fresh glib-sys v0.2.1
           Fresh cairo-sys-rs v0.2.1
           Fresh gobject-sys v0.2.1
           Fresh pango-sys v0.2.1
           Fresh gio-sys v0.2.1
           Fresh atk-sys v0.2.1
           Fresh gdk-pixbuf-sys v0.2.1
           Fresh glib v0.0.7
           Fresh gdk-sys v0.2.1
           Fresh pango v0.0.6
           Fresh cairo-rs v0.0.7
           Fresh gtk-sys v0.2.1 (https://github.com/oakes/gtk#4d6325be)
           Fresh gdk v0.2.0
           Fresh gtk v0.0.6 (https://github.com/oakes/gtk#4d6325be)
         Running `rustc --crate-name solidoak src/main.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=d027e3fbf39bb3c0 -C extra-filename=-d027e3fbf39bb3c0 --out-dir /tmp/SolidOak/target/release/deps -L dependency=/tmp/SolidOak/target/release/deps --extern neovim=/tmp/SolidOak/target/release/deps/libneovim-63b4a5a9627f69a5.rlib --extern gdk=/tmp/SolidOak/target/release/deps/libgdk-a8d5f2c55fe44fd5.rlib --extern glib=/tmp/SolidOak/target/release/deps/libglib-f78bd29dbb2abf6f.rlib --extern gtk=/tmp/SolidOak/target/release/deps/libgtk-8c97b5da4e45162b.rlib --extern rustc_serialize=/tmp/SolidOak/target/release/deps/librustc_serialize-9e77695dd1427d99.rlib --extern libc=/tmp/SolidOak/target/release/deps/liblibc-5f8d828b47082caa.rlib -L /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib -L /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/.deps/usr/lib -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/tmp/SolidOak/target/release/build/gtk-sys-364a846e4c5d162c/out -L native=/usr/lib64`
    error: linking with `x86_64-pc-linux-gnu-gcc` failed: exit code: 1
      |
      = note: "x86_64-pc-linux-gnu-gcc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib" "/tmp/SolidOak/target/release/deps/solidoak-d027e3fbf39bb3c0.0.o" "-o" "/tmp/SolidOak/target/release/deps/solidoak-d027e3fbf39bb3c0" "-Wl,--gc-sections" "-pie" "-Wl,-O1" "-nodefaultlibs" "-L" "/tmp/SolidOak/target/release/deps" "-L" "/mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib" "-L" "/mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/.deps/usr/lib" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/tmp/SolidOak/target/release/build/gtk-sys-364a846e4c5d162c/out" "-L" "/usr/lib64" "-L" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-Wl,-Bdynamic" "/tmp/SolidOak/target/release/deps/libgtk-8c97b5da4e45162b.rlib" "/tmp/SolidOak/target/release/deps/libpango-055fdd573440e976.rlib" "/tmp/SolidOak/target/release/deps/libgdk-a8d5f2c55fe44fd5.rlib" "/tmp/SolidOak/target/release/deps/libneovim-63b4a5a9627f69a5.rlib" "/tmp/SolidOak/target/release/deps/liblibc-5f8d828b47082caa.rlib" "/tmp/SolidOak/target/release/deps/libcairo-594f97a33bd6515c.rlib" "/tmp/SolidOak/target/release/deps/libc_vec-c14fcb9c0a16a2a7.rlib" "/tmp/SolidOak/target/release/deps/libglib-f78bd29dbb2abf6f.rlib" "/tmp/SolidOak/target/release/deps/libgtk_sys-5b17c923dba29348.rlib" "/tmp/SolidOak/target/release/deps/libgdk_sys-9223286d42563c9c.rlib" "/tmp/SolidOak/target/release/deps/libcairo_sys-f4399e3e841b7db2.rlib" "/tmp/SolidOak/target/release/deps/libpango_sys-38158f2ee7602b38.rlib" "/tmp/SolidOak/target/release/deps/libgdk_pixbuf_sys-29ebd82d76d50229.rlib" "/tmp/SolidOak/target/release/deps/libatk_sys-2f084c483ab047e7.rlib" "/tmp/SolidOak/target/release/deps/libgio_sys-33e2893e75c51075.rlib" "/tmp/SolidOak/target/release/deps/libgobject_sys-4e3267daa88612e7.rlib" "/tmp/SolidOak/target/release/deps/libglib_sys-2b53c1d2944f8dba.rlib" "/tmp/SolidOak/target/release/deps/libbitflags-56398aa7a661adb6.rlib" "/tmp/SolidOak/target/release/deps/liblibc-c2668eb07a902d7f.rlib" "/tmp/SolidOak/target/release/deps/librustc_serialize-9e77695dd1427d99.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d71e67e7.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-d71e67e7.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-d71e67e7.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/librand-d71e67e7.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/libcollections-d71e67e7.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-d71e67e7.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-d71e67e7.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-d71e67e7.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/libstd_unicode-d71e67e7.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/libcore-d71e67e7.rlib" "/usr/lib64/rust-1.15.0/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-d71e67e7.rlib" "-l" "nvim" "-l" "util" "-l" "util" "-l" "gtk-3" "-l" "gdk-3" "-l" "pangocairo-1.0" "-l" "pango-1.0" "-l" "atk-1.0" "-l" "cairo-gobject" "-l" "cairo" "-l" "gdk_pixbuf-2.0" "-l" "gio-2.0" "-l" "gobject-2.0" "-l" "glib-2.0" "-l" "vte-2.91" "-l" "z" "-l" "gnutls" "-l" "gdk-3" "-l" "pangocairo-1.0" "-l" "pango-1.0" "-l" "gdk_pixbuf-2.0" "-l" "cairo-gobject" "-l" "cairo" "-l" "gobject-2.0" "-l" "glib-2.0" "-l" "cairo" "-l" "pango-1.0" "-l" "gobject-2.0" "-l" "glib-2.0" "-l" "gdk_pixbuf-2.0" "-l" "gobject-2.0" "-l" "glib-2.0" "-l" "atk-1.0" "-l" "gobject-2.0" "-l" "glib-2.0" "-l" "gio-2.0" "-l" "gobject-2.0" "-l" "glib-2.0" "-l" "gobject-2.0" "-l" "glib-2.0" "-l" "glib-2.0" "-l" "c" "-l" "m" "-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "pthread" "-l" "c" "-l" "m" "-l" "rt" "-l" "util"
      = note: /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib/libnvim.a(eval.c.o): In function `f_serverstart':
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/eval.c:14925: undefined reference to `uv_strerror'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib/libnvim.a(eval.c.o): In function `f_mkdir':
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/eval.c:12634: undefined reference to `uv_strerror'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib/libnvim.a(eval.c.o): In function `f_msgpackparse':
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/eval.c:13327: undefined reference to `msgpack_unpacker_new'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/eval.c:13351: undefined reference to `msgpack_unpacker_next'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib/libnvim.a(eval.c.o): In function `msgpack_unpacked_destroy':
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/../.deps/usr/include/msgpack/unpack.h:256: undefined reference to `msgpack_zone_free'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib/libnvim.a(eval.c.o): In function `f_msgpackparse':
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/eval.c:13384: undefined reference to `msgpack_unpacker_free'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib/libnvim.a(eval.c.o): In function `msgpack_unpacker_reserve_buffer':
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/../.deps/usr/include/msgpack/unpack.h:218: undefined reference to `msgpack_unpacker_expand_buffer'
    ...
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/tui/input.c:48: undefined reference to `uv_mutex_destroy'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/tui/input.c:49: undefined reference to `uv_cond_destroy'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/tui/input.c:52: undefined reference to `termkey_destroy'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib/libnvim.a(libuv_process.c.o): In function `libuv_process_spawn':
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/event/libuv_process.c:50: undefined reference to `uv_spawn'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/event/libuv_process.c:51: undefined reference to `uv_strerror'
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib/libnvim.a(libuv_process.c.o): In function `libuv_process_close':
    /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/src/nvim/event/libuv_process.c:62: undefined reference to `uv_close'
    collect2: ошибка: выполнение ld завершилось с кодом возврата 1
    
    
    error: aborting due to previous error
    
    error: Could not compile `solidoak`.
    
    Caused by:
      process didn't exit successfully: `rustc --crate-name solidoak src/main.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=d027e3fbf39bb3c0 -C extra-filename=-d027e3fbf39bb3c0 --out-dir /tmp/SolidOak/target/release/deps -L dependency=/tmp/SolidOak/target/release/deps --extern neovim=/tmp/SolidOak/target/release/deps/libneovim-63b4a5a9627f69a5.rlib --extern gdk=/tmp/SolidOak/target/release/deps/libgdk-a8d5f2c55fe44fd5.rlib --extern glib=/tmp/SolidOak/target/release/deps/libglib-f78bd29dbb2abf6f.rlib --extern gtk=/tmp/SolidOak/target/release/deps/libgtk-8c97b5da4e45162b.rlib --extern rustc_serialize=/tmp/SolidOak/target/release/deps/librustc_serialize-9e77695dd1427d99.rlib --extern libc=/tmp/SolidOak/target/release/deps/liblibc-5f8d828b47082caa.rlib -L /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib -L /mnt/other/home/o01eg/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/.deps/usr/lib -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/usr/lib64 -L native=/tmp/SolidOak/target/release/build/gtk-sys-364a846e4c5d162c/out -L native=/usr/lib64` (exit code: 101)
    
    opened by o01eg 9
  • could not find native static library `termkey`

    could not find native static library `termkey`

    I followed the installation instruction for linux (apt-get), im using ubuntu 14.04.

    uname -a
    Linux  3.13.0-46-generic #77-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
    
    cargo -V
    cargo 0.0.1-pre-nightly (a58ffd7 2015-02-27) (built 2015-02-27)
    
    rustc -V
    rustc 1.0.0-nightly (b4c965ee8 2015-03-02) (built 2015-03-03)
    
    
    Downloading rustc-serialize v0.3.1
       Compiling solidoak v0.1.0 (file:///media/disk3/playground/SolidOak)
       Compiling neovim-rs v0.0.9 (https://github.com/oakes/neovim-rs#dbaabf31)
       Compiling racer v0.0.1 (https://github.com/oakes/racer#fd596824)
       Compiling gcc v0.3.1
       Compiling c_vec v1.0.8 (https://github.com/oakes/c_vec-rs.git#6cb6f620)
       Compiling bitflags v0.1.1
       Compiling rustc-serialize v0.3.1
       Compiling libc v0.1.2
       Compiling pkg-config v0.3.0
       Compiling cairo-sys v0.1.0 (https://github.com/oakes/rgtk#01b611cf)
       Compiling gtk3-sys v0.1.0 (https://github.com/oakes/rgtk#01b611cf)
       Compiling glib-sys v0.1.0 (https://github.com/oakes/rgtk#01b611cf)
       Compiling gdk3-sys v0.1.0 (https://github.com/oakes/rgtk#01b611cf)
    error: could not find native static library `termkey`, perhaps an -L flag is missing?
    Build failed, waiting for other jobs to finish...
    Could not compile `neovim-rs`.
    
    opened by ivanceras 8
  • Failed to build on CentOS 7.1

    Failed to build on CentOS 7.1

    I've attempted to build both the master and 0.1.3 releases on my CentOS machine.

    Building for 0.1.3 ends with:

    Package gtk v0.0.6 (https://github.com/oakes/gtk#3064a74b) does not have these features: gtk_3_10

    Building for master ends with:

    failed to run custom build command for solidoak v0.1.3 (file:///home/michael/Downloads/SolidOak-master) Process didn't exit successfully: /home/michael/Downloads/SolidOak-master/target/debug/build/solidoak-175e338a34a73716/build-script-build (exit code: 101) --- stderr thread '

    ' panicked at 'called Result::unwrap() on an Err value: Error { repr: Os { code: 2, message: "No such file or directory" } }', ../src/libcore/result.rs:741

    All of my dependencies are up to date. Please let me know if I'm missing something. Thank you.

    opened by sunnystormy 7
  • Font isue on OSX Mavericks

    Font isue on OSX Mavericks

    Hi - I installed the prebuilt OSX 0.1.1 binary at https://sekao.net/solidoak/ onto OSX Mavericks. Upon running it I get a screen like the following. I was wondering if you're perhaps using a font I'm missing due to being back a version of the OS?

    solidoak

    opened by AlisdairO 7
  • could not find native static library `uv`

    could not find native static library `uv`

    apt-get install libtool-bin autoconf automake cmake libncurses5-dev g++ pkg-config unzip
    apt-get install libgtk-3-dev libglib2.0-dev libcairo2-dev libvte-2.91-dev
    
    git clone https://github.com/oakes/SolidOak
    cd SolidOak
    cargo build --release
    
    ...
    
       Compiling gdk v0.2.0
       Compiling glib v0.0.7
       Compiling pango v0.0.6
    error: could not find native static library `uv`, perhaps an -L flag is missing?
    
    error: Could not compile `neovim-rs`.
    
    To learn more, run the command again with --verbose.
    
    cargo build --release --verbose
    
           Fresh gtk v0.0.6 (https://github.com/oakes/gtk#4d6325be)
    error: could not find native static library `uv`, perhaps an -L flag is missing?
    
    error: Could not compile `neovim-rs`.
    
    Caused by:
      process didn't exit successfully: `rustc --crate-name neovim /home/_________/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/src/lib.rs --crate-type rlib -C opt-level=3 -C metadata=3e0ad9e21e7d7de1 -C extra-filename=-3e0ad9e21e7d7de1 --out-dir /home/_________/Documents/Code/github/--------/SolidOak/target/release/deps --emit=dep-info,link -L dependency=/home/_________/Documents/Code/github/--------/SolidOak/target/release/deps --extern libc=/home/_________/Documents/Code/github/--------/SolidOak/target/release/deps/liblibc-2a65061ff52f8b13.rlib --cap-lints allow -L /home/_________/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/build/lib -L /home/_________/.cargo/git/checkouts/neovim-rs-d2da26a4d9159b47/61d6101/neovim/.deps/usr/lib -l nvim` (exit code: 101)
    
    uname -a
    Linux ... 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u1 (2017-02-22) x86_64 GNU/Linux
    
    rustc --version
    rustc 1.15.1 (021bd294c 2017-02-08)
    
    opened by drandreaskrueger 6
  • libvte-2.90-dev is no longer in ubuntu, only libvte-2.91-dev is

    libvte-2.90-dev is no longer in ubuntu, only libvte-2.91-dev is

    libvte-2.90-dev is no longer in Ubuntu, only libvte-2.91-dev is, and compile fails due to mismatched version:

    --- stderr
    thread '<main>' panicked at '`"pkg-config" "--libs" "--cflags" "vte-2.90"` did not exit successfully: exit code: 1
    --- stderr
    

    Needs updating.

    opened by OvermindDL1 6
  • Build Failing on OSX with Homebrew

    Build Failing on OSX with Homebrew

    Not too sure whether this is something that needs to be updated, but homebrew is now dishing out vte version 2.91 rather than 2.90.

    I get this error when trying to build:

    thread '<main>' panicked at '`"pkg-config" "--libs" "--cflags" "vte-2.90"` did not exit successfully: exit code: 1
    --- stderr
    Package vte-2.90 was not found in the pkg-config search path.
    Perhaps you should add the directory containing `vte-2.90.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'vte-2.90' found
    ', /Users/cetra/.cargo/git/checkouts/gtk-61164953be1831c6/master/gtk-sys/build.rs:45
    
    opened by cetra3 6
  • SolidOak failed to compile with rust nightly

    SolidOak failed to compile with rust nightly

    Hello, SolidOak failed to compile with

    rustc --version
    rustc 1.6.0-dev (b6b17c989 2015-11-14)
    

    The error message:

    ../.cargo/git/checkouts/cairo-571ad16295201b7a/master/src/image_surface.rs:39:37: 39:49 error: no method named `as_mut_ptr` found for type `&mut image_surface::AsyncBorrow<Box<[u8]>, F>` in the current scope
    ../.cargo/git/checkouts/cairo-571ad16295201b7a/master/src/image_surface.rs:39             let ptr = data.as_mut().as_mut_ptr();
                                                                                                                               ^~~~~~~~~~~~
    .../.cargo/git/checkouts/cairo-571ad16295201b7a/master/src/image_surface.rs:39:37: 39:49 help: items from traits can only be used if the trait is implemented and in scope; the following trait defines an item `as_mut_ptr`, perhaps you need to implement it:
    .../.cargo/git/checkouts/cairo-571ad16295201b7a/master/src/image_surface.rs:39:37: 39:49 help: candidate #1: `core::slice::SliceExt`
    error: aborting due to previous error
    Build failed, waiting for other jobs to finish...
    Could not compile `cairo-rs`.
    

    Thanks

    opened by alsam 6
  • Failed to build

    Failed to build

    I did a git clone of the repo after installing the dependencies via apt-get. Then I did a cargo build and I got these errors: src/utils.rs:123:22: 123:36 error: use of undeclared type name widgets::Stack [E0412] src/utils.rs:123 pub build_terms: widgets::Stack ^~~~~~~~~~~~~~ src/utils.rs:123:22: 123:36 help: run rustc --explain E0412 to see a detailed explanation src/main.rs:108:23: 108:42 error: failed to resolve. Could not find Stack in gtk::widgets [E0433] src/main.rs:108 let build_terms = widgets::Stack::new().unwrap(); ^~~~~~~~~~~~~~~~~~~ src/main.rs:108:23: 108:42 help: run rustc --explain E0433 to see a detailed explanation src/main.rs:108:23: 108:42 error: unresolved name widgets::Stack::new [E0425] src/main.rs:108 let build_terms = widgets::Stack::new().unwrap(); ^~~~~~~~~~~~~~~~~~~ src/main.rs:108:23: 108:42 help: run rustc --explain E0425 to see a detailed explanation error: aborting due to 3 previous errors Could not compile solidoak.

    To learn more, run the command again with --verbose.

    opened by Nokel81 5
  • SolidOak built-in terminal does not recognize terminated process

    SolidOak built-in terminal does not recognize terminated process

    SolidOak built-in terminal does not recognize terminated process

    Steps to reproduce:

    • build latest master of solidoak on debian testing, as described in README.md.
    • create new project, by clicking "New Project" button. A hello world example gets created.
    • click "Run" button.

    Expected:

    • cargo run should compile the project and print "Hello, world!" to the built-in console

    Observed:

    • project gets compiled, no "Hello, world!" output visible
    • built-in console stuck
    • when pressing "Stop" button, the ===Finished=== string appears, but no Hello world

    Some debugging: (Please note I'm an absolute newbie to rust. Therefore my debugging capabilities are quite limited. Sorry about that.)

    • extend the hello world program to one which takes some input (e.g. guessing game example from doc.rust-lang.org), so that the process does not terminate immediately
    • after compilation, the program runs, prints out some println and I can enter a string
    • after entering a string, the program is supposed to print a message and exit.
    • no println message visible, built-in console stuck again
    • change solidoak code: builders.rs file, run_builder function to print the pid of the process started by cargo run. Recompile solidoak:
                    match term.fork_command(project_path_str.as_ref(), args) {
                        Ok(pid) => { 
    						println!("pid {}",pid);
    						*current_pid = pid 
    					},
    
    • in the xterm where I started solidoak, I see the pid of the process that was started by cargo run, when I click the "Run" button
    • with ps aux | grep PIDNR, I can verify that the program is running
    • I enter some string to the built-in console, I expect the process to end
    • I can verify with ps that the process actually ended
    • The built-in terminal did not recoginze that the process ended: Last println! messages not visible and built-in terminal stuck, I have to press "Stop" button
    opened by ghost 0
  • DockerContainer for Arch Linux users

    DockerContainer for Arch Linux users

    Hi all

    I tried to build a DockerContainer but I have a strange error message:

    error: could not find native static library `nvim`, perhaps an -L flag is missing?                                                   
    error: Could not compile `neovim-rs`.
    

    Can I build it with the stable toolchain?

    Regards

    Dockerfile:

    FROM scorpil/rust:stable
    
    
    RUN apt update && \
        apt upgrade -qy && \
        apt install -qy hicolor-icon-theme gnome-icon-theme-extras git \
                libgtk-3-dev libglib2.0-dev libcairo2-dev libvte-2.90-dev \ &&
        apt install -qy \
                libtool autoconf automake cmake libncurses5-dev g++ pkg-config unzip \
        && \
          rm -rf /var/lib/apt/lists/*
    
    RUN cd /rust && git clone https://github.com/oakes/SolidOak.git && \
        cd SolidOak && rm -rf .git && \
        RUST_BACKTRACE=1 cargo build --release
    
    # Replace 1000 with your user / group id
    RUN export uid=1000 gid=1000 && \
        mkdir -p /home/user/.local/share/ && \
        mkdir -p /home/user/.config/gtk-3.0 && \
        echo -e "[Settings]\ngtk-recent-files-max-age=0\ngtk-recent-files-limit=0" > /home/user/.config/gtk-3.0/settings.ini && \
        echo gtk-recent-files-max-age=0 >> /home/user/.gtkrc-2.0 && \
        echo "user:x:${uid}:${gid}:Developer,,,:/home/user:/bin/bash" >> /etc/passwd && \
        echo "user:x:${uid}:" >> /etc/group && \
        echo "user ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/user && \
        chmod 0440 /etc/sudoers.d/user && \
        chown ${uid}:${gid} -R /home/user && chmod 755 -R /home/user
    
    USER user
    ENV HOME /home/user
    CMD cd /rust/SolidOak && cargo run --release || echo 'try "xhost + localhost" if it does not start'
    
    # Build like this:
    # docker build --no-cache -t dns2utf8/solidoak .
    
    # Start like this:
    # docker run -ti --rm --net=host -e DISPLAY=$DISPLAY --volume="/tmp/.X11-unix/:/tmp/.X11-unix/:rw" --volume="$HOME/.Xauthority:/home/user/.Xauthority:rw" --volume="$(pwd):/home/user/$(basename $(pwd)):rw" dns2utf8/solidoak
    
    opened by dns2utf8 1
  • "Public Domain" does not exist in some jurisdictions, consider CC0?

    Some jurisdictions have no concept of committing a work to the "Public Domain" - and others have rights that cannot be waived (authorship rights vs. editorial rights). CC0 handles these by using Public Domain where it exists, and getting as close as possible where it doesn't.

    https://wiki.creativecommons.org/wiki/CC0

    See also: https://cr.yp.to/publicdomain.html

    opened by eternaleye 3
  • use XDG baasedir spec instead of ~/.dotfile

    use XDG baasedir spec instead of ~/.dotfile

    xdg_basedir has get_config_home() which you can use to get the correct directory to put config files into on linux.

    on windows, it should go into %appdata%.

    for backwards compatibility, it should first try to read from the correct location, then from the old ~/.solidoakrc, and use the first one it can find. if it can’t find anything, it should create the config file in the correct location.

    opened by flying-sheep 4
Releases(0.1.3)
RustDT is an Eclipse based IDE for the Rust programming language:

Project website: http://rustdt.github.io/ As of 2017, RustDT is no longer actively maintained, see this blog post for more information. If you are int

null 351 Aug 20, 2022
Rust IDE

This branch contains the development of a "new ride" that maintain a small impact on the ui library. This is for a few reasons. Can customize the colo

Gustav Jansson 171 Dec 24, 2022
An IDE for Rust

Introduction SolidOak is a simple IDE for Rust. See the website for binary releases. It has the following features: An embedded copy of Neovim as its

Zach Oakes 907 Dec 29, 2022
Flowistry: Powerful IDE Tools for Rust

Flowistry - a VSCode extension that helps you understand Rust programs with program analysis.

Will Crichton 1.4k Dec 29, 2022
IDE tools for writing pest grammars, using the Language Server Protocol for Visual Studio Code, Vim and other editors

Pest IDE Tools IDE support for Pest, via the LSP. This repository contains an implementation of the Language Server Protocol in Rust, for the Pest par

pest 20 Apr 8, 2023
rust-analyzer is a modular compiler frontend for the Rust language

rust-analyzer is a modular compiler frontend for the Rust language. It is a part of a larger rls-2.0 effort to create excellent IDE support for Rust.

null 11.2k Jan 8, 2023
Rust language support in Atom - LOOKING FOR MAINTAINER, see #144

Rust language support in Atom Adds syntax highlighting and snippets to Rust files in Atom. Install Install the package language-rust in Atom (Preferen

Andreas Neuhaus 118 Oct 11, 2022
Emacs configuration for Rust

Table of Contents Introduction Installation Melpa Manual installation Feature guide Indentation Code formatting Running / testing / compiling code Cli

The Rust Programming Language 919 Jan 4, 2023
Rust development environment for Emacs

Rustic Table of Contents Rustic Intro Installation straight Compilation Faces rustc errors Rustfmt edition 2018 LSP Server Client eglot lsp-mode lsp-e

null 612 Dec 30, 2022
Better Rust/Cargo support for Flycheck

flycheck-rust — Flycheck for Rust This Flycheck extension configures Flycheck automatically for the current Cargo project. Setup Install from MELPA or

Flycheck 112 Sep 21, 2022
NetBeans Rust plugin

Rust NetBeans Plugin A NetBeans plugin for Rust. Linux / OSX Windows Requirements NetBeans 8.2.x Java 8+ Rust Cargo Rustup Features So far, it include

drrb 52 Oct 10, 2022
Rust plugin for the IntelliJ Platform

Rust plugin for the IntelliJ Platform Build Status Check Stable Beta Nightly Installation & Usage Available installation options and features are desc

IntelliJ Rust 4.2k Jan 2, 2023
The official Sublime Text 3 package for the Rust Programming Language

Rust Enhanced About This is a Sublime Text 3 package which supports Rust starting with version 1.0, it makes no attempt at supporting earlier incompat

The Rust Programming Language 704 Jan 7, 2023
Vim configuration for Rust.

rust.vim Description This is a Vim plugin that provides Rust file detection, syntax highlighting, formatting, Syntastic integration, and more. It requ

The Rust Programming Language 3.4k Jan 8, 2023
Rust Cargo command bindings

Vim Cargo Simple vim command bindings to quickly run cargo stuff from vim. Commands Available, mapping with their Cargo equivalant: CargoBench CargoBu

Timon Vonk 52 Dec 24, 2022
Visual Studio extension for Rust

Visual Studio extension for Rust Currently in development, and not feature complete. Stable versions are available on the Visual Studio extension gall

PistonDevelopers 697 Dec 18, 2022
Rust extension for Visual Studio 2017 with RLS support

Rust support for Visual Studio 2017 Preview Adds language support for Rust to Visual Studio 2017. Supports: code completion goto definition find all r

Zoey Riordan 111 Aug 4, 2022
crates is an extension aims to help people to manage their dependencies for rust (crates.io & TOML).

crates Hello Rust & VSCode lovers, This is crates, an extension for crates.io dependencies. Aims helping developers to manage dependencies while using

Seray Uzgur 164 Jan 4, 2023
Rust On the FLY completion for neovim

rofl.nvim Rust On the FLy completion engine for Neovim. Why Rust? It's 2021. I think the question you should be asking yourself is "Why NOT Rust?!?? (

TJ DeVries 63 Sep 25, 2022