[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed e046331 07/34: Implemented objed-local-mode (#72)
From: |
Stefan Monnier |
Subject: |
[elpa] externals/objed e046331 07/34: Implemented objed-local-mode (#72) |
Date: |
Mon, 15 Mar 2021 22:21:09 -0400 (EDT) |
branch: externals/objed
commit e046331f947220c0af3ef1d4c55d6e17bf71d571
Author: Philip K <philip@warpmail.net>
Commit: GitHub <noreply@github.com>
Implemented objed-local-mode (#72)
* Implemented objed-local-mode
* Mention objed-mode in README
* Updated comments in objed-local-mode
---
README.asc | 17 ++++++++++++-----
objed.el | 14 ++++++++++++++
2 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/README.asc b/README.asc
index ae49342..716be79 100644
--- a/README.asc
+++ b/README.asc
@@ -21,11 +21,11 @@ file.
== Introduction
Text objects are textual patterns like a line, a top level definition, a word,
-a sentence or any other unit of text. When `objed-mode` is enabled, certain
-editing commands (configurable) will activate `objed` and enable its modal
-editing features. When active, keys which would usually insert a character are
-mapped to objed commands. Other keys and commands will continue to work as
-they normally would and exit this editing state again.
+a sentence or any other unit of text. When `objed-mode` or `objed-local-mode`
+is enabled, certain editing commands (configurable) will activate `objed` and
+enable its modal editing features. When active, keys which would usually insert
+a character are mapped to objed commands. Other keys and commands will continue
+to work as they normally would and exit this editing state again.
By default important editing keys like kbd:[Space], kbd:[DEL] or kbd:[Return]
are not bound to modal commands and will execute the regular command and exit
@@ -458,6 +458,7 @@ M-x package-install RET objed RET
;; activate objed-mode in you init
(objed-mode)
```
+
For manual installation:
```sh
@@ -475,6 +476,12 @@ Add this to your init file:
;; (global-set-key (kbd "M-SPC") 'objed-activate)
```
+In case you don't want to enable `objed` globally, use `objed-local-mode`:
+
+```emacs
+(add-hook 'prog-mode-hook #'objed-local-mode)
+```
+
== Contribute
I'm happy to receive pull requests or ideas to improve this package. Some
diff --git a/objed.el b/objed.el
index 17020f3..3bdfe58 100644
--- a/objed.el
+++ b/objed.el
@@ -4134,6 +4134,20 @@ To define your own text objects and editing operations
see
;; auto entry cmds
(advice-remove f #'objed--init-later))))
+(define-minor-mode objed-local-mode
+ "Enable `objed-mode' in current buffer."
+ :variable (buffer-local-value 'objed-mode (current-buffer))
+ ;; Same mechanism as in electric-{indent,layout,quote}-mode
+ (cond
+ ((eq objed-mode (default-value 'objed-mode))
+ ;; If the local value is set to the default value, unmark
+ ;; `objed-mode' as local
+ (kill-local-variable 'objed-mode))
+ ((not (default-value 'objed-mode))
+ ;; If `objed-mode' isn't enabled by default, enable it globally to
+ ;; invoke the setup routines, and then reset the default value
+ (objed-mode 1)
+ (setq-default objed-mode nil))))
(defun objed--install-advices-for (cmds obj)
"Given a list of commands CMDS install advices for OBJ.
- [elpa] externals/objed 70f9fb5 34/34: Add notice for paused development, (continued)
- [elpa] externals/objed 70f9fb5 34/34: Add notice for paused development, Stefan Monnier, 2021/03/15
- [elpa] externals/objed 0f75d33 32/34: Fix compiler warnings, Stefan Monnier, 2021/03/15
- [elpa] externals/objed 9f7f6e5 23/34: Improve include commands to also cover punctuation and constituents, Stefan Monnier, 2021/03/15
- [elpa] externals/objed 2287436 19/34: Include possible active region when acting on multiple objects, Stefan Monnier, 2021/03/15
- [elpa] externals/objed 9f565e4 30/34: Make transposing objects work with active region, Stefan Monnier, 2021/03/15
- [elpa] externals/objed e93dda7 33/34: Require cl-lib in all files, Stefan Monnier, 2021/03/15
- [elpa] externals/objed 410a425 29/34: Refactor isearch handling and add missing commands, Stefan Monnier, 2021/03/15
- [elpa] externals/objed 8dc1770 01/34: Stay on at boundary for M-[/] (Fix #68), Stefan Monnier, 2021/03/15
- [elpa] externals/objed 31c5ded 03/34: Add separate option for auto init behavior on buffer change, Stefan Monnier, 2021/03/15
- [elpa] externals/objed 9bb3513 04/34: Fix differing initialization conditions, Stefan Monnier, 2021/03/15
- [elpa] externals/objed e046331 07/34: Implemented objed-local-mode (#72),
Stefan Monnier <=
- [elpa] externals/objed e89d8da 06/34: Fix bytecompile and linting errors, Stefan Monnier, 2021/03/15
- [elpa] externals/objed f5ddab2 08/34: Update objed-exit-op: Check range was passed, Stefan Monnier, 2021/03/15
- [elpa] externals/objed e871e0f 11/34: Mention changes of public interface, Stefan Monnier, 2021/03/15
- [elpa] externals/objed ae47cf6 10/34: Ensure to never shrink on expansion for objed-beg/end-of-block, Stefan Monnier, 2021/03/15
- [elpa] externals/objed f45cddb 09/34: Restructure note about out of date keybindings, Stefan Monnier, 2021/03/15
- [elpa] externals/objed 2224691 12/34: Make note about changes more prominent, Stefan Monnier, 2021/03/15
- [elpa] externals/objed 5d3b8a8 18/34: Fix quotes in docstring, Stefan Monnier, 2021/03/15
- [elpa] externals/objed dd520d4 20/34: Don't override last-command in objed--do-objects, Stefan Monnier, 2021/03/15
- [elpa] externals/objed 47891ba 17/34: Remove objed-extend face, Stefan Monnier, 2021/03/15
- [elpa] externals/objed ded6eb4 16/34: Fix docstring of objed-use-hl, Stefan Monnier, 2021/03/15