Advertisement
Guest User

Untitled

a guest
Jun 28th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.25 KB | None | 0 0
  1.   (defun my/start-eglot-flycheck (checker callback)
  2.     (defun my/point->line-col (buffer beg)
  3.       (with-current-buffer buffer
  4.         (save-excursion
  5.           (goto-char beg)
  6.           (cons (line-number-at-pos)
  7.                 (- (point)
  8.                    (line-beginning-position))))))
  9.     (defun my/flymake-diagnostic->flycheck-error (diag)
  10.       (pcase-let* ((msg (flymake-diagnostic-text diag))
  11.                    (beg (flymake-diagnostic-beg diag))
  12.                    (buffer (flymake-diagnostic-buffer diag))
  13.                    (`(,line . ,col) (my/point->line-col buffer beg)))
  14.         (flycheck-error-new-at
  15.          line col
  16.          (pcase (flymake-diagnostic-type diag)
  17.            (':error 'error)
  18.            (':warning 'warning)
  19.            (':note 'info))
  20.          msg
  21.          :checker checker
  22.          :buffer buffer)))
  23.     (eglot-flymake-backend
  24.      #'(lambda (report-action &key region)
  25.          (funcall
  26.           callback 'finished
  27.           (mapcar
  28.            #'my/flymake-diagnostic->flycheck-error
  29.            report-action)))))
  30.   (flycheck-define-generic-checker 'eglot
  31.     "A generic eglot flycheck checker"
  32.     :start #'my/start-eglot-flycheck
  33.     :modes '(python-mode))
  34.   (add-to-list 'flycheck-checkers 'eglot)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement