I have been working on a little rust project lately (more on that some time later). For this I have been using Emacs with rust-mode , flycheck-rust , racer-mode and cargo-mode (see my config). This setup already works quite nicely with all the nice IDE-like features you would expect. But, I also really like the idea of Microsoft's language server protocol , where the various editors out there can use a single implementation of a common "language" server that does the indexing, auto-completion, docs, etc.pp. for a given programming language. The common language server for rust (rls) can be installed via rustup (assuming one is already using rustup and rust nightly, if not go to the rls README.md and follow the instructions there):

rustup component add rls --toolchain nightly rustup component add rust-analysis --toolchain nightly rustup component add rust-src --toolchain nightly

As for Emacs, there is the common lsp-mode and the rust specific lsp-rust. Btw, RMS also seems to like lsp; who knows maybe we get out of the box support for it someday. For now the installation via use-package is also fairly trivial:

(use-package rust-mode :mode "\\.rs\\'" :init (setq rust-format-on-save t)) (use-package lsp-mode :init (add-hook 'prog-mode-hook 'lsp-mode) :config (use-package lsp-flycheck :ensure f ; comes with lsp-mode :after flycheck)) (use-package lsp-rust :after lsp-mode)