File tree 2 files changed +22
-5
lines changed
2 files changed +22
-5
lines changed Original file line number Diff line number Diff line change 24
24
25
25
(require 'symbol-focus )
26
26
(define-key clojure-mode-map (kbd " M-s-f" ) 'sf/focus-at-point )
27
- (define-key clojure-mode-map (kbd " M-s-b" ) 'sf/back )
28
- (define-key clojure-mode-map (kbd " M-s-n" ) 'sf/next )
29
- (define-key clojure-mode-map (kbd " M-s-p" ) 'sf/prev )
30
27
31
28
(defun clj-duplicate-top-level-form ()
32
29
(interactive )
Original file line number Diff line number Diff line change 90
90
91
91
(defun sf/reset ()
92
92
(remove-overlays nil nil 'sf/hidden t )
93
- (remove-overlays nil nil 'sf/highlight t ))
93
+ (remove-overlays nil nil 'sf/highlight t )
94
+ (symbol-focus-mode 0 ))
94
95
95
96
(defvar sf/history nil )
96
97
(make-variable-buffer-local 'sf/history )
100
101
(sf/hide-mismatches symbol)
101
102
(sf/highlight-symbol symbol)
102
103
(unless (string= (car sf/history) symbol)
103
- (push symbol sf/history)))
104
+ (push symbol sf/history))
105
+ (symbol-focus-mode 1 )
106
+ (recenter-top-bottom ))
104
107
105
108
(defun sf/focus-at-point ()
106
109
(interactive )
135
138
0 )))
136
139
(goto-char (- prev offset))))
137
140
141
+ (defvar symbol-focus-mode-map (make-sparse-keymap )
142
+ " symbol-focus-mode keymap" )
143
+
144
+ (define-key symbol-focus-mode-map (kbd " M-s-b" ) 'sf/back )
145
+ (define-key symbol-focus-mode-map (kbd " M-s-n" ) 'sf/next )
146
+ (define-key symbol-focus-mode-map (kbd " M-s-p" ) 'sf/prev )
147
+ (define-key symbol-focus-mode-map (kbd " M-s-r" ) 'sf/reset )
148
+
149
+ (define-minor-mode symbol-focus-mode
150
+ " Focuses on a symbol, hides all top-level forms that does not
151
+ include it. Easily jump between them. Change the symbol in one
152
+ place, update all."
153
+ nil " Focus" symbol-focus-mode-map
154
+ (if symbol-focus-mode
155
+ (add-hook 'before-revert-hook 'sf/reset )
156
+ (remove-hook 'before-revert-hook 'sf/reset )))
157
+
138
158
(provide 'symbol-focus )
You can’t perform that action at this time.
0 commit comments