An Emacs package providing Rust code completion, definition lookup, and documentation via 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.
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.
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.
Racer support for Emacs
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
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.
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.
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.
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.
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.
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.
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.