Skip to content

RichVRed/awesome-linters

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome Linters

A curated list of awesome linters.

Code linters are programs that performs static analysis on your code. They check your code for common mistakes and bad coding style/practices thus helping you catch errors before compilation/interpretation and forcing you and your team to keep a consistent code style within a project.

Most of the linters in this list have plugins available for popular text editors and IDEs and are pretty easy to setup and automate (via a pre-commit hook or a CI service for example).

This project is not closed to actual static analyzers. With this repository we intend to have an information resource for all things related to static analysis of code. By this, we mean that articles, talks or any other resource related to this topic will be welcome as well as links related to actual linters.

Contents

Linters

Language Agnostic

  • coala - Language agnostic linter based on rules and standards. Written in Python.

Awesome Lists

  • awesome-lint - Linter for Awesome lists. Helps to createa and maintain Awesome lists. Written in Javascript.

C

  • oclint - Static analysis for C, C++ and Objective-C. Written in C++.

CoffeeScript

  • coffeelint - Configurable linter written in CoffeScript to analyze CoffeScript.

C++

  • oclint - Static analysis for C, C++ and Objective-C. Written in C++.

CSS

  • csslint - CSS static analysis written in Javascript. Uses pluggable rules.
  • csscomb - CSS tool that beautifies CSS based on a configuration. Helps with keeping CSS consistent. Written in Javascript.
  • ie8linter - Static analysis for Internet Explorer 8 compatibility. Written in Javascript.
  • postcss-bem-linter - A plugin for PostCSS to lint CSS according to BEM-style. Written in Javascript.
  • stylelint - CSS linter that is unopinionated, supports plugins and has a wide range of rules built-in. Written in Javascript.

Dart

  • linter - Linter for Dart mostly focused on style lints. It's configurable but comes with configured rules out of the box. Written in Dart.

English

  • alex - Linter to help catch insensitive writing in English. Written in Javascript.
  • proselint - Linter for English that provides guidelines to make better writing. It has plugins for several editors and is configurable.

Erlang

  • elvis - Configurable Erlang linter written in Erlang.

Go

  • golint - Go style linter written in Go. Focus with coding styles more than with correctness.
  • gometalinter - Concurrently run Go lint tools and normalise their output.
  • go vet - Examines Go source code and reports suspicious constructs.

Haskell

  • hlint - Tool for suggesting possible improvements to Haskell code. These suggestions include ideas such as using alternative functions, simplifying code and spotting redundancies.

Haxe

  • haxe-checkstyle - Haxe Checkstyle is a static analysis tool to help developers write Haxe code that adheres to a coding standard.

HTML

  • htmlhint - HTMLHint is a Static Code Analysis Tool for HTML, you can use it with IDE or in build system.
  • bootlint - Bootlint is a tool that checks for several common HTML mistakes in webpages that are using Bootstrap.

Java

  • checkstyle - Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard.
  • findbugs - Uses static analysis to look for bugs in Java code.
  • pmd - Static analyzer that finds common programming flaws. It supports Java, JavaScript, Salesforce.com Apex, PLSQL, Apache Velocity, XML, XSL.

JavaScript

  • clinton - JavaScript project style linter.
  • eslint - Fully pluggable tool for identifying and reporting on patterns in JavaScript.
  • jshint - Community-driven tool that detects errors and potential problems in JavaScript code.
  • prettier - Opinionated JavaScript formatter inspired by refmt with advanced support for language features from ES2017, JSX, and Flow.
  • standard - Javascript style linter that allows no configuration.
  • xo - Opinionated but configurable ESLint wrapper with lots of goodies included. Enforces strict and readable code.

Lua

  • lualint - lualint performs luac-based static analysis of global variable usage in Lua source code.

Markdown

  • markdownlint - Node.js style checker and lint tool for Markdown/CommonMark files.
  • mdl - Check markdown files and flag style issues. Written in ruby and is distributed as a rubygem.
  • remark-lint - Written in Javascript. remark-lint provides configurable Markdown style linting.

npm

Objective-C

  • oclint - Static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C. Written in C++.

Polymer

  • polylint - Catch errors in your polymer project before even running your code. Written in TypeScript.

Puppet

  • puppet-lint - Test modules and manifests against the recommended Puppet style guidelines from the Puppet Labs style guide. Written in Ruby.

Python

  • flake8 - Runs PyFlakes, pycodestyle and other tools from only one CLI. Written in Python.
  • pycodestyle (formerly called pep8) - Tool to check your Python code against some of the style conventions in PEP 8.
  • pylint - Source code analyzer which looks for programming errors, helps enforcing a coding standard and sniffs for some code smells.

reStructuredText

  • reStructuredText Lint - Validate reST files either as a module or from a CLI utility. Written in Python.

Ruby

  • rubocop - Ruby static code analyzer. Out of the box it will enforce many of the guidelines outlined in the community Ruby Style Guide.

Rust

  • rust-clippy - Collection of lints to catch common mistakes and improve your Rust code.

Sass

  • sass-lint - Node-only Sass linter for both sass and scss syntax.
  • scss-lint - Tool to help keep your SCSS files clean and readable by running it against a collection of configurable linter rules.

Scala

  • linter - Scala static analysis compiler plugin which adds compile-time checks for various possible bugs, inefficiencies, and style problems.
  • scalastyle - Examines your Scala code and indicates potential problems with it. Similar to Checkstyle for Java.
  • scapegoat - Another similar tool to Checkstyle for Java. Flags suspicious language usage in code.
  • wartRemover - Flexible and configurable Scala linter written in Scala.

Shell

  • shellcheck - Gives warnings and suggestions for bash/sh shell scripts.

Swift

  • swiftlint - Tool to enforce Swift style and conventions, loosely based on GitHub's Swift Style Guide.

TypeScript

  • tslint - Customizable TypeScript linter with automatic fixing of formating and style violations.

Contributing

Contributions are very welcome! Create a new pull request, solve a bug or grab an issue that is currently unassigned!

The only rule is: keep it organized.

Contributors

Thanks to everyone that helped!

License

unlicense

About

A list of awesome linters.

Resources

License

Stars

Watchers

Forks

Packages

No packages published