diff options
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/evil-text-objects-javascript-20180330.1320/evil-text-objects-javascript.el')
-rw-r--r-- | configs/shared/emacs/.emacs.d/elpa/evil-text-objects-javascript-20180330.1320/evil-text-objects-javascript.el | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/evil-text-objects-javascript-20180330.1320/evil-text-objects-javascript.el b/configs/shared/emacs/.emacs.d/elpa/evil-text-objects-javascript-20180330.1320/evil-text-objects-javascript.el deleted file mode 100644 index f40bd7bec85d..000000000000 --- a/configs/shared/emacs/.emacs.d/elpa/evil-text-objects-javascript-20180330.1320/evil-text-objects-javascript.el +++ /dev/null @@ -1,163 +0,0 @@ -;;; evil-text-objects-javascript.el --- Text objects for Javascript source code - -;; Version: 1.0.0 -;; Package-Version: 20180330.1320 - -;;; License: - -;; Copyright (C) 2018 Off Market Data, Inc. DBA Urbint -;; Permission is hereby granted, free of charge, to any person obtaining a copy -;; of this software and associated documentation files (the "Software"), to -;; deal in the Software without restriction, including without limitation the -;; rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -;; sell copies of the Software, and to permit persons to whom the Software is -;; furnished to do so, subject to the following conditions: -;; -;; The above copyright notice and this permission notice shall be included in -;; all copies or substantial portions of the Software. -;; -;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -;; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -;; IN THE SOFTWARE. - -;;; Commentary: - -;; evil-text-objects-javascript provides text-object definitions that -;; should make working with Javascript in Emacs more enjoyable. -;; -;; Currently supporting: -;; - functions -;; -;; See the README.md for installation instructions. - -(require 'evil) -(require 'bind-key) - -;;; Code: - -;; functions -(evil-define-text-object - evil-inner-javascript-function (count &optional beg end type) - "Inner text object for all Javascript functions." - (call-interactively #'mark-defun) - (narrow-to-region (region-beginning) (region-end)) - (goto-char (point-min)) - (let* ((beg (save-excursion - (search-forward "(") - (backward-char) - (evil-jump-item) - (search-forward-regexp "[({]") - (point))) - (end (save-excursion - (goto-char beg) - (evil-jump-item) - (point)))) - (evil-range beg end type))) - -(evil-define-text-object - evil-outer-javascript-function (count &optional beg end type) - "Outer text object for all Javascript functions." - (call-interactively #'mark-defun) - (narrow-to-region (region-beginning) (region-end)) - (goto-char (point-min)) - (let* ((beg (save-excursion - (when (looking-at "[[:space:]]") - (evil-forward-word-begin)) - (point))) - (end (save-excursion - (goto-char beg) - (search-forward "(") - (backward-char) - (evil-jump-item) - (search-forward-regexp "[({]") - (evil-jump-item) - (forward-char) - (point)))) - (evil-range beg end type))) - -;; comments -(evil-define-text-object - evil-outer-javascript-single-line-comment (count &optional beg end type) - "Outer text object for a single-line Javascript comment." - (let ((beg (save-excursion - (re-search-backward "\/\/[[:space:]]*" (line-beginning-position)) - (when (looking-at "/") (point)))) - (end (save-excursion - (end-of-line) - (point)))) - (evil-range beg end type))) - -(evil-define-text-object - evil-inner-javascript-single-line-comment (count &optional beg end type) - "Inner text object for a single-line Javascript comment." - (let ((beg (save-excursion - (re-search-backward "\/\/[[:space:]]*" (line-beginning-position)) - (when (looking-at "/") - (progn - (evil-forward-char 2) - (point))))) - (end (save-excursion - (end-of-line) - (point)))) - (evil-range beg end type))) - -(defun etojs--beg-multi-line-comment () - "Navigate to the beginning of a multi-line Javascript comment." - (re-search-backward "\/\\*\\*?")) - -(defun etojs--end-multi-line-comment () - "Navigate to the end of a multi-line Javascript comment." - (re-search-forward "\*/")) - -(evil-define-text-object - evil-outer-javascript-multi-line-comment (count &optional beg end type) - "Outer text object for a multi-line Javascript comment." - (let ((end (save-excursion - (etojs--end-multi-line-comment) - (point))) - (beg (save-excursion - (etojs--beg-multi-line-comment) - (point)))) - (evil-range beg end type))) - -(evil-define-text-object - evil-inner-javascript-multi-line-comment (count &optional beg end type) - (let ((end (save-excursion - (etojs--end-multi-line-comment) - (forward-char -4) - (point))) - (beg (save-excursion - (etojs--beg-multi-line-comment) - (evil-next-line) - (evil-first-non-blank) - (forward-char 2) - (point)))) - (evil-range beg end type))) - -;; Installation Helper -(defun evil-text-objects-javascript/install () - "Register keybindings for the text objects defined herein. It is -recommended to run this after something like `rjsx-mode-hook'. See -README.md for additional information." - (bind-keys :map evil-operator-state-local-map - ("af" . evil-outer-javascript-function) - ("if" . evil-inner-javascript-function) - ("ac" . evil-outer-javascript-single-line-comment) - ("ic" . evil-inner-javascript-single-line-comment) - ("aC" . evil-outer-javascript-multi-line-comment) - ("iC" . evil-inner-javascript-multi-line-comment)) - (bind-keys :map evil-visual-state-local-map - ("af" . evil-outer-javascript-function) - ("if" . evil-inner-javascript-function) - ("ac" . evil-outer-javascript-single-line-comment) - ("ic" . evil-inner-javascript-single-line-comment) - ("aC" . evil-outer-javascript-multi-line-comment) - ("iC" . evil-inner-javascript-multi-line-comment))) - -(provide 'evil-text-objects-javascript) - -;;; evil-text-objects-javascript.el ends here |