summaryrefslogtreecommitdiff
path: root/flycheck-android-experimental.el
blob: 00e0a4ee1322614ab29472ab679a53b1b7a5dba2 (plain)
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
35
36
37
38
39
40
41
42
43
44
;;; flycheck-android-experimental.el --- Flycheck for Android using experimental
;;;                                      gradle plugin

;; Copyright (C) 2017 by Joel Klinghed

;; Author: Joel Klinghed <the_jk@yahoo.com>

;;; Commentary:

;;; Code:

(require 'flycheck)

(flycheck-define-checker android-java
  "Java syntax checker using javac."
  :command ("python"
            (eval (flycheck-android-find-tool "java"))
            (eval buffer-file-name)
            source)
  :error-patterns
  ((warning line-start (file-name) ":" line ": warning:"
            (message (one-or-more (not (any "^")))
                     (any "^"))
            line-end)
   (error line-start (file-name) ":" line ": error:"
          (message (one-or-more (not (any "^")))
                   (any "^"))
          line-end))
  :modes java-mode)

(defun flycheck-android-find-tool (tool)
  "Find flycheck-android-TOOL.py.
TOOL=name of tool"
  (let ((filename (concat "flycheck-android-" tool ".py")))
    (expand-file-name
     filename
     (concat (file-name-directory (symbol-file 'flycheck-android-find-tool))
             (file-name-as-directory "bin")))))

(add-to-list 'flycheck-checkers 'android-java)

(provide 'flycheck-android-experimental)

;;; flycheck-android-experimental.el ends here