An Emacs minor mode for C/C++/Objective-C development powered by libclang, providing code completion, syntax checking, and eldoc integration.
Irony-Mode is an Emacs minor mode that provides advanced IDE-like features for C, C++, and Objective-C development. It uses libclang to deliver accurate code completion, syntax checking, and documentation lookup, solving the problem of limited native language support in Emacs for these languages.
Emacs users who develop in C, C++, or Objective-C and seek a powerful, integrated development environment with accurate language tooling.
Developers choose Irony-Mode for its deep integration with libclang, ensuring high accuracy in code analysis, and its seamless compatibility with popular Emacs packages like company-mode and flycheck, offering a cohesive and customizable C/C++ editing experience.
A C/C++ minor mode for Emacs powered by libclang
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses libclang for context-aware code completion and syntax checking, ensuring high precision in language analysis, as highlighted by its integration with Clang's compilation database.
Integrates directly with popular Emacs packages like company-mode for completions, flycheck for real-time syntax checking, and eldoc for inline documentation, creating a cohesive workflow.
Supports compilation databases from CMake, Ninja, and Bear, automating compiler flag setup for accurate parsing without manual configuration per project.
Works on Linux, macOS, and Windows with specific tweaks, such as adjusting w32-pipe settings, making it adaptable to diverse development environments.
Requires building and installing the separate irony-server C++ program with dependencies like CMake and libclang, adding steps beyond typical Emacs package management.
On Windows, it needs manual performance tweaks (e.g., setting w32-pipe-read-delay to 0) and ensuring libclang.dll is in PATH, which can be error-prone and time-consuming.
For optimal performance, it relies on generating compilation databases, which may not be supported by all build systems, limiting usability in projects without CMake or similar tools.