summaryrefslogtreecommitdiff
path: root/elpa/js2-highlight-vars-20170418.1829/js2-highlight-vars.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/js2-highlight-vars-20170418.1829/js2-highlight-vars.el')
-rw-r--r--elpa/js2-highlight-vars-20170418.1829/js2-highlight-vars.el210
1 files changed, 0 insertions, 210 deletions
diff --git a/elpa/js2-highlight-vars-20170418.1829/js2-highlight-vars.el b/elpa/js2-highlight-vars-20170418.1829/js2-highlight-vars.el
deleted file mode 100644
index 5eb754c..0000000
--- a/elpa/js2-highlight-vars-20170418.1829/js2-highlight-vars.el
+++ /dev/null
@@ -1,210 +0,0 @@
-;;; js2-highlight-vars.el --- highlight occurrences of the variable under cursor
-
-;; Copyright (C) 2009 Free Software Foundation, Inc.
-;; Author: Mihai Bazon <mihai.bazon@gmail.com>
-;; Version: 0.1.0
-;; Package-Version: 20170418.1829
-;; Package-Commit: e3bb177e50f76b272e8073a94d4f46be6512a163
-;; URL: http://mihai.bazon.net/projects/editing-javascript-with-emacs-js2-mode/js2-highlight-vars-mode
-;; Package-Requires: ((emacs "24.4") (js2-mode "20150908"))
-
-;;; Commentary:
-;;
-;; This is a minor mode on top of js2-mode which highlights all
-;; occurrences of the variable under the cursor within its defining
-;; scope.
-
-;;; Installation:
-;;
-;; Install this package from MELPA using `M-x install-package` and put
-;; the following in your ~/.emacs.d/init.el:
-;; (eval-after-load "js2-highlight-vars-autoloads"
-;; '(add-hook 'js2-mode-hook (lambda () (js2-highlight-vars-mode))))
-;;
-;; If you aren't already using MELPA, see:
-;; http://melpa.milkbox.net/#/getting-started
-
-;; GNU Emacs is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(require 'js2-mode)
-
-(js2-deflocal js2-highlight-vars-mode nil)
-
-(defface js2-highlight-vars-face
- `((((class color) (background light))
- (:background "light green"))
- (((class color) (background dark))
- (:background "royal blue")))
- "Face for highlighting variables"
- :group 'js2-mode)
-
-(defface js2-highlight-vars-second-face
- `((((class color) (background light))
- (:background "light pink"))
- (((class color) (background dark))
- (:background "blue violet")))
- "Face for highlighting variables"
- :group 'js2-mode)
-
-(defvar js2-highlight-vars-local-keymap
- (let ((map (make-sparse-keymap)))
- (define-key map (kbd "M-n") 'js2-highlight-vars-next)
- (define-key map (kbd "C-<down>") 'js2-highlight-vars-next)
- (define-key map (kbd "M-p") 'js2-highlight-vars-prev)
- (define-key map (kbd "C-<up>") 'js2-highlight-vars-prev)
- (define-key map (kbd "M-r") 'js2-highlight-vars-rename)
- map))
-
-(js2-deflocal js2--highlight-vars-tokens nil)
-(js2-deflocal js2--highlight-vars-current-token nil)
-(js2-deflocal js2--highlight-vars-current-token-name nil)
-(js2-deflocal js2--highlight-vars-post-command-timer nil)
-
-(defun js2--do-highlight-vars ()
- "Highlight variable under cursor within the defining scope"
- (interactive)
- (setq js2--highlight-vars-post-command-timer nil)
- (unless js2--highlight-vars-tokens
- (let ((node (js2-node-at-point))
- (tokens nil)
- name
- scope)
- (unless (js2-name-node-p node)
- (setq node (js2-node-at-point (- (point) 1))))
- (when (and node (js2-name-node-p node))
- (setq scope (js2-node-get-enclosing-scope node)
- name (js2-name-node-name node)
- js2--highlight-vars-current-token (js2-node-abs-pos node)
- js2--highlight-vars-current-token-name name)
- (setq scope (js2-get-defining-scope scope name))
- (with-silent-modifications
- (js2-visit-ast
- scope
- (lambda (node end-p)
- (when (and (not end-p)
- (js2-name-node-p node)
- (string= name (js2-name-node-name node)))
- (let* ((beg (js2-node-abs-pos node))
- (end (+ beg (js2-node-len node)))
- (new-scope (js2-node-get-enclosing-scope node))
- (new-scope (js2-get-defining-scope new-scope name))
- (ovl (make-overlay beg end)))
- (add-to-list 'tokens beg t)
- (overlay-put ovl 'keymap js2-highlight-vars-local-keymap)
- (overlay-put ovl 'face
- (if (eq new-scope scope)
- 'js2-highlight-vars-face
- 'js2-highlight-vars-second-face))
- (overlay-put ovl 'evaporate t)
- (overlay-put ovl 'js2-highlight-vars t)))
- t)))
- (setq js2--highlight-vars-tokens tokens)))))
-
-(defun js2-highlight-vars-next ()
- (interactive)
- (let ((inhibit-point-motion-hooks t)
- (diff (- (point) js2--highlight-vars-current-token))
- (next (catch 'done
- (dolist (pos js2--highlight-vars-tokens)
- (when (> pos (point))
- (throw 'done pos))))))
- (when next
- (setq js2--highlight-vars-current-token next)
- (goto-char next)
- (forward-char diff))))
-
-(defun js2-highlight-vars-prev ()
- (interactive)
- (let ((inhibit-point-motion-hooks t)
- (diff (- (point) js2--highlight-vars-current-token))
- (prev (catch 'done
- (dolist (pos (reverse js2--highlight-vars-tokens))
- (when (and (< pos (point))
- (not (= pos js2--highlight-vars-current-token)))
- (throw 'done pos))))))
- (when prev
- (setq js2--highlight-vars-current-token prev)
- (goto-char prev)
- (forward-char diff))))
-
-(defun js2-highlight-vars-rename (new-name)
- (interactive "*sRename variable to: ")
- (let ((len (length js2--highlight-vars-current-token-name))
- (inhibit-point-motion-hooks t)
- (ovl (make-overlay 1 1))
- (all nil)
- doit)
- (unwind-protect
- (progn
- (overlay-put ovl 'face 'highlight)
- (dolist (pos (mapcar (lambda(pos)
- (let ((m (make-marker)))
- (set-marker m pos))) js2--highlight-vars-tokens))
- (goto-char pos)
- (move-overlay ovl pos (+ pos len))
- (setq doit (if all
- ?y
- (read-char "Replace this occurrence? (y/n/!)")))
- (when (= doit ?!)
- (setq all t
- doit ?y))
- (when (= doit ?y)
- (insert new-name)
- (delete-char len))))
- (delete-overlay ovl))))
-
-(defun js2--unhighlight-vars (&rest ignore)
- (setq js2--highlight-vars-tokens nil
- js2--highlight-vars-current-token nil)
- (remove-overlays (point-min) (point-max)
- 'js2-highlight-vars t))
-
-(defun js2-highlight-vars-post-command-hook ()
- (ignore-errors
- (let* ((overlays (overlays-at (point)))
- (ovl (and overlays
- (catch 'found
- (dolist (ovl overlays)
- (when (overlay-get ovl 'js2-highlight-vars)
- (throw 'found ovl)))
- nil))))
- (if (and ovl
- (string= js2--highlight-vars-current-token-name
- (buffer-substring (overlay-start ovl)
- (overlay-end ovl))))
- (setq js2--highlight-vars-current-token (overlay-start ovl))
- (js2--unhighlight-vars)
- (when js2--highlight-vars-post-command-timer
- (cancel-timer js2--highlight-vars-post-command-timer))
- (setq js2--highlight-vars-post-command-timer
- (run-with-timer 0.5 nil 'js2--do-highlight-vars))))))
-
-;;;###autoload
-(define-minor-mode js2-highlight-vars-mode
- "Minor mode that highlights occurrences of the variable under
-cursor in js2-mode buffers"
- nil " vars" nil
- (if js2-highlight-vars-mode
- (progn
- (add-hook 'post-command-hook 'js2-highlight-vars-post-command-hook nil t))
- (remove-hook 'post-command-hook 'js2-highlight-vars-post-command-hook t)
- (js2--unhighlight-vars)
- (kill-local-variable js2--highlight-vars-tokens)
- (kill-local-variable js2--highlight-vars-current-token)))
-
-(provide 'js2-highlight-vars)
-
-;;; js2-highlight-vars.el ends here