mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-22 16:51:05 -05:00
18 KiB
18 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 Super-Linter rules.
Below are examples and documentation for each language and the various methods to disable.
Table of Linters
- Ruby
- Shell
- Ansible
- YAML
- Python
- JSON
- Markdown
- Perl
- PHP
- XML
- Coffeescript
- Javascript Eslint
- Javascript Standard
- Typescript Eslint
- Typescript Standard
- Golang
- Dockerfile
- Terraform
- CSS
- ENV
- Kotlin
- OpenAPI
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 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
.github/linters/.ansible-lint.yml
- You can pass multiple rules and overwrite default rules
- File should be located at:
.github/linters/.ansible-lint.yml
Ansible-lint disable single line
- name: this would typically fire GitHasVersionRule 401 and BecomeUserWithoutBecomeRule 501
become_user: alice # noqa 401 501
git: src=/path/to/git/repo dest=checkout
Ansible-lint disable code block
- name: this would typically fire GitHasVersionRule 401
git: src=/path/to/git/repo dest=checkout
tags:
- skip_ansible_lint
Ansible-lint disable entire file
- name: this would typically fire GitHasVersionRule 401
git: src=/path/to/git/repo dest=checkout
tags:
- skip_ansible_lint
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
- Key : value
dolor : sit,
foo : bar
# 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
.github/linters/.python-lint
- You can pass multiple rules and overwrite default rules
- File should be located at:
.github/linters/.python-lint
Pylint disable single line
global VAR # pylint: disable=global-statement
Pylint disable code block
"""pylint option block-disable"""
__revision__ = None
class Foo(object):
"""block-disable test"""
def __init__(self):
pass
def meth1(self, arg):
"""this issues a message"""
print(self)
def meth2(self, arg):
"""and this one not"""
# pylint: disable=unused-argument
print(self\
+ "foo")
def meth3(self):
"""test one line disabling"""
# no error
print(self.baz) # pylint: disable=no-member
# error
print(self.baz)
Pylint disable entire file
#!/bin/python3
# pylint: skip-file
var = "terrible code down here..."
JSON
JsonLint Config file
- There is no top level configuration file available at this time
JsonLint disable single line
- There is currently No way to disable rules inline of the file(s)
JsonLint disable code block
- There is currently No way to disable rules inline of the file(s)
JsonLint disable entire file
- There is currently No way to disable rules inline of the file(s)
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
- There is no top level configuration file available at this time
Perl disable single line
- There is currently No way to disable rules inline of the file(s)
Perl disable code block
- There is currently No way to disable rules inline of the file(s)
Perl disable entire file
- There is currently No way to disable rules inline of the file(s)
PHP
PHP Config file
- There is no top level configuration file available at this time
PHP disable single line
- There is currently No way to disable rules inline of the file(s)
PHP disable code block
- There is currently No way to disable rules inline of the file(s)
PHP disable entire file
- There is currently No way to disable rules inline of the file(s)
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
.github/linters/.eslintrc.yml
- You can pass multiple rules and overwrite default rules
- File should be located at:
.github/linters/.eslintrc.yml
Javascript eslint disable single line
var thing = new Thing(); // eslint-disable-line no-use-before-define
thing.sayHello();
function Thing() {
this.sayHello = function() { console.log("hello"); };
}
Javascript eslint disable code block
/*eslint-disable */
//suppress all warnings between comments
alert('foo')
/*eslint-enable */
Javascript eslint disable entire file
- Place at the top of the file:
/* eslint-disable */
Javascript standard
Javascript standard Config file
- There is no top level configuration file available at this time
Javascript standard disable single line
- There is currently No way to disable rules inline of the file(s)
Javascript standard disable code block
- There is currently No way to disable rules inline of the file(s)
Javascript standard disable entire file
- There is currently No way to disable rules inline of the file(s)
Typescript eslint
Typescript eslint Config file
.github/linters/.eslintrc.yml
- You can pass multiple rules and overwrite default rules
- File should be located at:
.github/linters/.eslintrc.yml
Typescript eslint disable single line
var thing = new Thing(); // eslint-disable-line no-use-before-define
thing.sayHello();
function Thing() {
this.sayHello = function() { console.log("hello"); };
}
Typescript eslint disable code block
/*eslint-disable */
//suppress all warnings between comments
alert('foo')
/*eslint-enable */
Typescript eslint disable entire file
/* eslint-disable */
Typescript standard
Typescript standard Config file
- There is no top level configuration file available at this time
Typescript standard disable single line
- There is currently No way to disable rules inline of the file(s)
Typescript standard disable code block
- There is currently No way to disable rules inline of the file(s)
Typescript standard disable entire file
- There is currently No way to disable rules inline of the file(s)
Golang
golangci-lint standard Config file
.github/linters/.golangci.yml
- You can pass multiple rules and overwrite default rules
- File should be located at:
.github/linters/.golangci.yml
golangci-lint disable single line
- There is currently No way to disable rules inline of the file(s)
golangci-lint disable code block
- There is currently No way to disable rules inline of the file(s)
golangci-lint disable entire file
- There is currently No way to disable rules inline of the file(s)
Dockerfile
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
.github/linters/.tflint.hcl
- You can pass multiple rules and overwrite default rules
- File should be located at:
.github/linters/.tflint.hcl
tflint disable single line
- There is currently No way to disable rules inline of the file(s)
tflint disable code block
- There is currently No way to disable rules inline of the file(s)
tflint disable entire file
- There is currently No way to disable rules inline of the file(s)
CSS
stylelint standard Config file
.github/linters/.stylelintrc.json
stylelint disable single line
#id {
/* stylelint-disable-next-line declaration-no-important */
color: pink !important;
}
stylelint disable code block
/* stylelint-disable */
a {}
/* stylelint-enable */
stylelint disable entire file
- You can disable entire files with the
ignoreFiles
property in.stylelintrc.json
{
"ignoreFiles": [
"styles/ignored/wildcards/*.css",
"styles/ignored/specific-file.css"
]
}
ENV
dotenv-linter Config file
- There is no top level configuration file available at this time
dotenv-linter disable single line
# Comment line will be ignored
dotenv-linter disable code block
- There is currently No way to disable rules inline of the file(s)
dotenv-linter disable entire file
- There is currently No way to disable rules inline of the file(s)
Kotlin
ktlint Config file
- There is no top level configuration file available at this time
ktlint disable single line
import package.* // ktlint-disable no-wildcard-imports
ktlint disable code block
/* ktlint-disable no-wildcard-imports */
import package.a.*
import package.b.*
/* ktlint-enable no-wildcard-imports */
ktlint disable entire file
- There is currently No way to disable rules inline of the file(s)
OpenAPI
OpenAPI Config file
.github/linters/.openapirc.yml
- You can add, extend, and disable rules
- Documentation at Spectral Custom Rulesets
- File should be located at:
.github/linters/.openapirc.yml
OpenAPI disable single line
- There is currently No way to disable rules inline of the file(s)
OpenAPI disable code block
- There is currently No way to disable rules inline of the file(s)
OpenAPI disable entire file
- There is currently No way to disable rules inline of the file(s)
- However, you can make rule exceptions in the config for individual file(s).
Clojure
- clj-kondo
- Since clj-kondo approaches static analysis in a very Clojure way, it is advised to read the configuration docs
clj-kondo standard Config file
.github/linters/.clj-kondo/config.edn
clj-kondo disable single line
- There is currently No way to disable rules in a single line
clj-kondo disable code block
- There is currently No way to disable rules in a code block
clj-kondo disable entire file
{:output {:exclude-files ["path/to/file"]}}