From 37dd7cfac67bdbb88d91bb80d7058b314c1087ce Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 13 May 2016 00:26:55 -0400 Subject: [PATCH] Add defuns-highlight-indentation --- core/defuns/defuns-highlight-indentation.el | 45 +++++++++++++++++++++ core/defuns/defuns-ui.el | 37 ----------------- 2 files changed, 45 insertions(+), 37 deletions(-) create mode 100644 core/defuns/defuns-highlight-indentation.el diff --git a/core/defuns/defuns-highlight-indentation.el b/core/defuns/defuns-highlight-indentation.el new file mode 100644 index 000000000..c0e6b5234 --- /dev/null +++ b/core/defuns/defuns-highlight-indentation.el @@ -0,0 +1,45 @@ +;;; defuns-highlight-indentation.el + +;;;###autoload +(defun narf/add-whitespace (&optional start end) + "Maintain indentation whitespace in buffer. Used so that highlight-indentation will +display consistent guides. Whitespace is stripped out on save, so this doesn't affect the +end file." + (interactive (progn (barf-if-buffer-read-only) + (if (use-region-p) + (list (region-beginning) (region-end)) + (list nil nil)))) + (unless indent-tabs-mode + (save-match-data + (save-excursion + (let ((end-marker (copy-marker (or end (point-max)))) + (start (or start (point-min)))) + (goto-char start) + (while (and (re-search-forward "^$" end-marker t) (not (>= (point) end-marker))) + (let (line-start line-end next-start next-end) + (save-excursion + ;; Check previous line indent + (forward-line -1) + (setq line-start (point) + line-end (save-excursion (back-to-indentation) (point))) + ;; Check next line indent + (forward-line 2) + (setq next-start (point) + next-end (save-excursion (back-to-indentation) (point))) + ;; Back to origin + (forward-line -1) + ;; Adjust indent + (let* ((line-indent (- line-end line-start)) + (next-indent (- next-end next-start)) + (indent (min line-indent next-indent))) + (insert (make-string (if (zerop indent) 0 (1+ indent)) ? ))))) + (forward-line 1))))) + (set-buffer-modified-p nil)) + nil) + +;;;###autoload +(defun narf*hl-indent-guess-offset () + (string-to-int (gethash 'indent_size (editorconfig-get-properties)))) + +(provide 'defuns-highlight-indentation) +;;; defuns-highlight-indentation.el ends here diff --git a/core/defuns/defuns-ui.el b/core/defuns/defuns-ui.el index c5db67362..62848b7fb 100644 --- a/core/defuns/defuns-ui.el +++ b/core/defuns/defuns-ui.el @@ -53,43 +53,6 @@ (compose-region beg end how 'decompose-region)) nil)) -;;;###autoload -(defun narf/add-whitespace (&optional start end) - "Maintain indentation whitespace in buffer. Used so that highlight-indentation will -display consistent guides. Whitespace is stripped out on save, so this doesn't affect the -end file." - (interactive (progn (barf-if-buffer-read-only) - (if (use-region-p) - (list (region-beginning) (region-end)) - (list nil nil)))) - (unless indent-tabs-mode - (save-match-data - (save-excursion - (let ((end-marker (copy-marker (or end (point-max)))) - (start (or start (point-min)))) - (goto-char start) - (while (and (re-search-forward "^$" end-marker t) (not (>= (point) end-marker))) - (let (line-start line-end next-start next-end) - (save-excursion - ;; Check previous line indent - (forward-line -1) - (setq line-start (point) - line-end (save-excursion (back-to-indentation) (point))) - ;; Check next line indent - (forward-line 2) - (setq next-start (point) - next-end (save-excursion (back-to-indentation) (point))) - ;; Back to origin - (forward-line -1) - ;; Adjust indent - (let* ((line-indent (- line-end line-start)) - (next-indent (- next-end next-start)) - (indent (min line-indent next-indent))) - (insert (make-string (if (zerop indent) 0 (1+ indent)) ? ))))) - (forward-line 1))))) - (set-buffer-modified-p nil)) - nil) - ;;;###autoload (defun narf/imenu-list-quit () (interactive)