|
1 | | -;;; show-eol.el --- Show end of line symbol in buffer. -*- lexical-binding: t; -*- |
| 1 | +;;; show-eol.el --- Show end of line symbol in buffer -*- lexical-binding: t; -*- |
2 | 2 |
|
3 | 3 | ;; Copyright (C) 2019 Shen, Jen-Chieh |
4 | 4 | ;; Created date 2019-04-28 22:34:40 |
|
32 | 32 |
|
33 | 33 | ;;; Code: |
34 | 34 |
|
35 | | - |
36 | 35 | (require 'whitespace) |
37 | 36 |
|
38 | | - |
39 | 37 | (defgroup show-eol nil |
40 | 38 | "Show end of line symbol in buffer." |
41 | 39 | :prefix "show-eol-" |
|
57 | 55 | :type 'string |
58 | 56 | :group 'show-eol) |
59 | 57 |
|
| 58 | +;;; Core |
60 | 59 |
|
61 | 60 | (defun show-eol--get-current-system () |
62 | 61 | "Return the current system name." |
|
77 | 76 |
|
78 | 77 | (defun show-eol-find-mark-in-list (mk-sym) |
79 | 78 | "Return the MK-SYM index in the `whitespace-display-mappings' list." |
80 | | - (let ((index 0) |
81 | | - (mark-name nil) |
82 | | - (nl-mark-index -1)) |
| 79 | + (let ((index 0) (mark-name nil) (nl-mark-index -1)) |
83 | 80 | (dolist (entry whitespace-display-mappings) |
84 | 81 | (setq mark-name (car entry)) |
85 | | - (when (eq mk-sym mark-name) |
86 | | - (setq nl-mark-index index)) |
| 82 | + (when (eq mk-sym mark-name) (setq nl-mark-index index)) |
87 | 83 | (setq index (1+ index))) |
88 | 84 | nl-mark-index)) |
89 | 85 |
|
|
99 | 95 | (defun show-eol-update-eol-marks () |
100 | 96 | "Update the EOL mark once." |
101 | 97 | (show-eol-set-mark-with-string 'newline-mark (show-eol-get-eol-mark-by-system)) |
102 | | - ;; Calling this resets the whitespace glyphs to |
103 | | - ;; always be correct. |
| 98 | + ;; Calling this resets the whitespace glyphs to always be correct. |
104 | 99 | (whitespace-newline-mode 1)) |
105 | 100 |
|
106 | 101 | (defun show-eol-after-save-hook () |
|
111 | 106 | "Advice execute after `set-buffer-file-coding-system' function is called." |
112 | 107 | (when show-eol-mode (show-eol-update-eol-marks))) |
113 | 108 |
|
| 109 | +;;; Entry |
114 | 110 |
|
115 | 111 | (defun show-eol-enable () |
116 | 112 | "Enable 'show-eol-select' in current buffer." |
|
126 | 122 | (advice-remove 'set-buffer-file-coding-system #'show-eol--set-buffer-file-coding-system--advice-after) |
127 | 123 | (whitespace-newline-mode -1)) |
128 | 124 |
|
129 | | - |
130 | 125 | ;;;###autoload |
131 | 126 | (define-minor-mode show-eol-mode |
132 | 127 | "Minor mode 'show-eol-mode'." |
133 | 128 | :lighter " ShowEOL" |
134 | 129 | :group show-eol |
135 | | - (if show-eol-mode |
136 | | - (show-eol-enable) |
137 | | - (show-eol-disable))) |
| 130 | + (if show-eol-mode (show-eol-enable) (show-eol-disable))) |
138 | 131 |
|
139 | 132 | (defun show-eol-turn-on-show-eol-mode () |
140 | 133 | "Turn on the 'shift-select-mode'." |
|
145 | 138 | show-eol-mode show-eol-turn-on-show-eol-mode |
146 | 139 | :require 'show-eol) |
147 | 140 |
|
148 | | - |
149 | 141 | (provide 'show-eol) |
150 | 142 | ;;; show-eol.el ends here |
0 commit comments