A Clojure linter that uses tools.analyzer for accurate bug detection, focusing on CI environments.
Eastwood is a Clojure lint tool that analyzes namespaces to identify potential bugs and issues in code. It uses tools.analyzer.jvm to achieve compiler-level accuracy, focusing on detecting real problems like wrong function arity, constant tests, and deprecated APIs. It is designed to integrate into CI pipelines where thorough analysis across multiple environments is valuable.
Clojure developers and teams who need reliable static analysis for bug detection, particularly those using CI/CD pipelines to ensure code quality across different JDK and Clojure versions.
Developers choose Eastwood for its high accuracy in bug detection, thanks to its use of tools.analyzer.jvm, which minimizes false positives. It excels in CI environments where comprehensive linting is more important than real-time speed.
Clojure lint tool
Uses tools.analyzer.jvm for analysis as accurate as the Clojure compiler, minimizing false positives by preferring evaluation and macroexpansion.
Focuses on detecting real bugs like wrong arity and constant tests, with over 20 configurable linters targeting issues such as deprecations and unused return values.
Designed for CI pipelines where accuracy across JDK and Clojure versions is prioritized over speed, as stated in the README's philosophy.
Supports config files to selectively disable warnings per-macro or per-symbol, allowing fine-grained control over lint output.
The accurate analysis is slow due to deep evaluation and macroexpansion, making it impractical for real-time use or editor integration.
Only supports JVM Clojure (>=1.7.0) and not ClojureScript or Clojure/CLR, requiring workarounds like .cljc files for cross-platform projects.
Evaluates code during analysis, which can cause unintended side effects in untrusted environments, necessitating sandboxing or careful setup.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.