diff options
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/lsp-ui-20180913.833/lsp-ui.el')
-rw-r--r-- | configs/shared/emacs/.emacs.d/elpa/lsp-ui-20180913.833/lsp-ui.el | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/lsp-ui-20180913.833/lsp-ui.el b/configs/shared/emacs/.emacs.d/elpa/lsp-ui-20180913.833/lsp-ui.el deleted file mode 100644 index 355fcf8df3cc..000000000000 --- a/configs/shared/emacs/.emacs.d/elpa/lsp-ui-20180913.833/lsp-ui.el +++ /dev/null @@ -1,165 +0,0 @@ -;;; lsp-ui.el --- UI modules for lsp-mode -*- lexical-binding: t; -*- - -;; Copyright (C) 2017 Tobias Pisani - -;; Author: Tobias Pisani <topisani@hamsterpoison.com> -;; Keywords: lsp -;; URL: https://github.com/emacs-lsp/lsp-ui -;; Package-Requires: ((emacs "25.1") (dash "2.14") (dash-functional "1.2.0") (flycheck "31") (lsp-mode "4.2") (markdown-mode "2.3")) -;; Version: 0.0.1 - -;; 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: - -;; lsp-ui contains a series of useful UI integrations for lsp-mode, like -;; flycheck support and code lenses. - -;;; Code: - -(defgroup lsp-ui nil - "‘lsp-ui’ contains a series of useful UI integrations for ‘lsp-mode’." - :group 'tools - :group 'convenience - :link '(custom-manual "(lsp-ui) Top") - :link '(info-link "(lsp-ui) Customizing")) - -(require 'lsp-ui-sideline) -(require 'lsp-ui-peek) -(require 'lsp-ui-flycheck) -(require 'lsp-ui-imenu) -(require 'lsp-ui-doc) - -(defun lsp-ui-peek--render (major string) - (with-temp-buffer - (insert string) - (delay-mode-hooks - (let ((inhibit-message t)) - (funcall major)) - (ignore-errors - (font-lock-ensure))) - (buffer-string)) - ) - - -(defun lsp-ui--workspace-path (path) - "Return the PATH relative to the workspace. -If the PATH is not in the workspace, it returns the original PATH." - (let* ((path (file-truename path)) - (root (lsp--workspace-root lsp--cur-workspace)) - (in-workspace (string-prefix-p root path))) - (if in-workspace - (substring path (length root)) - path))) - -(defun lsp-ui--toggle (enable) - (dolist (feature '(lsp-ui-flycheck lsp-ui-peek lsp-ui-sideline lsp-ui-doc lsp-ui-imenu)) - (let* ((sym (intern-soft (concat (symbol-name feature) "-enable"))) - (value (symbol-value sym)) - (fn (symbol-function sym))) - (when (and (or value (not enable)) - (functionp fn)) - (funcall fn enable))))) - -(defvar lsp-ui-mode-map (make-sparse-keymap)) - -;;;###autoload -(define-minor-mode lsp-ui-mode - "Toggle language server UI mode on or off. -‘lsp-ui-mode’ is a minor mode that contains a series of useful UI -integrations for ‘lsp-mode’. With a prefix argument ARG, enable -language server UI mode if ARG is positive, and disable it -otherwise. If called from Lisp, enable the mode if ARG is -omitted or nil, and toggle it if ARG is ‘toggle’." - :init-value nil - :group lsp-ui - :keymap lsp-ui-mode-map - (lsp-ui--toggle lsp-ui-mode)) - -;; The request is delegated to xref-backend-apropos defined in lsp-mode. -;; xref-find-apropos does similar job but is less appealing because it splits and -;; regex quotes the pattern. The language server likely knows more about how -;; to do fuzzy matching. -(defun lsp-ui-find-workspace-symbol (pattern) - "List project-wide symbols matching the query string PATTERN." - (interactive (list (read-string - "workspace/symbol: " - nil 'xref--read-pattern-history))) - (xref--find-xrefs pattern 'apropos pattern nil)) - -(defun lsp-ui--location< (x y) - "Compares two triples X and Y. -Both should have the form (FILENAME LINE COLUMN)." - (if (not (string= (car x) (car y))) - (string< (car x) (car y)) - (if (not (= (cadr x) (cadr y))) - (< (cadr x) (cadr y)) - (< (caddr x) (caddr y))))) - -(defun lsp-ui--reference-triples (filter-fn) - "Return references as a list of (FILENAME LINE COLUMN) triples." - (let ((refs (lsp--send-request (lsp--make-request - "textDocument/references" - (lsp--make-reference-params))))) - (sort - (mapcar - (lambda (ref) - (-let* (((&hash "uri" uri "range" range) ref) - ((&hash "line" line "character" col) (gethash "start" range))) - (list (lsp--uri-to-path uri) line col))) - (if filter-fn (--filter (funcall filter-fn it) refs) refs)) - #'lsp-ui--location<))) - -;; TODO Make it efficient -(defun lsp-ui-find-next-reference (&optional filter-fn) - "Find next reference of the symbol at point." - (interactive) - (let* ((cur (list buffer-file-name (lsp--cur-line) (lsp--cur-column))) - (refs (lsp-ui--reference-triples filter-fn)) - (idx -1) - (res (-first (lambda (ref) (cl-incf idx) (lsp-ui--location< cur ref)) refs))) - (if res - (progn - (find-file (car res)) - (goto-char 1) - (forward-line (cadr res)) - (forward-char (caddr res)) - (cons idx (length refs))) - (cons 0 0)))) - -;; TODO Make it efficient -(defun lsp-ui-find-prev-reference (&optional filter-fn) - "Find previous reference of the symbol at point." - (interactive) - (let* ((cur (list buffer-file-name (lsp--cur-line) (lsp--cur-column))) - (refs (lsp-ui--reference-triples filter-fn)) - (idx -1) - (res (-last (lambda (ref) (and (lsp-ui--location< ref cur) (cl-incf idx))) refs))) - (if res - (progn - (find-file (car res)) - (goto-char 1) - (forward-line (cadr res)) - (forward-char (caddr res)) - (cons idx (length refs))) - (cons 0 0)))) - - -(provide 'lsp-ui) -;;; lsp-ui.el ends here |