Git Product home page Git Product logo

awesome-linters's Introduction

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.

Ansible

  • ansible-lint - Checks playbooks for practices and behaviour that could potentially be improved

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++.
  • uncrustify - Source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA.

CoffeeScript

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

C++

  • cppcheck - Cppcheck is a static analysis tool for C/C++ code. It provides unique code analysis to detect bugs and focuses on detecting undefined behaviour and dangerous coding constructs. The goal is to detect only real errors in the code (i.e. have very few false positives).
  • oclint - Static analysis for C, C++ and Objective-C. Written in C++.
  • uncrustify - Source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA.

Crystal

  • ameba - Static code analysis tool for Crystal.

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 - 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.

Dockerfile

  • dockerfile_lint - Rule based linter for Dockerfiles. The linter rules can be used to check file syntax as well as arbitrary semantic and best practice attributes determined by the rule file writer. The linter can also be used to check LABEL rules against docker images.
  • hadolint - Linter for Dockerfiles. The linter is parsing the Dockerfile into an AST and performs rules on top of the AST. It is standing on the shoulders of ShellCheck to lint the Bash code inside RUN instructions.

Elixir

  • credo - Static code analysis tool for the Elixir language with a focus on code consistency and teaching.

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.

GraphQL

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.
  • jinjalint - A prototype linter which checks the indentation and the correctness of Jinja-like/HTML templates. Also supports Django Templates.

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.
  • uncrustify - Source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA.

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++.
  • uncrustify - Source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA.

Perl

  • perlcritic - The leading static analyzer for Perl. Configurable, extensible, powerful.

PHP

  • phplint - Node wrapper around the native php linter that allows for parallel linting and integration with build systems like Grunt, Gulp and more.
  • PHP Mess Detector - PHPMD can be seen as an user friendly and easy to configure frontend for the raw metrics measured by PHP Depend.

Polymer

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

Pug

  • pug-lint โ€” An unopinionated and configurable linter and style checker for Pug (formerly Jade)

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.
  • yala - YALA combines many linters to improve the quality of your code.

reStructuredText

  • doc8 - Doc8 is an opinionated style checker for rst (with basic support for plain text) styles of documentation. Notice, it does not support additional sphinx extensions. Project is also available on OpenStack or GitHub
  • 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.

YAML

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

awesome-linters's People

Contributors

caramelomartins avatar mlcdf avatar nvtkaszpir avatar igorshubovych avatar filipebento avatar w33dw0r7d avatar swizz avatar pocke avatar marconilanna avatar suchow avatar heathnaylor avatar f-apolinario avatar bmbferreira avatar brianjking avatar cteyton avatar gleybersonandrade avatar jdehaan avatar kimmel avatar samverschueren avatar thibaudcolas avatar tclindner avatar sharils avatar grawl avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.