Skip to content

Commit 9b9f1a7

Browse files
authored
[lsp-ui-sideline] Make the dependency on flycheck optional (#207)
Fix #206
1 parent aa9a59c commit 9b9f1a7

File tree

1 file changed

+28
-27
lines changed

1 file changed

+28
-27
lines changed

lsp-ui-sideline.el

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
;;; Code:
3131

3232
(require 'lsp-mode)
33-
(require 'flycheck)
33+
(require 'flycheck nil 'noerror)
3434
(require 'dash)
3535

3636
(defgroup lsp-ui-sideline nil
@@ -61,8 +61,8 @@
6161
:type 'boolean
6262
:group 'lsp-ui-sideline)
6363

64-
(defcustom lsp-ui-sideline-show-flycheck t
65-
"Whether to show flycheck messages in sideline."
64+
(defcustom lsp-ui-sideline-show-diagnostics t
65+
"Whether to show diagnostics messages in sideline."
6666
:type 'boolean
6767
:group 'lsp-ui-sideline)
6868

@@ -299,28 +299,29 @@ CURRENT is non-nil when the point is on the symbol."
299299
(when (overlay-get ov 'current)
300300
(lsp-ui-sideline--toggle-current ov nil))))))
301301

302-
(defun lsp-ui-sideline--flycheck ()
303-
"Show flycheck message(s)."
302+
(defun lsp-ui-sideline--diagnostics ()
303+
"Show diagnostics on the current line."
304304
(let ((bol (line-beginning-position))
305305
(eol (line-end-position)))
306-
(dolist (e (flycheck-overlay-errors-in bol (1+ eol)))
307-
(let* ((message (--> (flycheck-error-format-message-and-id e)
308-
(car (split-string it "\n"))
309-
(replace-regexp-in-string "[\n\t ]+" " " it)))
310-
(len (length message))
311-
(level (flycheck-error-level e))
312-
(face (if (eq level 'info) 'success level))
313-
(margin (lsp-ui-sideline--margin-width))
314-
(message (progn (add-face-text-property 0 len 'lsp-ui-sideline-global nil message)
315-
(add-face-text-property 0 len face nil message)
316-
message))
317-
(string (concat (propertize " " 'display `(space :align-to (- right-fringe ,(lsp-ui-sideline--align len margin))))
318-
message))
319-
(pos-ov (lsp-ui-sideline--find-line len t))
320-
(ov (and pos-ov (make-overlay pos-ov pos-ov))))
321-
(when pos-ov
322-
(overlay-put ov 'after-string string)
323-
(push ov lsp-ui-sideline--ovs))))))
306+
(when (bound-and-true-p 'flycheck-mode)
307+
(dolist (e (flycheck-overlay-errors-in bol (1+ eol)))
308+
(let* ((message (--> (flycheck-error-format-message-and-id e)
309+
(car (split-string it "\n"))
310+
(replace-regexp-in-string "[\n\t ]+" " " it)))
311+
(len (length message))
312+
(level (flycheck-error-level e))
313+
(face (if (eq level 'info) 'success level))
314+
(margin (lsp-ui-sideline--margin-width))
315+
(message (progn (add-face-text-property 0 len 'lsp-ui-sideline-global nil message)
316+
(add-face-text-property 0 len face nil message)
317+
message))
318+
(string (concat (propertize " " 'display `(space :align-to (- right-fringe ,(lsp-ui-sideline--align len margin))))
319+
message))
320+
(pos-ov (lsp-ui-sideline--find-line len t))
321+
(ov (and pos-ov (make-overlay pos-ov pos-ov))))
322+
(when pos-ov
323+
(overlay-put ov 'after-string string)
324+
(push ov lsp-ui-sideline--ovs)))))))
324325

325326
(defvar-local lsp-ui-sideline--code-actions nil)
326327

@@ -384,8 +385,8 @@ to the language server."
384385
(setq lsp-ui-sideline--occupied-lines nil
385386
lsp-ui-sideline--tag tag
386387
lsp-ui-sideline--last-width (window-text-width))
387-
(when lsp-ui-sideline-show-flycheck
388-
(lsp-ui-sideline--flycheck))
388+
(when lsp-ui-sideline-show-diagnostics
389+
(lsp-ui-sideline--diagnostics))
389390
(when (and lsp-ui-sideline-show-code-actions (or (lsp--capability "codeActionProvider")
390391
(lsp--registered-capability "textDocument/codeAction")))
391392
(lsp--send-request-async (lsp--make-request
@@ -480,15 +481,15 @@ This does not toggle display of flycheck diagnostics or code actions."
480481
(add-hook 'post-command-hook 'lsp-ui-sideline nil t)
481482
(advice-add 'company-pseudo-tooltip-frontend :before 'lsp-ui-sideline--hide-before-company)
482483
(add-hook 'lsp-after-diagnostics-hook 'lsp-ui-sideline--diagnostics-changed nil t)
483-
(when lsp-ui-sideline-show-flycheck
484+
(when lsp-ui-sideline-show-diagnostics
484485
(setq-local flycheck-display-errors-function nil)))
485486
(t
486487
(setq lsp-ui-sideline--tag nil)
487488
(advice-remove 'company-pseudo-tooltip-frontend 'lsp-ui-sideline--hide-before-company)
488489
(lsp-ui-sideline--delete-ov)
489490
(remove-hook 'lsp-after-diagnostics-hook 'lsp-ui-sideline--diagnostics-changed)
490491
(remove-hook 'post-command-hook 'lsp-ui-sideline t)
491-
(when lsp-ui-sideline-show-flycheck
492+
(when lsp-ui-sideline-show-diagnostics
492493
(kill-local-variable 'flycheck-display-errors-function)))))
493494

494495
(defun lsp-ui-sideline-enable (enable)

0 commit comments

Comments
 (0)