|
@@ -2028,18 +2028,18 @@ initializing." |
|
|
|
|
|
|
|
|
(require 'flycheck) |
|
|
(require 'flycheck) |
|
|
|
|
|
|
|
|
(flycheck-define-checker python-black |
|
|
|
|
|
"A Python style checker." |
|
|
|
|
|
:command ("python3" |
|
|
|
|
|
"-m" "black" |
|
|
|
|
|
(config-file "--config" flycheck-black) |
|
|
|
|
|
"--check" source) |
|
|
|
|
|
:error-parser my-flycheck-parse-unified-diff |
|
|
|
|
|
:enabled (lambda () |
|
|
|
|
|
(or (not (flycheck-python-needs-module-p 'python-black)) |
|
|
|
|
|
(flycheck-python-find-module 'python-black "black"))) |
|
|
|
|
|
:verify (lambda (_) (flycheck-python-verify-module 'python-black "black")) |
|
|
|
|
|
:modes python-mode) |
|
|
|
|
|
|
|
|
'(flycheck-define-checker python-black |
|
|
|
|
|
"A Python style checker." |
|
|
|
|
|
:command ("python3" |
|
|
|
|
|
"-m" "black" |
|
|
|
|
|
(config-file "--config" flycheck-black) |
|
|
|
|
|
"--check" source) |
|
|
|
|
|
:error-parser my-flycheck-parse-unified-diff |
|
|
|
|
|
:enabled (lambda () |
|
|
|
|
|
(or (not (flycheck-python-needs-module-p 'python-black)) |
|
|
|
|
|
(flycheck-python-find-module 'python-black "black"))) |
|
|
|
|
|
:verify (lambda (_) (flycheck-python-verify-module 'python-black "black")) |
|
|
|
|
|
:modes python-mode) |
|
|
|
|
|
|
|
|
(flycheck-def-config-file-var flycheck-black python-black "pyproject.toml" |
|
|
(flycheck-def-config-file-var flycheck-black python-black "pyproject.toml" |
|
|
:safe #'stringp) |
|
|
:safe #'stringp) |
|
@@ -2049,9 +2049,34 @@ initializing." |
|
|
|
|
|
|
|
|
(defun my-flycheck-parse-unified-diff (output checker buffer) |
|
|
(defun my-flycheck-parse-unified-diff (output checker buffer) |
|
|
"Flycheck parser to parse diff output." |
|
|
"Flycheck parser to parse diff output." |
|
|
(with-temp-buffer |
|
|
|
|
|
(insert output) |
|
|
|
|
|
nil)) |
|
|
|
|
|
|
|
|
(let ((source-line 0) |
|
|
|
|
|
(result ()) |
|
|
|
|
|
(hunk "HUNK")) |
|
|
|
|
|
(with-temp-buffer |
|
|
|
|
|
(insert output) |
|
|
|
|
|
(goto-char (point-min)) |
|
|
|
|
|
(while (not (eq (point) (point-max))) |
|
|
|
|
|
;; FIXME: Do not stop when no result |
|
|
|
|
|
(while (not (re-search-forward "^@@ -\\([0-9]+\\),\\([0-9]+\\) \\+\\([0-9]+\\),\\([0-9]+\\) @@.*$" (point-at-eol) t)) |
|
|
|
|
|
(forward-line 1) |
|
|
|
|
|
(goto-char (point-at-bol))) |
|
|
|
|
|
(setq source-line |
|
|
|
|
|
(string-to-number (match-string 1))) |
|
|
|
|
|
;; TODO: Add filename support |
|
|
|
|
|
(setq hunk |
|
|
|
|
|
(match-string 0)) |
|
|
|
|
|
;;(while (not (rearch-forward "^\\(-\\|\\+\\)"))) |
|
|
|
|
|
) |
|
|
|
|
|
(add-to-list 'result |
|
|
|
|
|
(flycheck-error-new-at |
|
|
|
|
|
0 |
|
|
|
|
|
nil |
|
|
|
|
|
'error |
|
|
|
|
|
"MESSAGE" |
|
|
|
|
|
:buffer buffer |
|
|
|
|
|
:checker checker |
|
|
|
|
|
:group hunk))) |
|
|
|
|
|
result)) |
|
|
|
|
|
|
|
|
;; Local Variables: |
|
|
;; Local Variables: |
|
|
;; flycheck-disabled-checkers: (emacs-lisp-checkdoc) |
|
|
;; flycheck-disabled-checkers: (emacs-lisp-checkdoc) |
|
|