All Projects → devreplay → Devreplay

devreplay / Devreplay

Licence: mit
A linter that replay your developing style

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Devreplay

Rubocop Packaging
A RuboCop extension focused on enforcing upstream best practices and coding conventions.
Stars: ✭ 29 (-25.64%)
Mutual labels:  linter, static-code-analysis
Pylint
It's not just a linter that annoys you!
Stars: ✭ 3,733 (+9471.79%)
Mutual labels:  linter, static-code-analysis
Awesome Standard
Documenting the explosion of packages in the standard ecosystem!
Stars: ✭ 300 (+669.23%)
Mutual labels:  linter, static-code-analysis
Android-CICD
This repo demonstrates how to work on CI/CD for Mobile Apps 📱 using Github Actions 💊 + Firebase Distribution 🎉
Stars: ✭ 37 (-5.13%)
Mutual labels:  static-code-analysis, linter
Eslint Config Standard React
ESLint Shareable Config for React/JSX support in JavaScript Standard Style
Stars: ✭ 416 (+966.67%)
Mutual labels:  linter, static-code-analysis
unimport
A linter, formatter for finding and removing unused import statements.
Stars: ✭ 119 (+205.13%)
Mutual labels:  static-code-analysis, linter
Pytype
A static type analyzer for Python code
Stars: ✭ 3,545 (+8989.74%)
Mutual labels:  linter, static-code-analysis
elm-review
Analyzes Elm projects, to help find mistakes before your users find them.
Stars: ✭ 195 (+400%)
Mutual labels:  static-code-analysis, linter
Eslint
Find and fix problems in your JavaScript code.
Stars: ✭ 19,665 (+50323.08%)
Mutual labels:  linter, static-code-analysis
Rubocop Performance
An extension of RuboCop focused on code performance checks.
Stars: ✭ 340 (+771.79%)
Mutual labels:  linter, static-code-analysis
standard-packages
List of packages that use `standard`
Stars: ✭ 32 (-17.95%)
Mutual labels:  static-code-analysis, linter
Pep8speaks
A GitHub app to automatically review Python code style over Pull Requests
Stars: ✭ 546 (+1300%)
Mutual labels:  linter, static-code-analysis
static-code-analysis-plugin
A plugin to simplify Static Code Analysis on Gradle. Not restricted to, but specially useful, in Android projects, by making sure all analysis can access the SDK classes.
Stars: ✭ 36 (-7.69%)
Mutual labels:  static-code-analysis, linter
Bandit
Bandit is a tool designed to find common security issues in Python code.
Stars: ✭ 3,763 (+9548.72%)
Mutual labels:  linter, static-code-analysis
codeclimate-eslint
Code Climate Engine for ESLint
Stars: ✭ 86 (+120.51%)
Mutual labels:  static-code-analysis, linter
Reviewdog
🐶 Automated code review tool integrated with any code analysis tools regardless of programming language
Stars: ✭ 4,541 (+11543.59%)
Mutual labels:  linter, static-code-analysis
standard-www
👆 Website for JavaScript Standard Style (@standard)
Stars: ✭ 28 (-28.21%)
Mutual labels:  static-code-analysis, linter
eslintcc
Complexity of Code - JavaScript/TypeScript
Stars: ✭ 15 (-61.54%)
Mutual labels:  static-code-analysis, linter
Pmd
An extensible multilanguage static code analyzer.
Stars: ✭ 3,667 (+9302.56%)
Mutual labels:  linter, static-code-analysis
Rubocop Rails
A RuboCop extension focused on enforcing Rails best practices and coding conventions.
Stars: ✭ 433 (+1010.26%)
Mutual labels:  linter, static-code-analysis

CI Lint

Devreplay

Devreplay is static analysis tool based on your own programming rule.

How to use

  1. Install on local
$ npm install devreplay
# or
$ yarn global add 
  1. Put your own programming rule(.devreplay.json) on the project like bellow
[
  {
    "before": [
      "tmp = $1",
      "$1 = $2",
      "$2 = tmp"
    ],
    "after": [
      "$1, $2 = $2, $1"
    ]
  }
]
  1. Run the devreplay
$ devreplay yourfile.py
W:yourfile.py:15:$3 = $1$1 = $2$2 = $3 should be $2, $1 = $1, $2

or get fixed code

$ devreplay --fix yourfile.py

The target source code file will be

- tmp = a
- a = b
- b = a
+ a, b = b, a
  • Step up: Make the rule message and severity. Also after can be more abstract
[
  {
    "before": [
      "$3 = $1",
      "$1 = $2",
      "$2 = $3"
    ],
    "after": [
      "$1, $2 = $2, $1"
    ],
    "author": "Yuki Ueda",
    "message": "Value exchanging can be one line",
    "severity": "Information"
  }
]
  • Recommend: Also you can generate rule file automatically by following command on your git repository
devreplay --init
  • severity means how this rule is important

    • E: Error
    • W: Warning
    • I: Information
    • H: Hint
  • Run devreplay again

$ devreplay yourfile.py
I:yourfile.py:15:Value exchanging can be one line by Yuki Ueda

Also, you can use default rules by extends some rules such as

[
  {
    "extends": ["typescript", "react", "vscode"]
  }
]

Make rules by using Regular Expression

{
  "before": [
    "([a-z]+)-([a-z]+)"
  ],
  "after": [
      "$1 $2"
  ],
  "isRegex": true
}

That will fix

- print("hello-world")
+ print("hello world")

Default rule languages

  • c
  • cpp
  • dart
  • cobol
  • java
  • javaScript
  • typeScript
  • python
  • ruby
  • go
  • php

Defaulr rule frameworks

  • Angular
  • chainer2pytouch
  • tensorflow
  • rails
  • vue

Contribution Link

Thanks

This package is made based on

DevReplay is supported by 2019 Exploratory IT Human Resources Project The MITOU Program, JSPS KAKENHI Grant Numbers JP17H00731, JP15H02683, JP18H03221, and JP18KT0013.

License

MIT © 2019 Yuki Ueda [email protected] (ikuyadeu.github.io)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].