Linting code
Static analysis is the act of analyzing the source code of a program in order to identify code issues without needing to actually execute the program. This process is primarily used to detect security, stylistic, or non-idiomatic code issues.
These static analysis tools are nothing new to programming languages. However, the typed nature of Crystal handles most of what an external static analysis tool would handle, without needing anything other than the compiler itself. While the compiler would catch type-related errors, it would not catch more idiomatic issues, such as code smells or using non-optimal methods.
In Crystal, the go-to static analysis tool is https://github.com/crystal-ameba/ameba. This tool is usually installed as a development dependency by adding this to your shard.yml
file and then running shards install
:
development_dependencies: ameba: github: crystal-ameba/ameba version: ~> 1.0
When installed, Ameba...