mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-07 13:14:29 +08:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -32,14 +32,29 @@ function! ale_linters#dockerfile#dockerfile_lint#Handle(buffer, lines) abort
|
|||||||
let l:line = get(l:object, 'line', -1)
|
let l:line = get(l:object, 'line', -1)
|
||||||
let l:message = l:object['message']
|
let l:message = l:object['message']
|
||||||
|
|
||||||
if get(l:object, 'description', 'None') isnot# 'None'
|
let l:link = get(l:object, 'reference_url', '')
|
||||||
let l:message = l:message . '. ' . l:object['description']
|
|
||||||
|
if type(l:link) == v:t_list
|
||||||
|
" Somehow, reference_url is returned as two-part list.
|
||||||
|
" Anchor markers in that list are sometimes duplicated.
|
||||||
|
" See https://github.com/projectatomic/dockerfile_lint/issues/134
|
||||||
|
let l:link = join(l:link, '')
|
||||||
|
let l:link = substitute(l:link, '##', '#', '')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let l:detail = l:message
|
||||||
|
|
||||||
|
if get(l:object, 'description', 'None') isnot# 'None'
|
||||||
|
let l:detail .= "\n\n" . l:object['description']
|
||||||
|
endif
|
||||||
|
|
||||||
|
let l:detail .= "\n\n" . l:link
|
||||||
|
|
||||||
call add(l:messages, {
|
call add(l:messages, {
|
||||||
\ 'lnum': l:line,
|
\ 'lnum': l:line,
|
||||||
\ 'text': l:message,
|
\ 'text': l:message,
|
||||||
\ 'type': ale_linters#dockerfile#dockerfile_lint#GetType(l:type),
|
\ 'type': ale_linters#dockerfile#dockerfile_lint#GetType(l:type),
|
||||||
|
\ 'detail': l:detail,
|
||||||
\})
|
\})
|
||||||
endfor
|
endfor
|
||||||
endfor
|
endfor
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ function! ale#Queue(delay, ...) abort
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:current_ale_version = [2, 6, 0]
|
let s:current_ale_version = [2, 7, 0]
|
||||||
|
|
||||||
" A function used to check for ALE features in files outside of the project.
|
" A function used to check for ALE features in files outside of the project.
|
||||||
function! ale#Has(feature) abort
|
function! ale#Has(feature) abort
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ function! ale#fixers#eslint#ApplyFixForVersion(buffer, version) abort
|
|||||||
" Use --fix-to-stdout with eslint_d
|
" Use --fix-to-stdout with eslint_d
|
||||||
if l:executable =~# 'eslint_d$' && ale#semver#GTE(a:version, [3, 19, 0])
|
if l:executable =~# 'eslint_d$' && ale#semver#GTE(a:version, [3, 19, 0])
|
||||||
return {
|
return {
|
||||||
\ 'command': ale#node#Executable(a:buffer, l:executable)
|
\ 'command': ale#handlers#eslint#GetCdString(a:buffer)
|
||||||
|
\ . ale#node#Executable(a:buffer, l:executable)
|
||||||
\ . ale#Pad(l:options)
|
\ . ale#Pad(l:options)
|
||||||
\ . ' --stdin-filename %s --stdin --fix-to-stdout',
|
\ . ' --stdin-filename %s --stdin --fix-to-stdout',
|
||||||
\ 'process_with': 'ale#fixers#eslint#ProcessEslintDOutput',
|
\ 'process_with': 'ale#fixers#eslint#ProcessEslintDOutput',
|
||||||
@@ -63,7 +64,8 @@ function! ale#fixers#eslint#ApplyFixForVersion(buffer, version) abort
|
|||||||
" 4.9.0 is the first version with --fix-dry-run
|
" 4.9.0 is the first version with --fix-dry-run
|
||||||
if ale#semver#GTE(a:version, [4, 9, 0])
|
if ale#semver#GTE(a:version, [4, 9, 0])
|
||||||
return {
|
return {
|
||||||
\ 'command': ale#node#Executable(a:buffer, l:executable)
|
\ 'command': ale#handlers#eslint#GetCdString(a:buffer)
|
||||||
|
\ . ale#node#Executable(a:buffer, l:executable)
|
||||||
\ . ale#Pad(l:options)
|
\ . ale#Pad(l:options)
|
||||||
\ . ' --stdin-filename %s --stdin --fix-dry-run --format=json',
|
\ . ' --stdin-filename %s --stdin --fix-dry-run --format=json',
|
||||||
\ 'process_with': 'ale#fixers#eslint#ProcessFixDryRunOutput',
|
\ 'process_with': 'ale#fixers#eslint#ProcessFixDryRunOutput',
|
||||||
@@ -71,7 +73,8 @@ function! ale#fixers#eslint#ApplyFixForVersion(buffer, version) abort
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
return {
|
return {
|
||||||
\ 'command': ale#node#Executable(a:buffer, l:executable)
|
\ 'command': ale#handlers#eslint#GetCdString(a:buffer)
|
||||||
|
\ . ale#node#Executable(a:buffer, l:executable)
|
||||||
\ . ale#Pad(l:options)
|
\ . ale#Pad(l:options)
|
||||||
\ . (!empty(l:config) ? ' -c ' . ale#Escape(l:config) : '')
|
\ . (!empty(l:config) ? ' -c ' . ale#Escape(l:config) : '')
|
||||||
\ . ' --fix %t',
|
\ . ' --fix %t',
|
||||||
|
|||||||
@@ -37,11 +37,9 @@ function! ale#handlers#eslint#GetExecutable(buffer) abort
|
|||||||
\])
|
\])
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! ale#handlers#eslint#GetCommand(buffer) abort
|
" Given a buffer, return a command prefix string which changes directory
|
||||||
let l:executable = ale#handlers#eslint#GetExecutable(a:buffer)
|
" as necessary for running ESLint.
|
||||||
|
function! ale#handlers#eslint#GetCdString(buffer) abort
|
||||||
let l:options = ale#Var(a:buffer, 'javascript_eslint_options')
|
|
||||||
|
|
||||||
" ESLint 6 loads plugins/configs/parsers from the project root
|
" ESLint 6 loads plugins/configs/parsers from the project root
|
||||||
" By default, the project root is simply the CWD of the running process.
|
" By default, the project root is simply the CWD of the running process.
|
||||||
" https://github.com/eslint/rfcs/blob/master/designs/2018-simplified-package-loading/README.md
|
" https://github.com/eslint/rfcs/blob/master/designs/2018-simplified-package-loading/README.md
|
||||||
@@ -50,9 +48,16 @@ function! ale#handlers#eslint#GetCommand(buffer) abort
|
|||||||
" Note: If node_modules not present yet, can't load local deps anyway.
|
" Note: If node_modules not present yet, can't load local deps anyway.
|
||||||
let l:modules_dir = ale#path#FindNearestDirectory(a:buffer, 'node_modules')
|
let l:modules_dir = ale#path#FindNearestDirectory(a:buffer, 'node_modules')
|
||||||
let l:project_dir = !empty(l:modules_dir) ? fnamemodify(l:modules_dir, ':h:h') : ''
|
let l:project_dir = !empty(l:modules_dir) ? fnamemodify(l:modules_dir, ':h:h') : ''
|
||||||
let l:cd_command = !empty(l:project_dir) ? ale#path#CdString(l:project_dir) : ''
|
|
||||||
|
|
||||||
return l:cd_command
|
return !empty(l:project_dir) ? ale#path#CdString(l:project_dir) : ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ale#handlers#eslint#GetCommand(buffer) abort
|
||||||
|
let l:executable = ale#handlers#eslint#GetExecutable(a:buffer)
|
||||||
|
|
||||||
|
let l:options = ale#Var(a:buffer, 'javascript_eslint_options')
|
||||||
|
|
||||||
|
return ale#handlers#eslint#GetCdString(a:buffer)
|
||||||
\ . ale#node#Executable(a:buffer, l:executable)
|
\ . ale#node#Executable(a:buffer, l:executable)
|
||||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||||
\ . ' -f json --stdin --stdin-filename %s'
|
\ . ' -f json --stdin --stdin-filename %s'
|
||||||
|
|||||||
@@ -7,8 +7,40 @@ cfn-python-lint *ale-cloudformation-cfn-python-lint*
|
|||||||
|
|
||||||
cfn-python-lint is a linter for AWS CloudFormation template file.
|
cfn-python-lint is a linter for AWS CloudFormation template file.
|
||||||
|
|
||||||
https://github.com/awslabs/cfn-python-lint
|
Website: https://github.com/awslabs/cfn-python-lint
|
||||||
|
|
||||||
|
Installation
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
Install cfn-python-lint using either pip or brew: >
|
||||||
|
|
||||||
|
`pip install cfn-lint`. If pip is not available, run
|
||||||
|
`python setup.py clean --all` then `python setup.py install`.
|
||||||
|
|
||||||
|
Homebrew (macOS):
|
||||||
|
|
||||||
|
`brew install cfn-lint`
|
||||||
|
|
||||||
|
<
|
||||||
|
Configuration
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
To get cloudformation linter to work on only CloudFormation files we must set
|
||||||
|
the buffer |filetype| to yaml.cloudformation.
|
||||||
|
This causes ALE to lint the file with linters configured for cloudformation and
|
||||||
|
yaml files.
|
||||||
|
|
||||||
|
Just put:
|
||||||
|
|
||||||
|
>
|
||||||
|
|
||||||
|
au BufRead,BufNewFile *.template.yaml set filetype=yaml.cloudformation
|
||||||
|
|
||||||
|
<
|
||||||
|
|
||||||
|
on `ftdetect/cloudformation.vim`
|
||||||
|
|
||||||
|
This will get both cloudformation and yaml linters to work on any file with `.template.yaml` ext.
|
||||||
===============================================================================
|
===============================================================================
|
||||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ Execute(The executable path should be correct):
|
|||||||
AssertFixer
|
AssertFixer
|
||||||
\ {
|
\ {
|
||||||
\ 'read_temporary_file': 1,
|
\ 'read_temporary_file': 1,
|
||||||
\ 'command': (has('win32') ? 'node.exe ' : '')
|
\ 'command':
|
||||||
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app'))
|
||||||
|
\ . (has('win32') ? 'node.exe ' : '')
|
||||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
||||||
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/.eslintrc.js'))
|
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/.eslintrc.js'))
|
||||||
\ . ' --fix %t',
|
\ . ' --fix %t',
|
||||||
@@ -150,7 +152,9 @@ Execute(The lower priority configuration file in a nested directory should be pr
|
|||||||
AssertFixer
|
AssertFixer
|
||||||
\ {
|
\ {
|
||||||
\ 'read_temporary_file': 1,
|
\ 'read_temporary_file': 1,
|
||||||
\ 'command': (has('win32') ? 'node.exe ' : '')
|
\ 'command':
|
||||||
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app'))
|
||||||
|
\ . (has('win32') ? 'node.exe ' : '')
|
||||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
||||||
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/subdir-with-config/.eslintrc'))
|
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/subdir-with-config/.eslintrc'))
|
||||||
\ . ' --fix %t',
|
\ . ' --fix %t',
|
||||||
@@ -164,7 +168,9 @@ Execute(--config in options should override configuration file detection for old
|
|||||||
AssertFixer
|
AssertFixer
|
||||||
\ {
|
\ {
|
||||||
\ 'read_temporary_file': 1,
|
\ 'read_temporary_file': 1,
|
||||||
\ 'command': (has('win32') ? 'node.exe ' : '')
|
\ 'command':
|
||||||
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app'))
|
||||||
|
\ . (has('win32') ? 'node.exe ' : '')
|
||||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
||||||
\ . ' --config /foo.cfg'
|
\ . ' --config /foo.cfg'
|
||||||
\ . ' --fix %t',
|
\ . ' --fix %t',
|
||||||
@@ -175,7 +181,9 @@ Execute(--config in options should override configuration file detection for old
|
|||||||
AssertFixer
|
AssertFixer
|
||||||
\ {
|
\ {
|
||||||
\ 'read_temporary_file': 1,
|
\ 'read_temporary_file': 1,
|
||||||
\ 'command': (has('win32') ? 'node.exe ' : '')
|
\ 'command':
|
||||||
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app'))
|
||||||
|
\ . (has('win32') ? 'node.exe ' : '')
|
||||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
||||||
\ . ' -c /foo.cfg'
|
\ . ' -c /foo.cfg'
|
||||||
\ . ' --fix %t',
|
\ . ' --fix %t',
|
||||||
@@ -187,7 +195,9 @@ Execute(package.json should be used as a last resort):
|
|||||||
AssertFixer
|
AssertFixer
|
||||||
\ {
|
\ {
|
||||||
\ 'read_temporary_file': 1,
|
\ 'read_temporary_file': 1,
|
||||||
\ 'command': (has('win32') ? 'node.exe ' : '')
|
\ 'command':
|
||||||
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app'))
|
||||||
|
\ . (has('win32') ? 'node.exe ' : '')
|
||||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
||||||
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/.eslintrc.js'))
|
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/.eslintrc.js'))
|
||||||
\ . ' --fix %t',
|
\ . ' --fix %t',
|
||||||
@@ -199,7 +209,8 @@ Execute(package.json should be used as a last resort):
|
|||||||
\ {
|
\ {
|
||||||
\ 'read_temporary_file': 1,
|
\ 'read_temporary_file': 1,
|
||||||
\ 'command':
|
\ 'command':
|
||||||
\ ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/node_modules/.bin/eslint'))
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files'))
|
||||||
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/node_modules/.bin/eslint'))
|
||||||
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/package.json'))
|
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/package.json'))
|
||||||
\ . ' --fix %t',
|
\ . ' --fix %t',
|
||||||
\ }
|
\ }
|
||||||
@@ -214,7 +225,9 @@ Execute(The version check should be correct):
|
|||||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
||||||
\ . ' --version',
|
\ . ' --version',
|
||||||
\ {
|
\ {
|
||||||
\ 'command': (has('win32') ? 'node.exe ' : '')
|
\ 'command':
|
||||||
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app'))
|
||||||
|
\ . (has('win32') ? 'node.exe ' : '')
|
||||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
||||||
\ . ' --stdin-filename %s --stdin --fix-dry-run --format=json',
|
\ . ' --stdin-filename %s --stdin --fix-dry-run --format=json',
|
||||||
\ 'process_with': 'ale#fixers#eslint#ProcessFixDryRunOutput',
|
\ 'process_with': 'ale#fixers#eslint#ProcessFixDryRunOutput',
|
||||||
@@ -223,7 +236,9 @@ Execute(The version check should be correct):
|
|||||||
|
|
||||||
AssertFixer [
|
AssertFixer [
|
||||||
\ {
|
\ {
|
||||||
\ 'command': (has('win32') ? 'node.exe ' : '')
|
\ 'command':
|
||||||
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app'))
|
||||||
|
\ . (has('win32') ? 'node.exe ' : '')
|
||||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
||||||
\ . ' --stdin-filename %s --stdin --fix-dry-run --format=json',
|
\ . ' --stdin-filename %s --stdin --fix-dry-run --format=json',
|
||||||
\ 'process_with': 'ale#fixers#eslint#ProcessFixDryRunOutput',
|
\ 'process_with': 'ale#fixers#eslint#ProcessFixDryRunOutput',
|
||||||
@@ -236,7 +251,9 @@ Execute(--fix-dry-run should be used for 4.9.0 and up):
|
|||||||
GivenCommandOutput ['4.9.0']
|
GivenCommandOutput ['4.9.0']
|
||||||
AssertFixer
|
AssertFixer
|
||||||
\ {
|
\ {
|
||||||
\ 'command': (has('win32') ? 'node.exe ' : '')
|
\ 'command':
|
||||||
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app'))
|
||||||
|
\ . (has('win32') ? 'node.exe ' : '')
|
||||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
|
||||||
\ . ' --stdin-filename %s --stdin --fix-dry-run --format=json',
|
\ . ' --stdin-filename %s --stdin --fix-dry-run --format=json',
|
||||||
\ 'process_with': 'ale#fixers#eslint#ProcessFixDryRunOutput',
|
\ 'process_with': 'ale#fixers#eslint#ProcessFixDryRunOutput',
|
||||||
@@ -249,7 +266,8 @@ Execute(--fix-to-stdout should be used for eslint_d):
|
|||||||
\ {
|
\ {
|
||||||
\ 'read_temporary_file': 1,
|
\ 'read_temporary_file': 1,
|
||||||
\ 'command':
|
\ 'command':
|
||||||
\ ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/app-with-eslint-d/node_modules/.bin/eslint_d'))
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/app-with-eslint-d'))
|
||||||
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/app-with-eslint-d/node_modules/.bin/eslint_d'))
|
||||||
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/package.json'))
|
\ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/package.json'))
|
||||||
\ . ' --fix %t',
|
\ . ' --fix %t',
|
||||||
\ }
|
\ }
|
||||||
@@ -260,7 +278,8 @@ Execute(--fix-to-stdout should be used for eslint_d):
|
|||||||
AssertFixer
|
AssertFixer
|
||||||
\ {
|
\ {
|
||||||
\ 'command':
|
\ 'command':
|
||||||
\ ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/app-with-eslint-d/node_modules/.bin/eslint_d'))
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/app-with-eslint-d'))
|
||||||
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/app-with-eslint-d/node_modules/.bin/eslint_d'))
|
||||||
\ . ' --stdin-filename %s --stdin --fix-to-stdout',
|
\ . ' --stdin-filename %s --stdin --fix-to-stdout',
|
||||||
\ 'process_with': 'ale#fixers#eslint#ProcessEslintDOutput',
|
\ 'process_with': 'ale#fixers#eslint#ProcessEslintDOutput',
|
||||||
\ }
|
\ }
|
||||||
@@ -270,7 +289,8 @@ Execute(--fix-to-stdout should be used for eslint_d):
|
|||||||
AssertFixer
|
AssertFixer
|
||||||
\ {
|
\ {
|
||||||
\ 'command':
|
\ 'command':
|
||||||
\ ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/app-with-eslint-d/node_modules/.bin/eslint_d'))
|
\ ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files/app-with-eslint-d'))
|
||||||
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/app-with-eslint-d/node_modules/.bin/eslint_d'))
|
||||||
\ . ' --stdin-filename %s --stdin --fix-to-stdout',
|
\ . ' --stdin-filename %s --stdin --fix-to-stdout',
|
||||||
\ 'process_with': 'ale#fixers#eslint#ProcessEslintDOutput',
|
\ 'process_with': 'ale#fixers#eslint#ProcessEslintDOutput',
|
||||||
\ }
|
\ }
|
||||||
|
|||||||
@@ -26,21 +26,25 @@ Execute(The dockerfile_lint handler should handle a normal example):
|
|||||||
\ 'lnum': -1,
|
\ 'lnum': -1,
|
||||||
\ 'type': 'E',
|
\ 'type': 'E',
|
||||||
\ 'text': "Required LABEL name/key 'Name' is not defined",
|
\ 'text': "Required LABEL name/key 'Name' is not defined",
|
||||||
|
\ 'detail': "Required LABEL name/key 'Name' is not defined\n\nhttp://docs.projectatomic.io/container-best-practices/#_recommended_labels_for_your_project",
|
||||||
\ },
|
\ },
|
||||||
\ {
|
\ {
|
||||||
\ 'lnum': -1,
|
\ 'lnum': -1,
|
||||||
\ 'type': 'E',
|
\ 'type': 'E',
|
||||||
\ 'text': "Required LABEL name/key 'Version' is not defined",
|
\ 'text': "Required LABEL name/key 'Version' is not defined",
|
||||||
|
\ 'detail': "Required LABEL name/key 'Version' is not defined\n\nhttp://docs.projectatomic.io/container-best-practices/#_recommended_labels_for_your_project",
|
||||||
\ },
|
\ },
|
||||||
\ {
|
\ {
|
||||||
\ 'lnum': 3,
|
\ 'lnum': 3,
|
||||||
\ 'type': 'I',
|
\ 'type': 'I',
|
||||||
\ 'text': "the MAINTAINER command is deprecated. MAINTAINER is deprecated in favor of using LABEL since Docker v1.13.0",
|
\ 'text': "the MAINTAINER command is deprecated",
|
||||||
|
\ 'detail': "the MAINTAINER command is deprecated\n\nMAINTAINER is deprecated in favor of using LABEL since Docker v1.13.0\n\nhttps://github.com/docker/cli/blob/master/docs/deprecated.md#maintainer-in-dockerfile",
|
||||||
\ },
|
\ },
|
||||||
\ {
|
\ {
|
||||||
\ 'lnum': -1,
|
\ 'lnum': -1,
|
||||||
\ 'type': 'I',
|
\ 'type': 'I',
|
||||||
\ 'text': "There is no 'CMD' instruction",
|
\ 'text': "There is no 'CMD' instruction",
|
||||||
|
\ 'detail': "There is no 'CMD' instruction\n\nhttps://docs.docker.com/engine/reference/builder/#cmd",
|
||||||
\ },
|
\ },
|
||||||
\ ],
|
\ ],
|
||||||
\ ale_linters#dockerfile#dockerfile_lint#Handle(bufnr(''), [
|
\ ale_linters#dockerfile#dockerfile_lint#Handle(bufnr(''), [
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Execute(Checks for versions below the current version should succeed):
|
Execute(Checks for versions below the current version should succeed):
|
||||||
|
AssertEqual 1, ale#Has('ale-2.7.0')
|
||||||
AssertEqual 1, ale#Has('ale-2.6.0')
|
AssertEqual 1, ale#Has('ale-2.6.0')
|
||||||
AssertEqual 1, ale#Has('ale-2.5.0')
|
AssertEqual 1, ale#Has('ale-2.5.0')
|
||||||
AssertEqual 1, ale#Has('ale-2.4.0')
|
AssertEqual 1, ale#Has('ale-2.4.0')
|
||||||
|
|||||||
Reference in New Issue
Block a user