From 3b109d366f5cc60efb66a88263e1f092900578cb Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Tue, 10 Jan 2017 22:59:49 +0100 Subject: Add a cache for gradle output --- flycheck-android-experimental.el | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'flycheck-android-experimental.el') 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) -- cgit v1.2.3-70-g09d2