Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. emacs-racer

emacs-racer

Emacs Lisp

An Emacs package providing Rust code completion, definition lookup, and documentation via Racer.

GitHubGitHub
397 stars47 forks0 contributors

What is emacs-racer?

racer.el is the official Emacs package for Racer, a Rust code completion tool. It integrates with Emacs to provide intelligent Rust development features like code completion, definition lookup, and documentation display directly within the editor, enhancing productivity for Rust programmers.

Target Audience

Rust developers who use Emacs as their primary editor and want IDE-like features such as code completion, navigation, and inline documentation for Rust projects.

Value Proposition

Developers choose racer.el for its seamless integration with Emacs and rust-mode, offering a native editing experience with configurable timeouts to maintain responsiveness, and compatibility with company-mode for enhanced completions.

Overview

Racer support for Emacs

Use Cases

Best For

  • Adding intelligent code completion for variables, functions, and modules in Rust files within Emacs.
  • Jumping to definitions of functions and types in Rust code using Emacs keybindings like M-. and M-,
  • Displaying docstrings and type information for Rust code via M-x racer-describe in a help buffer.
  • Integrating Racer's capabilities with company-mode for automatic completions in Emacs.
  • Debugging Racer command execution and output in Emacs using M-x racer-debug.
  • Setting up a responsive Rust development environment in Emacs with configurable timeouts for racer-command-timeout and racer-eldoc-timeout.

Not Ideal For

  • Rust developers using IDEs like VS Code where Racer has more integrated and maintained extensions.
  • Projects heavily reliant on Rust macros for metaprogramming, as racer.el cannot complete macros due to backend limitations.
  • Teams wanting a plug-and-play setup without managing nightly Rust toolchains and manual Emacs configuration.
  • Environments where Emacs must handle large codebases with zero latency, as timeouts might cause delays or require fine-tuning.

Pros & Cons

Pros

Deep Emacs Integration

Automatically activates with rust-mode and seamlessly hooks into company-mode for completions, providing a native editing experience as outlined in the installation configuration with add-hook directives.

Powerful Navigation Features

Enables jumping to definitions with M-. and returning with M-, plus describing functions/types via M-x racer-describe, with visual examples and keybindings detailed in the README sections.

Configurable Responsiveness

Offers customizable timeouts like racer-command-timeout and racer-eldoc-timeout to prevent Emacs from hanging, explicitly advised in the setup to maintain performance on varying machine speeds.

Built-in Debugging Tool

Includes racer-debug to troubleshoot command execution and output, useful for diagnosing setup issues when completions fail, as highlighted in the testing section of the README.

Cons

No Macro Completion

Cannot offer completion for Rust macros due to a known limitation in the underlying Racer tool, as explicitly stated in the Completion section of the README, which hinders metaprogramming workflows.

Complex Setup Process

Requires installing nightly Rust via rustup, the racer binary, rust-src, and manual Emacs configuration with hooks, making it more cumbersome than more modern, integrated alternatives.

Performance Depends on Tuning

Needs careful adjustment of timeouts to avoid making Emacs unresponsive during indexing or on slower systems, indicating potential slowdowns that require user intervention to optimize.

Frequently Asked Questions

Quick Stats

Stars397
Forks47
Contributors0
Open Issues35
Last commit5 years ago
CreatedSince 2015

Tags

#emacs#editor-integration#ide#development-tools#rust-development#rust#code-completion

Built With

E
Emacs Lisp

Included in

Rust56.6k
Auto-fetched 18 hours ago

Related Projects

LapceLapce

Lightning-fast and Powerful Code Editor written in Rust

Stars38,686
Forks1,308
Last commit9 days ago
intellij-rustintellij-rust

Rust plugin for the IntelliJ Platform

Stars4,530
Forks386
Last commit2 years ago
rust.vimrust.vim

Vim configuration for Rust.

Stars4,177
Forks321
Last commit2 years ago
LanguageClient-neovimLanguageClient-neovim

Language Server Protocol (LSP) support for vim and neovim.

Stars3,553
Forks268
Last commit9 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub