So I’ve been trying to set up Emacs for Rust using this guide, but I’m completely stuck. I’ve installed all the Emacs packages, racer seems to be working in the terminal, my emacs config seems okay. But nothing except simple highlighting (rust-mode stuff) and an autocompleter that doesn’t seem to Rust-specific (Company I think) actually work inside Emacs. No syntax checker, no jump to definition, no keyboard shortcuts. I’m not that experienced with Emacs, so I just have absolutely no idea what might be wrong or how to find out. Emacs config here. Any help would be appreciated.
First, there are a few things funky about your emacs config. The
lambda form in your
rust-mode-hook shouldn’t be quoted. I have a working setup with Racer, company etc. that is a bit simpler. I’ve changed some of your emacs configs to use the way I did it, and I got your config to do show racer completions with company. http://pastebin.com/SRLb8WtD
I got my own company/racer configurations straight from the source: https://github.com/racer-rust/emacs-racer
If it doesn’t work, definitely test that racer completion works from the command-line. That’s always a good sanity check:
RUST_SRC_PATH=/home/morten/.rust/src <path/to/racer>/racer complete std::io::B
Hope that gets you going.
Yes, that’s the first step to test. I had problems making racer work within Emacs too. Which version of Emacs are you using? Mine is Emacs 24.5.1. I’m not using flycheck though. Type:
And search for your company, rust-mode, and racer versions. Mine are:
company 0.8.12 racer 20150925.1415 rust-mode 20150828.2055
racer config in
;; Rust (add-to-list 'load-path "/Users/jan/git/rust-mode/") (autoload 'rust-mode "rust-mode" nil t) (add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode)) ;; Racer (setq racer-cmd "/mill3d/users/jan/git/github/racer/target/release/racer") (setq racer-rust-src-path "/usr/local/src/rustc-1.3.0/src/") (add-hook 'rust-mode-hook #'racer-mode) (add-hook 'racer-mode-hook #'eldoc-mode) (add-hook 'racer-mode-hook #'company-mode) (global-set-key [f2] #'company-complete) (setq company-tooltip-align-annotations t)
Of course your paths will be different.
Anyway, let us know if that helped.
RadicalZephyr: Thanks for looking through and editing my emacs file, that’s great for people who are not too comfortable manually piecing together an init file. I’ve spent the day repeating my work on another computer, now using your config, but everything is the same here and I’m not making any progress. Racer from command line does return Rust-specific autocompletion, but in Emacs it still just tries to autocomplete to any text string in the current file.
wahn: I’m using Emacs 24.4.1 (Ubuntu 15.04) on this new computer, and Emacs 24.x (Ubuntu 14.04) on the other. Here are all my installed packages in package-list-packages, apologies for the formatting:
company 20151008.452 installed Modular text completion framework company-racer 20150628.1933 installed Company integration for racer dash 20151010.929 installed A modern list library for Emacs deferred 20151007.... installed Simple asynchronous functions for emacs lisp epl 20150517.433 installed Emacs Package Library flycheck 20151013.131 installed On-the-fly syntax checking flycheck-rust 20150609.1248 installed Flycheck: Rust additions and Cargo support haskell-mode 13.14.2 installed A Haskell editing mode let-alist 1.0.4 installed Easily let-bind values of an assoc-list by their names pkg-info 20150517.443 installed Information about packages racer 1.0.0 installed Rust completion via racer with company rust-mode 20150828.2055 installed A major emacs mode for editing Rust source code sml-mode 6.7 installed Major mode for editing (Standard) ML
Sorry, I’ve just noticed this. I’m one of the maintainers of company-racer. Would you mind opening an issue on company-racer?