summaryrefslogtreecommitdiff
path: root/elpa/js2-refactor-20210306.2003
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/js2-refactor-20210306.2003')
-rw-r--r--elpa/js2-refactor-20210306.2003/js2-refactor-autoloads.el131
-rw-r--r--elpa/js2-refactor-20210306.2003/js2-refactor-pkg.el17
-rw-r--r--elpa/js2-refactor-20210306.2003/js2-refactor.el248
-rw-r--r--elpa/js2-refactor-20210306.2003/js2-refactor.elcbin6594 -> 0 bytes
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-conditionals.el57
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-conditionals.elcbin1101 -> 0 bytes
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-conveniences.el242
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-conveniences.elcbin6927 -> 0 bytes
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-formatting.el251
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-formatting.elcbin9109 -> 0 bytes
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-functions.el537
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-functions.elcbin20598 -> 0 bytes
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-helpers.el221
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-helpers.elcbin8930 -> 0 bytes
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-iife.el174
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-iife.elcbin5336 -> 0 bytes
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-paredit.el227
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-paredit.elcbin6044 -> 0 bytes
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-vars.el376
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-vars.elcbin11338 -> 0 bytes
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-wrapping.el76
-rw-r--r--elpa/js2-refactor-20210306.2003/js2r-wrapping.elcbin1286 -> 0 bytes
22 files changed, 0 insertions, 2557 deletions
diff --git a/elpa/js2-refactor-20210306.2003/js2-refactor-autoloads.el b/elpa/js2-refactor-20210306.2003/js2-refactor-autoloads.el
deleted file mode 100644
index cae75d6..0000000
--- a/elpa/js2-refactor-20210306.2003/js2-refactor-autoloads.el
+++ /dev/null
@@ -1,131 +0,0 @@
-;;; js2-refactor-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
-;;
-;;; Code:
-
-(add-to-list 'load-path (directory-file-name
- (or (file-name-directory #$) (car load-path))))
-
-
-;;;### (autoloads nil "js2-refactor" "js2-refactor.el" (0 0 0 0))
-;;; Generated autoloads from js2-refactor.el
-
-(autoload 'js2-refactor-mode "js2-refactor" "\
-Minor mode providing JavaScript refactorings.
-
-This is a minor mode. If called interactively, toggle the
-`Js2-Refactor mode' mode. If the prefix argument is positive,
-enable the mode, and if it is zero or negative, disable the mode.
-
-If called from Lisp, toggle the mode if ARG is `toggle'. Enable
-the mode if ARG is nil, omitted, or is a positive number.
-Disable the mode if ARG is a negative number.
-
-To check whether the minor mode is enabled in the current buffer,
-evaluate `js2-refactor-mode'.
-
-The mode's hook is called both when the mode is enabled and when
-it is disabled.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'js2r-add-keybindings-with-prefix "js2-refactor" "\
-Add js2r keybindings using the prefix PREFIX.
-
-\(fn PREFIX)" nil nil)
-
-(autoload 'js2r-add-keybindings-with-modifier "js2-refactor" "\
-Add js2r keybindings using the modifier MODIFIER.
-
-\(fn MODIFIER)" nil nil)
-
-(register-definition-prefixes "js2-refactor" '("js2"))
-
-;;;***
-
-;;;### (autoloads nil "js2r-conditionals" "js2r-conditionals.el"
-;;;;;; (0 0 0 0))
-;;; Generated autoloads from js2r-conditionals.el
-
-(register-definition-prefixes "js2r-conditionals" '("js2r-ternary-to-if"))
-
-;;;***
-
-;;;### (autoloads nil "js2r-conveniences" "js2r-conveniences.el"
-;;;;;; (0 0 0 0))
-;;; Generated autoloads from js2r-conveniences.el
-
-(register-definition-prefixes "js2r-conveniences" '("js2r-" "move-line-"))
-
-;;;***
-
-;;;### (autoloads nil "js2r-formatting" "js2r-formatting.el" (0 0
-;;;;;; 0 0))
-;;; Generated autoloads from js2r-formatting.el
-
-(register-definition-prefixes "js2r-formatting" '("js2r-"))
-
-;;;***
-
-;;;### (autoloads nil "js2r-functions" "js2r-functions.el" (0 0 0
-;;;;;; 0))
-;;; Generated autoloads from js2r-functions.el
-
-(register-definition-prefixes "js2r-functions" '("js2r-"))
-
-;;;***
-
-;;;### (autoloads nil "js2r-helpers" "js2r-helpers.el" (0 0 0 0))
-;;; Generated autoloads from js2r-helpers.el
-
-(register-definition-prefixes "js2r-helpers" '("js2r--"))
-
-;;;***
-
-;;;### (autoloads nil "js2r-iife" "js2r-iife.el" (0 0 0 0))
-;;; Generated autoloads from js2r-iife.el
-
-(register-definition-prefixes "js2r-iife" '("js2r-"))
-
-;;;***
-
-;;;### (autoloads nil "js2r-paredit" "js2r-paredit.el" (0 0 0 0))
-;;; Generated autoloads from js2r-paredit.el
-
-(register-definition-prefixes "js2r-paredit" '("js2r-"))
-
-;;;***
-
-;;;### (autoloads nil "js2r-vars" "js2r-vars.el" (0 0 0 0))
-;;; Generated autoloads from js2r-vars.el
-
-(autoload 'js2r-rename-var "js2r-vars" "\
-Renames the variable on point and all occurrences in its lexical scope." t nil)
-
-(autoload 'js2r-extract-var "js2r-vars" nil t nil)
-
-(autoload 'js2r-extract-let "js2r-vars" nil t nil)
-
-(autoload 'js2r-extract-const "js2r-vars" nil t nil)
-
-(register-definition-prefixes "js2r-vars" '("current-line-contents" "js2r-"))
-
-;;;***
-
-;;;### (autoloads nil "js2r-wrapping" "js2r-wrapping.el" (0 0 0 0))
-;;; Generated autoloads from js2r-wrapping.el
-
-(register-definition-prefixes "js2r-wrapping" '("js2r-"))
-
-;;;***
-
-;;;### (autoloads nil nil ("js2-refactor-pkg.el") (0 0 0 0))
-
-;;;***
-
-;; Local Variables:
-;; version-control: never
-;; no-byte-compile: t
-;; no-update-autoloads: t
-;; coding: utf-8
-;; End:
-;;; js2-refactor-autoloads.el ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2-refactor-pkg.el b/elpa/js2-refactor-20210306.2003/js2-refactor-pkg.el
deleted file mode 100644
index db355ff..0000000
--- a/elpa/js2-refactor-20210306.2003/js2-refactor-pkg.el
+++ /dev/null
@@ -1,17 +0,0 @@
-(define-package "js2-refactor" "20210306.2003" "A JavaScript refactoring library for emacs."
- '((js2-mode "20101228")
- (s "1.9.0")
- (multiple-cursors "1.0.0")
- (dash "1.0.0")
- (s "1.0.0")
- (yasnippet "0.9.0.1"))
- :commit "a0977c4ce1918cc266db9d6cd7a2ab63f3a76b9a" :authors
- '(("Magnar Sveen" . "magnars@gmail.com")
- ("Nicolas Petton" . "nicolas@petton.fr"))
- :maintainer
- '("Magnar Sveen" . "magnars@gmail.com")
- :keywords
- '("conveniences"))
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
diff --git a/elpa/js2-refactor-20210306.2003/js2-refactor.el b/elpa/js2-refactor-20210306.2003/js2-refactor.el
deleted file mode 100644
index 1ef60b4..0000000
--- a/elpa/js2-refactor-20210306.2003/js2-refactor.el
+++ /dev/null
@@ -1,248 +0,0 @@
-;;; js2-refactor.el --- The beginnings of a JavaScript refactoring library in emacs. -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2012-2014 Magnar Sveen
-;; Copyright (C) 2015-2016 Magnar Sveen and Nicolas Petton
-
-;; Author: Magnar Sveen <magnars@gmail.com>,
-;; Nicolas Petton <nicolas@petton.fr>
-;; Keywords: conveniences
-
-;; This program 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.
-
-;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; This is a collection of small refactoring functions to further the idea of a
-;; JavaScript IDE in Emacs that started with js2-mode.
-
-;; ## Installation
-
-;; Start by installing the dependencies:
-
-;; * js2-mode https://github.com/mooz/js2-mode/
-;; * dash https://github.com/magnars/dash.el
-;; * multiple-cursors https://github.com/magnars/multiple-cursors.el
-
-;; It is also recommended to get
-;; [expand-region](https://github.com/magnars/expand-region.el) to more easily mark
-;; vars, method calls and functions for refactorings.
-
-;; Then add this to your Emacs settings:
-
-;; (require 'js2-refactor)
-;; (add-hook 'js2-mode-hook #'js2-refactor-mode)
-;; (js2r-add-keybindings-with-prefix "C-c C-m")
-
-;; Note: I am working on a smoother installation path through package.el,
-;; but I haven't had the time to whip this project into that sort of
-;; structure - yet.
-
-;; ## Usage
-
-;; All refactorings start with `C-c C-m` and then a two-letter mnemonic shortcut.
-
-;; * `ee` is `expand-node-at-point`: Expand bracketed list according to node type at point (array, object, function, call args).
-;; * `cc` is `contract-node-at-point`: Contract bracketed list according to node type at point (array, object, function, call args).
-;; * `ef` is `extract-function`: Extracts the marked expressions out into a new named function.
-;; * `em` is `extract-method`: Extracts the marked expressions out into a new named method in an object literal.
-;; * `tf` is `toggle-function-expression-and-declaration`: Toggle between function name() {} and var name = function ();
-;; * `ta` is `toggle-arrow-function-and-expression`: Toggle between function expression to arrow function.
-;; * `ts` is `toggle-function-async`: Toggle between an async and a regular function.
-;; * `ip` is `introduce-parameter`: Changes the marked expression to a parameter in a local function.
-;; * `lp` is `localize-parameter`: Changes a parameter to a local var in a local function.
-;; * `wi` is `wrap-buffer-in-iife`: Wraps the entire buffer in an immediately invoked function expression
-;; * `ig` is `inject-global-in-iife`: Creates a shortcut for a marked global by injecting it in the wrapping immediately invoked function expression
-;; * `ag` is `add-to-globals-annotation`: Creates a `/*global */` annotation if it is missing, and adds the var at point to it.
-;; * `ev` is `extract-var`: Takes a marked expression and replaces it with a var.
-;; * `el` is `extract-var`: Takes a marked expression and replaces it with a let.
-;; * `ec` is `extract-var`: Takes a marked expression and replaces it with a const.
-;; * `iv` is `inline-var`: Replaces all instances of a variable with its initial value.
-;; * `rv` is `rename-var`: Renames the variable on point and all occurrences in its lexical scope.
-;; * `vt` is `var-to-this`: Changes local `var a` to be `this.a` instead.
-;; * `ao` is `arguments-to-object`: Replaces arguments to a function call with an object literal of named arguments.
-;; * `3i` is `ternary-to-if`: Converts ternary operator to if-statement.
-;; * `sv` is `split-var-declaration`: Splits a `var` with multiple vars declared, into several `var` statements.
-;; * `ss` is `split-string`: Splits a `string`.
-;; * `st` is `string-to-template`: Converts a `string` into a template string.
-;; * `uw` is `unwrap`: Replaces the parent statement with the selected region.
-;; * `lt` is `log-this`: Adds a console.log() statement for what is at point (or region). With a prefix argument, use JSON pretty-printing.
-;; * `dt` is `debug-this`: Adds a debug() statement for what is at point (or region).
-;; * `sl` is `forward-slurp`: Moves the next statement into current function, if-statement, for-loop or while-loop.
-;; * `ba` is `forward-barf`: Moves the last child out of current function, if-statement, for-loop or while-loop.
-;; * `k` is `kill`: Kills to the end of the line, but does not cross semantic boundaries.
-
-;; There are also some minor conveniences bundled:
-
-;; * `C-S-down` and `C-S-up` moves the current line up or down. If the line is an
-;; element in an object or array literal, it makes sure that the commas are
-;; still correctly placed.
-;; * `k` `kill-line`: Like `kill-line` but respecting the AST.
-
-;; ## Todo
-
-;; A list of some wanted improvements for the current refactorings.
-
-;; * expand- and contract-array: should work recursively with nested object literals and nested arrays.
-;; * expand- and contract-function: should deal better with nested object literals, array declarations, and statements terminated only by EOLs (without semicolons).
-;; * wrap-buffer-in-iife: should skip comments and namespace initializations at buffer start.
-;; * extract-variable: could end with a query-replace of the expression in its scope.
-
-;; ## Contributions
-
-;; * [Matt Briggs](https://github.com/mbriggs) contributed `js2r-add-to-globals-annotation`
-;; * [Alex Chamberlain](https://github.com/apchamberlain) contributed contracting and expanding arrays and functions.
-;; * [Nicolas Petton](https://github.com/NicolasPetton) contributed `js2r-kill`
-;; Thanks!
-
-;; ## Contribute
-
-;; This project is still in its infancy, and everything isn't quite sorted out
-;; yet. If you're eager to contribute, please add an issue here on github and we
-;; can discuss your changes a little before diving into the elisp :-).
-
-;; To fetch the test dependencies:
-
-;; $ cd /path/to/multiple-cursors
-;; $ git submodule init
-;; $ git submodule update
-
-;; Run the tests with:
-
-;; $ ./util/ecukes/ecukes features
-
-;;; Code:
-
-(require 'js2-mode)
-(require 'js2r-helpers)
-(require 'js2r-formatting)
-(require 'js2r-iife)
-(require 'js2r-vars)
-(require 'js2r-functions)
-(require 'js2r-wrapping)
-(require 'js2r-conditionals)
-(require 'js2r-conveniences)
-(require 'js2r-paredit)
-
-(defvar js2-refactor-mode-map
- (make-sparse-keymap)
- "Keymap for js2-refactor.")
-
-(defvar js2-refactor-keybinding-prefix
- nil
- "Store keybinding prefix used by js2-refactor.")
-
-;;;###autoload
-(define-minor-mode js2-refactor-mode
- "Minor mode providing JavaScript refactorings."
- :lighter " js2r"
- :keymap js2-refactor-mode-map
- (when js2-refactor-mode
- (yas-minor-mode-on)))
-
-;;; Settings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(defgroup js2-refactor nil
- "Minor mode providing JavaScript refactorings."
- :group 'tools
- :prefix "js2r-"
- :link '(url-link :tag "Repository" "https://github.com/magnars/js2-refactor.el"))
-
-(defcustom js2r-use-strict nil
- "When non-nil, js2r inserts strict declarations in IIFEs."
- :group 'js2-refactor
- :type 'boolean)
-
-(defcustom js2r-iife-style 'function
- "The type of function to use for IIFEs.
-Can be either `function', yielding (function () {})(),
-`function-inner' for (function () {} ()), or `lambda',
-for (() => {})()."
- :group 'js2-refactor
- :type '(choice (const function :tag "(function () {})()")
- (const function-inner :tag "(function () {}())")
- (const lambda :tag "(() => {})()")))
-
-(defcustom js2r-prefered-quote-type 1
- "The prefered quote style for strings."
- :group 'js2-refactor
- :type '(choice (const :tag "Double" 1)
- (const :tag "Single" 2)))
-
-(defcustom js2r-always-insert-parens-around-arrow-function-params nil
- "When non-nil, js2r always inserts parenthesis around arrow function params.
-This only affects arrow functions with one parameter."
- :group 'js2-refactor
- :type 'boolean)
-
-(defcustom js2r-prefer-let-over-var nil
- "When non-nil, js2r uses let constructs over var when performing refactorings."
- :group 'js2-refactor
- :type 'boolean)
-
-(defcustom js2r-log-before-point nil
- "When non-nil, js2r inserts logging and debug statements before point.
-When nil, logging and debug statements are inserted after point,
-unless point is in a return statement."
- :group 'js2-refactor
- :type 'boolean)
-
-;;; Keybindings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(defun js2r--add-keybindings (key-fn)
- "Add js2r refactoring keybindings to `js2-mode-map' using KEY-FN to create each keybinding."
- (define-key js2-refactor-mode-map (funcall key-fn "ee") #'js2r-expand-node-at-point)
- (define-key js2-refactor-mode-map (funcall key-fn "cc") #'js2r-contract-node-at-point)
- (define-key js2-refactor-mode-map (funcall key-fn "wi") #'js2r-wrap-buffer-in-iife)
- (define-key js2-refactor-mode-map (funcall key-fn "ig") #'js2r-inject-global-in-iife)
- (define-key js2-refactor-mode-map (funcall key-fn "ev") #'js2r-extract-var)
- (define-key js2-refactor-mode-map (funcall key-fn "el") #'js2r-extract-let)
- (define-key js2-refactor-mode-map (funcall key-fn "ec") #'js2r-extract-const)
- (define-key js2-refactor-mode-map (funcall key-fn "iv") #'js2r-inline-var)
- (define-key js2-refactor-mode-map (funcall key-fn "rv") #'js2r-rename-var)
- (define-key js2-refactor-mode-map (funcall key-fn "vt") #'js2r-var-to-this)
- (define-key js2-refactor-mode-map (funcall key-fn "ag") #'js2r-add-to-globals-annotation)
- (define-key js2-refactor-mode-map (funcall key-fn "sv") #'js2r-split-var-declaration)
- (define-key js2-refactor-mode-map (funcall key-fn "ss") #'js2r-split-string)
- (define-key js2-refactor-mode-map (funcall key-fn "st") #'js2r-string-to-template)
- (define-key js2-refactor-mode-map (funcall key-fn "ef") #'js2r-extract-function)
- (define-key js2-refactor-mode-map (funcall key-fn "em") #'js2r-extract-method)
- (define-key js2-refactor-mode-map (funcall key-fn "ip") #'js2r-introduce-parameter)
- (define-key js2-refactor-mode-map (funcall key-fn "lp") #'js2r-localize-parameter)
- (define-key js2-refactor-mode-map (funcall key-fn "tf") #'js2r-toggle-function-expression-and-declaration)
- (define-key js2-refactor-mode-map (funcall key-fn "ta") #'js2r-toggle-arrow-function-and-expression)
- (define-key js2-refactor-mode-map (funcall key-fn "ts") #'js2r-toggle-function-async)
- (define-key js2-refactor-mode-map (funcall key-fn "ao") #'js2r-arguments-to-object)
- (define-key js2-refactor-mode-map (funcall key-fn "uw") #'js2r-unwrap)
- (define-key js2-refactor-mode-map (funcall key-fn "wl") #'js2r-wrap-in-for-loop)
- (define-key js2-refactor-mode-map (funcall key-fn "3i") #'js2r-ternary-to-if)
- (define-key js2-refactor-mode-map (funcall key-fn "lt") #'js2r-log-this)
- (define-key js2-refactor-mode-map (funcall key-fn "dt") #'js2r-debug-this)
- (define-key js2-refactor-mode-map (funcall key-fn "sl") #'js2r-forward-slurp)
- (define-key js2-refactor-mode-map (funcall key-fn "ba") #'js2r-forward-barf)
- (define-key js2-refactor-mode-map (funcall key-fn "k") #'js2r-kill)
- (define-key js2-refactor-mode-map (kbd "<C-S-down>") #'js2r-move-line-down)
- (define-key js2-refactor-mode-map (kbd "<C-S-up>") #'js2r-move-line-up))
-
-;;;###autoload
-(defun js2r-add-keybindings-with-prefix (prefix)
- "Add js2r keybindings using the prefix PREFIX."
- (setq js2-refactor-keybinding-prefix (read-kbd-macro prefix))
- (js2r--add-keybindings (-partial #'js2r--key-pairs-with-prefix prefix)))
-
-;;;###autoload
-(defun js2r-add-keybindings-with-modifier (modifier)
- "Add js2r keybindings using the modifier MODIFIER."
- (js2r--add-keybindings (-partial #'js2r--key-pairs-with-modifier modifier)))
-
-(provide 'js2-refactor)
-;;; js2-refactor.el ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2-refactor.elc b/elpa/js2-refactor-20210306.2003/js2-refactor.elc
deleted file mode 100644
index d3071fb..0000000
--- a/elpa/js2-refactor-20210306.2003/js2-refactor.elc
+++ /dev/null
Binary files differ
diff --git a/elpa/js2-refactor-20210306.2003/js2r-conditionals.el b/elpa/js2-refactor-20210306.2003/js2r-conditionals.el
deleted file mode 100644
index cd984eb..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-conditionals.el
+++ /dev/null
@@ -1,57 +0,0 @@
-;;; js2r-conditionals.el --- Conditional refactoring functions for js2-refactor -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2012-2014 Magnar Sveen
-;; Copyright (C) 2015-2016 Magnar Sveen and Nicolas Petton
-
-;; Author: Magnar Sveen <magnars@gmail.com>,
-;; Nicolas Petton <nicolas@petton.fr>
-;; Keywords: conveniences
-
-;; This program 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.
-
-;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(require 's)
-
-(require 'js2r-helpers)
-
-(defun js2r-ternary-to-if ()
- "Convert a ternary operator to an if-statement."
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (save-excursion
- (let* ((ternary (js2r--closest 'js2-cond-node-p))
- (test-expr (js2-node-string (js2-cond-node-test-expr ternary)))
- (true-expr (js2-node-string (js2-cond-node-true-expr ternary)))
- (false-expr (js2-node-string (js2-cond-node-false-expr ternary)))
- (stmt (js2-node-parent-stmt ternary))
- (stmt-pre (buffer-substring (js2-node-abs-pos stmt) (js2-node-abs-pos ternary)))
- (stmt-post (s-trim (buffer-substring (js2-node-abs-end ternary) (js2-node-abs-end stmt))))
- (beg (js2-node-abs-pos stmt)))
- (goto-char beg)
- (delete-char (js2-node-len stmt))
- (insert "if (" test-expr ") {")
- (newline)
- (insert stmt-pre true-expr stmt-post)
- (newline)
- (insert "} else {")
- (newline)
- (insert stmt-pre false-expr stmt-post)
- (newline)
- (insert "}")
- (indent-region beg (point))))))
-
-(provide 'js2r-conditionals)
-;;; js2r-conditionals ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2r-conditionals.elc b/elpa/js2-refactor-20210306.2003/js2r-conditionals.elc
deleted file mode 100644
index b9f2517..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-conditionals.elc
+++ /dev/null
Binary files differ
diff --git a/elpa/js2-refactor-20210306.2003/js2r-conveniences.el b/elpa/js2-refactor-20210306.2003/js2r-conveniences.el
deleted file mode 100644
index e5fa3da..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-conveniences.el
+++ /dev/null
@@ -1,242 +0,0 @@
-;;; js2r-conveniences.el --- Convenience functions for js2-refactor -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2012-2014 Magnar Sveen
-;; Copyright (C) 2015-2016 Magnar Sveen and Nicolas Petton
-
-;; Author: Magnar Sveen <magnars@gmail.com>,
-;; Nicolas Petton <nicolas@petton.fr>
-;; Keywords: conveniences
-
-;; This program 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.
-
-;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; Convenience functions for logging statements by inserting
-;; `console.log' statements and moving lines respecting object
-;; literal syntax.
-
-;;; Code:
-
-(require 'js2r-helpers)
-
-(defun js2r-log-this (arg)
- "Log of the node at point, adding a 'console.log()' statement.
-With a prefix argument ARG, use JSON pretty-printing for logging."
- (interactive "P")
- (js2r--guard)
- (js2r--wait-for-parse
- (let* ((log-info (js2r--figure-out-what-to-log-where))
- (stmt (car log-info))
- (pos (cdr log-info)))
- (save-excursion
- (goto-char pos)
- (when (looking-at "[;{]")
- (forward-char 1))
- (newline-and-indent)
- (if arg
- (progn (insert "console.log(\"" stmt " = \");")
- (newline-and-indent)
- (insert "console.dir(" stmt ", { depth:null, colors: true });"))
- (insert "console.log(\"" stmt " = \", " stmt ");"))))))
-
-(defun js2r-debug-this ()
- "Debug the node at point, adding a 'debug()' statement."
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (let* ((log-info (js2r--figure-out-what-to-log-where))
- (stmt (car log-info))
- (pos (cdr log-info)))
- (save-excursion
- (goto-char pos)
- (when (looking-at "[;{]")
- (forward-char 1))
- (newline-and-indent)
- (insert "debug(" (js2r--wrap-text stmt " = %s") ", " stmt ");")))))
-
-(defun js2r--figure-out-what-to-log-where ()
- "Return a dotted pair containing the statement to log and the
-position where the log should be inserted."
- (let ((parent-stmt (js2-node-parent-stmt (js2-node-at-point))))
-
- (if (use-region-p)
- (cons (buffer-substring (region-beginning) (region-end))
- (js2r--find-suitable-log-position-around parent-stmt))
-
- (let* ((node (js2r--name-node-at-point))
- (parent (js2-node-parent node)))
-
- (cond
-
- ((js2-function-node-p parent)
- (cons (js2-name-node-name node)
- (js2-node-abs-pos (js2-function-node-body parent))))
-
- ((js2-prop-get-node-p parent)
- (cons (buffer-substring (js2-node-abs-pos parent) (js2-node-abs-end parent))
- (js2r--find-suitable-log-position-around parent-stmt)))
-
- (:else
- (cons (js2-name-node-name node)
- (js2r--find-suitable-log-position-around parent-stmt))))))))
-
-(defun js2r--find-suitable-log-position-around (parent-stmt)
- "Return the position close to PARENT-STMT where the log statement should be inserted."
- (if (or js2r-log-before-point (js2-return-node-p parent-stmt))
- (save-excursion
- (goto-char (js2-node-abs-pos parent-stmt))
- (skip-chars-backward " \t\n\r") ; Can't use skip-syntax-backward since \n is end-comment
- (point))
- (js2-node-abs-end parent-stmt)))
-
-(defun js2r-split-string ()
- "Split the string node at point. If the string is already split, join it instead."
- (interactive)
- (when (js2r--point-inside-string-p)
- (let ((delimiter (js2r--string-delimiter (js2-node-at-point))))
- (if (looking-back " \"")
- (progn
- (forward-char -2)
- (insert " +")
- (forward-char -2))
- (if (looking-at (regexp-quote (format "%s + %s" delimiter delimiter)))
- (delete-char 5)
- (insert (format "%s + %s" delimiter delimiter)))))))
-
-(defun js2r-string-to-template ()
- "Convert the string at point into a template string."
- (interactive)
- (let ((node (js2-node-at-point)))
- (when (js2-string-node-p node)
- (let* ((start (js2-node-abs-pos node))
- (end (+ start (js2-node-len node))))
- (when (memq (char-after start) '(?' ?\"))
- (save-excursion
- (goto-char end) (delete-char -1) (insert "`")
- (goto-char start) (delete-char 1) (insert "`")
- (perform-replace "`" "\\`" nil nil nil nil nil (1+ start) (1- end))))))))
-
-(defun js2r--string-delimiter (node)
- "Return the delimiter character of the string node NODE.
-It can be a single or double quote."
- (save-excursion
- (goto-char (js2-node-abs-pos node))
- (char-to-string (following-char))))
-
-(defun move-line-down ()
- "Move the current line down one line."
- (interactive)
- (let ((col (current-column)))
- (save-excursion
- (forward-line)
- (transpose-lines 1))
- (forward-line)
- (move-to-column col)))
-
-(defun move-line-up ()
- "Move the current line up one line."
- (interactive)
- (let ((col (current-column)))
- (transpose-lines 1)
- (forward-line -2)
- (move-to-column col)))
-
-(defun js2r-move-line-down ()
- "Move the current line down one line.
-Make sure commas are placed correctly when moving a line up or
-down in an object or array literal."
- (interactive)
- (if (and (js2r--current-line-is-a-list-item)
- (js2r--next-line-is-a-list-item))
- (js2r--move-line-down-as-list-item)
- (move-line-down))
- (funcall indent-line-function))
-
-(defun js2r-move-line-up ()
- "Move the current line up one line.
-Make sure commas are placed correctly when moving a line up or
-down in an object or array literal."
- (interactive)
- (if (and (js2r--current-line-is-a-list-item)
- (js2r--previous-line-is-a-list-item))
- (js2r--move-line-up-as-list-item)
- (move-line-up))
- (funcall indent-line-function))
-
-(defun js2r--current-line-is-prefixed-with-list-item-start ()
- "Return whether the current line is prefixed with '{' or '['."
- (save-excursion
- (back-to-indentation)
- (looking-back "\\({\\|\\[\\|,\\)\\(\s\\|\n\\|\t\\)*")))
-
-(defun js2r--current-line-is-postfixed-with-list-item-end ()
- "Return whether the current line is postfixed with '{' or '['."
- (save-excursion
- (end-of-line)
- (or (looking-back ",\s*") ; line ends in comma
- (looking-at "\\(\s\\|\n\\|\t\\)*\\(\\]\\|}\\)"))))
-
-(defun js2r--current-line-is-a-list-item ()
- "Return whether the current line contain an array or object literal."
- (and (js2r--current-line-is-prefixed-with-list-item-start)
- (js2r--current-line-is-postfixed-with-list-item-end)))
-
-(defun js2r--next-line-is-a-list-item ()
- "Return whether the current line contain an array or object literal."
- (save-excursion
- (forward-line)
- (js2r--current-line-is-a-list-item)))
-
-(defun js2r--previous-line-is-a-list-item ()
- "Return whether the previous line contain an array or object literal, and only that."
- (save-excursion
- (forward-line -1)
- (js2r--current-line-is-a-list-item)))
-
-(defun js2r--current-line-has-comma ()
- "Return whether the current line ends with a comma."
- (save-excursion
- (end-of-line)
- (looking-back ",\s*")))
-
-(defun js2r--previous-line-has-comma ()
- "Return whether the previous line ends with a comma."
- (save-excursion
- (forward-line -1)
- (js2r--current-line-has-comma)))
-
-(defun js2r--move-line-down-as-list-item ()
- "Move the current line containing a list literal down one line, and also move the comma."
- (move-line-down)
- (if (not (js2r--previous-line-has-comma))
- (save-excursion
- (end-of-line)
- (delete-char -1)
- (forward-line -1)
- (end-of-line)
- (insert ","))))
-
-(defun js2r--move-line-up-as-list-item ()
- "Move the current line containing a list literal up one line, and also move the comma."
- (move-line-up)
- (if (not (js2r--current-line-has-comma))
- (save-excursion
- (end-of-line)
- (insert ",")
- (forward-line)
- (end-of-line)
- (delete-char -1))))
-
-(provide 'js2r-conveniences)
-;;; js2r-conveniences.el ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2r-conveniences.elc b/elpa/js2-refactor-20210306.2003/js2r-conveniences.elc
deleted file mode 100644
index 3c52a58..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-conveniences.elc
+++ /dev/null
Binary files differ
diff --git a/elpa/js2-refactor-20210306.2003/js2r-formatting.el b/elpa/js2-refactor-20210306.2003/js2r-formatting.el
deleted file mode 100644
index a9137c3..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-formatting.el
+++ /dev/null
@@ -1,251 +0,0 @@
-;;; js2r-formatting.el --- Private helper functions for formatting -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2012-2014 Magnar Sveen
-;; Copyright (C) 2015-2016 Magnar Sveen and Nicolas Petton
-
-;; Author: Magnar Sveen <magnars@gmail.com>,
-;; Nicolas Petton <nicolas@petton.fr>
-;; Keywords: conveniences
-
-;; This program 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.
-
-;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-
-(defun js2r--ensure-newline ()
- (if (and (not (looking-at "\s*\n"))
- (not (looking-back "\n\s*")))
- (newline-and-indent)))
-
-(defun js2r--ensure-just-one-space ()
- (interactive)
- (while (or (looking-at "\s*\n")
- (looking-back "\n\s*"))
- (when (looking-at "\n")
- (delete-char 1))
- (when (looking-back "\n\s")
- (backward-char)
- (delete-char -1))
- (just-one-space))
- (just-one-space))
-
-(defmacro js2r--create-bracketed-whitespace-traverser
- (name ws-fix-func looking-at-start-func
- goto-closest-start-func subexpr-str)
- "Build a function to expand or contract a given type of
- bracketed expression, i.e., function body, object literal, or
- array (any of which may be nested).
- Parameters:
- name: name of the function to be built
- ws-fix-func: function to adjust whitespace at point
- looking-at-start-func: returns t if point is at
- the start of the bracketed
- thing we want to act on
- goto-closest-start-func: moves point if necessary
- until looking-at-start-func
- is true
- subexpr-str: literal delimiter of parts of the
- thing to be expanded or contracted"
- `(defun ,name ()
- (interactive)
- (save-excursion
- (if (not ,looking-at-start-func)
- ,goto-closest-start-func)
- (let ((end (make-marker)))
- (set-marker end (save-excursion
- (forward-list)
- (point)))
- (forward-char)
- ,ws-fix-func
- (while (< (point) end)
- (while (js2r--point-inside-string-p)
- (forward-char))
- (when (looking-at ,subexpr-str)
- (forward-char)
- (unless (js2-comment-node-p (js2-node-at-point))
- ,ws-fix-func))
- (if (looking-at "\\s(")
- (forward-list)
- (forward-char)))
- (backward-char)
- ,ws-fix-func))))
-
-(defun js2r--looking-at-object-start ()
- (and (looking-at "{")
- (not (looking-back ")[\s\n]*"))))
-
-(defun js2r--goto-closest-object-start ()
- (while (not (js2r--looking-at-object-start))
- (if (eq (car (syntax-ppss)) 0)
- (error "Cursor is not on an object")
- (goto-char (nth 1 (syntax-ppss))))))
-
-(js2r--create-bracketed-whitespace-traverser js2r-expand-object
- (js2r--ensure-newline)
- (js2r--looking-at-object-start)
- (js2r--goto-closest-object-start)
- ",")
-
-(js2r--create-bracketed-whitespace-traverser js2r-contract-object
- (js2r--ensure-just-one-space)
- (js2r--looking-at-object-start)
- (js2r--goto-closest-object-start)
- ",")
-
-(defun js2r--looking-at-array-start ()
- (looking-at "\\["))
-
-(defun js2r--goto-closest-array-start ()
- (while (not (js2r--looking-at-array-start))
- (if (eq (car (syntax-ppss)) 0)
- (error "Cursor is not on an array")
- (goto-char (nth 1 (syntax-ppss))))))
-
-(js2r--create-bracketed-whitespace-traverser js2r-expand-array
- (js2r--ensure-newline)
- (js2r--looking-at-array-start)
- (js2r--goto-closest-array-start)
- ",")
-
-(js2r--create-bracketed-whitespace-traverser js2r-contract-array
- (js2r--ensure-just-one-space)
- (js2r--looking-at-array-start)
- (js2r--goto-closest-array-start)
- ",")
-
-;; (defun js2r--looking-at-function-start ()
-;; (or
-;; (and (looking-at "{")
-;; (looking-back
-;; ;; This horrible-looking regexp is actually pretty simple. It
-;; ;; matches "function <optional_name> (<optional_parameters,...>)"
-;; ;; allowing for whitespace. TODO: support Unicode in function and
-;; ;; parameter names.
-;; (concat "function[\s\n]*"
-;; "\\\([a-zA-Z_$][a-zA-Z_$0-9]*[\s\n]*\\\)?"
-;; "\(\\\([a-zA-Z_$][a-zA-Z_$0-9]*"
-;; "[\s\n]*,[\s\n]*\\\)*[\s\n]*"
-;; "\\\([a-zA-Z_$][a-zA-Z_$0-9]*[\s\n]*\\\)*"
-;; "[\s\n]*\)[\s\n]*")))
-;; ;; arrow functions
-;; (and (looking-at "{")
-;; (looking-back "=>[\s\n]*")
-;; (not (js2r--point-inside-string-p)))))
-
-(defun js2r--looking-at-function-start ()
- "Return non-nil if the point is at the start of a function body."
- (let* ((node (js2-node-at-point))
- (parent (js2-node-parent node)))
- (and (looking-at "{")
- (js2-block-node-p node)
- (js2-function-node-p parent))))
-
-(defun js2r--goto-closest-function-start ()
- (while (not (js2r--looking-at-function-start))
- (if (eq (car (syntax-ppss)) 0)
- (error "Cursor is not on a function body")
- (goto-char (nth 1 (syntax-ppss))))))
-
-(js2r--create-bracketed-whitespace-traverser js2r-expand-function
- (js2r--ensure-newline)
- (js2r--looking-at-function-start)
- (js2r--goto-closest-function-start)
- ";")
-
-;; TODO: It'd be great if js2r-contract-function could recognize
-;; newlines that are implied statement terminators and insert
-;; semicolons correctly, but that would probably mean not using the
-;; same macro as the other "contract" function definitions.
-(js2r--create-bracketed-whitespace-traverser js2r-contract-function
- (js2r--ensure-just-one-space)
- (js2r--looking-at-function-start)
- (js2r--goto-closest-function-start)
- ";")
-
-(defun js2r--looking-at-call-start ()
- (looking-at "("))
-
-(defun js2r--goto-closest-call-start ()
- (while (not (js2r--looking-at-call-start))
- (if (eq (car (syntax-ppss)) 0)
- (error "Cursor is not on a call")
- (goto-char (nth 1 (syntax-ppss))))))
-
-(js2r--create-bracketed-whitespace-traverser js2r-expand-call-args
- (js2r--ensure-newline)
- (js2r--looking-at-call-start)
- (js2r--goto-closest-call-start)
- ",")
-
-(js2r--create-bracketed-whitespace-traverser js2r-contract-call-args
- (js2r--ensure-just-one-space)
- (js2r--looking-at-call-start)
- (js2r--goto-closest-call-start)
- ",")
-
-(defun js2r--expand-contract-node-at-point (&optional is-contract)
- "Expand or contract bracketed list according to node type in point.
-Currently working on array, object, function and call args node types.
-With argument, contract closest expression, otherwise expand."
- (let ((pos (point))
- (array-start (point-max))
- (object-start (point-max))
- (function-start (point-max))
- (call-start (point-max)))
- (save-excursion
- (ignore-errors
- (js2r--goto-closest-array-start)
- (setq array-start (- pos (point)))))
- (save-excursion
- (ignore-errors
- (js2r--goto-closest-object-start)
- (setq object-start (- pos (point)))))
- (save-excursion
- (ignore-errors
- (js2r--goto-closest-function-start)
- (setq function-start (- pos (point)))))
- (save-excursion
- (ignore-errors
- (js2r--goto-closest-call-start)
- (setq call-start (- pos (point)))))
- (setq pos (-min (list array-start object-start function-start call-start)))
- (when (= pos array-start)
- (if is-contract
- (js2r-contract-array)
- (js2r-expand-array)))
- (when (= pos object-start)
- (if is-contract
- (js2r-contract-object)
- (js2r-expand-object)))
- (when (= pos function-start)
- (if is-contract
- (js2r-contract-function)
- (js2r-expand-function)))
- (when (= pos call-start)
- (if is-contract
- (js2r-contract-call-args)
- (js2r-expand-call-args)))))
-
-(defun js2r-expand-node-at-point ()
- "Expand bracketed list according to node type at point."
- (interactive)
- (js2r--expand-contract-node-at-point))
-
-(defun js2r-contract-node-at-point ()
- "Contract bracketed list according to node type at point."
- (interactive)
- (js2r--expand-contract-node-at-point t))
-
-(provide 'js2r-formatting)
-;;; js2-formatting.el ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2r-formatting.elc b/elpa/js2-refactor-20210306.2003/js2r-formatting.elc
deleted file mode 100644
index 06c3d98..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-formatting.elc
+++ /dev/null
Binary files differ
diff --git a/elpa/js2-refactor-20210306.2003/js2r-functions.el b/elpa/js2-refactor-20210306.2003/js2r-functions.el
deleted file mode 100644
index 31e331a..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-functions.el
+++ /dev/null
@@ -1,537 +0,0 @@
-;;; js2r-functions.el --- Function manipulation functions for js2-refactor -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2012-2014 Magnar Sveen
-;; Copyright (C) 2015-2016 Magnar Sveen and Nicolas Petton
-
-;; Author: Magnar Sveen <magnars@gmail.com>,
-;; Nicolas Petton <nicolas@petton.fr>
-;; Keywords: conveniences
-
-;; This program 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.
-
-;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(require 'dash)
-(require 'yasnippet)
-
-(require 'js2r-helpers)
-
-(defun js2r-localize-parameter ()
- "Turn parameter into local var in local function."
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (if (js2-name-node-p (js2-node-at-point))
- (js2r--localize-parameter-pull)
- (js2r--localize-parameter-push))))
-
-(defun js2r--localize-parameter-push ()
- (let* ((node (js2-node-at-point))
- (arg-node (or (js2r--closest-node-where 'js2r--parent-is-call-node node)
- (error "Place cursor on argument to localize")))
- (call-node (js2-node-parent arg-node))
- (value (js2-node-string arg-node))
- (target (js2-call-node-target call-node))
- (fn (if (js2-name-node-p target)
- (js2r--local-fn-from-name-node target)
- (error "Can only localize parameter for local functions")))
- (usages (js2r--function-usages fn))
- (index (car (--keep (when (eq arg-node it) it-index)
- (js2-call-node-args call-node))))
- (name (js2-name-node-name (nth index (js2-function-node-params fn)))))
- (js2r--localize-parameter fn usages index name value)))
-
-(defun js2r--localize-parameter-pull ()
- (let* ((name-node (js2-node-at-point))
- (name (if (js2-name-node-p name-node)
- (js2-name-node-name name-node)
- (error "Place cursor on parameter to localize")))
- (fn (or (js2r--closest-node-where #'js2r--is-local-function name-node)
- (error "Can only localize parameter in local functions")))
- (index (or (js2r--param-index-for name fn)
- (error "%S isn't a parameter to this function" name)))
- (usages (js2r--function-usages fn))
- (examples (-distinct (--map (js2r--argument index it) usages)))
- (value (js2r--choose-one "Value: " examples)))
- (js2r--localize-parameter fn usages index name value)))
-
-(defun js2r--localize-parameter (fn usages index name value)
- (save-excursion
- (js2r--goto-fn-body-beg fn)
- (save-excursion
- (--each usages (js2r--remove-argument-at-index index it)))
- (newline-and-indent)
- (insert "var " name " = " value ";")
- (js2r--remove-parameter-at-index index fn)))
-
-(defun js2r--parent-is-call-node (node)
- (js2-call-node-p (js2-node-parent node)))
-
-(defun js2r--local-fn-from-name-node (name-node)
- (->> name-node
- (js2r--local-usages-of-name-node)
- (-map #'js2-node-parent)
- (-first #'js2-function-node-p)))
-
-(defun js2r--param-index-for (name fn)
- (car (--keep (when (equal name (js2-name-node-name it)) it-index)
- (js2-function-node-params fn))))
-
-(defun js2r--argument (index call-node)
- (js2-node-string (nth index (js2-call-node-args call-node))))
-
-(defun js2r--remove-parameter-at-index (index fn)
- (js2r--delete-node-in-params (nth index (js2-function-node-params fn))))
-
-(defun js2r--remove-argument-at-index (index call-node)
- (js2r--delete-node-in-params (nth index (js2-call-node-args call-node))))
-
-(defun js2r--delete-node-in-params (node)
- (goto-char (js2-node-abs-pos node))
- (delete-char (js2-node-len node))
- (if (and (looking-back "(")
- (looking-at ", "))
- (delete-char 2)
- (when (looking-back ", ")
- (delete-char -2))))
-
-(defun js2r--choose-one (prompt options)
- (when options
- (if (cdr options)
- (completing-read prompt options)
- (car options))))
-
-(defun js2r-introduce-parameter ()
- "Introduce a parameter in a local function."
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (if (use-region-p)
- (js2r--introduce-parameter-between (region-beginning) (region-end))
- (let ((node (js2r--closest-extractable-node)))
- (js2r--introduce-parameter-between (js2-node-abs-pos node)
- (js2-node-abs-end node))))))
-
-(defun js2r--introduce-parameter-between (beg end)
- (unless (js2r--single-complete-expression-between-p beg end)
- (error "Can only introduce single, complete expressions as parameter"))
-
- (let ((fn (js2r--closest-node-where #'js2r--is-local-function (js2-node-at-point))))
- (unless fn
- (error "Can only introduce parameter in local functions"))
- (save-excursion
- (let ((name (read-string "Parameter name: "))
- (val (buffer-substring beg end))
- (usages (js2r--function-usages fn)))
- (goto-char beg)
- (save-excursion
- (-each usages (-partial #'js2r--add-parameter val)))
- (delete-char (- end beg))
- (insert name)
- (js2r--add-parameter name fn)
- (query-replace val name nil (js2-node-abs-pos fn) (js2r--fn-body-end fn))))))
-
-(defun js2r--function-usages (fn)
- (-map #'js2-node-parent (js2r--function-usages-name-nodes fn)))
-
-(defun js2r--function-usages-name-nodes (fn)
- (let ((name-node (or (js2-function-node-name fn)
- (js2-var-init-node-target (js2-node-parent fn)))))
- (remove name-node (js2r--local-usages-of-name-node name-node))))
-
-(defun js2r--add-parameter (name node)
- (save-excursion
- (js2r--goto-closing-paren node)
- (unless (looking-back "(")
- (insert ", "))
- (insert name)))
-
-(defun js2r--goto-closing-paren (node)
- (goto-char (js2-node-abs-pos node))
- (search-forward "(")
- (forward-char -1)
- (forward-list)
- (forward-char -1))
-
-(defun js2r--goto-fn-body-beg (fn)
- (goto-char (js2-node-abs-pos fn))
- (search-forward "{"))
-
-(defun js2r--fn-body-end (fn)
- (save-excursion
- (js2r--goto-fn-body-beg fn)
- (forward-char -1)
- (forward-list)
- (point)))
-
-(defun js2r--is-local-function (node)
- (or (js2r--is-var-function-expression node)
- (js2r--is-function-declaration node)))
-
-(defun js2r--is-method (node)
- (and (js2-function-node-p node)
- (js2-object-prop-node-p (js2-node-parent node))))
-
-(defun js2r--is-var-function-expression (node)
- (and (js2-function-node-p node)
- (js2-var-init-node-p (js2-node-parent node))))
-
-(defun js2r--is-assigned-function-expression (node)
- (and (js2-function-node-p node)
- (js2-assign-node-p (js2-node-parent node))))
-
-(defun js2r--is-function-declaration (node)
- (let ((parent (js2-node-parent node)))
- (and (js2-function-node-p node)
- (not (js2-assign-node-p parent))
- (not (js2-var-init-node-p parent))
- (not (js2-object-prop-node-p parent)))))
-
-(defun js2r-arguments-to-object ()
- "Change from a list of arguments to a parameter object."
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (let ((node (js2-node-at-point)))
- (unless (and (looking-at "(")
- (or (js2-function-node-p node)
- (js2-call-node-p node)
- (js2-new-node-p node)))
- (error "Place point right before the opening paren in the call or function"))
-
- (-when-let* ((target (js2r--node-target node))
- (fn (and (js2-name-node-p target)
- (js2r--local-fn-from-name-node target))))
- (setq node fn))
- (if (js2-function-node-p node)
- (js2r--arguments-to-object-for-function node)
- (js2r--arguments-to-object-for-args-with-unknown-function (js2r--node-args node))))))
-
-(defun js2r--arguments-to-object-for-function (function-node)
- (let ((params (js2-function-node-params function-node)))
- (when (null params)
- (error "No params to convert"))
- (save-excursion
- (js2r--execute-changes
- (-concat
- ;; change parameter list to just (params)
- (list
- (list :beg (+ (js2-node-abs-pos function-node) (js2-function-node-lp function-node))
- :end (+ (js2-node-abs-pos function-node) (js2-function-node-rp function-node) 1)
- :contents "(params)"))
-
- ;; add params. in front of function local param usages
- (let* ((local-param-name-nodes (--mapcat (-> it
- (js2-node-abs-pos)
- (js2r--local-name-node-at-point)
- (js2r--local-usages-of-name-node))
- params))
- (local-param-name-usages (--remove (js2-function-node-p (js2-node-parent it))
- local-param-name-nodes))
- (local-param-name-positions (-map #'js2-node-abs-pos local-param-name-usages)))
- (--map
- (list :beg it :end it :contents "params.")
- local-param-name-positions))
-
- ;; update usages of function
- (let ((names (-map #'js2-name-node-name params))
- (usages (js2r--function-usages function-node)))
- (--map
- (js2r--changes/arguments-to-object it names)
- usages)))))))
-
-(defun js2r--changes/arguments-to-object (node names)
- (let ((args (js2r--node-args node)))
- (list :beg (+ (js2-node-abs-pos node) (js2r--node-lp node))
- :end (+ (js2-node-abs-pos node) (js2r--node-rp node) 1)
- :contents (js2r--create-object-with-arguments names args))))
-
-(defun js2r--arguments-to-object-for-args-with-unknown-function (args)
- (when (null args)
- (error "No arguments to convert"))
- (let ((names (--map-indexed
- (format "${%d:%s}"
- (1+ it-index)
- (if (js2-name-node-p it)
- (js2-name-node-name it)
- "key"))
- args)))
- (yas-expand-snippet (js2r--create-object-with-arguments names args)
- (point)
- (save-excursion (forward-list) (point)))))
-
-(defun js2r--create-object-with-arguments (names args)
- (let (arg key result)
- (--dotimes (length args)
- (setq arg (nth it args))
- (setq key (nth it names))
- (setq result
- (concat result
- (format " %s: %s,\n"
- key
- (buffer-substring (js2-node-abs-pos arg)
- (js2-node-abs-end arg))))))
- (concat "({\n" (substring result 0 -2) "\n})")))
-
-(defun js2r-extract-function (name)
- "Extract a function from the closest statement expression from the point."
- (interactive "sName of new function: ")
- (js2r--extract-fn
- name
- (lambda ()
- (unless (js2r--looking-at-function-declaration)
- (goto-char (js2-node-abs-pos (js2r--closest #'js2-expr-stmt-node-p)))))
- "%s(%s);"
- "function %s(%s) {\n%s\n}\n\n"))
-
-(defun js2r-extract-method (name)
- "Extract a method from the closest statement expression from the point."
- (interactive "sName of new method: ")
- (let ((class-node (js2r--closest #'js2-class-node-p)))
- (js2r--extract-fn
- name
- (unless class-node
- (lambda ()
- (goto-char (js2-node-abs-pos (js2r--closest #'js2-object-prop-node-p)))))
- "this.%s(%s);"
- (if class-node
- "%s(%s) {\n%s\n}\n\n"
- "%s: function (%s) {\n%s\n},\n\n"))))
-
-(defun js2r--extract-fn (name goto-position call-template function-template)
- (js2r--guard)
- (js2r--wait-for-parse
- (unless (use-region-p)
- (error "Mark the expressions to extract first"))
- (save-excursion
- (let* ((parent (js2r--first-common-ancestor-in-region (region-beginning) (region-end)))
- (block (js2r--closest-node-where #'js2-block-node-p parent))
- (fn (js2r--closest-node-where #'js2-function-node-p block))
- (exprs (js2r--marked-expressions-in-block block))
- (vars (-mapcat #'js2r--name-node-decendants exprs))
- (local (--filter (js2r--local-to-fn-p fn it) vars))
- (names (-distinct (-map 'js2-name-node-name local)))
- (declared-in-exprs (-map #'js2r--var-init-node-target-name (-mapcat #'js2r--var-init-node-decendants exprs)))
- (outside-exprs (-difference (js2-block-node-kids block) exprs))
- (outside-var-uses (-map #'js2-name-node-name (-mapcat #'js2r--name-node-decendants outside-exprs)))
- (declared-in-but-used-outside (-intersection declared-in-exprs outside-var-uses))
- (export-var (car declared-in-but-used-outside))
- (params (-difference names declared-in-exprs))
- (params-string (mapconcat #'identity (reverse params) ", "))
- (first (car exprs))
- (last (car (last exprs)))
- (beg (js2-node-abs-pos (car exprs)))
- (end (js2-node-abs-end last))
- (contents (buffer-substring beg end)))
- (goto-char beg)
- (delete-region beg end)
- (when (js2-return-node-p last)
- (insert "return "))
- (when export-var
- (setq contents (concat contents "\nreturn " export-var ";"))
- (insert "var " export-var " = "))
- (insert (format call-template name params-string))
- (goto-char (js2-node-abs-pos fn))
- (when goto-position (funcall goto-position))
- (let ((start (point)))
- (insert (format function-template name params-string contents))
- (indent-region start (1+ (point))))))))
-
-(defun js2r--var-init-node-target-name (node)
- (js2-name-node-name
- (js2-var-init-node-target node)))
-
-(defun js2r--function-around-region ()
- (or
- (js2r--closest-node-where #'js2-function-node-p
- (js2r--first-common-ancestor-in-region
- (region-beginning)
- (region-end)))
- (error "This only works when you mark stuff inside a function")))
-
-(defun js2r--marked-expressions-in-block (fn)
- (-select #'js2r--node-is-marked (js2-block-node-kids fn)))
-
-(defun js2r--node-is-marked (node)
- (and
- (<= (region-beginning) (js2-node-abs-end node))
- (>= (region-end) (js2-node-abs-pos node))))
-
-(defun js2r--name-node-decendants (node)
- (-select #'js2-name-node-p (js2r--decendants node)))
-
-(defun js2r--var-init-node-decendants (node)
- (-select #'js2-var-init-node-p (js2r--decendants node)))
-
-(defun js2r--decendants (node)
- (let (vars)
- (js2-visit-ast node
- (lambda (node end-p)
- (unless end-p
- (setq vars (cons node vars)))))
- vars))
-
-(defun js2r--local-to-fn-p (fn name-node)
- (let* ((name (js2-name-node-name name-node))
- (scope (js2-node-get-enclosing-scope name-node))
- (scope (js2-get-defining-scope scope name)))
- (eq fn scope)))
-
-
-(defun js2r-toggle-arrow-function-and-expression ()
- "Toggle between function expression to arrow function."
- (interactive)
- (save-excursion
- (js2r--find-closest-function)
- (cond ((js2r--arrow-function-p)
- (js2r--transform-arrow-function-to-expression))
- ((and (js2r--function-start-p) (not (js2r--looking-at-function-declaration)))
- (js2r--transform-function-expression-to-arrow))
- (t (error "Can only toggle between function expressions and arrow function")))))
-
-
-;; Toggle between function name() {} and var name = function ();
-
-(defun js2r-toggle-function-expression-and-declaration ()
- (interactive)
- (save-excursion
- (js2r--find-closest-function)
- (cond
- ((js2r--looking-at-var-function-expression)
- (when (js2r--arrow-function-p) (js2r--transform-arrow-function-to-expression))
- (js2r--transform-function-expression-to-declaration))
- ((js2r--looking-at-function-declaration)
- (js2r--transform-function-declaration-to-expression))
- (t (error "Can only toggle between function declarations and free standing function expressions")))))
-
-
-(defun js2r--arrow-function-p ()
- (interactive)
- (save-excursion
- (ignore-errors
- (js2r--find-closest-function)
- (and (looking-at "(?[,[:space:][:word:]]*)?[[:space:]]*=>")
- (not (js2r--point-inside-string-p))))))
-
-(defun js2r--transform-arrow-function-to-expression ()
- (when (js2r--arrow-function-p)
- (let (has-parenthesis)
- (save-excursion
- (js2r--find-closest-function)
- (let ((end (make-marker)))
- (save-excursion
- (search-forward "=>")
- (set-marker end (js2-node-abs-end (js2-node-at-point))))
- (setq has-parenthesis (looking-at "\\s-*("))
- (insert "function ")
- (if has-parenthesis
- (forward-list)
- (insert "("))
- (search-forward "=>")
- (delete-char -2)
- (js2r--ensure-just-one-space)
- (unless has-parenthesis
- (backward-char 1)
- (insert ")"))
- (unless (looking-at "\\s-*{")
- (js2r--ensure-just-one-space)
- (insert "{ return ")
- (js2r--ensure-just-one-space)
- (goto-char (marker-position end))
- (insert "; }")))))))
-
-(defun js2r--transform-function-expression-to-arrow ()
- (when (not (js2r--arrow-function-p))
- (save-excursion
- (js2r--find-closest-function)
- (let ((pos (point))
- (params
- (js2-function-node-params (js2-node-at-point)))
- parenthesis-start
- parenthesis-end)
- (when (js2r--looking-at-function-declaration)
- (error "Can not convert function declarations to arrow function"))
- (search-forward "(")
- (backward-char 1)
- (delete-region pos (point))
- (setq parenthesis-start (point))
- (forward-list)
- (setq parenthesis-end (point))
- (insert " => ")
- (js2r--ensure-just-one-space)
- (when (and (= 1 (length params))
- (not js2r-always-insert-parens-around-arrow-function-params))
- (goto-char parenthesis-end)
- (backward-delete-char 1)
- (goto-char parenthesis-start)
- (delete-char 1))))))
-
-
-(defun js2r--function-start-p()
- (let* ((fn (js2r--closest #'js2-function-node-p)))
- (and fn
- (= (js2-node-abs-pos fn) (point)))))
-
-(defun js2r--find-closest-function ()
- (when (not (js2r--function-start-p))
- (let* ((fn (js2r--closest #'js2-function-node-p)))
- (goto-char (js2-node-abs-pos fn)))))
-
-(defun js2r--looking-at-method ()
- (and (js2r--function-start-p)
- (looking-back ": ?")))
-
-(defun js2r--looking-at-function-declaration ()
- (and (js2r--function-start-p)
- (looking-back "^ *")))
-
-(defun js2r--looking-at-var-function-expression ()
- (and (js2r--function-start-p)
- (looking-back "^ *var[\s\n]*[a-z_$]+[\s\n]*=[\s\n]*")))
-
-(defun js2r--transform-function-expression-to-declaration ()
- (when (js2r--looking-at-var-function-expression)
- (delete-char 9)
- (forward-list)
- (forward-list)
- (delete-char 1)
- (backward-list)
- (backward-list)
- (delete-backward-char 3)
- (back-to-indentation)
- (delete-char 4)
- (insert "function ")))
-
-(defun js2r--transform-function-declaration-to-expression ()
- (when (js2r--looking-at-function-declaration)
- (delete-char 9)
- (insert "var ")
- (search-forward "(")
- (backward-char 1)
- (insert " = function ")
- (forward-list)
- (forward-list)
- (insert ";")))
-
-(defun js2r-toggle-function-async ()
- "Toggle the innermost function from sync to async."
- (interactive)
- (save-excursion
- (js2r--find-closest-function)
- (if (looking-back "async[[:space:]\n]+")
- (delete-region (match-beginning 0) (match-end 0))
- (insert "async "))))
-
-(provide 'js2r-functions)
-;;; js2-functions.el ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2r-functions.elc b/elpa/js2-refactor-20210306.2003/js2r-functions.elc
deleted file mode 100644
index 5671c23..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-functions.elc
+++ /dev/null
Binary files differ
diff --git a/elpa/js2-refactor-20210306.2003/js2r-helpers.el b/elpa/js2-refactor-20210306.2003/js2r-helpers.el
deleted file mode 100644
index 8f600fe..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-helpers.el
+++ /dev/null
@@ -1,221 +0,0 @@
-;;; js2r-helpers.el --- Private helper functions for js2-refactor -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2012-2014 Magnar Sveen
-;; Copyright (C) 2015-2016 Magnar Sveen and Nicolas Petton
-
-;; Author: Magnar Sveen <magnars@gmail.com>,
-;; Nicolas Petton <nicolas@petton.fr>
-;; Keywords: conveniences
-
-;; This program 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.
-
-;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(require 'dash)
-(require 's)
-(require 'js2-mode)
-
-(defmacro js2r--wait-for-parse (&rest body)
- "Evaluate BODY once the current buffer has been parsed."
- (declare (debug def-body))
- `(js2-mode-wait-for-parse (lambda () ,@body)))
-
-(defun js2r--wrap-text (&rest text)
- "Wrap TEXT with the prefered quotes. The prefered quotes is set with `js2r-prefered-quote-type'."
- (let ((prefered-quotes "\""))
- (when (= 2 js2r-prefered-quote-type)
- (setq prefered-quotes "'"))
- (concat prefered-quotes (apply 'concat text) prefered-quotes)))
-
-(defun js2r--fix-special-modifier-combinations (key)
- (case key
- ("C-s-i" "s-TAB")
- ("C-s-m" "s-RET")
- (otherwise key)))
-
-(defun js2r--key-pairs-with-modifier (modifier keys)
- (->> (string-to-list keys)
- (--map (js2r--fix-special-modifier-combinations
- (concat modifier (char-to-string it))))
- (s-join " ")
- (read-kbd-macro)))
-
-(defun js2r--key-pairs-with-prefix (prefix keys)
- (read-kbd-macro (concat prefix " " keys)))
-
-(defun js2r--guard ()
- (when js2-parsed-errors
- (error "Can't refactor while buffer has parse errors")))
-
-(defun js2r--current-quotes-char ()
- "The char that is the current quote delimiter"
- (nth 3 (syntax-ppss)))
-
-(defalias 'js2r--point-inside-string-p 'js2r--current-quotes-char)
-
-(defun js2r--closest-node-where (p node)
- (if (or (null node)
- (apply p node nil))
- node
- (js2r--closest-node-where p (js2-node-parent node))))
-
-(defun js2r--closest (p)
- (save-excursion
- (cond
- ((bolp) (back-to-indentation))
- ((looking-at ";") (forward-char -1))
- ((looking-back ";") (forward-char -2))
- ((looking-back "}") (forward-char -1)))
- (js2r--closest-node-where p (js2-node-at-point))))
-
-(defun js2r--goto-and-delete-node (node)
- (goto-char (js2-node-abs-pos node))
- (delete-char (js2-node-len node)))
-
-
-(defun js2r--path-to-root (node)
- (when node
- (cons node (js2r--path-to-root (js2-node-parent node)))))
-
-(defun js2r--first-common-ancestor (node1 node2)
- (if (eq node1 node2)
- node1
- (let ((path1 (reverse (js2r--path-to-root node1)))
- (path2 (reverse (js2r--path-to-root node2)))
- (last-common nil))
- (while (eq (car path1) (car path2))
- (setq last-common (car path1))
- (setq path1 (cdr path1))
- (setq path2 (cdr path2)))
- last-common)))
-
-(defun js2r--first-common-ancestor-in-region (beg end)
- (js2r--first-common-ancestor (js2-node-at-point beg)
- (js2-node-at-point end)))
-
-;; abstract away node type on some common property getters
-(defun js2r--node-target (node)
- (cond
- ((js2-call-node-p node) (js2-call-node-target node))
- ((js2-new-node-p node) (js2-new-node-target node))
- (:else nil)))
-
-(defun js2r--node-args (node)
- (cond
- ((js2-call-node-p node) (js2-call-node-args node))
- ((js2-new-node-p node) (js2-new-node-args node))
- (:else nil)))
-
-(defun js2r--node-lp (node)
- (cond
- ((js2-call-node-p node) (js2-call-node-lp node))
- ((js2-new-node-p node) (js2-new-node-lp node))
- (:else nil)))
-
-(defun js2r--node-rp (node)
- (cond
- ((js2-call-node-p node) (js2-call-node-rp node))
- ((js2-new-node-p node) (js2-new-node-rp node))
- (:else nil)))
-
-(defun js2r--node-kids (node)
- (cond
- ((js2-function-node-p node) (js2-block-node-kids (js2-function-node-body node)))
- ((js2-if-node-p node) (js2-scope-kids (js2-if-node-then-part node)))
- ((js2-for-node-p node) (js2-block-node-kids (js2-for-node-body node)))
- ((js2-while-node-p node) (js2-block-node-kids (js2-while-node-body node)))))
-
-;; finding expressions and arguments
-
-(defun js2r--closest-extractable-node ()
- "Return the most appropriate node the be extracted into a variable or paramter.
-Lookup the closest expression node from the point, or the closest literal node instead.
-If no node is found, signal an error."
- (or (or (js2r--closest #'js2r--expression-p)
- (js2r--closest #'js2r--literal-node-p))
- (error "Cannot perform refactoring: Nothing to extract at point")))
-
-(defun js2r--closest-stmt-node ()
- "Return the closest standalone statement node.
-Special care is taken for if branch nodes: if a statement node is
-part of an if branch node (like 'else if' nodes), return the
-parent node."
- (let* ((node (js2-node-parent-stmt (js2-node-at-point)))
- (parent (js2-node-parent node)))
- (if (and (js2-if-node-p node)
- (js2-if-node-p parent))
- parent
- node)))
-
-(defun js2r--argument-p (node)
- (let ((parent (js2-node-parent node)))
- (and (js2-call-node-p parent)
- (member node (js2-call-node-args parent)))))
-
-(defun js2r--expression-p (node)
- (or (js2-call-node-p node)
- (js2r--argument-p node)
- (and (js2-prop-get-node-p node)
- (not (js2-call-node-p (js2-node-parent node))))))
-
-(defun js2r--literal-node-p (node)
- (or (js2-object-node-p node)
- (js2-string-node-p node)
- (js2-number-node-p node)
- (js2r--boolean-node-p node)))
-
-(defun js2r--boolean-node-p (node)
- (let* ((beg (js2-node-abs-pos node))
- (end (js2-node-abs-end node))
- (content (buffer-substring beg end)))
- (and (js2-keyword-node-p node)
- (member content '("true" "false")))))
-
-(defun js2r--single-complete-expression-between-p (beg end)
- (let ((ancestor (js2r--first-common-ancestor-in-region beg (- end 1))))
- (and (= beg (js2-node-abs-pos ancestor))
- (= end (js2-node-abs-end ancestor)))))
-
-
-;; executing a list of changes
-;; ensures changes are executed from last to first
-
-(defun js2r--by-end-descending (change1 change2)
- (> (plist-get change1 :end)
- (plist-get change2 :end)))
-
-(defun js2r--any-overlapping-changes (sorted-changes)
- (--any?
- (let ((one (car it))
- (two (cadr it)))
- (< (plist-get one :beg)
- (plist-get two :end)))
- (-partition-in-steps 2 1 sorted-changes)))
-
-(defun js2r--execute-changes (changes)
- (when changes
- (let ((sorted-changes (sort changes 'js2r--by-end-descending)))
- (when (js2r--any-overlapping-changes sorted-changes)
- (error "These changes overlap, cannot execute properly."))
- (let ((abs-end (set-marker (make-marker) (1+ (plist-get (car sorted-changes) :end))))
- (abs-beg (plist-get (car (last sorted-changes)) :beg)))
- (--each sorted-changes
- (goto-char (plist-get it :beg))
- (delete-char (- (plist-get it :end) (plist-get it :beg)))
- (insert (plist-get it :contents)))
- (indent-region abs-beg abs-end)
- (set-marker abs-end nil)))))
-
-(provide 'js2r-helpers)
-;;; js2-helpers.el ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2r-helpers.elc b/elpa/js2-refactor-20210306.2003/js2r-helpers.elc
deleted file mode 100644
index abb18d8..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-helpers.elc
+++ /dev/null
Binary files differ
diff --git a/elpa/js2-refactor-20210306.2003/js2r-iife.el b/elpa/js2-refactor-20210306.2003/js2r-iife.el
deleted file mode 100644
index 40e123a..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-iife.el
+++ /dev/null
@@ -1,174 +0,0 @@
-;;; js2r-iife.el --- IIFE wrapping functions for js2-refactor -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2012-2014 Magnar Sveen
-;; Copyright (C) 2015-2016 Magnar Sveen and Nicolas Petton
-
-;; Author: Magnar Sveen <magnars@gmail.com>,
-;; Nicolas Petton <nicolas@petton.fr>
-;; Keywords: conveniences
-
-;; This program 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.
-
-;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(require 'js2r-helpers)
-(require 'cl-lib)
-
-(defconst js2r--iife-regexp "[[:space:]]*(\\(?:function ([^)]*)\\|([^)]*) => {\\)")
-(defconst js2r--use-strict-regexp "[[:space:]]*\\(['\"]\\)use strict\\1")
-
-(defun js2r-looking-at-iife-p ()
- "Check if `point' is `looking-at' an IIFE."
- (looking-at-p js2r--iife-regexp))
-
-(defun js2r-wrap-in-iife (beg end)
- "Wrap the current region in an iife.
-BEG and END are the start and end of the region, respectively."
- (interactive "r")
- (cl-assert (memq js2r-iife-style '(function-inner function lambda))
- nil "`js2r-iife-style' invalid")
- (let ((end-marker (copy-marker end t))
- (strict js2r-use-strict))
- (save-excursion
- (goto-char beg)
- (when (js2r-looking-at-iife-p)
- (user-error "Region is already an immediately invoked function expression"))
- (when (looking-at-p js2r--use-strict-regexp)
- (setq strict nil))
- (insert "(" (pcase js2r-iife-style
- ((or `function `function-inner) "function ()")
- (`lambda "() =>"))
- " {\n")
- (when strict (insert (pcase js2r-prefered-quote-type
- (1 "\"use strict\"")
- (2 "'use strict'"))
- ";\n"))
- (goto-char end-marker)
- (unless (eq (char-before) ?\n)
- (insert "\n"))
- (insert "}" (pcase js2r-iife-style
- ((or `function `lambda) ")()")
- (`function-inner "())"))
- ";\n")
- (indent-region beg (point)))
- (back-to-indentation)
- (set-marker end-marker nil)))
-
-(defun js2r-wrap-buffer-in-iife ()
- "Wrap the entire buffer in an immediately invoked function expression"
- (interactive)
- (let ((eob-nl? (eq (char-before (point-max)) ?\n)))
- (js2r-wrap-in-iife (point-min) (point-max))
- (unless eob-nl?
- (save-excursion
- (goto-char (point-max))
- ;; `backward-delete-char' is advised in DOOM
- (delete-char -1)))))
-
-(defun js2r--selected-name-positions ()
- "Returns the (beginning . end) of the name at cursor, or active region."
- (let ((current-node (js2-node-at-point))
- beg end)
- (unless (js2-name-node-p current-node)
- (setq current-node (js2-node-at-point (- (point) 1))))
- (if (not (and current-node (js2-name-node-p current-node)))
- (error "Point is not on an identifier."))
- (if (use-region-p)
- (cons (region-beginning) (region-end))
- (progn
- (setq end (+ (js2-node-abs-pos current-node)
- (js2-node-len current-node)))
- (skip-syntax-backward ".w_")
- (cons (point) end)))))
-
-(defun js2r--read-iife-short-name (name)
- "Read an iife short name for NAME.
-See `js2r-add-global-to-iife'."
- (read-string "Short name (%s): " (substring name 0 1) nil name))
-
-(defun js2r-add-global-to-iife (global short)
- "Add GLOBAL under the name SHORT to the current IIFE."
- (interactive
- (let ((global (read-string "Global: " (thing-at-point 'symbol))))
- (list global (js2r--read-iife-short-name global))))
- (save-excursion
- (save-match-data
- (atomic-change-group
- (let* (beg end)
- (unless (search-backward-regexp js2r--iife-regexp)
- (error "No immediately invoked function expression found"))
- (goto-char (match-end 0))
- (save-excursion
- (search-backward ")")
- (unless (= (char-before) ?\()
- (insert ", "))
- (insert short))
- (setq beg (point))
- (backward-char)
- (forward-list)
- (setq end (point))
- (unless (search-forward "(" (+ 3 (point)) t)
- (user-error "IIFE not called"))
- (forward-char -1)
- (forward-list)
- (forward-char -1)
- (unless (eq (char-before) ?\()
- (insert ", "))
- (insert global)
- (goto-char beg)
- (while (search-forward-regexp (format "\\_<%s\\_>" global) end t)
- (replace-match short t t)))))))
-
-(defun js2r-inject-global-in-iife ()
- "Create shortcut for marked global by injecting it in the wrapping IIFE"
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (cl-destructuring-bind (beg . end) (js2r--selected-name-positions)
- (deactivate-mark)
- (let ((name (buffer-substring beg end)))
- (js2r-add-global-to-iife name (js2r--read-iife-short-name name))))))
-
-(defun js2r-unwrap-iife ()
- "Unwrap the IIFE at `point'."
- (interactive)
- (save-match-data
- (unless (looking-at js2r--iife-regexp)
- (user-error "`point' is not on an IIFE"))
- (let ((body (save-excursion
- (goto-char (match-end 0))
- (forward-char -1)
- (let ((start (1+ (point))))
- (forward-list)
- (forward-char -1)
- (buffer-substring-no-properties start (point))))))
- (let ((start (point)))
- (forward-list)
- (delete-region start (point))
-
- (when (looking-at "\\(([^)]*)\\)?;$?")
- (delete-region (match-beginning 0) (match-end 0)))
-
- (insert (string-trim body))
- (indent-region start (point))
- (back-to-indentation)))))
-
-(defun js2r-unwrap-iife-in-buffer ()
- "Unwrap the first IIFE in the current buffer.
-See `js2r-wrap-buffer-in-iife'."
- (search-forward-regexp js2r--iife-regexp)
- (js2r-unwrap-iife))
-
-(provide 'js2r-iife)
-;;; js2-iife.el ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2r-iife.elc b/elpa/js2-refactor-20210306.2003/js2r-iife.elc
deleted file mode 100644
index 34e73eb..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-iife.elc
+++ /dev/null
Binary files differ
diff --git a/elpa/js2-refactor-20210306.2003/js2r-paredit.el b/elpa/js2-refactor-20210306.2003/js2r-paredit.el
deleted file mode 100644
index 3907558..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-paredit.el
+++ /dev/null
@@ -1,227 +0,0 @@
-;;; js2r-paredit.el --- Paredit-like extensions for js2-refactor -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2012-2014 Magnar Sveen
-;; Copyright (C) 2015-2016 Magnar Sveen and Nicolas Petton
-
-;; Author: Magnar Sveen <magnars@gmail.com>,
-;; Nicolas Petton <nicolas@petton.fr>
-;; Keywords: conveniences
-
-;; This program 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.
-
-;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(require 'dash)
-
-(require 'js2r-helpers)
-
-(defun js2r--nesting-node-p (node)
- (or (js2-function-node-p node)
- (js2-if-node-p node)
- (js2-for-node-p node)
- (js2-while-node-p node)))
-
-(defun js2r--standalone-node-p (node)
- (or (js2-stmt-node-p node)
- (and (js2-function-node-p node)
- (eq 'FUNCTION_STATEMENT (js2-function-node-form node)))))
-
-(defun js2r-kill ()
- "Kill a line like `kill-line' but tries to respect node boundaries.
-Falls back to `kill-line' if the buffer has parse errors.
-
-if(|foo) {bar();} -> if() {bar();}
-
-function foo() {|2 + 3} -> function foo() {}
-
-// some |comment -> // some
-
-'this is a| string' -> 'this is a'
-"
- (interactive)
- (if js2-parsed-errors
- (progn
- (message "Buffer has parse errors. Killing the line")
- (kill-line))
- (condition-case error
- (js2r--kill-line)
- (progn
- (message "Error occured while trying to kill AST node. Killing the line.")
- (kill-line)))))
-
-(defun js2r--kill-line ()
- "Kill a line, but respecting node boundaries."
- (let ((node (js2r--next-node)))
- (cond
- ((js2-comment-node-p node) (kill-line))
- ((js2-string-node-p node) (js2r--kill-line-in-string))
- (t (js2r--kill-line-in-sexp)))))
-
-(defun js2r--next-node ()
- "Return the node at point, or the node after the point if the
- point is at the exact end of a node."
- (save-excursion
- (when (= (js2-node-abs-end (js2-node-at-point))
- (point))
- (forward-char 1))
- (js2-node-at-point)))
-
-(defun js2r--kill-line-in-sexp ()
- "Kill a line, but only kills until the closest outer sexp on
- the current line, delimited with \")}]\". If no sexp is found
- on the current line, falls back to
- `js2r--kill-line-with-inner-sexp'."
- (condition-case error
- (let* ((beg (point))
- (end (save-excursion
- (up-list)
- (forward-char -1)
- (point))))
- (if (js2-same-line end)
- (kill-region beg end)
- (js2r--kill-line-with-inner-sexp)))
- (scan-error
- (js2r--kill-line-with-inner-sexp))))
-
-(defun js2r--kill-line-with-inner-sexp ()
- "Kill a line, but respecting inner killed sexps, ensuring that
-we kill up to the end to the next inner sexp if it starts in
-the current line.
-
-If the parentheses are unbalanced, fallback to `kill-line' and
-warn the user."
- (condition-case error
- (let* ((beg (point))
- (end (save-excursion
- (forward-visible-line 1)
- (point)))
- (beg-of-sexp (save-excursion
- (js2r--goto-last-sexp-on-line)
- (point)))
- (end-of-sexp (save-excursion
- (goto-char beg-of-sexp)
- (forward-list)
- ;; Kill all remaining semi-colons as well
- (while (looking-at ";")
- (forward-char))
- (point))))
- (if (js2-same-line beg-of-sexp)
- (kill-region beg (max end end-of-sexp))
- (kill-line)))
- (scan-error
- (message "Unbalanced parentheses. Killing the line.")
- (kill-line))))
-
-(defun js2r--goto-last-sexp-on-line ()
- "Move the cursor to the opening of the last sexp on the current
-line, or to the end of the line if no sexp is found."
- (let ((pos (point)))
- (down-list)
- (backward-char 1)
- (forward-list)
- (if (js2-same-line pos)
- (js2r--goto-last-sexp-on-line)
- (backward-list))))
-
-(defun js2r--kill-line-in-string ()
- "Kill a line in a string node, respecting the node boundaries.
-When at the beginning of the node, kill from outside of it."
- (let* ((node (js2-node-at-point))
- (beg (point))
- (node-start (js2-node-abs-pos node))
- (node-end (js2-node-abs-end node)))
- (if (= beg node-start)
- (js2r--kill-line-in-sexp)
- (kill-region beg (1- node-end)))))
-
-(defun js2r-forward-slurp (&optional arg)
- "Add the expression following the current function into it.
-
-The addition is performed by moving the closing brace of the
-function down.
-
-When called with a prefix argument ARG, slurp ARG expressions
-following the current function."
- (interactive "p")
- (js2r--guard)
- (js2r--wait-for-parse
- (let* ((nesting (js2r--closest 'js2r--nesting-node-p))
- (standalone (if (js2r--standalone-node-p nesting)
- nesting
- (js2-node-parent-stmt nesting)))
- (next-sibling (js2-node-next-sibling standalone))
- (beg (js2-node-abs-pos next-sibling))
- (last-sibling (if (wholenump arg)
- (let ((num arg)
- (iter-sibling next-sibling))
- (while (> num 1) ;; Do next-sibling arg nbr of times
- (setq iter-sibling (js2-node-next-sibling iter-sibling))
- (setq num (1- num)))
- iter-sibling)
- next-sibling)) ;; No optional arg. Just use next-sibling
- (end (js2-node-abs-end last-sibling))
- (text (buffer-substring beg end)))
- (save-excursion
- (delete-region beg end)
- ;; Delete newline character if the deleted AST node was at the end of the line
- (goto-char beg)
- (when (and (eolp)
- (not (eobp)))
- (delete-char 1))
- (goto-char (js2-node-abs-end nesting))
- (forward-char -1)
- (when (looking-back "{ *")
- (newline))
- (setq beg (point))
- (insert text)
- (when (looking-at " *}")
- (newline))
- (setq end (point))
- (indent-region beg end)))))
-
-(defun js2r-forward-barf (&optional arg)
- (interactive "p")
- (js2r--guard)
- (js2r--wait-for-parse
- (let* ((nesting (js2r--closest 'js2r--nesting-node-p))
- (standalone (if (js2r--standalone-node-p nesting)
- nesting
- (js2-node-parent-stmt nesting)))
- (standalone-end (js2-node-abs-end standalone))
- (last-child (car (last (if (js2-if-node-p nesting)
- (js2-scope-kids (js2r--closest 'js2-scope-p))
- (js2r--node-kids nesting)))))
- (first-barf-child (if (wholenump arg)
- (let ((num arg)
- (iter-child last-child))
- (while (> num 1) ;; Do prev-sibling arg nbr of times
- (setq iter-child (js2-node-prev-sibling iter-child))
- (setq num (1- num)))
- iter-child)
- last-child)) ; No optional arg. Just use last-child
- (last-child-beg (save-excursion
- (goto-char (js2-node-abs-pos first-barf-child))
- (skip-syntax-backward " ")
- (while (looking-back "\n") (backward-char))
- (point)))
- (last-child-end (js2-node-abs-end last-child))
- (text (buffer-substring last-child-beg last-child-end)))
- (save-excursion
- (js2r--execute-changes
- (list
- (list :beg last-child-beg :end last-child-end :contents "")
- (list :beg standalone-end :end standalone-end :contents text)))))))
-
-(provide 'js2r-paredit)
-;;; js2r-paredit.el ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2r-paredit.elc b/elpa/js2-refactor-20210306.2003/js2r-paredit.elc
deleted file mode 100644
index 274f36a..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-paredit.elc
+++ /dev/null
Binary files differ
diff --git a/elpa/js2-refactor-20210306.2003/js2r-vars.el b/elpa/js2-refactor-20210306.2003/js2r-vars.el
deleted file mode 100644
index fc27eae..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-vars.el
+++ /dev/null
@@ -1,376 +0,0 @@
-;;; js2r-vars.el --- Variable declaration manipulation functions for js2-refactor -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2012-2014 Magnar Sveen
-;; Copyright (C) 2015-2016 Magnar Sveen and Nicolas Petton
-
-;; Author: Magnar Sveen <magnars@gmail.com>,
-;; Nicolas Petton <nicolas@petton.fr>
-;; Keywords: conveniences
-
-;; This program 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.
-
-;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(require 'multiple-cursors-core)
-(require 'dash)
-
-(require 'js2r-helpers)
-
-;; Helpers
-
-(defun js2r--name-node-at-point (&optional pos)
- (setq pos (or pos (point)))
- (let ((current-node (js2-node-at-point pos)))
- (unless (js2-name-node-p current-node)
- (setq current-node (js2-node-at-point (- (point) 1))))
- (if (not (and current-node (js2-name-node-p current-node)))
- (error "Point is not on an identifier.")
- current-node)))
-
-(defun js2r--local-name-node-at-point (&optional pos)
- (setq pos (or pos (point)))
- (let ((current-node (js2r--name-node-at-point pos)))
- (unless (js2r--local-name-node-p current-node)
- (error "Point is not on a local identifier"))
- current-node))
-
-(defun js2r--local-name-node-p (node)
- (let ((parent (js2-node-parent node)))
- (and parent (js2-name-node-p node)
- ;; is not foo in { foo: 1 }
- (not (and (js2-object-prop-node-p parent)
- (eq node (js2-object-prop-node-left parent))
- ;; could be { foo } though, in which case the node
- ;; is parent's both left and right.
- (not (eq node (js2-object-prop-node-right parent)))))
- ;; is not foo in x.foo
- (not (and (js2-prop-get-node-p parent)
- (eq node (js2-prop-get-node-right parent))))
- ;; is not foo in import { foo as bar } from ...
- ;; could be bar, though.
- (not (and (js2-export-binding-node-p parent)
- (eq node (js2-export-binding-node-extern-name parent))
- (not (eq node (js2-export-binding-node-local-name parent))))))))
-
-(defun js2r--name-node-defining-scope (name-node)
- (unless (js2r--local-name-node-p name-node)
- (error "Node is not on a local identifier"))
- (js2-get-defining-scope
- (js2-node-get-enclosing-scope name-node)
- (js2-name-node-name name-node)))
-
-(defun js2r--local-usages-of-name-node (name-node)
- (unless (js2r--local-name-node-p name-node)
- (error "Node is not on a local identifier"))
- (let* ((name (js2-name-node-name name-node))
- (scope (js2r--name-node-defining-scope name-node))
- (result nil))
- (js2-visit-ast
- scope
- (lambda (node end-p)
- (when (and (not end-p)
- (js2r--local-name-node-p node)
- (string= name (js2-name-node-name node))
- (eq scope (js2r--name-node-defining-scope node)))
- (add-to-list 'result node))
- t))
- result))
-
-(defun js2r--local-var-positions (name-node)
- (-map 'js2-node-abs-pos (js2r--local-usages-of-name-node name-node)))
-
-(defun js2r--var-defining-node (var-node)
- (unless (js2r--local-name-node-p var-node)
- (error "Node is not on a local identifier"))
- (let* ((name (js2-name-node-name var-node))
- (scope (js2r--name-node-defining-scope var-node)))
- (js2-symbol-ast-node
- (js2-scope-get-symbol scope name))))
-
-
-;; Add to jslint globals annotation
-
-(defun current-line-contents ()
- "Find the contents of the current line, minus indentation."
- (buffer-substring (save-excursion (back-to-indentation) (point))
- (save-excursion (end-of-line) (point))))
-
-(require 'thingatpt)
-
-(defun js2r-add-to-globals-annotation ()
- (interactive)
- (let ((var (thing-at-point 'symbol)))
- (save-excursion
- (beginning-of-buffer)
- (when (not (string-match "^/\\* *global " (current-line-contents)))
- (newline)
- (forward-line -1)
- (insert "/* global */")
- (newline)
- (forward-line -1))
- (while (not (string-match "*/" (current-line-contents)))
- (forward-line))
- (end-of-line)
- (delete-char -2)
- (unless (looking-back "global ")
- (while (looking-back " ")
- (delete-char -1))
- (insert ", "))
- (insert (concat var " */")))))
-
-
-;; Rename variable
-
-;;;###autoload
-(defun js2r-rename-var ()
- "Renames the variable on point and all occurrences in its lexical scope."
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (let* ((current-node (js2r--local-name-node-at-point))
- (len (js2-node-len current-node))
- (current-start (js2-node-abs-pos current-node))
- (current-end (+ current-start len))
- (delta (- (point) current-start)))
- (save-excursion
- (mapc (lambda (beg)
- (when (not (= beg current-start))
- (goto-char (+ beg delta))
- (set-mark (+ beg len))
- (mc/create-fake-cursor-at-point)))
- (js2r--local-var-positions current-node)))
- (push-mark current-end)
- (activate-mark))
- (mc/maybe-multiple-cursors-mode)))
-
-(add-to-list 'mc--default-cmds-to-run-once 'js2r-rename-var)
-
-;; Change local variable to use this. instead
-
-(defun js2r-var-to-this ()
- "Changes the variable on point to use this.var instead."
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (save-excursion
- (let ((node (js2-node-at-point)))
- (when (js2-var-decl-node-p node)
- (let ((kids (js2-var-decl-node-kids node)))
- (when (cdr kids)
- (error "Currently does not support converting multivar statements."))
- (goto-char (js2-node-abs-pos (car kids))))))
- (--each (js2r--local-var-positions (js2r--local-name-node-at-point))
- (goto-char it)
- (cond ((looking-back "var ") (delete-char -4))
- ((looking-back "let ") (delete-char -4))
- ((looking-back "const ") (delete-char -6)))
- (insert "this.")))))
-
-;; Inline var
-
-(defun js2r-inline-var ()
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (save-excursion
- (let* ((current-node (js2r--local-name-node-at-point))
- (definer (js2r--var-defining-node current-node))
- (definer-start (js2-node-abs-pos definer))
- (var-init (js2-node-parent definer))
- (initializer (js2-var-init-node-initializer
- var-init)))
- (unless initializer
- (error "Var is not initialized when defined."))
- (let* ((var-len (js2-node-len current-node))
- (init-beg (js2-node-abs-pos initializer))
- (init-end (+ init-beg (js2-node-len initializer)))
- (var-init-beg (copy-marker (js2-node-abs-pos var-init)))
- (var-init-end (copy-marker (+ var-init-beg (js2-node-len var-init))))
- (contents (buffer-substring init-beg init-end)))
- (mapc (lambda (beg)
- (when (not (= beg definer-start))
- (goto-char beg)
- (delete-char var-len)
- (insert contents)))
- (js2r--local-var-positions current-node))
- (js2r--delete-var-init var-init-beg var-init-end))))))
-
-
-(defun js2r--was-single-var ()
- (save-excursion
- (goto-char (point-at-bol))
- (or (looking-at "^[[:space:]]*\\(var\\|const\\|let\\)[[:space:]]?;?$")
- (looking-at "^[[:space:]]*,[[:space:]]*$"))))
-
-(defun js2r--was-starting-var ()
- (or (looking-back "var ")
- (looking-back "const ")
- (looking-back "let ")))
-
-(defun js2r--was-ending-var ()
- (looking-at ";"))
-
-(defun js2r--delete-var-init (beg end)
- (goto-char beg)
- (delete-char (- end beg))
- (cond
- ((js2r--was-single-var)
- (delete-region (point-at-bol) (point-at-eol))
- (delete-blank-lines))
-
- ((js2r--was-starting-var)
- (delete-char 1)
- (if (looking-at " ")
- (delete-char 1)
- (join-line -1)))
-
- ((js2r--was-ending-var)
- (if (looking-back ", ")
- (delete-char -1)
- (join-line)
- (delete-char 1))
- (delete-char -1))
-
- (t (delete-char 2))))
-
-;; two cases
-;; - it's the only var -> remove the line
-;; - there are several vars -> remove the node then clean up commas
-
-
-;; Extract variable
-
-(defun js2r--start-of-parent-stmt ()
- (js2-node-abs-pos (js2r--closest-stmt-node)))
-
-(defun js2r--object-literal-key-behind (pos)
- (save-excursion
- (goto-char pos)
- (when (looking-back "\\sw: ?")
- (backward-char 2)
- (js2-name-node-name (js2r--name-node-at-point)))))
-
-(defun js2r--line-above-is-blank ()
- (save-excursion
- (forward-line -1)
- (string= "" (current-line-contents))))
-
-;;;###autoload
-(defun js2r-extract-var ()
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (let ((keyword (if js2r-prefer-let-over-var "let" "var")))
- (if (use-region-p)
- (js2r--extract-var-between (region-beginning) (region-end) keyword)
- (let ((node (js2r--closest-extractable-node)))
- (js2r--extract-var-between (js2-node-abs-pos node)
- (js2-node-abs-end node) keyword))))))
-
-;;;###autoload
-(defun js2r-extract-let ()
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (if (use-region-p)
- (js2r--extract-var-between (region-beginning) (region-end) "let")
- (let ((node (js2r--closest-extractable-node)))
- (js2r--extract-var-between (js2-node-abs-pos node)
- (js2-node-abs-end node) "let")))))
-
-;;;###autoload
-(defun js2r-extract-const ()
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (if (use-region-p)
- (js2r--extract-var-between (region-beginning) (region-end) "const")
- (let ((node (js2r--closest-extractable-node)))
- (js2r--extract-var-between (js2-node-abs-pos node)
- (js2-node-abs-end node) "const")))))
-
-(add-to-list 'mc--default-cmds-to-run-once 'js2r-extract-var)
-(add-to-list 'mc--default-cmds-to-run-once 'js2r-extract-let)
-(add-to-list 'mc--default-cmds-to-run-once 'js2r-extract-const)
-
-(defun js2r--extract-var-between (beg end keyword)
- (interactive "r")
- (unless (js2r--single-complete-expression-between-p beg end)
- (error "Can only extract single, complete expressions to var"))
-
- (let ((deactivate-mark nil)
- (expression (buffer-substring beg end))
- (orig-var-end (make-marker))
- (new-var-end (make-marker))
- (name (or (js2r--object-literal-key-behind beg) "name")))
-
- (delete-region beg end)
- (insert name)
- (set-marker orig-var-end (point))
-
- (goto-char (js2r--start-of-parent-stmt))
- (js2r--insert-var name keyword)
- (set-marker new-var-end (point))
- (insert " = " expression ";")
- (when (or (js2r--line-above-is-blank)
- (string-match-p "^function " expression))
- (newline))
- (newline)
- (indent-region new-var-end orig-var-end)
- (save-excursion
- (goto-char new-var-end)
- (set-mark (- (point) (length name)))
- (mc/create-fake-cursor-at-point))
- (goto-char orig-var-end)
- (set-mark (- (point) (length name)))
- (set-marker orig-var-end nil)
- (set-marker new-var-end nil))
- (mc/maybe-multiple-cursors-mode))
-
-(defun js2r--insert-var (name keyword)
- "Insert a var definition for NAME."
- (insert (format "%s %s" keyword name)))
-
-(defun js2r-split-var-declaration ()
- "Split a variable declaration into separate variable
-declarations for each declared variable."
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (save-excursion
- (let* ((declaration (or (js2r--closest #'js2-var-decl-node-p) (error "No var declaration at point.")))
- (kids (js2-var-decl-node-kids declaration))
- (stmt (js2-node-parent-stmt declaration))
- (tt (js2-var-decl-node-decl-type declaration))
- (keyword (cond
- ((= tt js2-VAR) "var")
- ((= tt js2-LET) "let")
- ((= tt js2-CONST) "const"))))
- (goto-char (js2-node-abs-end stmt))
- (mapc (lambda (kid)
- (js2r--insert-var (js2-node-string kid) keyword)
- (insert ";")
- (newline)
- (if (save-excursion
- (goto-char (js2-node-abs-end kid))
- (looking-at ", *\n *\n"))
- (newline)))
- kids)
- (delete-char -1) ;; delete final newline
- (let ((end (point)))
- (js2r--goto-and-delete-node stmt)
- (indent-region (point) end))))))
-
-(provide 'js2r-vars)
-;;; js2-vars.el ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2r-vars.elc b/elpa/js2-refactor-20210306.2003/js2r-vars.elc
deleted file mode 100644
index 4e8cd3d..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-vars.elc
+++ /dev/null
Binary files differ
diff --git a/elpa/js2-refactor-20210306.2003/js2r-wrapping.el b/elpa/js2-refactor-20210306.2003/js2r-wrapping.el
deleted file mode 100644
index 9e43780..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-wrapping.el
+++ /dev/null
@@ -1,76 +0,0 @@
-;;; js2r-wrapping.el --- Helper functions for wrapping/unwrapping -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2017 Nicolas Petton
-
-;; Author: Nicolas Petton
-
-;; This program 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.
-
-;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;;
-
-;;; Code:
-
-(require 'yasnippet)
-
-(require 'js2r-helpers)
-
-(defvar js2r--space-str " \t\n")
-
-(defun js2r--skip-region-whitespace ()
- (let ((p-first (< (point) (mark))))
- (unless p-first
- (exchange-point-and-mark))
- (skip-chars-forward js2r--space-str)
- (exchange-point-and-mark)
- (skip-chars-backward js2r--space-str)
- (when p-first
- (exchange-point-and-mark))))
-
-(defun js2r-unwrap ()
- (interactive)
- (js2r--guard)
- (js2r--wait-for-parse
- (let (beg end)
- (if (use-region-p)
- (progn
- (js2r--skip-region-whitespace)
- (setq beg (min (point) (mark)))
- (setq end (max (point) (mark))))
- (let ((stmt (js2-node-parent-stmt (js2-node-at-point))))
- (setq beg (js2-node-abs-pos stmt))
- (setq end (js2-node-abs-end stmt))))
- (let* ((ancestor (js2-node-parent-stmt
- (js2r--first-common-ancestor-in-region beg end)))
- (abeg (js2-node-abs-pos ancestor))
- (aend (js2-node-abs-end ancestor)))
- (save-excursion
- (goto-char end)
- (delete-char (- aend end))
- (goto-char abeg)
- (delete-char (- beg abeg)))
- (indent-region (point-min) (point-max))))))
-
-(defun js2r-wrap-in-for-loop (beg end)
- (interactive "r")
- (js2r--skip-region-whitespace)
- (setq beg (min (point) (mark)))
- (setq end (max (point) (mark)))
- (let ((yas-wrap-around-region t))
- (yas-expand-snippet "for (var i = 0, l = ${1:length}; i < l; i++) {\n$0\n}"
- beg end)))
-
-(provide 'js2r-wrapping)
-;;; js2r-wrapping.el ends here
diff --git a/elpa/js2-refactor-20210306.2003/js2r-wrapping.elc b/elpa/js2-refactor-20210306.2003/js2r-wrapping.elc
deleted file mode 100644
index de558ca..0000000
--- a/elpa/js2-refactor-20210306.2003/js2r-wrapping.elc
+++ /dev/null
Binary files differ