Skip to content

Commit 1e22271

Browse files
committed
Move checker-definitions inside (when *-checker-active)
This involves expanding two (when)s to wrap more code, but otherwise only whitespace changes for formatting adjustment. It improves efficiency and sets up for upcoming "feature/version"-handling commits.
1 parent bf754a8 commit 1e22271

File tree

1 file changed

+37
-39
lines changed

1 file changed

+37
-39
lines changed

solidity-flycheck.el

Lines changed: 37 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -84,53 +84,51 @@ we pass the directory to solium via the `--config' option."
8484
:safe #'stringp
8585
:package-version '(solidity-mode . "0.1.4"))
8686

87-
;; define solium flycheck syntax checker
88-
(flycheck-define-checker solium-checker
89-
"A Solidity linter using solium"
90-
:command ("solium"
91-
(option "--config=" flycheck-solidity-solium-soliumrcfile concat)
92-
"-f"
93-
source-inplace)
94-
:error-patterns ((error line-start (zero-or-more " ") line ":" column (zero-or-more " ") "error" (message))
95-
(error line-start (zero-or-more not-newline) "[Fatal error]" (message))
96-
(warning line-start (zero-or-more " ") line ":" column (zero-or-more " ") "warning" (message)))
97-
:error-filter
98-
;; Add fake line numbers if they are missing in the lint output
99-
(lambda (errors)
100-
(dolist (err errors)
101-
(unless (flycheck-error-line err)
102-
(setf (flycheck-error-line err) 1)))
103-
errors)
104-
:modes solidity-mode
105-
:predicate (lambda () (eq major-mode 'solidity-mode)))
106-
107-
;; first try to add solium to the checker's list since if we got solc
108-
;; it must come after it in the list due to it being chained after solc
10987
(when solidity-flycheck-solium-checker-active
88+
;; define solium flycheck syntax checker
89+
(flycheck-define-checker solium-checker
90+
"A Solidity linter using solium"
91+
:command ("solium"
92+
(option "--config=" flycheck-solidity-solium-soliumrcfile concat)
93+
"-f"
94+
source-inplace)
95+
:error-patterns ((error line-start (zero-or-more " ") line ":" column (zero-or-more " ") "error" (message))
96+
(error line-start (zero-or-more not-newline) "[Fatal error]" (message))
97+
(warning line-start (zero-or-more " ") line ":" column (zero-or-more " ") "warning" (message)))
98+
:error-filter
99+
;; Add fake line numbers if they are missing in the lint output
100+
(lambda (errors)
101+
(dolist (err errors)
102+
(unless (flycheck-error-line err)
103+
(setf (flycheck-error-line err) 1)))
104+
errors)
105+
:modes solidity-mode
106+
:predicate (lambda () (eq major-mode 'solidity-mode)))
107+
;; first try to add solium to the checker's list since if we got solc
108+
;; it must come after it in the list due to it being chained after solc
110109
(if (funcall flycheck-executable-find solidity-solium-path)
111110
(progn
112111
(add-to-list 'flycheck-checkers 'solium-checker)
113112
(setq flycheck-solium-checker-executable solidity-solium-path))
114113
(error (format "Solidity Mode Configuration error. Requested solium flycheck integration but can't find solium at: %s" solidity-solium-path))))
115114

116-
;; add a solidity mode callback to set the executable of solc for flycheck
117-
;; define solidity's flycheck syntax checker
118-
;; expanded the flycheck-define-checker macro in order to eval certain args, as per advice given in gitter
119-
;; https://gitter.im/flycheck/flycheck?at=5a43b3a8232e79134d98872b
120-
(flycheck-def-executable-var solidity-checker "solc")
121-
(flycheck-define-command-checker 'solidity-checker
122-
"A Solidity syntax checker using the solc compiler"
123-
:command '("solc" source-inplace)
124-
:error-patterns '((error line-start (file-name) ":" line ":" column ":" " Error: " (message))
125-
(error line-start "Error: " (message))
126-
(warning line-start (file-name) ":" line ":" column ":" " Warning: " (message)))
127-
:modes 'solidity-mode
128-
:predicate #'(lambda nil (eq major-mode 'solidity-mode))
129-
:next-checkers `((,solidity-flycheck-chaining-error-level . solium-checker))
130-
:standard-input 'nil
131-
:working-directory 'nil)
132-
133115
(when solidity-flycheck-solc-checker-active
116+
;; add a solidity mode callback to set the executable of solc for flycheck
117+
;; define solidity's flycheck syntax checker
118+
;; expanded the flycheck-define-checker macro in order to eval certain args, as per advice given in gitter
119+
;; https://gitter.im/flycheck/flycheck?at=5a43b3a8232e79134d98872b
120+
(flycheck-def-executable-var solidity-checker "solc")
121+
(flycheck-define-command-checker 'solidity-checker
122+
"A Solidity syntax checker using the solc compiler"
123+
:command '("solc" source-inplace)
124+
:error-patterns '((error line-start (file-name) ":" line ":" column ":" " Error: " (message))
125+
(error line-start "Error: " (message))
126+
(warning line-start (file-name) ":" line ":" column ":" " Warning: " (message)))
127+
:modes 'solidity-mode
128+
:predicate #'(lambda nil (eq major-mode 'solidity-mode))
129+
:next-checkers `((,solidity-flycheck-chaining-error-level . solium-checker))
130+
:standard-input 'nil
131+
:working-directory 'nil)
134132
(if (funcall flycheck-executable-find solidity-solc-path)
135133
(progn
136134
(add-to-list 'flycheck-checkers 'solidity-checker)

0 commit comments

Comments
 (0)