X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/1aa6d727bbb30f98aede8da72aea46460db69a5d..c0a1e24ef39e2b0f388135c2ed8f8b419346337c:/README.md diff --git a/README.md b/README.md index 4f5ffce24..68e07adc1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -aggressive-indent-mode    [![Say Thank You](https://img.shields.io/gratipay/Malabarba.svg)](https://gratipay.com/Malabarba/) +aggressive-indent-mode [![Melpa](http://melpa.org/packages/aggressive-indent-badge.svg)](http://melpa.org/#/aggressive-indent) [![Melpa-Stable](http://stable.melpa.org/packages/aggressive-indent-badge.svg)](http://stable.melpa.org/#/aggressive-indent) ====================== `electric-indent-mode` is enough to keep your code nicely aligned when @@ -7,7 +7,7 @@ transposing lines, or slurping and barfing sexps, indentation is bound to go wrong. **`aggressive-indent-mode`** is a minor mode that keeps your code **always** -indented. It reindents after every command, making it more reliable +indented. It reindents after every change, making it more reliable than `electric-indent-mode`. ### Demonstration ### @@ -15,8 +15,8 @@ than `electric-indent-mode`. - An example of Lisp mode (Emacs Lisp): ![Lisp Code Example](lisp-example.gif) -- An example of non-Lisp mode (C++): -![Cpp Code Example](cpp-example.gif) +- An example of non-Lisp mode (C): +![C Code Example](c-example.gif) ### Instructions ### @@ -36,14 +36,30 @@ every programming mode, you can do something like: (global-aggressive-indent-mode 1) (add-to-list 'aggressive-indent-excluded-modes 'html-mode) -### Manual Installation ### +#### Manual Installation #### If you don't want to install from Melpa, you can download it manually, -place it in your `load-path` along with its two dependencies: - -- [Names](https://github.com/Bruce-Connor/names/) -- and `cl-lib` (which you should already have if your `emacs-version` is at least 24.3). +place it in your `load-path` along with its dependency `cl-lib` (which +you should already have if your `emacs-version` is at least 24.3). Then require it with: (require 'aggressive-indent) + +### Customization ### + +The variable `aggressive-indent-dont-indent-if` lets you customize +when you **don't** want indentation to happen. +For instance, if you think it's annoying that lines jump around in +`c++-mode` because you haven't typed the `;` yet, you could add the +following clause: + + (add-to-list + 'aggressive-indent-dont-indent-if + '(and (derived-mode-p 'c++-mode) + (null (string-match "\\([;{}]\\|\\b\\(if\\|for\\|while\\)\\b\\)" + (thing-at-point 'line))))) + +## Contribute ## + +[![Gratipay](https://cdn.rawgit.com/gratipay/gratipay-badge/2.1.3/dist/gratipay.png)](https://gratipay.com/Malabarba)