superlint/docs/disabling-linters.md
2020-04-23 09:08:38 -05:00

8.8 KiB

Disabling linters and rules

If you find you need to ignore certain errors and warnings, you will need to know the format to disable the linter rules.
Below is examples and documentation for each language and the various methods to disable.


Ruby

Rubocop Config file

  • .github/linters/.ruby-lint.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.ruby-lint.yml
  • Note: We use the Default GitHub Rule set from Rubocop-GitHub

Rubocop disable single line

method(argument) # rubocop:disable SomeRule, SomeOtherRule

Rubocop disable code block

# rubocop:disable
This is a long line
var="this is some other stuff"
# rubocop:enable

Rubocop disable entire file

If you need to ignore an entire file, you can update the .github/linters/.ruby-lint.yml to ignore certain files and locations

inherit_from:
  - .rubocop_todo.yml
  - .rubocop_app_overrides.yml

inherit_mode:
  merge:
    - Exclude

Rails:
  Enabled: true

AllCops:
  TargetRubyVersion: 2.5.1
  EnabledByDefault: true
  Exclude:
    - 'db/**/*'
    - 'config/**/*'
    - 'script/**/*'
    - 'bin/{rails,rake}'
    - !ruby/regexp /old_and_unused\.rb$/

Shell

Shellcheck is an opensource tool we use for linting and validation of the shell scripting language.

Shellcheck Config file

  • There is no top level configuration file available at this time

Shellcheck disable single line

echo "Terrible stuff" # shellcheck disable=SC2059,SC2086

Shellcheck disable code block

# shellcheck disable=SC2059,SC2086
echo "some hot garbage"
echo "More garbage code"

Shellcheck disable entire file

  • Note: The disable must be on the second line of the code right after the shebang
#!/bin/sh
# shellcheck disable=SC2059,SC1084

echo "stuff"
moreThings()

Ansible

Ansible-lint Config file

Ansible-lint disable single line

Ansible-lint disable code block

Ansible-lint disable entire file


YAML

Yamllint Config file

  • .github/linters/.yaml-lint.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.yaml-lint.yml

Yamllint disable single line

This line is waaaaaaaaaay too long  # yamllint disable-line

Yamllint disable code block

# yamllint disable rule:colons
- Lorem       : ipsum
  dolor       : sit amet,
  consectetur : adipiscing elit
# yamllint enable

Yamllint disable entire file

If you need to ignore an entire file, you can update the .github/linters/.yaml-lint.yml to ignore certain files and locations

# For all rules
ignore: |
  *.dont-lint-me.yaml
  /bin/
  !/bin/*.lint-me-anyway.yaml  

rules:
  key-duplicates:
    ignore: |
      generated
      *.template.yaml      
  trailing-spaces:
    ignore: |
      *.ignore-trailing-spaces.yaml
      /ascii-art/*      

Python3

Pylint Config file

Pylint disable single line

Pylint disable code block

Pylint disable entire file


JSON

JsonLint Config file

JsonLint disable single line

JsonLint disable code block

JsonLint disable entire file


Markdown

Markdownlint Config file

  • .github/linters/.markdown-lint.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.markdownlint.yml

Markdownlint disable single line

## Here is some document
Here is some random data
<!-- markdownlint-disable -->
any violation you want
<!-- markdownlint-restore -->
Here is more data

Markdownlint disable code block

## Here is some document
Here is some random data
<!-- markdownlint-disable -->
any violations you want
<!-- markdownlint-restore -->
Here is more data

Markdownlint disable entire file

  • You can encapsulate the entire file with the code block format to disable an entire file from being parsed

Perl

Perl Config file

Perl disable single line

Perl disable code block

Perl disable entire file


XML

LibXML Config file

  • There is no top level configuration file available at this time

LibXML disable single line

  • There is currently No way to disable rules inline of the file(s)

LibXML disable code block

  • There is currently No way to disable rules inline of the file(s)

LibXML disable entire file

  • There is currently No way to disable rules inline of the file(s)

Coffeescript

coffeelint Config file

  • .github/linters/.coffee-lint.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.coffee.yml

coffeelint disable single line

# coffeelint: disable=max_line_length
foo = "some/huge/line/string/with/embed/#{values}.that/surpasses/the/max/column/width"
# coffeelint: enable=max_line_length

coffeelint disable code block

# coffeelint: disable
foo = "some/huge/line/string/with/embed/#{values}.that/surpasses/the/max/column/width"
bar = "some/huge/line/string/with/embed/#{values}.that/surpasses/the/max/column/width"
baz = "some/huge/line/string/with/embed/#{values}.that/surpasses/the/max/column/width"
taz = "some/huge/line/string/with/embed/#{values}.that/surpasses/the/max/column/width"
# coffeelint: enable

coffeelint disable entire file

  • You can encapsulate the entire file with the code block format to disable an entire file from being parsed

Javascript (eslint)

Javascript eslint Config file

Javascript eslint disable single line

Javascript eslint disable code block

Javascript eslint disable entire file


Javascript (standard)

Javascript standard Config file

Javascript standard disable single line

Javascript standard disable code block

Javascript standard disable entire file


Typescript (eslint)

Typescript eslint disable single line

Typescript eslint disable code block

Typescript eslint disable entire file


Typescript (standard)

Typescript standard Config file

Typescript standard disable single line

Typescript standard disable code block

Typescript standard disable entire file


Golang

golangci-lint standard Config file

golangci-lint disable single line

golangci-lint disable code block

golangci-lint disable entire file


Dockerfile

-dockerfilelint

Dockerfilelint standard Config file

  • .github/linters/.dockerfilelintrc
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.dockerfilelintrc

Dockerfilelint disable single line

  • There is currently No way to disable rules inline of the file(s)

Dockerfilelint disable code block

  • There is currently No way to disable rules inline of the file(s)

Dockerfilelint disable entire file

  • There is currently No way to disable rules inline of the file(s)

Terraform

tflint standard Config file

tflint disable single line

tflint disable code block

tflint disable entire file