Sorta working.

This commit is contained in:
Austin Bingham
2017-05-14 13:42:14 +02:00
parent d51f1db28d
commit 8551cf9426

View File

@@ -60,7 +60,7 @@
'(("error" . error)
("warning" . warning)))
(defun flycheck-vale--result-to-error (result)
(defun flycheck-vale--issue-to-error (result)
(let-alist result
(flycheck-error-new
:line .Line
@@ -72,13 +72,10 @@
:level (assoc-default .Severity flycheck-vale--level-map 'string-equal 'error))))
(defun flycheck-vale--output-to-errors (output)
(let* ((data (json-read-string output))
(issues (concatenate 'list (mapcar 'cdr data))))
(mapcar 'flycheck-vale--issue-to-error issues))
(mapcar 'flycheck-vale--result-to-error results))
(defun flycheck-vale--handle-process-finished ()
(message "llamas"))
(let* ((full-results (json-read-from-string output))
(result-vecs (mapcar 'cdr full-results))
(issues (apply 'concatenate 'list (mapcar 'cdr full-results))))
(mapcar 'flycheck-vale--issue-to-error issues)))
(defun flycheck-vale--start (checker callback)
"Run vale on the current buffer's contents."
@@ -89,7 +86,9 @@
(with-current-buffer outbuf
(read-only-mode 0)
(erase-buffer))
(let ((proc (call-process-region
;; Run vale
(call-process-region
(point-min)
(point-max)
flycheck-vale-program
@@ -97,21 +96,15 @@
outbuf
nil ;; display
"--output"
"JSON")))
"JSON")
(set-process-sentinel
proc
#'(lambda (process event)
(when (string-equal event "finished\n")
(flycheck-vale--handle-process-finished)
;; (with-current-buffer outbuf
;; (let ((errors (flycheck-vale--parse-output (buffer-string))))
;; (loop for err in errors do
;; (setf (flycheck-error-buffer err) orig-buf)
;; (setf (flycheck-error-filename err) (buffer-file-name orig-buf))
;; (setf (flycheck-error-checker err) checker))
;; (funcall callback 'finished errors)))
))))))
(with-current-buffer outbuf
(let ((errors (flycheck-vale--output-to-errors (buffer-string))))
(loop for err in errors do
(setf (flycheck-error-buffer err) orig-buf)
(setf (flycheck-error-filename err) (buffer-file-name orig-buf))
(setf (flycheck-error-checker err) checker))
(funcall callback 'finished errors)))))
(defun flycheck-vale--in-supported-mode ()
"Determines if buffer is in a mode where vale linting is appropriate."