Skip to content

Commit

Permalink
Don't abuse `ivy-configure' + display-transformer
Browse files Browse the repository at this point in the history
  • Loading branch information
nbfalcon committed Nov 6, 2020
1 parent e3c675b commit 75ae6c8
Showing 1 changed file with 7 additions and 15 deletions.
22 changes: 7 additions & 15 deletions lsp-ivy.el
Original file line number Diff line number Diff line change
Expand Up @@ -118,13 +118,7 @@
(cons string face)
(cons string face)))

(eval-when-compile
(lsp-interface
(lsp-ivy:FormattedSymbolInformation
(:kind :name :location :textualRepresentation)
(:containerName :deprecated))))

(lsp-defun lsp-ivy--workspace-symbol-action
(lsp-defun lsp-ivy--goto-symbol
((&SymbolInformation
:location (&Location :uri :range (&Range :start (&Position :line :character)))))
"Jump to selected candidate."
Expand All @@ -134,7 +128,7 @@
(forward-char character))

(lsp-defun lsp-ivy--format-symbol-match
((&SymbolInformation :name :kind :container-name? :location (&Location :uri))
((&SymbolInformation :name :kind :container-name? :deprecated? :location (&Location :uri))
project-root)
"Convert the match returned by `lsp-mode` into a candidate string."
(let* ((sanitized-kind (if (< kind (length lsp-ivy-symbol-kind-to-face)) kind 0))
Expand All @@ -157,8 +151,11 @@ FILTER-REGEXPS?, otherwise convert it to an `lsp-ivy:FormattedSymbolInformation'
(let ((textual-representation
(lsp-ivy--format-symbol-match symbol-information workspace-root)))
(when (--all? (string-match-p it textual-representation) filter-regexps?)
(lsp-put symbol-information :textualRepresentation textual-representation)
symbol-information))))
(cons textual-representation symbol-information)))))

(lsp-defun lsp-ivy--workspace-symbol-action ((_ . sym))
"Jump to the `cdr' of INPUT0, an `&SymbolInformation'."
(lsp-ivy--goto-symbol sym))

(defun lsp-ivy--workspace-symbol (workspaces prompt initial-input)
"Search against WORKSPACES with PROMPT and INITIAL-INPUT."
Expand Down Expand Up @@ -198,11 +195,6 @@ FILTER-REGEXPS?, otherwise convert it to an `lsp-ivy:FormattedSymbolInformation'
:action #'lsp-ivy--workspace-symbol-action
:caller 'lsp-ivy-workspace-symbol)))

(ivy-configure 'lsp-ivy-workspace-symbol
:display-transformer-fn
(-lambda ((&lsp-ivy:FormattedSymbolInformation :textual-representation))
textual-representation))

;;;###autoload
(defun lsp-ivy-workspace-symbol (arg)
"`ivy' for lsp workspace/symbol.
Expand Down

0 comments on commit 75ae6c8

Please sign in to comment.