Merge pull request #163 from Silex/master

Improve mc-hide-unmatched-lines-mode.el
This commit is contained in:
Magnar Sveen 2014-10-03 14:51:22 +02:00
commit 49fe803f3b
3 changed files with 12 additions and 23 deletions

View File

@ -29,7 +29,6 @@
;;; Code:
(require 'multiple-cursors-core)
(defvar hum/hide-unmatched-lines-mode-map (make-sparse-keymap)
@ -45,9 +44,9 @@
;; used only in in multiple-cursors-mode-disabled-hook
(defun hum/disable-hum-mode ()
(mc-hide-unmatched-lines-mode 0)
)
(mc-hide-unmatched-lines-mode 0))
;;;###autoload
(define-minor-mode mc-hide-unmatched-lines-mode
"Minor mode when enabled hides all lines where no cursos (and
also hum/lines-to-expand below and above) To make use of this
@ -63,9 +62,7 @@ mode. To leave this mode press <return> or \"C-g\""
(add-hook 'multiple-cursors-mode-disabled-hook 'hum/disable-hum-mode t t))
(progn
(hum/unhide-unmatched-lines)
(remove-hook 'multiple-cursors-mode-disabled-hook 'hum/disable-hum-mode))
)
)
(remove-hook 'multiple-cursors-mode-disabled-hook 'hum/disable-hum-mode))))
(defconst hum/invisible-overlay-name 'hum/invisible-overlay-name)
@ -77,8 +74,7 @@ mode. To leave this mode press <return> or \"C-g\""
(defcustom hum/placeholder "..."
"Placeholder which will be placed insted of hiden text"
:type '(string)
:group 'multiple-cursors
)
:group 'multiple-cursors)
(defun hum/add-invisible-overlay (begin end)
(let ((overlay (make-overlay begin
@ -91,10 +87,7 @@ mode. To leave this mode press <return> or \"C-g\""
(overlay-put overlay 'invisible t)
(overlay-put overlay 'intangible t)
(overlay-put overlay 'evaporate t)
(overlay-put overlay 'after-string hum/placeholder)
)
)
(overlay-put overlay 'after-string hum/placeholder)))
(defun hum/hide-unmatched-lines ()
(let ((begin (point-min)))
@ -102,18 +95,12 @@ mode. To leave this mode press <return> or \"C-g\""
(save-excursion
(goto-char (mc/cursor-beg cursor))
(if (< begin (line-beginning-position (- hum/lines-to-expand)))
(hum/add-invisible-overlay begin (line-end-position (- hum/lines-to-expand)))
)
(setq begin (line-beginning-position (+ 2 hum/lines-to-expand)))
)
)
(hum/add-invisible-overlay begin (point-max))
)
)
(hum/add-invisible-overlay begin (line-end-position (- hum/lines-to-expand))))
(setq begin (line-beginning-position (+ 2 hum/lines-to-expand)))))
(hum/add-invisible-overlay begin (point-max))))
(defun hum/unhide-unmatched-lines ()
(remove-overlays nil nil hum/invisible-overlay-name t)
)
(remove-overlays nil nil hum/invisible-overlay-name t))
(provide 'mc-hide-unmatched-lines-mode)
(define-key mc/keymap (kbd "C-'") 'mc-hide-unmatched-lines-mode)

View File

@ -459,6 +459,7 @@ They are temporarily disabled when multiple-cursors are active.")
:group 'multiple-cursors)
(put 'mc/mode-line 'risky-local-variable t)
;;;###autoload
(define-minor-mode multiple-cursors-mode
"Mode while multiple cursors are active."
nil mc/mode-line mc/keymap

View File

@ -108,6 +108,7 @@ an exceedingly quick way of adding multiple cursors to multiple lines."
(when rectangular-region-mode
(rrm/switch-to-multiple-cursors)))
;;;###autoload
(define-minor-mode rectangular-region-mode
"A mode for creating a rectangular region to edit"
nil " rr" rectangular-region-mode-map