branch: externals/cm-mode
commit 3354d16e08a80f6efe67b64d80e59127df0fa8a5
Merge: 12b7460691 44e2d0c498
Author: Joost Kremers <[email protected]>
Commit: GitHub <[email protected]>
Merge pull request #8 from teoric/master
Make CriticMarkup read-only only if configured
---
cm-mode.el | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/cm-mode.el b/cm-mode.el
index 4e019f40f0..6ddf2ba036 100644
--- a/cm-mode.el
+++ b/cm-mode.el
@@ -155,6 +155,15 @@ it is added automatically."
(string :tag "Author")))
(make-variable-buffer-local 'cm-author)
+(defcustom cm-read-only-annotations nil
+ "Make annotations read-only. Useful if you 'criticise' later,
+not so useful if you use markup while writing."
+ :group 'criticmarkup
+ :safe 'booleanp
+ :type 'boolean)
+(make-variable-buffer-local 'cm-read-only-annotations)
+
+
(defface cm-addition-face '((t (:inherit success)))
"Face for CriticMarkup additions."
:group 'criticmarkup-faces)
@@ -236,7 +245,8 @@ This keymap contains only one binding: `C-c *', which is
bound to
(cm-mode ; cm-mode is turned on
(setq font-lock-multiline t)
(font-lock-add-keywords nil (cm-font-lock-keywords) t)
- (add-to-list 'font-lock-extra-managed-props 'read-only)
+ (when cm-read-only-annotations
+ (add-to-list 'font-lock-extra-managed-props 'read-only))
(add-to-list 'font-lock-extra-managed-props 'rear-nonsticky)
(cm-font-lock-ensure)
(setq cm-current-markup-overlay (make-overlay 1 1))
@@ -262,12 +272,13 @@ This keymap contains only one binding: `C-c *', which is
bound to
"\\(?:[[:ascii:]]\\|[[:nonascii:]]\\)*?"))
(add-to-list 'font-lock `(0 ,face prepend) t) ; the highlighter for the
entire change
(dotimes (n (length markup))
- (add-to-list 'font-lock `(,(1+ n) '(face ,face read-only t)) t) ; make
the tags read-only
- (add-to-list 'font-lock `("." (progn ; and make the read-only property
of the final character rear-nonsticky
- (goto-char (1- (match-end ,(1+ n))))
- (1+ (point)))
- nil
- (0 '(face ,face rear-nonsticky (read-only))))
t))
+ (when cm-read-only-annotations
+ (add-to-list 'font-lock `(,(1+ n) '(face ,face read-only t)) t) ; make
the tags read-only
+ (add-to-list 'font-lock `("." (progn ; and make the read-only property
of the final character rear-nonsticky
+ (goto-char (1- (match-end ,(1+ n))))
+ (1+ (point)))
+ nil
+ (0 '(face ,face rear-nonsticky (read-only))))
t)))
font-lock))
;; `cm-font-lock-for-markup' produces a font-lock entry that can be given