branch: elpa/evil-indent-plus
commit 33a8bcac5f90ddee054e64d60c2b68c98c269ffc
Author: Eivind Fonn <[email protected]>
Commit: Eivind Fonn <[email protected]>
Saner autoloading
---
README.md | 22 ++++++++++++++++++++--
evil-indent-plus.el | 28 ++++++++++++++--------------
2 files changed, 34 insertions(+), 16 deletions(-)
diff --git a/README.md b/README.md
index 9c581710b3..92023d1095 100644
--- a/README.md
+++ b/README.md
@@ -27,8 +27,26 @@ line above *and* below with less indentation.
## Usage
-Simply install the package. You should not have to load it explicitly, whether
-before or after evil loads. So long as the autoloads are handled, it will work.
+You can install the package and bind the auto-loadable text objects yourself:
+
+- `evil-indent-plus-i-indent`
+- `evil-indent-plus-a-indent`
+- `evil-indent-plus-i-indent-up`
+- `evil-indent-plus-a-indent-up`
+- `evil-indent-plus-i-indent-up-down`
+- `evil-indent-plus-a-indent-up-down`
+
+Or you can call `(evil-indent-plus-default-bindings)` to use the default
+bindings (listed above). They are:
+
+```elisp
+(define-key evil-inner-text-objects-map "i" 'evil-indent-plus-i-indent)
+(define-key evil-outer-text-objects-map "i" 'evil-indent-plus-a-indent)
+(define-key evil-inner-text-objects-map "I" 'evil-indent-plus-i-indent-up)
+(define-key evil-outer-text-objects-map "I" 'evil-indent-plus-a-indent-up)
+(define-key evil-inner-text-objects-map "J" 'evil-indent-plus-i-indent-up-down)
+(define-key evil-outer-text-objects-map "J"
'evil-indent-plus-a-indent-up-down))
+```
## Differences from evil-indent-textobject
diff --git a/evil-indent-plus.el b/evil-indent-plus.el
index 4a2137f7ee..3848d9295e 100644
--- a/evil-indent-plus.el
+++ b/evil-indent-plus.el
@@ -132,36 +132,42 @@ If `point' is supplied and non-nil it will return the
begin and end of the block
(setq begin (evil-indent-plus--seek begin -1 t t
'evil-indent-plus--empty-line-p)))
(list begin nend)))
+;;;###autoload (autoload 'evil-indent-plus-i-indent "evil-indent-plus" nil t)
(evil-define-text-object evil-indent-plus-i-indent (&optional count beg end
type)
"Text object describing the block with the same (or greater) indentation as
the current line,
skipping empty lines."
:type line
(evil-indent-plus--linify (evil-indent-plus--same-indent-range)))
+;;;###autoload (autoload 'evil-indent-plus-a-indent "evil-indent-plus" nil t)
(evil-define-text-object evil-indent-plus-a-indent (&optional count beg end
type)
"Text object describing the block with the same (or greater) indentation as
the current line,
skipping empty lines."
:type line
(evil-indent-plus--linify (evil-indent-plus--extend
(evil-indent-plus--same-indent-range))))
+;;;###autoload (autoload 'evil-indent-plus-i-indent-up "evil-indent-plus" nil
t)
(evil-define-text-object evil-indent-plus-i-indent-up (&optional count beg end
type)
"Text object describing the block with the same (or greater) indentation as
the current line,
and the line above, skipping empty lines."
:type line
(evil-indent-plus--linify (evil-indent-plus--up-indent-range)))
+;;;###autoload (autoload 'evil-indent-plus-a-indent-up "evil-indent-plus" nil
t)
(evil-define-text-object evil-indent-plus-a-indent-up (&optional count beg end
type)
"Text object describing the block with the same (or greater) indentation as
the current line,
and the line above, skipping empty lines."
:type line
(evil-indent-plus--linify (evil-indent-plus--extend
(evil-indent-plus--up-indent-range))))
+;;;###autoload (autoload 'evil-indent-plus-i-indent-up-down "evil-indent-plus"
nil t)
(evil-define-text-object evil-indent-plus-i-indent-up-down (&optional count
beg end type)
"Text object describing the block with the same (or greater) indentation as
the current line,
and the line above and below, skipping empty lines."
:type line
(evil-indent-plus--linify (evil-indent-plus--up-down-indent-range)))
+;;;###autoload (autoload 'evil-indent-plus-a-indent-up-down "evil-indent-plus"
nil t)
(evil-define-text-object evil-indent-plus-a-indent-up-down (&optional count
beg end type)
"Text object describing the block with the same (or greater) indentation as
the current line,
and the line above and below, skipping empty lines."
@@ -169,20 +175,14 @@ and the line above and below, skipping empty lines."
(evil-indent-plus--linify (evil-indent-plus--extend
(evil-indent-plus--up-down-indent-range))))
;;;###autoload
-(eval-after-load 'evil
- '(progn
- (autoload 'evil-indent-plus-i-indent "evil-indent-plus" nil t)
- (autoload 'evil-indent-plus-a-indent "evil-indent-plus" nil t)
- (autoload 'evil-indent-plus-i-indent-up "evil-indent-plus" nil t)
- (autoload 'evil-indent-plus-a-indent-up "evil-indent-plus" nil t)
- (autoload 'evil-indent-plus-i-indent-up-down "evil-indent-plus" nil t)
- (autoload 'evil-indent-plus-a-indent-up-down "evil-indent-plus" nil t)
- (define-key evil-inner-text-objects-map "J"
'evil-indent-plus-i-indent-up-down)
- (define-key evil-outer-text-objects-map "J"
'evil-indent-plus-a-indent-up-down)
- (define-key evil-inner-text-objects-map "I" 'evil-indent-plus-i-indent-up)
- (define-key evil-outer-text-objects-map "I" 'evil-indent-plus-a-indent-up)
- (define-key evil-inner-text-objects-map "i" 'evil-indent-plus-i-indent)
- (define-key evil-outer-text-objects-map "i" 'evil-indent-plus-a-indent)))
+(defun evil-indent-plus-default-bindings ()
+ "Set the default evil-indent-plus keybindings."
+ (define-key evil-inner-text-objects-map "i" 'evil-indent-plus-i-indent)
+ (define-key evil-outer-text-objects-map "i" 'evil-indent-plus-a-indent)
+ (define-key evil-inner-text-objects-map "I" 'evil-indent-plus-i-indent-up)
+ (define-key evil-outer-text-objects-map "I" 'evil-indent-plus-a-indent-up)
+ (define-key evil-inner-text-objects-map "J"
'evil-indent-plus-i-indent-up-down)
+ (define-key evil-outer-text-objects-map "J"
'evil-indent-plus-a-indent-up-down))
(provide 'evil-indent-plus)