This is a Sider analyzer framework.
See also another related project, called devon_rex.
All 40 analyzers are provided as a Docker image:
Name | Links | Status |
---|---|---|
Brakeman | docker, source, doc, website | β |
Checkstyle | docker, source, doc, website | β |
Clang-Tidy | docker, source, doc, website | β beta |
CoffeeLint | docker, source, doc, website | β |
Cppcheck | docker, source, doc, website | β |
cpplint | docker, source, doc | β |
detekt | docker, source, doc, website | β beta |
ESLint | docker, source, doc, website | β |
Flake8 | docker, source, doc, website | β |
FxCop | docker, source, doc, website | β beta |
GolangCI-Lint | docker, source, doc, website | β |
Goodcheck | docker, source, doc, website | β |
hadolint | docker, source, doc | β |
HAML-Lint | docker, source, doc | β |
JavaSee | docker, source, doc | β |
JSHint | docker, source, doc, website | β |
ktlint | docker, source, doc, website | β beta |
LanguageTool | docker, source, doc, website | β beta |
Metrics Code Clone | docker, source, doc | β beta |
Metrics Complexity | docker, source, doc | β beta |
Metrics File Info | docker, source, doc | β beta |
Misspell | docker, source, doc | β |
Phinder | docker, source, doc | β |
PHP_CodeSniffer | docker, source, doc | β |
PHPMD | docker, source, doc, website | β |
PMD CPD | docker, source, doc, website | β beta |
PMD Java | docker, source, doc, website | β |
Pylint | docker, source, doc, website | β beta |
Querly | docker, source, doc | β |
Rails Best Practices | docker, source, doc, website | β |
Reek | docker, source, doc | β |
remark-lint | docker, source, doc | β |
RuboCop | docker, source, doc, website | β |
SCSS-Lint | docker, source, doc | |
ShellCheck | docker, source, doc, website | β |
Slim-Lint | docker, source, doc | β beta |
stylelint | docker, source, doc, website | β |
SwiftLint | docker, source, doc, website | β |
TSLint | docker, source, doc, website | |
TyScan | docker, source, doc | β |
Please follow these instructions.
- Ruby (see
.ruby-version
) - Bundler (see
Gemfile.lock
) - Docker (the latest version recommended)
- EditorConfig (see
.editorconfig
, and setup your editor)
First, after checking out the source code, run the following command to install Ruby:
$ rbenv install
If you don't want to use rbenv, you need to manually install Ruby with the version in the .ruby-version
file.
Next, let's set up via Bundler:
$ bin/setup
All is done. The Rake tasks will help you develop! π
$ tree -F -L 1 -d
.
βββ bin
βββ docs
βββ exe
βββ images
βββ lib
βββ sig
βββ tasks
βββ test
6 directories
bin
: Scriptsdocs
: Documentsexe
: Entry pointimages
: Docker imageslib
: Core programssig
: Ruby signature files for type-checkingtasks
: Rake taskstest
: Unit tests and smoke tests
You can run unit tests via the rake test
command as follow.
All tests:
$ bundle exec rake test
Only a test file:
$ bundle exec rake test TEST=test/cli_test.rb
Only a test method:
$ bundle exec rake test TEST=test/cli_test.rb TESTOPTS='--name=test_parsing_options'
You can run smoke tests via the rake docker:smoke
command as follow:
$ bundle exec rake docker:smoke ANALYZER=rubocop [ONLY=test1,test2,...] [DEBUG=(true|trace)]
ONLY
: Specify test name(s). You can specify a comma-separated list.DEBUG
: Show debug log to your console.DEBUG=true
: All log.DEBUG=trace
: Only trace log (colored).
If you want to run tests right after changing code, you can run one command as follow:
$ bundle exec rake docker:build docker:smoke ANALYZER=rubocop
You can use the rake docker:shell
command to run a command directly in a Docker container, for example:
$ bundle exec rake docker:build docker:shell ANALYZER=rubocop
docker run ...
analyzer_runner@838f831e5aa7:/work$ cd test/smokes/rubocop/renamed-cop
analyzer_runner@838f831e5aa7:/work$ rubocop .
...
We check the types of our Ruby source files via RBS and Steep.
$ bundle exec steep check [files_or_directories...]
To update the third-party gems' RBS, run:
$ bundle exec rake rbs:update_gems
See LICENSE.