summary refs log tree commit diff
path: root/emacs.d/core/core-flycheck.el
blob: 7118f83180e9e3d34ca65ff6873cd1f8bfb1f002 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(use-package flycheck
  :ensure t
  :defer t
  :preface (progn
             (defun check-source-predicate ()
               (and (executable-find "check.pex")
                    (buffer-file-name)
                    (string-match "src/source/.*\.py$" (buffer-file-name)))))
  :init
  (progn
    (add-hook 'prog-mode-hook 'flycheck-mode)
    (setq-default flycheck-disabled-checkers '(emacs-lisp-checkdoc)))
  :config
  (progn
    (flycheck-define-checker source-check
      "A syntax checker for python source code in Source, using `check.pex'"
      :command ("check.pex" source)
      ;;; errors are reported like this:
      ;;; E241:ERROR   <file name>:<line> <message>
      :error-patterns ((error line-start (id (1+ nonl)) ":ERROR" (1+ nonl) ":" line (message) line-end)
                       (warning line-start (id (1+ nonl)) ":WARNING" (1+ nonl) ":" line (message) line-end))
      :predicate check-source-predicate
      :modes (python-mode))
    (add-to-list 'flycheck-checkers 'source-check)))

(use-package flycheck-pos-tip
  :defer t
  :init
  (progn
    (eval-after-load 'feature-flycheck
      '(setq-default flycheck-display-errors-function #'flycheck-pos-tip-error-messages)))
  :ensure t)

(provide 'core-flycheck)