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

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

[elpa] externals/topspace d0e7e89413 094/181: Put topspace-empty-line-in


From: ELPA Syncer
Subject: [elpa] externals/topspace d0e7e89413 094/181: Put topspace-empty-line-indicator inside fringe (#9)
Date: Tue, 23 Aug 2022 12:58:37 -0400 (EDT)

branch: externals/topspace
commit d0e7e8941354d0b585e0c8146762c05f2b99ed55
Author: Trevor Pogue <trevorpogue@gmail.com>
Commit: GitHub <noreply@github.com>

    Put topspace-empty-line-indicator inside fringe (#9)
---
 README.md   | 28 ++++++++++++++++++++++++----
 topspace.el | 28 ++++++++++++++++++++++++----
 2 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/README.md b/README.md
index e0c04e3497..33167971a3 100644
--- a/README.md
+++ b/README.md
@@ -87,13 +87,33 @@ then be active only when that function returns a non-nil 
value."
 (defcustom topspace-empty-line-indicator
   #'topspace-default-empty-line-indicator
   "Text that will appear in each empty topspace line above the top text line.
-By default it is \"~\" when `indicate-empty-lines' is non-nil, otherwise \"\".
-Can be set to either a constant string or a function that returns a string."
+Can be set to either a constant string or a function that returns a string.
+
+By default it will show the empty-line bitmap in the left fringe
+if `indicate-empty-lines' is non-nil, otherwise nothing.
+The default bitmap is the one that the `empty-line' logical fringe indicator
+maps to in `fringe-indicator-alist'.
+This is done by adding a 'display property to the string (see
+`topspace-default-empty-line-indicator' for more details).
+
+ You can alternatively show a string in the body of each top space line by
+having `topspace-empty-line-indicator' return a string without the 'display
+property added. If you do this you may be interested in also changing the
+string's face like so: (propertize indicator-string 'face 'fringe)."
   :type '(choice 'string (function :tag "String function")))
 
 (defun topspace-default-empty-line-indicator ()
-  "Return \"~\" with face 'fringe if `indicate-empty-lines` non-nil else \"\"."
-  (if indicate-empty-lines (propertize "~" 'face 'fringe) ""))
+  "Put the empty-line bitmap in fringe if `indicate-empty-lines' is non-nil.
+
+The bitmap used is the one that the `empty-line' logical fringe indicator
+maps to in `fringe-indicator-alist'."
+  (if indicate-empty-lines
+      (let ((bitmap (catch 'tag
+                      (dolist (x fringe-indicator-alist)
+                        (when (eq (car x) 'empty-line)
+                          (throw 'tag (cdr x)))))))
+      (propertize " " 'display (list `left-fringe bitmap `fringe)))
+    ""))
 
 (defcustom topspace-mode-line " T"
   "Mode line lighter for Topspace.
diff --git a/topspace.el b/topspace.el
index 37b5b00657..40d9721af6 100644
--- a/topspace.el
+++ b/topspace.el
@@ -150,13 +150,33 @@ then be active only when that function returns a non-nil 
value."
 (defcustom topspace-empty-line-indicator
   #'topspace-default-empty-line-indicator
   "Text that will appear in each empty topspace line above the top text line.
-By default it is \"~\" when `indicate-empty-lines' is non-nil, otherwise \"\".
-Can be set to either a constant string or a function that returns a string."
+Can be set to either a constant string or a function that returns a string.
+
+By default it will show the empty-line bitmap in the left fringe
+if `indicate-empty-lines' is non-nil, otherwise nothing.
+The default bitmap is the one that the `empty-line' logical fringe indicator
+maps to in `fringe-indicator-alist'.
+This is done by adding a 'display property to the string (see
+`topspace-default-empty-line-indicator' for more details).
+
+ You can alternatively show a string in the body of each top space line by
+having `topspace-empty-line-indicator' return a string without the 'display
+property added.  If you do this you may be interested in also changing the
+string's face like so: (propertize indicator-string 'face 'fringe)."
   :type '(choice 'string (function :tag "String function")))
 
 (defun topspace-default-empty-line-indicator ()
-  "Return \"~\" with face 'fringe if `indicate-empty-lines` non-nil else \"\"."
-  (if indicate-empty-lines (propertize "~" 'face 'fringe) ""))
+  "Put the empty-line bitmap in fringe if `indicate-empty-lines' is non-nil.
+
+The bitmap used is the one that the `empty-line' logical fringe indicator
+maps to in `fringe-indicator-alist'."
+  (if indicate-empty-lines
+      (let ((bitmap (catch 'tag
+                      (dolist (x fringe-indicator-alist)
+                        (when (eq (car x) 'empty-line)
+                          (throw 'tag (cdr x)))))))
+      (propertize " " 'display (list `left-fringe bitmap `fringe)))
+    ""))
 
 (defcustom topspace-mode-line " T"
   "Mode line lighter for Topspace.



reply via email to

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