summaryrefslogtreecommitdiff
path: root/flycheck-android-experimental.el
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@yahoo.com>2017-01-10 22:59:49 +0100
committerJoel Klinghed <the_jk@yahoo.com>2017-01-10 23:03:12 +0100
commit3b109d366f5cc60efb66a88263e1f092900578cb (patch)
treed3434ace230bee2f39ccaf945c9c16b73929ab7c /flycheck-android-experimental.el
parentbabdbc6b0a4c3c803996ef4a057846ef461e0a21 (diff)
Add a cache for gradle output
Diffstat (limited to 'flycheck-android-experimental.el')
-rw-r--r--flycheck-android-experimental.el18
1 files changed, 18 insertions, 0 deletions
diff --git a/flycheck-android-experimental.el b/flycheck-android-experimental.el
index 00e0a4e..181b056 100644
--- a/flycheck-android-experimental.el
+++ b/flycheck-android-experimental.el
@@ -11,10 +11,14 @@
(require 'flycheck)
+(defvar flycheck-android-sessiondir nil
+ "Session directory used for caching.")
+
(flycheck-define-checker android-java
"Java syntax checker using javac."
:command ("python"
(eval (flycheck-android-find-tool "java"))
+ (eval (flycheck-android-get-sessiondir))
(eval buffer-file-name)
source)
:error-patterns
@@ -37,6 +41,20 @@ TOOL=name of tool"
(concat (file-name-directory (symbol-file 'flycheck-android-find-tool))
(file-name-as-directory "bin")))))
+(defun flycheck-android-remove-sessiondir ()
+ "Delete session dir if it exists and unsets the variable."
+ (when flycheck-android-sessiondir
+ (delete-directory flycheck-android-sessiondir t)
+ (setq flycheck-android-sessiondir nil)))
+
+(defun flycheck-android-get-sessiondir ()
+ "Return sessiondir if already set otherwise create and set it."
+ (or flycheck-android-sessiondir
+ (progn
+ (add-hook 'kill-emacs-hook 'flycheck-android-remove-sessiondir)
+ (setq flycheck-android-sessiondir
+ (make-temp-file "flycheck-android" t)))))
+
(add-to-list 'flycheck-checkers 'android-java)
(provide 'flycheck-android-experimental)