An Emacs minor mode that automatically reindents code after every edit, keeping it always properly formatted.
aggressive-indent-mode is an Emacs minor mode that automatically reindents code after every edit, ensuring consistent formatting. It solves the problem of indentation errors that occur during complex editing operations like moving blocks or transposing lines, which electric-indent-mode does not handle reliably.
Emacs users who write code in multiple programming languages and want automated, reliable indentation without manual formatting.
Developers choose aggressive-indent-mode for its robust, automatic reindentation that works across various editing actions, providing more reliable indentation than electric-indent-mode and reducing manual formatting effort.
Emacs minor mode that keeps your code always indented. More reliable than electric-indent-mode.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Reindents after every edit including block movements and line transpositions, ensuring code stays aligned during complex operations beyond just typing.
Supports various programming modes via hooks, from Emacs Lisp to C and CSS, with easy integration as shown in the README examples.
Allows defining conditions where indentation shouldn't occur using `aggressive-indent-dont-indent-if`, useful for edge cases like incomplete C++ statements.
Can be enabled globally for all modes or specifically for chosen modes, with options to exclude problematic ones like html-mode for fine-grained control.
Continuous reindentation after every edit can slow down editing in large files, as it processes changes in real-time, potentially affecting Emacs responsiveness.
Advanced customization requires writing Emacs Lisp code, as demonstrated in the c++-mode example, which may be daunting for users unfamiliar with Elisp.
Inherits any bugs or limitations from the underlying Emacs mode's indentation logic, which can lead to formatting errors in less-supported or poorly implemented languages.