From 2ca250f508f795fa786ea3b41f61a451a511a4a0 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Thu, 15 Feb 2018 22:58:17 +0100 Subject: Add option for not running generate*Sources task before check For large projects running generate*Sources can incur a heavy cost --- README | 10 ++++++++++ bin/flycheck-android-java.py | 12 +++++++----- flycheck-android-experimental.el | 7 +++++++ 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/README b/README index 5615a14..47fd9e2 100644 --- a/README +++ b/README @@ -62,6 +62,16 @@ That should be it. (require 'flycheck-android-experimental) (setq flycheck-android-java-variant "devArm7Debug")))) += If you have a large project the default of always running generate*Sources += before checking the file might slow things down, if so set skip-gen + +(add-to-list + 'java-mode-hook + '(lambda () + (progn + (require 'flycheck-android-experimental) + (setq flycheck-android-java-skip-gen t)))) + = If you use checkstyle, you can expand the java-mode-hook: (add-to-list 'java-mode-hook diff --git a/bin/flycheck-android-java.py b/bin/flycheck-android-java.py index 9bbb31a..4919c52 100644 --- a/bin/flycheck-android-java.py +++ b/bin/flycheck-android-java.py @@ -121,7 +121,7 @@ Otherwise return None.""" return None def figure_out_java_compilation(sessiondir, sourcefile, tempfile, checkstyle, - variant, force=False): + variant, run_gen, force=False): """Get options for Java compilation from gradle project and run javac.""" (cmd, mtime, projectdir) = get_gradle_command_and_project_mtime( os.path.dirname(sourcefile)) @@ -212,7 +212,7 @@ def figure_out_java_compilation(sessiondir, sourcefile, tempfile, checkstyle, fallback = data files = file_in_list(sourcefile, data['files']) if files: - if v['gen'] < len(gen): + if run_gen and v['gen'] < len(gen): subprocess.call(cmd + ['-q'] + gen[v['gen']]) ret = run_javac(data['encoding'], data['source'], @@ -232,7 +232,7 @@ def figure_out_java_compilation(sessiondir, sourcefile, tempfile, checkstyle, fallback = data files = file_in_list(sourcefile, data['files']) if files: - if v['gen'] < len(gen): + if run_gen and v['gen'] < len(gen): subprocess.call(cmd + ['-q'] + gen[v['gen']]) ret = run_javac(data['encoding'], data['source'], @@ -247,7 +247,7 @@ def figure_out_java_compilation(sessiondir, sourcefile, tempfile, checkstyle, if cached and os.path.exists(sourcefile): return figure_out_java_compilation(sessiondir, sourcefile, tempfile, checkstyle, variant, - force=True) + run_gen, force=True) # OK, perhaps file doesn't exist yet or not yet added to gradle, # whatever, assume the first group is good enough if fallback: @@ -290,6 +290,8 @@ def main(argv): parser.add_argument('--checkstyle-config') parser.add_argument('--checkstyle-properties') parser.add_argument('--variant') + parser.add_argument('--skip-gen', dest='gen', action='store_const', + const=False, default=True) parser.add_argument('sessiondir', nargs='?') parser.add_argument('sourcefile') parser.add_argument('tempfile', nargs='?') @@ -307,6 +309,6 @@ def main(argv): sourcefile = os.path.abspath(sourcefile) return figure_out_java_compilation(args.sessiondir, sourcefile, tempfile, - checkstyle, args.variant) + checkstyle, args.variant, args.gen) sys.exit(main(sys.argv)) diff --git a/flycheck-android-experimental.el b/flycheck-android-experimental.el index 34d01f0..0449394 100644 --- a/flycheck-android-experimental.el +++ b/flycheck-android-experimental.el @@ -39,6 +39,11 @@ :safe #'stringp) (make-variable-buffer-local 'flycheck-android-java-variant) +(flycheck-def-option-var flycheck-android-java-skip-gen nil android-java + "Set to non-nil if generate*Sources task should not be run before checking." + :safe #'stringp) +(make-variable-buffer-local 'flycheck-android-java-skip-gen) + (flycheck-define-checker android-java "Java syntax checker using javac." :command ("python" @@ -53,6 +58,8 @@ flycheck-android-java-checkstyle-properties concat) (option "--variant=" flycheck-android-java-variant concat) + (option-flag "--skip-gen" + flycheck-android-java-skip-gen) (eval (flycheck-android-get-sessiondir)) (eval buffer-file-name) source) -- cgit v1.2.3-70-g09d2