emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master b81dadf 08/15: Add nameless-affect-indentation variable, t


From: Artur Malabarba
Subject: [elpa] master b81dadf 08/15: Add nameless-affect-indentation variable, to decide between display and compose
Date: Thu, 03 Sep 2015 11:01:21 +0000

branch: master
commit b81dadf8347948d8476f229de19b0d73345cea5c
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>

    Add nameless-affect-indentation variable, to decide between display and 
compose
---
 nameless.el |   25 +++++++++++++++++++++----
 1 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/nameless.el b/nameless.el
index 28ead40..c6032fd 100644
--- a/nameless.el
+++ b/nameless.el
@@ -53,16 +53,33 @@
   '((t :inherit font-lock-type-face))
   "Face used on `nameless-prefix'")
 
+(defcustom nameless-affect-indentation 'outside-strings
+  "If non-nil, code is indented according to what you see.
+If nil, code is indented according to its actual content.
+If the value is `outside-strings', behave like nil inside strings
+and non-nil otherwise.
+
+After changing this variable, you must reenable `nameless-mode'
+for it to take effect."
+  :type '(choice (const :tag "Always affect indentation" t)
+                 (const :tag "Don't affect indentation" nil)
+                 (const :tag "Only outside strings" 'outside-strings)))
+
 
 ;;; Font-locking
 (defvar nameless-mode)
 (defun nameless--compose-as (display)
   "Compose the matched region and return a face spec."
   (when nameless-mode
-    (compose-region (match-beginning 1)
-                    (match-end 1)
-                    (concat display nameless-prefix))
-    '(face nameless-face)))
+    (let ((compose (and nameless-affect-indentation
+                        (or (not (eq nameless-affect-indentation 
'outside-strings))
+                            (not (nth 3 (syntax-ppss))))))
+          (dis (concat display nameless-prefix)))
+      (when compose
+        (compose-region (match-beginning 1)
+                        (match-end 1)
+                        dis))
+      `(face nameless-face ,@(unless compose (list 'display dis))))))
 
 (defvar-local nameless--font-lock-keywords nil)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]