Merge branch 'master' into sources
This commit is contained in:
commit
411a4ec667
54 changed files with 770 additions and 167 deletions
|
@ -29,10 +29,20 @@ function! ale_linters#ansible#ansible_lint#Handle(buffer, version, lines) abort
|
||||||
|
|
||||||
for l:issue in l:linter_issues
|
for l:issue in l:linter_issues
|
||||||
if ale#path#IsBufferPath(a:buffer, l:issue.location.path)
|
if ale#path#IsBufferPath(a:buffer, l:issue.location.path)
|
||||||
|
if exists('l:issue.location.positions')
|
||||||
|
let l:coord_keyname = 'positions'
|
||||||
|
else
|
||||||
|
let l:coord_keyname = 'lines'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let l:column_member = printf(
|
||||||
|
\ 'l:issue.location.%s.begin.column', l:coord_keyname
|
||||||
|
\)
|
||||||
|
|
||||||
call add(l:output, {
|
call add(l:output, {
|
||||||
\ 'lnum': exists('l:issue.location.lines.begin.column') ? l:issue.location.lines.begin.line :
|
\ 'lnum': exists(l:column_member) ? l:issue.location[l:coord_keyname].begin.line :
|
||||||
\ l:issue.location.lines.begin,
|
\ l:issue.location[l:coord_keyname].begin,
|
||||||
\ 'col': exists('l:issue.location.lines.begin.column') ? l:issue.location.lines.begin.column : 0,
|
\ 'col': exists(l:column_member) ? l:issue.location[l:coord_keyname].begin.column : 0,
|
||||||
\ 'text': l:issue.check_name,
|
\ 'text': l:issue.check_name,
|
||||||
\ 'detail': l:issue.description,
|
\ 'detail': l:issue.description,
|
||||||
\ 'code': l:issue.severity,
|
\ 'code': l:issue.severity,
|
||||||
|
|
69
sources_non_forked/ale/ale_linters/bicep/az_bicep.vim
Normal file
69
sources_non_forked/ale/ale_linters/bicep/az_bicep.vim
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
" Author: Carl Smedstad <carl.smedstad at protonmail dot com>
|
||||||
|
" Description: az_bicep for bicep files
|
||||||
|
|
||||||
|
let g:ale_bicep_az_bicep_executable =
|
||||||
|
\ get(g:, 'ale_bicep_az_bicep_executable', 'az')
|
||||||
|
|
||||||
|
let g:ale_bicep_az_bicep_options =
|
||||||
|
\ get(g:, 'ale_bicep_az_bicep_options', '')
|
||||||
|
|
||||||
|
function! ale_linters#bicep#az_bicep#Executable(buffer) abort
|
||||||
|
return ale#Var(a:buffer, 'bicep_az_bicep_executable')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ale_linters#bicep#az_bicep#Command(buffer) abort
|
||||||
|
let l:executable = ale_linters#bicep#az_bicep#Executable(a:buffer)
|
||||||
|
let l:options = ale#Var(a:buffer, 'bicep_az_bicep_options')
|
||||||
|
|
||||||
|
if has('win32')
|
||||||
|
let l:nullfile = 'NUL'
|
||||||
|
else
|
||||||
|
let l:nullfile = '/dev/null'
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ale#Escape(l:executable)
|
||||||
|
\ . ' bicep build --outfile '
|
||||||
|
\ . l:nullfile
|
||||||
|
\ . ' --file '
|
||||||
|
\ . '%s '
|
||||||
|
\ . l:options
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ale_linters#bicep#az_bicep#Handle(buffer, lines) abort
|
||||||
|
let l:pattern = '\v^([A-Z]+)?(:\s)?(.*)\((\d+),(\d+)\)\s:\s([a-zA-Z]*)\s([-a-zA-Z0-9]*):\s(.*)'
|
||||||
|
let l:output = []
|
||||||
|
|
||||||
|
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||||
|
if l:match[1] is# 'ERROR'
|
||||||
|
let l:type = 'E'
|
||||||
|
elseif l:match[1] is# 'WARNING'
|
||||||
|
let l:type = 'W'
|
||||||
|
elseif l:match[6] is# 'Error'
|
||||||
|
let l:type = 'E'
|
||||||
|
elseif l:match[6] is# 'Warning'
|
||||||
|
let l:type = 'W'
|
||||||
|
else
|
||||||
|
let l:type = 'I'
|
||||||
|
endif
|
||||||
|
|
||||||
|
call add(l:output, {
|
||||||
|
\ 'filename': l:match[3],
|
||||||
|
\ 'lnum': l:match[4] + 0,
|
||||||
|
\ 'col': l:match[5] + 0,
|
||||||
|
\ 'type': l:type,
|
||||||
|
\ 'code': l:match[7],
|
||||||
|
\ 'text': l:match[8],
|
||||||
|
\})
|
||||||
|
endfor
|
||||||
|
|
||||||
|
return l:output
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call ale#linter#Define('bicep', {
|
||||||
|
\ 'name': 'az_bicep',
|
||||||
|
\ 'executable': function('ale_linters#bicep#az_bicep#Executable'),
|
||||||
|
\ 'command': function('ale_linters#bicep#az_bicep#Command'),
|
||||||
|
\ 'callback': 'ale_linters#bicep#az_bicep#Handle',
|
||||||
|
\ 'output_stream': 'stderr',
|
||||||
|
\ 'lint_file': 1,
|
||||||
|
\})
|
|
@ -30,24 +30,25 @@ function! ale_linters#bicep#bicep#Command(buffer) abort
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! ale_linters#bicep#bicep#Handle(buffer, lines) abort
|
function! ale_linters#bicep#bicep#Handle(buffer, lines) abort
|
||||||
let l:pattern = '\v^.*\((\d+),(\d+)\)\s:\s([a-zA-Z]*)\s([-a-zA-Z0-9]*):\s(.*)'
|
let l:pattern = '\v^(.*)\((\d+),(\d+)\)\s:\s([a-zA-Z]*)\s([-a-zA-Z0-9]*):\s(.*)'
|
||||||
let l:output = []
|
let l:output = []
|
||||||
|
|
||||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||||
if l:match[3] is# 'Error'
|
if l:match[4] is# 'Error'
|
||||||
let l:type = 'E'
|
let l:type = 'E'
|
||||||
elseif l:match[3] is# 'Warning'
|
elseif l:match[4] is# 'Warning'
|
||||||
let l:type = 'W'
|
let l:type = 'W'
|
||||||
else
|
else
|
||||||
let l:type = 'I'
|
let l:type = 'I'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call add(l:output, {
|
call add(l:output, {
|
||||||
\ 'lnum': l:match[1] + 0,
|
\ 'filename': l:match[1],
|
||||||
\ 'col': l:match[2] + 0,
|
\ 'lnum': l:match[2] + 0,
|
||||||
|
\ 'col': l:match[3] + 0,
|
||||||
\ 'type': l:type,
|
\ 'type': l:type,
|
||||||
\ 'code': l:match[4],
|
\ 'code': l:match[5],
|
||||||
\ 'text': l:match[5],
|
\ 'text': l:match[6],
|
||||||
\})
|
\})
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
|
|
40
sources_non_forked/ale/ale_linters/bzl/buildifier.vim
Normal file
40
sources_non_forked/ale/ale_linters/bzl/buildifier.vim
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
" Author: Chuck Grindel <chuck.grindel@gmail.com>
|
||||||
|
" Description: Bazel Starlark lint support using buildifier.
|
||||||
|
|
||||||
|
function! ale_linters#bzl#buildifier#GetCommand(buffer) abort
|
||||||
|
let l:executable = ale#Escape(ale#fixers#buildifier#GetExecutable(a:buffer))
|
||||||
|
let l:options = ale#Var(a:buffer, 'bazel_buildifier_options')
|
||||||
|
let l:filename = ale#Escape(bufname(a:buffer))
|
||||||
|
|
||||||
|
let l:command = l:executable . ' -mode check -lint warn -path %s'
|
||||||
|
|
||||||
|
if l:options isnot# ''
|
||||||
|
let l:command .= ' ' . l:options
|
||||||
|
endif
|
||||||
|
|
||||||
|
return l:command
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ale_linters#bzl#buildifier#Handle(buffer, lines) abort
|
||||||
|
let l:pattern = '\v^[^:]+:(\d+):(\d+)?:?\s+(syntax error near)?(.+)$'
|
||||||
|
let l:output = []
|
||||||
|
|
||||||
|
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||||
|
call add(l:output, {
|
||||||
|
\ 'lnum': l:match[1] + 0,
|
||||||
|
\ 'col': l:match[2] + 0,
|
||||||
|
\ 'text': l:match[3] . l:match[4],
|
||||||
|
\ 'type': l:match[3] is# 'syntax error near' ? 'E' : 'W',
|
||||||
|
\})
|
||||||
|
endfor
|
||||||
|
|
||||||
|
return l:output
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call ale#linter#Define('bzl', {
|
||||||
|
\ 'name': 'buildifier',
|
||||||
|
\ 'output_stream': 'both',
|
||||||
|
\ 'executable': function('ale#fixers#buildifier#GetExecutable'),
|
||||||
|
\ 'command': function('ale_linters#bzl#buildifier#GetCommand'),
|
||||||
|
\ 'callback': function('ale_linters#bzl#buildifier#Handle'),
|
||||||
|
\})
|
54
sources_non_forked/ale/ale_linters/cairo/sierra.vim
Normal file
54
sources_non_forked/ale/ale_linters/cairo/sierra.vim
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
" Author: 0xHyoga <0xHyoga@gmx.com>
|
||||||
|
" Description: Report Starknet compile to sierra errors in cairo 1.0 code
|
||||||
|
|
||||||
|
call ale#Set('cairo_sierra_executable', 'starknet-compile')
|
||||||
|
call ale#Set('cairo_sierra_options', '')
|
||||||
|
|
||||||
|
function! ale_linters#cairo#sierra#Handle(buffer, lines) abort
|
||||||
|
" Matches patterns like the following:
|
||||||
|
" Error: Expected ';' but got '('
|
||||||
|
" --> /path/to/file/file.cairo:1:10:)
|
||||||
|
let l:pattern = '\v(error|warning): (.*)$'
|
||||||
|
let l:line_and_column_pattern = '\v\.cairo:(\d+):(\d+)'
|
||||||
|
let l:output = []
|
||||||
|
|
||||||
|
for l:line in a:lines
|
||||||
|
let l:match = matchlist(l:line, l:pattern)
|
||||||
|
|
||||||
|
if len(l:match) == 0
|
||||||
|
let l:match = matchlist(l:line, l:line_and_column_pattern)
|
||||||
|
|
||||||
|
if len(l:match) > 0
|
||||||
|
let l:index = len(l:output) - 1
|
||||||
|
let l:output[l:index]['lnum'] = l:match[1] + 0
|
||||||
|
let l:output[l:index]['col'] = l:match[2] + 0
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
let l:isError = l:match[1] is? 'Error'
|
||||||
|
|
||||||
|
call add(l:output, {
|
||||||
|
\ 'lnum': 0,
|
||||||
|
\ 'col': 0,
|
||||||
|
\ 'text': l:match[2],
|
||||||
|
\ 'type': l:isError ? 'E' : 'W',
|
||||||
|
\})
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
|
||||||
|
return l:output
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ale_linters#cairo#sierra#GetCommand(buffer) abort
|
||||||
|
let l:executable = ale#Var(a:buffer, 'cairo_sierra_executable')
|
||||||
|
|
||||||
|
return l:executable . ale#Pad(ale#Var(a:buffer, 'cairo_sierra_options')) . ' %s'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call ale#linter#Define('cairo', {
|
||||||
|
\ 'name': 'sierra',
|
||||||
|
\ 'executable': {b -> ale#Var(b, 'cairo_sierra_executable')},
|
||||||
|
\ 'command': function('ale_linters#cairo#sierra#GetCommand'),
|
||||||
|
\ 'callback': 'ale_linters#cairo#sierra#Handle',
|
||||||
|
\ 'output_stream': 'stderr',
|
||||||
|
\})
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
" Author: 0xHyoga <0xHyoga@gmx.com>
|
" Author: 0xHyoga <0xHyoga@gmx.com>
|
||||||
" Description: Report starknet-compile errors in cairo code
|
" Description: Report starknet-compile errors in cairo code (pre-starknet
|
||||||
|
" 1.0). This is deprecated but kept for backwards compatability.
|
||||||
|
|
||||||
call ale#Set('cairo_starknet_executable', 'starknet-compile')
|
call ale#Set('cairo_starknet_executable', 'starknet-compile')
|
||||||
call ale#Set('cairo_starknet_options', '')
|
call ale#Set('cairo_starknet_options', '')
|
||||||
|
@ -35,3 +36,4 @@ call ale#linter#Define('cairo', {
|
||||||
\ 'callback': 'ale_linters#cairo#starknet#Handle',
|
\ 'callback': 'ale_linters#cairo#starknet#Handle',
|
||||||
\ 'output_stream': 'stderr',
|
\ 'output_stream': 'stderr',
|
||||||
\})
|
\})
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
" Author: Shad
|
||||||
|
" Description: dockerlinter linter for dockerfile
|
||||||
|
|
||||||
|
call ale#Set('dockerfile_dockerlinter_executable', 'dockerlinter')
|
||||||
|
call ale#Set('dockerfile_dockerlinter_options', '')
|
||||||
|
|
||||||
|
function! ale_linters#dockerfile#dockerlinter#GetType(type) abort
|
||||||
|
if a:type is? 'error'
|
||||||
|
return 'E'
|
||||||
|
elseif a:type is? 'warning'
|
||||||
|
return 'W'
|
||||||
|
endif
|
||||||
|
|
||||||
|
return 'I'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ale_linters#dockerfile#dockerlinter#Handle(buffer, lines) abort
|
||||||
|
try
|
||||||
|
let l:data = json_decode(join(a:lines, ''))
|
||||||
|
catch
|
||||||
|
return []
|
||||||
|
endtry
|
||||||
|
|
||||||
|
if empty(l:data)
|
||||||
|
" Should never happen, but it's better to be on the safe side
|
||||||
|
return []
|
||||||
|
endif
|
||||||
|
|
||||||
|
let l:messages = []
|
||||||
|
|
||||||
|
for l:object in l:data
|
||||||
|
let l:line = get(l:object, 'lineNumber', -1)
|
||||||
|
let l:message = l:object['message']
|
||||||
|
let l:type = l:object['level']
|
||||||
|
let l:detail = l:message
|
||||||
|
let l:code = l:object['code']
|
||||||
|
|
||||||
|
if l:code =~# '^SC'
|
||||||
|
let l:link = 'https://www.shellcheck.net/wiki/' . l:code
|
||||||
|
else
|
||||||
|
let l:link = 'https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md#' . l:code
|
||||||
|
endif
|
||||||
|
|
||||||
|
let l:detail = l:message . "\n\n" . l:link
|
||||||
|
|
||||||
|
call add(l:messages, {
|
||||||
|
\ 'lnum': l:line,
|
||||||
|
\ 'code': l:code,
|
||||||
|
\ 'text': l:message,
|
||||||
|
\ 'type': ale_linters#dockerfile#dockerlinter#GetType(l:type),
|
||||||
|
\ 'detail': l:detail,
|
||||||
|
\})
|
||||||
|
endfor
|
||||||
|
|
||||||
|
return l:messages
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ale_linters#dockerfile#dockerlinter#GetCommand(buffer) abort
|
||||||
|
return '%e' . ale#Pad(ale#Var(a:buffer, 'dockerfile_dockerlinter_options'))
|
||||||
|
\ . ' -j -f'
|
||||||
|
\ . ' %t'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call ale#linter#Define('dockerfile', {
|
||||||
|
\ 'name': 'dockerlinter',
|
||||||
|
\ 'executable': {b -> ale#Var(b, 'dockerfile_dockerlinter_executable')},
|
||||||
|
\ 'command': function('ale_linters#dockerfile#dockerlinter#GetCommand'),
|
||||||
|
\ 'callback': 'ale_linters#dockerfile#dockerlinter#Handle',
|
||||||
|
\})
|
|
@ -11,7 +11,7 @@ function! ale_linters#eruby#erb#GetCommand(buffer) abort
|
||||||
" Rails-flavored eRuby does not comply with the standard as understood by
|
" Rails-flavored eRuby does not comply with the standard as understood by
|
||||||
" ERB, so we'll have to do some substitution. This does not reduce the
|
" ERB, so we'll have to do some substitution. This does not reduce the
|
||||||
" effectiveness of the linter—the translated code is still evaluated.
|
" effectiveness of the linter—the translated code is still evaluated.
|
||||||
return 'ruby -r erb -e ' . ale#Escape('puts ERB.new($stdin.read.gsub(%{<%=},%{<%}), nil, %{-}).src') . '< %t | ruby -c'
|
return 'ruby -r erb -e ' . ale#Escape('puts ERB.new($stdin.read.gsub(%{<%=},%{<%}), trim_mode: %{-}).src') . '< %t | ruby -c'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
call ale#linter#Define('eruby', {
|
call ale#linter#Define('eruby', {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
" Author: Sascha Grunert <mail@saschagrunert.de>
|
" Author: Sascha Grunert <mail@saschagrunert.de>
|
||||||
" Description: Adds support of golangci-lint
|
" Description: Adds support of golangci-lint
|
||||||
|
|
||||||
call ale#Set('go_golangci_lint_options', '--enable-all')
|
call ale#Set('go_golangci_lint_options', '')
|
||||||
call ale#Set('go_golangci_lint_executable', 'golangci-lint')
|
call ale#Set('go_golangci_lint_executable', 'golangci-lint')
|
||||||
call ale#Set('go_golangci_lint_package', 0)
|
call ale#Set('go_golangci_lint_package', 0)
|
||||||
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
" Author: neersighted <bjorn@neersighted.com>
|
|
||||||
" Description: golint for Go files
|
|
||||||
|
|
||||||
call ale#Set('go_golint_executable', 'golint')
|
|
||||||
call ale#Set('go_golint_options', '')
|
|
||||||
|
|
||||||
function! ale_linters#go#golint#GetCommand(buffer) abort
|
|
||||||
let l:options = ale#Var(a:buffer, 'go_golint_options')
|
|
||||||
|
|
||||||
return ale#go#EnvString(a:buffer) . '%e'
|
|
||||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
|
||||||
\ . ' %t'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
call ale#linter#Define('go', {
|
|
||||||
\ 'name': 'golint',
|
|
||||||
\ 'output_stream': 'both',
|
|
||||||
\ 'executable': {b -> ale#Var(b, 'go_golint_executable')},
|
|
||||||
\ 'command': function('ale_linters#go#golint#GetCommand'),
|
|
||||||
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
|
|
||||||
\})
|
|
46
sources_non_forked/ale/ale_linters/groovy/npmgroovylint.vim
Normal file
46
sources_non_forked/ale/ale_linters/groovy/npmgroovylint.vim
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
" Author: lucas-str <lucas.sturelle@ik.me>
|
||||||
|
" Description: Integration of npm-groovy-lint for Groovy files.
|
||||||
|
|
||||||
|
call ale#Set('groovy_npmgroovylint_executable', 'npm-groovy-lint')
|
||||||
|
call ale#Set('groovy_npmgroovylint_options', '--loglevel warning')
|
||||||
|
|
||||||
|
function! ale_linters#groovy#npmgroovylint#GetCommand(buffer) abort
|
||||||
|
let l:options = ale#Var(a:buffer, 'groovy_npmgroovylint_options')
|
||||||
|
|
||||||
|
return '%e --failon none --output json'
|
||||||
|
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||||
|
\ . ' %t'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ale_linters#groovy#npmgroovylint#Handle(buffer, lines) abort
|
||||||
|
let l:output = []
|
||||||
|
let l:json = ale#util#FuzzyJSONDecode(a:lines, {})
|
||||||
|
|
||||||
|
for [l:filename, l:file] in items(get(l:json, 'files', {}))
|
||||||
|
for l:error in get(l:file, 'errors', [])
|
||||||
|
let l:output_line = {
|
||||||
|
\ 'filename': l:filename,
|
||||||
|
\ 'lnum': l:error.line,
|
||||||
|
\ 'text': l:error.msg,
|
||||||
|
\ 'type': toupper(l:error.severity[0]),
|
||||||
|
\}
|
||||||
|
|
||||||
|
if has_key(l:error, 'range')
|
||||||
|
let l:output_line.col = l:error.range.start.character
|
||||||
|
let l:output_line.end_col = l:error.range.end.character
|
||||||
|
let l:output_line.end_lnum = l:error.range.end.line
|
||||||
|
endif
|
||||||
|
|
||||||
|
call add(l:output, l:output_line)
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
|
||||||
|
return l:output
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call ale#linter#Define('groovy', {
|
||||||
|
\ 'name': 'npm-groovy-lint',
|
||||||
|
\ 'executable': {b -> ale#Var(b, 'groovy_npmgroovylint_executable')},
|
||||||
|
\ 'command': function('ale_linters#groovy#npmgroovylint#GetCommand'),
|
||||||
|
\ 'callback': 'ale_linters#groovy#npmgroovylint#Handle',
|
||||||
|
\})
|
|
@ -65,7 +65,7 @@ endfunction
|
||||||
function! ale_linters#python#pyright#GetCommand(buffer) abort
|
function! ale_linters#python#pyright#GetCommand(buffer) abort
|
||||||
let l:executable = ale_linters#python#pyright#GetExecutable(a:buffer)
|
let l:executable = ale_linters#python#pyright#GetExecutable(a:buffer)
|
||||||
let l:exec_args = l:executable =~? 'pipenv\|poetry$'
|
let l:exec_args = l:executable =~? 'pipenv\|poetry$'
|
||||||
\ ? ' run pyright'
|
\ ? ' run pyright-langserver'
|
||||||
\ : ''
|
\ : ''
|
||||||
let l:env_string = ''
|
let l:env_string = ''
|
||||||
|
|
||||||
|
|
|
@ -561,6 +561,11 @@ let s:default_registry = {
|
||||||
\ 'suggested_filetypes': ['haskell'],
|
\ 'suggested_filetypes': ['haskell'],
|
||||||
\ 'description': 'A formatter for Haskell source code.',
|
\ 'description': 'A formatter for Haskell source code.',
|
||||||
\ },
|
\ },
|
||||||
|
\ 'fourmolu': {
|
||||||
|
\ 'function': 'ale#fixers#fourmolu#Fix',
|
||||||
|
\ 'suggested_filetypes': ['haskell'],
|
||||||
|
\ 'description': 'A formatter for Haskell source code.',
|
||||||
|
\ },
|
||||||
\ 'jsonnetfmt': {
|
\ 'jsonnetfmt': {
|
||||||
\ 'function': 'ale#fixers#jsonnetfmt#Fix',
|
\ 'function': 'ale#fixers#jsonnetfmt#Fix',
|
||||||
\ 'suggested_filetypes': ['jsonnet'],
|
\ 'suggested_filetypes': ['jsonnet'],
|
||||||
|
@ -605,6 +610,11 @@ let s:default_registry = {
|
||||||
\ 'function': 'ale#fixers#rustywind#Fix',
|
\ 'function': 'ale#fixers#rustywind#Fix',
|
||||||
\ 'suggested_filetypes': ['html'],
|
\ 'suggested_filetypes': ['html'],
|
||||||
\ 'description': 'Sort Tailwind CSS classes',
|
\ 'description': 'Sort Tailwind CSS classes',
|
||||||
|
\ },
|
||||||
|
\ 'npm-groovy-lint': {
|
||||||
|
\ 'function': 'ale#fixers#npmgroovylint#Fix',
|
||||||
|
\ 'suggested_filetypes': ['groovy'],
|
||||||
|
\ 'description': 'Fix Groovy files with npm-groovy-fix.',
|
||||||
\ }
|
\ }
|
||||||
\}
|
\}
|
||||||
|
|
||||||
|
|
20
sources_non_forked/ale/autoload/ale/fixers/fourmolu.vim
Normal file
20
sources_non_forked/ale/autoload/ale/fixers/fourmolu.vim
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
call ale#Set('haskell_fourmolu_executable', 'fourmolu')
|
||||||
|
call ale#Set('haskell_fourmolu_options', '')
|
||||||
|
|
||||||
|
function! ale#fixers#fourmolu#GetExecutable(buffer) abort
|
||||||
|
let l:executable = ale#Var(a:buffer, 'haskell_fourmolu_executable')
|
||||||
|
|
||||||
|
return ale#handlers#haskell_stack#EscapeExecutable(l:executable, 'fourmolu')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! ale#fixers#fourmolu#Fix(buffer) abort
|
||||||
|
let l:executable = ale#fixers#fourmolu#GetExecutable(a:buffer)
|
||||||
|
let l:options = ale#Var(a:buffer, 'haskell_fourmolu_options')
|
||||||
|
|
||||||
|
return {
|
||||||
|
\ 'command': l:executable
|
||||||
|
\ . (empty(l:options) ? '' : ' ' . l:options)
|
||||||
|
\ . ' --stdin-input-file '
|
||||||
|
\ . ale#Escape(@%),
|
||||||
|
\}
|
||||||
|
endfunction
|
16
sources_non_forked/ale/autoload/ale/fixers/npmgroovylint.vim
Normal file
16
sources_non_forked/ale/autoload/ale/fixers/npmgroovylint.vim
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
" Author: lucas-str <lucas.sturelle@ik.me>
|
||||||
|
" Description: Integration of npm-groovy-lint for Groovy files.
|
||||||
|
|
||||||
|
call ale#Set('groovy_npmgroovylint_fix_options', '--fix')
|
||||||
|
|
||||||
|
function! ale#fixers#npmgroovylint#Fix(buffer) abort
|
||||||
|
let l:executable = ale#Var(a:buffer, 'groovy_npmgroovylint_executable')
|
||||||
|
let l:options = ale#Var(a:buffer, 'groovy_npmgroovylint_fix_options')
|
||||||
|
|
||||||
|
return {
|
||||||
|
\ 'command': ale#Escape(l:executable)
|
||||||
|
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||||
|
\ . ' %t',
|
||||||
|
\ 'read_temporary_file': 1,
|
||||||
|
\}
|
||||||
|
endfunction
|
|
@ -42,7 +42,8 @@ let s:default_ale_linters = {
|
||||||
\ 'apkbuild': ['apkbuild_lint', 'secfixes_check'],
|
\ 'apkbuild': ['apkbuild_lint', 'secfixes_check'],
|
||||||
\ 'csh': ['shell'],
|
\ 'csh': ['shell'],
|
||||||
\ 'elixir': ['credo', 'dialyxir', 'dogma'],
|
\ 'elixir': ['credo', 'dialyxir', 'dogma'],
|
||||||
\ 'go': ['gofmt', 'golint', 'gopls', 'govet'],
|
\ 'go': ['gofmt', 'gopls', 'govet'],
|
||||||
|
\ 'groovy': ['npm-groovy-lint'],
|
||||||
\ 'hack': ['hack'],
|
\ 'hack': ['hack'],
|
||||||
\ 'help': [],
|
\ 'help': [],
|
||||||
\ 'inko': ['inko'],
|
\ 'inko': ['inko'],
|
||||||
|
|
|
@ -16,9 +16,28 @@ g:ale_bicep_bicep_executable *g:ale_bicep_bicep_executable*
|
||||||
g:ale_bicep_bicep_options *g:ale_bicep_bicep_options*
|
g:ale_bicep_bicep_options *g:ale_bicep_bicep_options*
|
||||||
*b:ale_bicep_bicep_options*
|
*b:ale_bicep_bicep_options*
|
||||||
Type: |String|
|
Type: |String|
|
||||||
Default: `'build --outfile /dev/null'`
|
Default: `''`
|
||||||
|
|
||||||
This variable can be set to pass additional options to bicep.
|
This variable can be set to pass additional options to bicep.
|
||||||
|
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
az_bicep *ale-bicep-az_bicep*
|
||||||
|
|
||||||
|
g:ale_bicep_az_bicep_executable *g:ale_bicep_az_bicep_executable*
|
||||||
|
*b:ale_bicep_az_bicep_executable*
|
||||||
|
Type: |String|
|
||||||
|
Default: `'az'`
|
||||||
|
|
||||||
|
This variable can be set to change the path to az_bicep.
|
||||||
|
|
||||||
|
|
||||||
|
g:ale_bicep_az_bicep_options *g:ale_bicep_az_bicep_options*
|
||||||
|
*b:ale_bicep_az_bicep_options*
|
||||||
|
Type: |String|
|
||||||
|
Default: `''`
|
||||||
|
|
||||||
|
This variable can be set to pass additional options to az_bicep.
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
||||||
|
|
|
@ -198,8 +198,8 @@ g:ale_c_ccls_init_options *g:ale_c_ccls_init_options*
|
||||||
\ },
|
\ },
|
||||||
\ }
|
\ }
|
||||||
<
|
<
|
||||||
Visit https://github.com/MaskRay/ccls/wiki/Initialization-options for all
|
For all available options and explanations, visit
|
||||||
available options and explanations.
|
https://github.com/MaskRay/ccls/wiki/Customization#initialization-options.
|
||||||
|
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
|
|
@ -25,6 +25,31 @@ g:ale_dockerfile_dockerfile_lint_options
|
||||||
the dockerfile lint invocation - like custom rule file definitions.
|
the dockerfile lint invocation - like custom rule file definitions.
|
||||||
|
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
dockerlinter *ale-dockerfile-dockerlinter*
|
||||||
|
|
||||||
|
g:ale_dockerfile_dockerlinter_executable
|
||||||
|
*g:ale_dockerfile_dockerlinter_executable*
|
||||||
|
*b:ale_dockerfile_dockerlinter_executable*
|
||||||
|
Type: |String|
|
||||||
|
Default: `'dockerlinter'`
|
||||||
|
|
||||||
|
This variable can be changed to specify the executable used to run
|
||||||
|
dockerlinter.
|
||||||
|
|
||||||
|
|
||||||
|
g:ale_dockerfile_dockerlinter_options
|
||||||
|
*g:ale_dockerfile_dockerlinter_options*
|
||||||
|
*b:ale_dockerfile_dockerlinter_options*
|
||||||
|
Type: |String|
|
||||||
|
Default: `''`
|
||||||
|
|
||||||
|
This variable can be changed to add additional command-line arguments to
|
||||||
|
the dockerfile lint invocation - like custom rule file definitions.
|
||||||
|
|
||||||
|
dockerlinter
|
||||||
|
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
dprint *ale-dockerfile-dprint*
|
dprint *ale-dockerfile-dprint*
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,8 @@ ALE Go Integration *ale-go-options*
|
||||||
Integration Information
|
Integration Information
|
||||||
|
|
||||||
The `gometalinter` linter is disabled by default. ALE enables `gofmt`,
|
The `gometalinter` linter is disabled by default. ALE enables `gofmt`,
|
||||||
`golint` and `go vet` by default. It also supports `staticcheck`, `go
|
`gopls`, and `go vet` by default. It also supports `staticcheck, `go
|
||||||
build`, `gosimple`, `golangserver`.
|
build`, `gosimple`, `golangserver`, and `golangci-lint`.
|
||||||
|
|
||||||
To enable `gometalinter`, update |g:ale_linters| as appropriate:
|
To enable `gometalinter`, update |g:ale_linters| as appropriate:
|
||||||
>
|
>
|
||||||
|
@ -120,7 +120,7 @@ g:ale_go_golangci_lint_executable *g:ale_go_golangci_lint_executable*
|
||||||
g:ale_go_golangci_lint_options *g:ale_go_golangci_lint_options*
|
g:ale_go_golangci_lint_options *g:ale_go_golangci_lint_options*
|
||||||
*b:ale_go_golangci_lint_options*
|
*b:ale_go_golangci_lint_options*
|
||||||
Type: |String|
|
Type: |String|
|
||||||
Default: `'--enable-all'`
|
Default: `''`
|
||||||
|
|
||||||
This variable can be changed to alter the command-line arguments to the
|
This variable can be changed to alter the command-line arguments to the
|
||||||
golangci-lint invocation.
|
golangci-lint invocation.
|
||||||
|
@ -175,25 +175,6 @@ g:ale_go_golines_options *g:ale_go_golines_options*
|
||||||
--max-length=100 (lines above 100 characters will be wrapped)
|
--max-length=100 (lines above 100 characters will be wrapped)
|
||||||
|
|
||||||
|
|
||||||
===============================================================================
|
|
||||||
golint *ale-go-golint*
|
|
||||||
|
|
||||||
g:ale_go_golint_executable *g:ale_go_golint_executable*
|
|
||||||
*b:ale_go_golint_executable*
|
|
||||||
Type: |String|
|
|
||||||
Default: `'golint'`
|
|
||||||
|
|
||||||
This variable can be set to change the golint executable path.
|
|
||||||
|
|
||||||
|
|
||||||
g:ale_go_golint_options *g:ale_go_golint_options*
|
|
||||||
*b:ale_go_golint_options*
|
|
||||||
Type: |String|
|
|
||||||
Default: `''`
|
|
||||||
|
|
||||||
This variable can be set to pass additional options to the golint linter.
|
|
||||||
|
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
gometalinter *ale-go-gometalinter*
|
gometalinter *ale-go-gometalinter*
|
||||||
|
|
||||||
|
|
42
sources_non_forked/ale/doc/ale-groovy.txt
Normal file
42
sources_non_forked/ale/doc/ale-groovy.txt
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
===============================================================================
|
||||||
|
ALE Groovy Integration *ale-groovy-options*
|
||||||
|
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
Integration Information
|
||||||
|
|
||||||
|
Linting and fixing of Groovy files is enabled with the integration of
|
||||||
|
`npm-groovy-lint`.
|
||||||
|
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
npm-groovy-lint *ale-groovy-npm-groovy-lint*
|
||||||
|
|
||||||
|
g:ale_groovy_npmgroovylint_executable *g:ale_groovy_npmgroovylint_executable*
|
||||||
|
*b:ale_groovy_npmgroovylint_executable*
|
||||||
|
Type: |String|
|
||||||
|
Default: `'npm-groovy-lint'`
|
||||||
|
|
||||||
|
Location of the npm-groovy-lint binary file.
|
||||||
|
|
||||||
|
|
||||||
|
g:ale_groovy_npmgroovylint_options *g:ale_groovy_npmgroovylint_options*
|
||||||
|
*b:ale_groovy_npmgroovylint_options*
|
||||||
|
Type: |String|
|
||||||
|
Default: `'--loglevel warning'`
|
||||||
|
|
||||||
|
Additional npm-groovy-lint linter options.
|
||||||
|
|
||||||
|
|
||||||
|
g:ale_groovy_npmgroovylint_fix_options *g:ale_groovy_npmgroovylint_fix_options*
|
||||||
|
*b:ale_groovy_npmgroovylint_fix_options*
|
||||||
|
Type: |String|
|
||||||
|
Default: `'--fix'`
|
||||||
|
|
||||||
|
This variable can be used to configure fixing with npm-groovy-lint. It must
|
||||||
|
contain either `--fix` or `--format` for the fixer to work. See
|
||||||
|
`npm-groovy-lint --help` for more information on possible fix rules.
|
||||||
|
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
|
@ -224,5 +224,25 @@ g:ale_haskell_ormolu_options *g:ale_haskell_ormolu_options*
|
||||||
executable.
|
executable.
|
||||||
|
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
fourmolu *ale-haskell-fourmolu*
|
||||||
|
|
||||||
|
g:ale_haskell_fourmolu_executable *g:ale_haskell_fourmolu_executable*
|
||||||
|
*b:ale_haskell_fourmolu_executable*
|
||||||
|
Type: |String|
|
||||||
|
Default: `'fourmolu'`
|
||||||
|
|
||||||
|
This variable can be changed to use a different executable for fourmolu.
|
||||||
|
|
||||||
|
|
||||||
|
g:ale_haskell_fourmolu_options *g:ale_haskell_fourmolu_options*
|
||||||
|
*b:ale_haskell_fourmolu_options*
|
||||||
|
Type: |String|
|
||||||
|
Default: `''`
|
||||||
|
|
||||||
|
This variable can be used to pass extra options to the underlying fourmolu
|
||||||
|
executable.
|
||||||
|
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
||||||
|
|
|
@ -159,6 +159,7 @@ Notes:
|
||||||
* `dhall-lint`
|
* `dhall-lint`
|
||||||
* Dockerfile
|
* Dockerfile
|
||||||
* `dockerfile_lint`
|
* `dockerfile_lint`
|
||||||
|
* `dockerlinter`
|
||||||
* `dprint`
|
* `dprint`
|
||||||
* `hadolint`
|
* `hadolint`
|
||||||
* Elixir
|
* Elixir
|
||||||
|
@ -212,7 +213,6 @@ Notes:
|
||||||
* `golangci-lint`!!
|
* `golangci-lint`!!
|
||||||
* `golangserver`
|
* `golangserver`
|
||||||
* `golines`
|
* `golines`
|
||||||
* `golint`
|
|
||||||
* `gometalinter`!!
|
* `gometalinter`!!
|
||||||
* `gopls`
|
* `gopls`
|
||||||
* `gosimple`!!
|
* `gosimple`!!
|
||||||
|
@ -223,6 +223,8 @@ Notes:
|
||||||
* `eslint`
|
* `eslint`
|
||||||
* `gqlint`
|
* `gqlint`
|
||||||
* `prettier`
|
* `prettier`
|
||||||
|
* Groovy
|
||||||
|
* `npm-groovy-lint`
|
||||||
* Hack
|
* Hack
|
||||||
* `hack`
|
* `hack`
|
||||||
* `hackfmt`
|
* `hackfmt`
|
||||||
|
@ -236,6 +238,7 @@ Notes:
|
||||||
* `cabal-ghc`
|
* `cabal-ghc`
|
||||||
* `cspell`
|
* `cspell`
|
||||||
* `floskell`
|
* `floskell`
|
||||||
|
* `fourmolu`
|
||||||
* `ghc`
|
* `ghc`
|
||||||
* `ghc-mod`
|
* `ghc-mod`
|
||||||
* `hdevtools`
|
* `hdevtools`
|
||||||
|
@ -382,6 +385,7 @@ Notes:
|
||||||
* `nimpretty`
|
* `nimpretty`
|
||||||
* nix
|
* nix
|
||||||
* `alejandra`
|
* `alejandra`
|
||||||
|
* `deadnix`
|
||||||
* `nix-instantiate`
|
* `nix-instantiate`
|
||||||
* `nixfmt`
|
* `nixfmt`
|
||||||
* `nixpkgs-fmt`
|
* `nixpkgs-fmt`
|
||||||
|
|
|
@ -1641,7 +1641,8 @@ g:ale_linters *g:ale_linters*
|
||||||
\ 'apkbuild': ['apkbuild_lint', 'secfixes_check'],
|
\ 'apkbuild': ['apkbuild_lint', 'secfixes_check'],
|
||||||
\ 'csh': ['shell'],
|
\ 'csh': ['shell'],
|
||||||
\ 'elixir': ['credo', 'dialyxir', 'dogma'],
|
\ 'elixir': ['credo', 'dialyxir', 'dogma'],
|
||||||
\ 'go': ['gofmt', 'golint', 'gopls', 'govet'],
|
\ 'go': ['gofmt', 'gopls', 'govet'],
|
||||||
|
\ 'groovy': ['npm-groovy-lint'],
|
||||||
\ 'hack': ['hack'],
|
\ 'hack': ['hack'],
|
||||||
\ 'help': [],
|
\ 'help': [],
|
||||||
\ 'inko': ['inko'],
|
\ 'inko': ['inko'],
|
||||||
|
@ -2858,6 +2859,7 @@ documented in additional help files.
|
||||||
bibclean..............................|ale-bib-bibclean|
|
bibclean..............................|ale-bib-bibclean|
|
||||||
bicep...................................|ale-bicep-options|
|
bicep...................................|ale-bicep-options|
|
||||||
bicep.................................|ale-bicep-bicep|
|
bicep.................................|ale-bicep-bicep|
|
||||||
|
az_bicep..............................|ale-bicep-az_bicep|
|
||||||
bitbake.................................|ale-bitbake-options|
|
bitbake.................................|ale-bitbake-options|
|
||||||
oelint-adv............................|ale-bitbake-oelint_adv|
|
oelint-adv............................|ale-bitbake-oelint_adv|
|
||||||
c.......................................|ale-c-options|
|
c.......................................|ale-c-options|
|
||||||
|
@ -2939,6 +2941,7 @@ documented in additional help files.
|
||||||
dhall-lint............................|ale-dhall-lint|
|
dhall-lint............................|ale-dhall-lint|
|
||||||
dockerfile..............................|ale-dockerfile-options|
|
dockerfile..............................|ale-dockerfile-options|
|
||||||
dockerfile_lint.......................|ale-dockerfile-dockerfile_lint|
|
dockerfile_lint.......................|ale-dockerfile-dockerfile_lint|
|
||||||
|
dockerlinter..........................|ale-dockerfile-dockerlinter|
|
||||||
dprint................................|ale-dockerfile-dprint|
|
dprint................................|ale-dockerfile-dprint|
|
||||||
hadolint..............................|ale-dockerfile-hadolint|
|
hadolint..............................|ale-dockerfile-hadolint|
|
||||||
elixir..................................|ale-elixir-options|
|
elixir..................................|ale-elixir-options|
|
||||||
|
@ -2984,7 +2987,6 @@ documented in additional help files.
|
||||||
golangci-lint.........................|ale-go-golangci-lint|
|
golangci-lint.........................|ale-go-golangci-lint|
|
||||||
golangserver..........................|ale-go-golangserver|
|
golangserver..........................|ale-go-golangserver|
|
||||||
golines...............................|ale-go-golines|
|
golines...............................|ale-go-golines|
|
||||||
golint................................|ale-go-golint|
|
|
||||||
gometalinter..........................|ale-go-gometalinter|
|
gometalinter..........................|ale-go-gometalinter|
|
||||||
gopls.................................|ale-go-gopls|
|
gopls.................................|ale-go-gopls|
|
||||||
govet.................................|ale-go-govet|
|
govet.................................|ale-go-govet|
|
||||||
|
@ -2994,6 +2996,8 @@ documented in additional help files.
|
||||||
eslint................................|ale-graphql-eslint|
|
eslint................................|ale-graphql-eslint|
|
||||||
gqlint................................|ale-graphql-gqlint|
|
gqlint................................|ale-graphql-gqlint|
|
||||||
prettier..............................|ale-graphql-prettier|
|
prettier..............................|ale-graphql-prettier|
|
||||||
|
groovy..................................|ale-groovy-options|
|
||||||
|
npm-groovy-lint.......................|ale-groovy-npm-groovy-lint|
|
||||||
hack....................................|ale-hack-options|
|
hack....................................|ale-hack-options|
|
||||||
hack..................................|ale-hack-hack|
|
hack..................................|ale-hack-hack|
|
||||||
hackfmt...............................|ale-hack-hackfmt|
|
hackfmt...............................|ale-hack-hackfmt|
|
||||||
|
@ -3018,6 +3022,7 @@ documented in additional help files.
|
||||||
stylish-haskell.......................|ale-haskell-stylish-haskell|
|
stylish-haskell.......................|ale-haskell-stylish-haskell|
|
||||||
hie...................................|ale-haskell-hie|
|
hie...................................|ale-haskell-hie|
|
||||||
ormolu................................|ale-haskell-ormolu|
|
ormolu................................|ale-haskell-ormolu|
|
||||||
|
fourmolu..............................|ale-haskell-fourmolu|
|
||||||
hcl.....................................|ale-hcl-options|
|
hcl.....................................|ale-hcl-options|
|
||||||
packer-fmt............................|ale-hcl-packer-fmt|
|
packer-fmt............................|ale-hcl-packer-fmt|
|
||||||
terraform-fmt.........................|ale-hcl-terraform-fmt|
|
terraform-fmt.........................|ale-hcl-terraform-fmt|
|
||||||
|
|
|
@ -168,6 +168,7 @@ formatting.
|
||||||
* [dhall-lint](https://github.com/dhall-lang/dhall-lang)
|
* [dhall-lint](https://github.com/dhall-lang/dhall-lang)
|
||||||
* Dockerfile
|
* Dockerfile
|
||||||
* [dockerfile_lint](https://github.com/projectatomic/dockerfile_lint)
|
* [dockerfile_lint](https://github.com/projectatomic/dockerfile_lint)
|
||||||
|
* [dockerlinter](https://github.com/buddy-works/dockerfile-linter)
|
||||||
* [dprint](https://dprint.dev)
|
* [dprint](https://dprint.dev)
|
||||||
* [hadolint](https://github.com/hadolint/hadolint)
|
* [hadolint](https://github.com/hadolint/hadolint)
|
||||||
* Elixir
|
* Elixir
|
||||||
|
@ -221,7 +222,6 @@ formatting.
|
||||||
* [golangci-lint](https://github.com/golangci/golangci-lint) :warning: :floppy_disk:
|
* [golangci-lint](https://github.com/golangci/golangci-lint) :warning: :floppy_disk:
|
||||||
* [golangserver](https://github.com/sourcegraph/go-langserver) :warning:
|
* [golangserver](https://github.com/sourcegraph/go-langserver) :warning:
|
||||||
* [golines](https://github.com/segmentio/golines)
|
* [golines](https://github.com/segmentio/golines)
|
||||||
* [golint](https://godoc.org/github.com/golang/lint)
|
|
||||||
* [gometalinter](https://github.com/alecthomas/gometalinter) :warning: :floppy_disk:
|
* [gometalinter](https://github.com/alecthomas/gometalinter) :warning: :floppy_disk:
|
||||||
* [gopls](https://github.com/golang/go/wiki/gopls)
|
* [gopls](https://github.com/golang/go/wiki/gopls)
|
||||||
* [gosimple](https://github.com/dominikh/go-tools/tree/master/cmd/gosimple) :warning: :floppy_disk:
|
* [gosimple](https://github.com/dominikh/go-tools/tree/master/cmd/gosimple) :warning: :floppy_disk:
|
||||||
|
@ -232,6 +232,8 @@ formatting.
|
||||||
* [eslint](http://eslint.org/)
|
* [eslint](http://eslint.org/)
|
||||||
* [gqlint](https://github.com/happylinks/gqlint)
|
* [gqlint](https://github.com/happylinks/gqlint)
|
||||||
* [prettier](https://github.com/prettier/prettier)
|
* [prettier](https://github.com/prettier/prettier)
|
||||||
|
* Groovy
|
||||||
|
* [npm-groovy-lint](https://github.com/nvuillam/npm-groovy-lint)
|
||||||
* Hack
|
* Hack
|
||||||
* [hack](http://hacklang.org/)
|
* [hack](http://hacklang.org/)
|
||||||
* [hackfmt](https://github.com/facebook/hhvm/tree/master/hphp/hack/hackfmt)
|
* [hackfmt](https://github.com/facebook/hhvm/tree/master/hphp/hack/hackfmt)
|
||||||
|
@ -245,6 +247,7 @@ formatting.
|
||||||
* [cabal-ghc](https://www.haskell.org/cabal/)
|
* [cabal-ghc](https://www.haskell.org/cabal/)
|
||||||
* [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell)
|
* [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell)
|
||||||
* [floskell](https://github.com/ennocramer/floskell)
|
* [floskell](https://github.com/ennocramer/floskell)
|
||||||
|
* [fourmolu](https://github.com/fourmolu/fourmolu)
|
||||||
* [ghc](https://www.haskell.org/ghc/)
|
* [ghc](https://www.haskell.org/ghc/)
|
||||||
* [ghc-mod](https://github.com/DanielG/ghc-mod)
|
* [ghc-mod](https://github.com/DanielG/ghc-mod)
|
||||||
* [hdevtools](https://hackage.haskell.org/package/hdevtools)
|
* [hdevtools](https://hackage.haskell.org/package/hdevtools)
|
||||||
|
@ -391,6 +394,7 @@ formatting.
|
||||||
* nimpretty
|
* nimpretty
|
||||||
* nix
|
* nix
|
||||||
* [alejandra](https://github.com/kamadorueda/alejandra)
|
* [alejandra](https://github.com/kamadorueda/alejandra)
|
||||||
|
* [deadnix](https://github.com/astro/deadnix)
|
||||||
* [nix-instantiate](http://nixos.org/nix/manual/#sec-nix-instantiate)
|
* [nix-instantiate](http://nixos.org/nix/manual/#sec-nix-instantiate)
|
||||||
* [nixfmt](https://github.com/serokell/nixfmt)
|
* [nixfmt](https://github.com/serokell/nixfmt)
|
||||||
* [nixpkgs-fmt](https://github.com/nix-community/nixpkgs-fmt)
|
* [nixpkgs-fmt](https://github.com/nix-community/nixpkgs-fmt)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
*bufexplorer.txt* Buffer Explorer Last Change: 20 Sept 2022
|
*bufexplorer.txt* Buffer Explorer Last Change: 01 May 2023
|
||||||
|
|
||||||
Buffer Explorer *buffer-explorer* *bufexplorer*
|
Buffer Explorer *buffer-explorer* *bufexplorer*
|
||||||
Version 7.4.25
|
Version 7.4.26
|
||||||
|
|
||||||
Plugin for easily exploring (or browsing) Vim|:buffers|.
|
Plugin for easily exploring (or browsing) Vim|:buffers|.
|
||||||
|
|
||||||
|
@ -263,6 +263,15 @@ The default is 1.
|
||||||
===============================================================================
|
===============================================================================
|
||||||
CHANGE LOG *bufexplorer-changelog*
|
CHANGE LOG *bufexplorer-changelog*
|
||||||
|
|
||||||
|
7.4.26 May 01, 2023
|
||||||
|
What's Changed
|
||||||
|
- wipe explorer buffer on hide by @basharh in
|
||||||
|
https://github.com/jlanzarotta/bufexplorer/pull/111
|
||||||
|
New Contributors
|
||||||
|
- @basharh made their first contribution in
|
||||||
|
https://github.com/jlanzarotta/bufexplorer/pull/111
|
||||||
|
Full Changelog
|
||||||
|
https://github.com/jlanzarotta/bufexplorer/compare/v.7.4.25...v7.4.26
|
||||||
7.4.25 September 20, 2022
|
7.4.25 September 20, 2022
|
||||||
What's Changed
|
What's Changed
|
||||||
- Fix MRU sort order after loading vim session by @mmrwoods in
|
- Fix MRU sort order after loading vim session by @mmrwoods in
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"============================================================================
|
"============================================================================
|
||||||
" Copyright: Copyright (c) 2001-2022, Jeff Lanzarotta
|
" Copyright: Copyright (c) 2001-2023, Jeff Lanzarotta
|
||||||
" All rights reserved.
|
" All rights reserved.
|
||||||
"
|
"
|
||||||
" Redistribution and use in source and binary forms, with or
|
" Redistribution and use in source and binary forms, with or
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
" Name Of File: bufexplorer.vim
|
" Name Of File: bufexplorer.vim
|
||||||
" Description: Buffer Explorer Vim Plugin
|
" Description: Buffer Explorer Vim Plugin
|
||||||
" Maintainer: Jeff Lanzarotta (my name at gmail dot com)
|
" Maintainer: Jeff Lanzarotta (my name at gmail dot com)
|
||||||
" Last Changed: Tuesday, 20 Sept 2022
|
" Last Changed: Monday, 01 May 2023
|
||||||
" Version: See g:bufexplorer_version for version number.
|
" Version: See g:bufexplorer_version for version number.
|
||||||
" Usage: This file should reside in the plugin directory and be
|
" Usage: This file should reside in the plugin directory and be
|
||||||
" automatically sourced.
|
" automatically sourced.
|
||||||
|
@ -74,7 +74,7 @@ endif
|
||||||
"1}}}
|
"1}}}
|
||||||
|
|
||||||
" Version number
|
" Version number
|
||||||
let g:bufexplorer_version = "7.4.25"
|
let g:bufexplorer_version = "7.4.26"
|
||||||
|
|
||||||
" Plugin Code {{{1
|
" Plugin Code {{{1
|
||||||
" Check for Vim version {{{2
|
" Check for Vim version {{{2
|
||||||
|
@ -480,13 +480,12 @@ endfunction
|
||||||
|
|
||||||
" DisplayBufferList {{{2
|
" DisplayBufferList {{{2
|
||||||
function! s:DisplayBufferList()
|
function! s:DisplayBufferList()
|
||||||
" Do not set bufhidden since it wipes out the data if we switch away from
|
|
||||||
" the buffer using CTRL-^.
|
|
||||||
setlocal buftype=nofile
|
setlocal buftype=nofile
|
||||||
setlocal modifiable
|
setlocal modifiable
|
||||||
setlocal noreadonly
|
setlocal noreadonly
|
||||||
setlocal noswapfile
|
setlocal noswapfile
|
||||||
setlocal nowrap
|
setlocal nowrap
|
||||||
|
setlocal bufhidden=wipe
|
||||||
|
|
||||||
call s:SetupSyntax()
|
call s:SetupSyntax()
|
||||||
call s:MapKeys()
|
call s:MapKeys()
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit b6e5624351ba735e25eb8864d7d22819aad00606
|
|
|
@ -5,28 +5,32 @@
|
||||||
These are the default instructions using Vim 8's `|packages|` feature. See
|
These are the default instructions using Vim 8's `|packages|` feature. See
|
||||||
sections below, if you use other plugin managers.
|
sections below, if you use other plugin managers.
|
||||||
|
|
||||||
1. Create theme folder (in case you don't have yet):
|
1. Create theme folder (in case you don't have it yet):
|
||||||
|
|
||||||
|
|
||||||
- \*nix:
|
- \*nix:
|
||||||
```
|
```
|
||||||
|
# vim 8.2+
|
||||||
mkdir -p ~/.vim/pack/themes/start
|
mkdir -p ~/.vim/pack/themes/start
|
||||||
|
# vim 8.0
|
||||||
|
mkdir -p ~/.vim/pack/themes/opt
|
||||||
```
|
```
|
||||||
|
|
||||||
- Windows: create directory `$HOME\vimfiles\pack\themes\start`
|
- Windows: create directory `$HOME\vimfiles\pack\themes\start` or
|
||||||
|
`$HOME\vimfiles\pack\themes\opt`, according to your version.
|
||||||
If you use vim 8.0 (and not 8.2), you may need to use `~/.vim/pack/themes/opt`
|
|
||||||
or `$HOME\vimfiles\pack\themes\opt` instead.
|
|
||||||
|
|
||||||
2. Navigate to the folder above:
|
2. Navigate to the folder above:
|
||||||
|
|
||||||
|
|
||||||
- \*nix:
|
- \*nix:
|
||||||
```
|
```
|
||||||
|
# vim 8.2+
|
||||||
cd ~/.vim/pack/themes/start
|
cd ~/.vim/pack/themes/start
|
||||||
|
# vim 8.0
|
||||||
|
cd ~/.vim/pack/themes/opt
|
||||||
```
|
```
|
||||||
|
|
||||||
- Windows: navigate to `$HOME\vimfiles\pack\themes\start`
|
- Windows: navigate to the directory you created earlier
|
||||||
|
|
||||||
3. Clone the repository using the "dracula" name:
|
3. Clone the repository using the "dracula" name:
|
||||||
|
|
||||||
|
@ -38,7 +42,9 @@ git clone https://github.com/dracula/vim.git dracula
|
||||||
4. Edit your `vimrc` file with the following content:
|
4. Edit your `vimrc` file with the following content:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
if v:version < 802
|
||||||
packadd! dracula
|
packadd! dracula
|
||||||
|
endif
|
||||||
syntax enable
|
syntax enable
|
||||||
colorscheme dracula
|
colorscheme dracula
|
||||||
```
|
```
|
||||||
|
@ -94,4 +100,6 @@ following in `~/.SpaceVim.d/init.toml`:
|
||||||
Note that dracula must be in your `'runtimepath'` to load properly: Version 2.0
|
Note that dracula must be in your `'runtimepath'` to load properly: Version 2.0
|
||||||
introduced autoload functionality for part of the plugin, which doesn't work
|
introduced autoload functionality for part of the plugin, which doesn't work
|
||||||
without `'runtimepath'` properly set. Consult your plugin-managers documentation
|
without `'runtimepath'` properly set. Consult your plugin-managers documentation
|
||||||
to make sure you put dracula on the `'runtimepath'` before loading it.
|
to make sure you put dracula on the `'runtimepath'` before loading it. For
|
||||||
|
`|packages|`, versions 8.2 and later will autoload `start` packages
|
||||||
|
correctly even in your vimrc.
|
||||||
|
|
|
@ -56,9 +56,10 @@ if has('nvim-0.5') && luaeval("pcall(require, 'gitsigns')")
|
||||||
hi! link GitSignsChange DiffChange
|
hi! link GitSignsChange DiffChange
|
||||||
hi! link GitSignsChangeLn DiffChange
|
hi! link GitSignsChangeLn DiffChange
|
||||||
hi! link GitSignsChangeNr DiffChange
|
hi! link GitSignsChangeNr DiffChange
|
||||||
hi! link GitSignsDelete DiffDelete
|
|
||||||
hi! link GitSignsDeleteLn DiffDelete
|
hi! link GitSignsDelete DraculaRed
|
||||||
hi! link GitSignsDeleteNr DiffDelete
|
hi! link GitSignsDeleteLn DraculaRed
|
||||||
|
hi! link GitSignsDeleteNr DraculaRed
|
||||||
endif
|
endif
|
||||||
" }}}
|
" }}}
|
||||||
" Tree-sitter: {{{
|
" Tree-sitter: {{{
|
||||||
|
|
|
@ -7,9 +7,9 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@master
|
uses: actions/checkout@v3
|
||||||
- name: Run vint with reviewdog
|
- name: Run vint with reviewdog
|
||||||
uses: reviewdog/action-vint@v1.0.1
|
uses: reviewdog/action-vint@v1
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.github_token }}
|
github_token: ${{ secrets.github_token }}
|
||||||
reporter: github-pr-review
|
reporter: github-pr-review
|
||||||
|
|
|
@ -15,7 +15,7 @@ setlocal formatoptions-=t formatoptions+=croql
|
||||||
|
|
||||||
setlocal suffixesadd+=.ts,.tsx
|
setlocal suffixesadd+=.ts,.tsx
|
||||||
|
|
||||||
let b:undo_ftplugin = "setl fo< ofu< com< cms<"
|
let b:undo_ftplugin = "setl cms< fo< sua<"
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
|
@ -117,9 +117,9 @@ There's also a variant for searching and a variant for grepping.
|
||||||
## Coercion
|
## Coercion
|
||||||
|
|
||||||
Want to turn `fooBar` into `foo_bar`? Press `crs` (coerce to
|
Want to turn `fooBar` into `foo_bar`? Press `crs` (coerce to
|
||||||
snake\_case). MixedCase (`crm`), camelCase (`crc`), UPPER\_CASE (`cru`),
|
snake\_case). MixedCase (`crm`), camelCase (`crc`), UPPER\_CASE
|
||||||
dash-case (`cr-`), dot.case (`cr.`), space case (`cr<space>`), and
|
(`cru`), dash-case (`cr-`), and dot.case (`cr.`) are all just 3
|
||||||
Title Case (`crt`) are all just 3 keystrokes away.
|
keystrokes away.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
|
|
@ -142,10 +142,6 @@ function! s:dotcase(word)
|
||||||
return substitute(s:snakecase(a:word),'_','.','g')
|
return substitute(s:snakecase(a:word),'_','.','g')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:titlecase(word)
|
|
||||||
return substitute(s:spacecase(a:word), '\(\<\w\)','\=toupper(submatch(1))','g')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
call extend(Abolish, {
|
call extend(Abolish, {
|
||||||
\ 'camelcase': s:function('s:camelcase'),
|
\ 'camelcase': s:function('s:camelcase'),
|
||||||
\ 'mixedcase': s:function('s:mixedcase'),
|
\ 'mixedcase': s:function('s:mixedcase'),
|
||||||
|
@ -154,7 +150,6 @@ call extend(Abolish, {
|
||||||
\ 'dashcase': s:function('s:dashcase'),
|
\ 'dashcase': s:function('s:dashcase'),
|
||||||
\ 'dotcase': s:function('s:dotcase'),
|
\ 'dotcase': s:function('s:dotcase'),
|
||||||
\ 'spacecase': s:function('s:spacecase'),
|
\ 'spacecase': s:function('s:spacecase'),
|
||||||
\ 'titlecase': s:function('s:titlecase')
|
|
||||||
\ }, 'keep')
|
\ }, 'keep')
|
||||||
|
|
||||||
function! s:create_dictionary(lhs,rhs,opts)
|
function! s:create_dictionary(lhs,rhs,opts)
|
||||||
|
@ -574,7 +569,6 @@ call extend(Abolish.Coercions, {
|
||||||
\ 'k': Abolish.dashcase,
|
\ 'k': Abolish.dashcase,
|
||||||
\ '.': Abolish.dotcase,
|
\ '.': Abolish.dotcase,
|
||||||
\ ' ': Abolish.spacecase,
|
\ ' ': Abolish.spacecase,
|
||||||
\ 't': Abolish.titlecase,
|
|
||||||
\ "function missing": s:function("s:unknown_coercion")
|
\ "function missing": s:function("s:unknown_coercion")
|
||||||
\}, "keep")
|
\}, "keep")
|
||||||
|
|
||||||
|
|
|
@ -3188,12 +3188,12 @@ function! fugitive#BufReadCmd(...) abort
|
||||||
setlocal bufhidden=delete
|
setlocal bufhidden=delete
|
||||||
endif
|
endif
|
||||||
let &l:modifiable = modifiable
|
let &l:modifiable = modifiable
|
||||||
|
call fugitive#MapJumps()
|
||||||
if b:fugitive_type !=# 'blob'
|
if b:fugitive_type !=# 'blob'
|
||||||
setlocal filetype=git
|
|
||||||
call s:Map('n', 'a', ":<C-U>let b:fugitive_display_format += v:count1<Bar>exe fugitive#BufReadCmd(@%)<CR>", '<silent>')
|
call s:Map('n', 'a', ":<C-U>let b:fugitive_display_format += v:count1<Bar>exe fugitive#BufReadCmd(@%)<CR>", '<silent>')
|
||||||
call s:Map('n', 'i', ":<C-U>let b:fugitive_display_format -= v:count1<Bar>exe fugitive#BufReadCmd(@%)<CR>", '<silent>')
|
call s:Map('n', 'i', ":<C-U>let b:fugitive_display_format -= v:count1<Bar>exe fugitive#BufReadCmd(@%)<CR>", '<silent>')
|
||||||
|
setlocal filetype=git
|
||||||
endif
|
endif
|
||||||
call fugitive#MapJumps()
|
|
||||||
endtry
|
endtry
|
||||||
|
|
||||||
setlocal modifiable
|
setlocal modifiable
|
||||||
|
@ -4265,7 +4265,7 @@ function! s:ReloadStatusBuffer(...) abort
|
||||||
endif
|
endif
|
||||||
let original_lnum = a:0 ? a:1 : line('.')
|
let original_lnum = a:0 ? a:1 : line('.')
|
||||||
let info = s:StageInfo(original_lnum)
|
let info = s:StageInfo(original_lnum)
|
||||||
call fugitive#BufReadStatus(0)
|
exe fugitive#BufReadStatus(0)
|
||||||
call setpos('.', [0, s:StageSeek(info, original_lnum), 1, 0])
|
call setpos('.', [0, s:StageSeek(info, original_lnum), 1, 0])
|
||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
|
@ -23,7 +23,7 @@ function! FugitiveGitDir(...) abort
|
||||||
return g:fugitive_event
|
return g:fugitive_event
|
||||||
endif
|
endif
|
||||||
let dir = get(b:, 'git_dir', '')
|
let dir = get(b:, 'git_dir', '')
|
||||||
if empty(dir) && (empty(bufname('')) || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|terminal\|prompt\)$')
|
if empty(dir) && (empty(bufname('')) && &filetype !=# 'netrw' || &buftype =~# '^\%(nofile\|acwrite\|quickfix\|terminal\|prompt\)$')
|
||||||
return FugitiveExtractGitDir(getcwd())
|
return FugitiveExtractGitDir(getcwd())
|
||||||
elseif (!exists('b:git_dir') || b:git_dir =~# s:bad_git_dir) && &buftype =~# '^\%(nowrite\)\=$'
|
elseif (!exists('b:git_dir') || b:git_dir =~# s:bad_git_dir) && &buftype =~# '^\%(nowrite\)\=$'
|
||||||
let b:git_dir = FugitiveExtractGitDir(bufnr(''))
|
let b:git_dir = FugitiveExtractGitDir(bufnr(''))
|
||||||
|
@ -425,6 +425,9 @@ function! FugitiveExtractGitDir(path) abort
|
||||||
return get(a:path, 'fugitive_dir', get(a:path, 'git_dir', ''))
|
return get(a:path, 'fugitive_dir', get(a:path, 'git_dir', ''))
|
||||||
elseif type(a:path) == type(0)
|
elseif type(a:path) == type(0)
|
||||||
let path = s:Slash(a:path > 0 ? bufname(a:path) : bufname(''))
|
let path = s:Slash(a:path > 0 ? bufname(a:path) : bufname(''))
|
||||||
|
if getbufvar(a:path, '&filetype') ==# 'netrw'
|
||||||
|
let path = s:Slash(getbufvar(a:path, 'netrw_curdir', path))
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
let path = s:Slash(a:path)
|
let path = s:Slash(a:path)
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -23,6 +23,7 @@ Features:
|
||||||
* Provides fold text showing whether folded lines have been changed.
|
* Provides fold text showing whether folded lines have been changed.
|
||||||
* Can load all hunk locations into quickfix list or the current window's location list.
|
* Can load all hunk locations into quickfix list or the current window's location list.
|
||||||
* Handles line endings correctly, even with repos that do CRLF conversion.
|
* Handles line endings correctly, even with repos that do CRLF conversion.
|
||||||
|
* Handles clean/smudge filters.
|
||||||
* Optional line highlighting.
|
* Optional line highlighting.
|
||||||
* Optional line number highlighting. (Only available in Neovim 0.3.2 or higher)
|
* Optional line number highlighting. (Only available in Neovim 0.3.2 or higher)
|
||||||
* Fully customisable (signs, sign column, line (number) highlights, mappings, extra git-diff arguments, etc).
|
* Fully customisable (signs, sign column, line (number) highlights, mappings, extra git-diff arguments, etc).
|
||||||
|
@ -54,7 +55,7 @@ In the screenshot above you can see:
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
Install using your favourite package manager, or use Vim's built-in package support.
|
First, install using your favourite package manager, or use Vim's built-in package support.
|
||||||
|
|
||||||
Vim:
|
Vim:
|
||||||
|
|
||||||
|
@ -67,7 +68,6 @@ vim -u NONE -c "helptags vim-gitgutter/doc" -c q
|
||||||
|
|
||||||
Neovim:
|
Neovim:
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
mkdir -p ~/.config/nvim/pack/airblade/start
|
mkdir -p ~/.config/nvim/pack/airblade/start
|
||||||
cd ~/.config/nvim/pack/airblade/start
|
cd ~/.config/nvim/pack/airblade/start
|
||||||
|
@ -75,6 +75,12 @@ git clone https://github.com/airblade/vim-gitgutter.git
|
||||||
nvim -u NONE -c "helptags vim-gitgutter/doc" -c q
|
nvim -u NONE -c "helptags vim-gitgutter/doc" -c q
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Second, ensure your `updatetime` and `signcolumn` options are set appropriately.
|
||||||
|
|
||||||
|
When you make a change to a file tracked by git, the diff markers should appear automatically after a short delay. The delay is governed by vim's `updatetime` option; the default value is `4000`, i.e. 4 seconds, but I suggest reducing it to around 100ms (add `set updatetime=100` to your vimrc). Note `updatetime` also controls the delay before vim writes its swap file (see `:help updatetime`).
|
||||||
|
|
||||||
|
The `signcolumn` option can have any value except `'off'`.
|
||||||
|
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
|
@ -92,7 +98,7 @@ Unfortunately I don't know the correct escaping for the path - if you do, please
|
||||||
|
|
||||||
### Getting started
|
### Getting started
|
||||||
|
|
||||||
When you make a change to a file tracked by git, the diff markers should appear automatically. The delay is governed by vim's `updatetime` option; the default value is `4000`, i.e. 4 seconds, but I suggest reducing it to around 100ms (add `set updatetime=100` to your vimrc). Note `updatetime` also controls the delay before vim writes its swap file (see `:help updatetime`).
|
When you make a change to a file tracked by git, the diff markers should appear automatically after a short delay.
|
||||||
|
|
||||||
You can jump between hunks with `[c` and `]c`. You can preview, stage, and undo hunks with `<leader>hp`, `<leader>hs`, and `<leader>hu` respectively.
|
You can jump between hunks with `[c` and `]c`. You can preview, stage, and undo hunks with `<leader>hp`, `<leader>hs`, and `<leader>hu` respectively.
|
||||||
|
|
||||||
|
@ -375,7 +381,7 @@ Similarly to the signs' colours, set up the following highlight groups in your c
|
||||||
GitGutterAddLine " default: links to DiffAdd
|
GitGutterAddLine " default: links to DiffAdd
|
||||||
GitGutterChangeLine " default: links to DiffChange
|
GitGutterChangeLine " default: links to DiffChange
|
||||||
GitGutterDeleteLine " default: links to DiffDelete
|
GitGutterDeleteLine " default: links to DiffDelete
|
||||||
GitGutterChangeDeleteLine " default: links to GitGutterChangeLineDefault, i.e. DiffChange
|
GitGutterChangeDeleteLine " default: links to GitGutterChangeLine, i.e. DiffChange
|
||||||
```
|
```
|
||||||
|
|
||||||
For example, in some colorschemes the `DiffText` highlight group is easier to read than `DiffChange`. You could use it like this:
|
For example, in some colorschemes the `DiffText` highlight group is easier to read than `DiffChange`. You could use it like this:
|
||||||
|
@ -395,7 +401,7 @@ Similarly to the signs' colours, set up the following highlight groups in your c
|
||||||
GitGutterAddLineNr " default: links to CursorLineNr
|
GitGutterAddLineNr " default: links to CursorLineNr
|
||||||
GitGutterChangeLineNr " default: links to CursorLineNr
|
GitGutterChangeLineNr " default: links to CursorLineNr
|
||||||
GitGutterDeleteLineNr " default: links to CursorLineNr
|
GitGutterDeleteLineNr " default: links to CursorLineNr
|
||||||
GitGutterChangeDeleteLineNr " default: links to CursorLineNr
|
GitGutterChangeDeleteLineNr " default: links to GitGutterChangeLineNr
|
||||||
```
|
```
|
||||||
|
|
||||||
Maybe you think `CursorLineNr` is a bit annoying. For example, you could use `Underlined` for this:
|
Maybe you think `CursorLineNr` is a bit annoying. For example, you could use `Underlined` for this:
|
||||||
|
@ -747,5 +753,4 @@ Copyright Andrew Stewart, AirBlade Software Ltd. Released under the MIT licence
|
||||||
|
|
||||||
[pathogen]: https://github.com/tpope/vim-pathogen
|
[pathogen]: https://github.com/tpope/vim-pathogen
|
||||||
[siv]: http://pluralsight.com/training/Courses/TableOfContents/smash-into-vim
|
[siv]: http://pluralsight.com/training/Courses/TableOfContents/smash-into-vim
|
||||||
[airblade]: http://airbladesoftware.com/peepcode-vim
|
|
||||||
[terminus]: https://github.com/wincent/terminus
|
[terminus]: https://github.com/wincent/terminus
|
||||||
|
|
|
@ -46,6 +46,8 @@ function! gitgutter#process_buffer(bufnr, force) abort
|
||||||
call gitgutter#debug#log('Not tracked: '.gitgutter#utility#file(a:bufnr))
|
call gitgutter#debug#log('Not tracked: '.gitgutter#utility#file(a:bufnr))
|
||||||
catch /gitgutter assume unchanged/
|
catch /gitgutter assume unchanged/
|
||||||
call gitgutter#debug#log('Assume unchanged: '.gitgutter#utility#file(a:bufnr))
|
call gitgutter#debug#log('Assume unchanged: '.gitgutter#utility#file(a:bufnr))
|
||||||
|
catch /gitgutter file unknown in base/
|
||||||
|
let diff = gitgutter#diff#hunk_header_showing_every_line_added(a:bufnr)
|
||||||
catch /gitgutter diff failed/
|
catch /gitgutter diff failed/
|
||||||
call gitgutter#debug#log('Diff failed: '.gitgutter#utility#file(a:bufnr))
|
call gitgutter#debug#log('Diff failed: '.gitgutter#utility#file(a:bufnr))
|
||||||
call gitgutter#hunk#reset(a:bufnr)
|
call gitgutter#hunk#reset(a:bufnr)
|
||||||
|
@ -117,6 +119,16 @@ endfunction
|
||||||
|
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
|
|
||||||
|
function! gitgutter#git()
|
||||||
|
if empty(g:gitgutter_git_args)
|
||||||
|
return g:gitgutter_git_executable
|
||||||
|
else
|
||||||
|
return g:gitgutter_git_executable.' '.g:gitgutter_git_args
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! gitgutter#setup_maps()
|
function! gitgutter#setup_maps()
|
||||||
if !g:gitgutter_map_keys
|
if !g:gitgutter_map_keys
|
||||||
return
|
return
|
||||||
|
@ -193,14 +205,14 @@ endfunction
|
||||||
" - it ignores unsaved changes in buffers
|
" - it ignores unsaved changes in buffers
|
||||||
" - it does not change to the repo root
|
" - it does not change to the repo root
|
||||||
function! gitgutter#quickfix(current_file)
|
function! gitgutter#quickfix(current_file)
|
||||||
let cmd = g:gitgutter_git_executable.' '.g:gitgutter_git_args.' rev-parse --show-cdup'
|
let cmd = gitgutter#git().' rev-parse --show-cdup'
|
||||||
let path_to_repo = get(systemlist(cmd), 0, '')
|
let path_to_repo = get(systemlist(cmd), 0, '')
|
||||||
if !empty(path_to_repo) && path_to_repo[-1:] != '/'
|
if !empty(path_to_repo) && path_to_repo[-1:] != '/'
|
||||||
let path_to_repo .= '/'
|
let path_to_repo .= '/'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let locations = []
|
let locations = []
|
||||||
let cmd = g:gitgutter_git_executable.' '.g:gitgutter_git_args.' --no-pager'.
|
let cmd = gitgutter#git().' --no-pager'.
|
||||||
\ ' diff --no-ext-diff --no-color -U0'.
|
\ ' diff --no-ext-diff --no-color -U0'.
|
||||||
\ ' --src-prefix=a/'.path_to_repo.' --dst-prefix=b/'.path_to_repo.' '.
|
\ ' --src-prefix=a/'.path_to_repo.' --dst-prefix=b/'.path_to_repo.' '.
|
||||||
\ g:gitgutter_diff_args. ' '. g:gitgutter_diff_base
|
\ g:gitgutter_diff_args. ' '. g:gitgutter_diff_base
|
||||||
|
@ -249,7 +261,7 @@ function! gitgutter#difforig()
|
||||||
if g:gitgutter_diff_relative_to ==# 'index'
|
if g:gitgutter_diff_relative_to ==# 'index'
|
||||||
let index_name = gitgutter#utility#get_diff_base(bufnr).':'.path
|
let index_name = gitgutter#utility#get_diff_base(bufnr).':'.path
|
||||||
let cmd = gitgutter#utility#cd_cmd(bufnr,
|
let cmd = gitgutter#utility#cd_cmd(bufnr,
|
||||||
\ g:gitgutter_git_executable.' '.g:gitgutter_git_args.' --no-pager show '.index_name
|
\ gitgutter#git().' --no-pager show '.index_name
|
||||||
\ )
|
\ )
|
||||||
" NOTE: this uses &shell to execute cmd. Perhaps we should use instead
|
" NOTE: this uses &shell to execute cmd. Perhaps we should use instead
|
||||||
" gitgutter#utility's use_known_shell() / restore_shell() functions.
|
" gitgutter#utility's use_known_shell() / restore_shell() functions.
|
||||||
|
|
|
@ -75,23 +75,21 @@ function! gitgutter#debug#log(message, ...) abort
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
execute 'redir >> '.s:log_file
|
|
||||||
if s:new_log_session
|
if s:new_log_session
|
||||||
let s:start = reltime()
|
let s:start = reltime()
|
||||||
silent echo "\n==== start log session ===="
|
call writefile(['', '========== start log session '.strftime('%d.%m.%Y %H:%M:%S').' =========='], s:log_file, 'a')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let elapsed = reltimestr(reltime(s:start)).' '
|
let elapsed = reltimestr(reltime(s:start)).' '
|
||||||
silent echo ''
|
call writefile([''], s:log_file, 'a')
|
||||||
" callers excluding this function
|
" callers excluding this function
|
||||||
silent echo elapsed.expand('<sfile>')[:-22].':'
|
call writefile([elapsed.expand('<sfile>')[:-22].':'], s:log_file, 'a')
|
||||||
silent echo elapsed.s:format_for_log(a:message)
|
call writefile([elapsed.s:format_for_log(a:message)], s:log_file, 'a')
|
||||||
if a:0 && !empty(a:1)
|
if a:0 && !empty(a:1)
|
||||||
for msg in a:000
|
for msg in a:000
|
||||||
silent echo elapsed.s:format_for_log(msg)
|
call writefile([elapsed.s:format_for_log(msg)], s:log_file, 'a')
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
redir END
|
|
||||||
|
|
||||||
let s:new_log_session = 0
|
let s:new_log_session = 0
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -6,7 +6,7 @@ let s:hunk_re = '^@@ -\(\d\+\),\?\(\d*\) +\(\d\+\),\?\(\d*\) @@'
|
||||||
|
|
||||||
" True for git v1.7.2+.
|
" True for git v1.7.2+.
|
||||||
function! s:git_supports_command_line_config_override() abort
|
function! s:git_supports_command_line_config_override() abort
|
||||||
call gitgutter#utility#system(g:gitgutter_git_executable.' '.g:gitgutter_git_args.' -c foo.bar=baz --version')
|
call gitgutter#utility#system(gitgutter#git().' -c foo.bar=baz --version')
|
||||||
return !v:shell_error
|
return !v:shell_error
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
@ -81,6 +81,20 @@ function! gitgutter#diff#run_diff(bufnr, from, preserve_full_diff) abort
|
||||||
throw 'gitgutter assume unchanged'
|
throw 'gitgutter assume unchanged'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" If we are diffing against a specific branch/commit, handle the case
|
||||||
|
" where a file exists on the current branch but not in/at the diff base.
|
||||||
|
" We have to handle it here because the approach below (using git-show)
|
||||||
|
" doesn't work for this case.
|
||||||
|
if !empty(g:gitgutter_diff_base)
|
||||||
|
let index_name = gitgutter#utility#get_diff_base(a:bufnr).':'.gitgutter#utility#repo_path(a:bufnr, 1)
|
||||||
|
let cmd = gitgutter#git().' --no-pager show '.index_name
|
||||||
|
let cmd = gitgutter#utility#cd_cmd(a:bufnr, cmd)
|
||||||
|
call gitgutter#utility#system(cmd)
|
||||||
|
if v:shell_error
|
||||||
|
throw 'gitgutter file unknown in base'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
" Wrap compound commands in parentheses to make Windows happy.
|
" Wrap compound commands in parentheses to make Windows happy.
|
||||||
" bash doesn't mind the parentheses.
|
" bash doesn't mind the parentheses.
|
||||||
let cmd = '('
|
let cmd = '('
|
||||||
|
@ -124,14 +138,14 @@ function! gitgutter#diff#run_diff(bufnr, from, preserve_full_diff) abort
|
||||||
|
|
||||||
" Write file from index to temporary file.
|
" Write file from index to temporary file.
|
||||||
let index_name = gitgutter#utility#get_diff_base(a:bufnr).':'.gitgutter#utility#repo_path(a:bufnr, 1)
|
let index_name = gitgutter#utility#get_diff_base(a:bufnr).':'.gitgutter#utility#repo_path(a:bufnr, 1)
|
||||||
let cmd .= g:gitgutter_git_executable.' '.g:gitgutter_git_args.' --no-pager show '.index_name.' > '.from_file.' && '
|
let cmd .= gitgutter#git().' --no-pager show --textconv '.index_name.' > '.from_file.' && '
|
||||||
|
|
||||||
elseif a:from ==# 'working_tree'
|
elseif a:from ==# 'working_tree'
|
||||||
let from_file = gitgutter#utility#repo_path(a:bufnr, 1)
|
let from_file = gitgutter#utility#repo_path(a:bufnr, 1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Call git-diff.
|
" Call git-diff.
|
||||||
let cmd .= g:gitgutter_git_executable.' '.g:gitgutter_git_args.' --no-pager'
|
let cmd .= gitgutter#git().' --no-pager'
|
||||||
if s:c_flag
|
if s:c_flag
|
||||||
let cmd .= ' -c "diff.autorefreshindex=0"'
|
let cmd .= ' -c "diff.autorefreshindex=0"'
|
||||||
let cmd .= ' -c "diff.noprefix=false"'
|
let cmd .= ' -c "diff.noprefix=false"'
|
||||||
|
@ -376,6 +390,12 @@ function! gitgutter#diff#hunk_diff(bufnr, full_diff, ...)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! gitgutter#diff#hunk_header_showing_every_line_added(bufnr)
|
||||||
|
let buf_line_count = getbufinfo(a:bufnr)[0].linecount
|
||||||
|
return '@@ -0,0 +1,'.buf_line_count.' @@'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! s:write_buffer(bufnr, file)
|
function! s:write_buffer(bufnr, file)
|
||||||
let bufcontents = getbufline(a:bufnr, 1, '$')
|
let bufcontents = getbufline(a:bufnr, 1, '$')
|
||||||
|
|
||||||
|
@ -387,7 +407,13 @@ function! s:write_buffer(bufnr, file)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if getbufvar(a:bufnr, '&fileformat') ==# 'dos'
|
if getbufvar(a:bufnr, '&fileformat') ==# 'dos'
|
||||||
|
if getbufvar(a:bufnr, '&endofline')
|
||||||
call map(bufcontents, 'v:val."\r"')
|
call map(bufcontents, 'v:val."\r"')
|
||||||
|
else
|
||||||
|
for i in range(len(bufcontents) - 1)
|
||||||
|
let bufcontents[i] = bufcontents[i] . "\r"
|
||||||
|
endfor
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if getbufvar(a:bufnr, '&endofline')
|
if getbufvar(a:bufnr, '&endofline')
|
||||||
|
|
|
@ -106,7 +106,7 @@ function! gitgutter#highlight#define_highlights() abort
|
||||||
highlight default link GitGutterAddLineNr CursorLineNr
|
highlight default link GitGutterAddLineNr CursorLineNr
|
||||||
highlight default link GitGutterChangeLineNr CursorLineNr
|
highlight default link GitGutterChangeLineNr CursorLineNr
|
||||||
highlight default link GitGutterDeleteLineNr CursorLineNr
|
highlight default link GitGutterDeleteLineNr CursorLineNr
|
||||||
highlight default link GitGutterChangeDeleteLineNr CursorLineNr
|
highlight default link GitGutterChangeDeleteLineNr GitGutterChangeLineNr
|
||||||
|
|
||||||
" Highlights used intra line.
|
" Highlights used intra line.
|
||||||
highlight default GitGutterAddIntraLine gui=reverse cterm=reverse
|
highlight default GitGutterAddIntraLine gui=reverse cterm=reverse
|
||||||
|
|
|
@ -294,11 +294,32 @@ endfunction
|
||||||
|
|
||||||
function! s:stage(hunk_diff)
|
function! s:stage(hunk_diff)
|
||||||
let bufnr = bufnr('')
|
let bufnr = bufnr('')
|
||||||
|
|
||||||
|
if gitgutter#utility#clean_smudge_filter_applies(bufnr)
|
||||||
|
let choice = input('File uses clean/smudge filter. Stage entire file (y/n)? ')
|
||||||
|
normal! :<ESC>
|
||||||
|
if choice =~ 'y'
|
||||||
|
" We are about to add the file to the index so write the buffer to
|
||||||
|
" ensure the file on disk matches it (the buffer).
|
||||||
|
write
|
||||||
|
let path = gitgutter#utility#repo_path(bufnr, 1)
|
||||||
|
" Add file to index.
|
||||||
|
let cmd = gitgutter#utility#cd_cmd(bufnr,
|
||||||
|
\ gitgutter#git().' add '.
|
||||||
|
\ gitgutter#utility#shellescape(gitgutter#utility#filename(bufnr)))
|
||||||
|
call gitgutter#utility#system(cmd)
|
||||||
|
else
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
else
|
||||||
let diff = s:adjust_header(bufnr, a:hunk_diff)
|
let diff = s:adjust_header(bufnr, a:hunk_diff)
|
||||||
" Apply patch to index.
|
" Apply patch to index.
|
||||||
call gitgutter#utility#system(
|
call gitgutter#utility#system(
|
||||||
\ gitgutter#utility#cd_cmd(bufnr, g:gitgutter_git_executable.' '.g:gitgutter_git_args.' apply --cached --unidiff-zero - '),
|
\ gitgutter#utility#cd_cmd(bufnr, gitgutter#git().' apply --cached --unidiff-zero - '),
|
||||||
\ diff)
|
\ diff)
|
||||||
|
endif
|
||||||
|
|
||||||
if v:shell_error
|
if v:shell_error
|
||||||
call gitgutter#utility#warn('Patch does not apply')
|
call gitgutter#utility#warn('Patch does not apply')
|
||||||
else
|
else
|
||||||
|
@ -422,6 +443,9 @@ endfunction
|
||||||
" Floating window: does not move cursor to floating window.
|
" Floating window: does not move cursor to floating window.
|
||||||
" Preview window: moves cursor to preview window.
|
" Preview window: moves cursor to preview window.
|
||||||
function! s:open_hunk_preview_window()
|
function! s:open_hunk_preview_window()
|
||||||
|
let source_wrap = &wrap
|
||||||
|
let source_window = winnr()
|
||||||
|
|
||||||
if g:gitgutter_preview_win_floating
|
if g:gitgutter_preview_win_floating
|
||||||
if exists('*nvim_open_win')
|
if exists('*nvim_open_win')
|
||||||
call gitgutter#hunk#close_hunk_preview_window()
|
call gitgutter#hunk#close_hunk_preview_window()
|
||||||
|
@ -429,6 +453,7 @@ function! s:open_hunk_preview_window()
|
||||||
let buf = nvim_create_buf(v:false, v:false)
|
let buf = nvim_create_buf(v:false, v:false)
|
||||||
" Set default width and height for now.
|
" Set default width and height for now.
|
||||||
let s:winid = nvim_open_win(buf, v:false, g:gitgutter_floating_window_options)
|
let s:winid = nvim_open_win(buf, v:false, g:gitgutter_floating_window_options)
|
||||||
|
call nvim_win_set_option(s:winid, 'wrap', source_wrap ? v:true : v:false)
|
||||||
call nvim_buf_set_option(buf, 'filetype', 'diff')
|
call nvim_buf_set_option(buf, 'filetype', 'diff')
|
||||||
call nvim_buf_set_option(buf, 'buftype', 'acwrite')
|
call nvim_buf_set_option(buf, 'buftype', 'acwrite')
|
||||||
call nvim_buf_set_option(buf, 'bufhidden', 'delete')
|
call nvim_buf_set_option(buf, 'bufhidden', 'delete')
|
||||||
|
@ -458,6 +483,7 @@ function! s:open_hunk_preview_window()
|
||||||
let s:winid = popup_create('', g:gitgutter_floating_window_options)
|
let s:winid = popup_create('', g:gitgutter_floating_window_options)
|
||||||
|
|
||||||
call setbufvar(winbufnr(s:winid), '&filetype', 'diff')
|
call setbufvar(winbufnr(s:winid), '&filetype', 'diff')
|
||||||
|
call setwinvar(s:winid, '&wrap', source_wrap)
|
||||||
|
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
@ -479,11 +505,13 @@ function! s:open_hunk_preview_window()
|
||||||
let s:preview_bufnr = bufnr('')
|
let s:preview_bufnr = bufnr('')
|
||||||
endif
|
endif
|
||||||
setlocal filetype=diff buftype=acwrite bufhidden=delete
|
setlocal filetype=diff buftype=acwrite bufhidden=delete
|
||||||
|
let &l:wrap = source_wrap
|
||||||
|
let b:source_window = source_window
|
||||||
" Reset some defaults in case someone else has changed them.
|
" Reset some defaults in case someone else has changed them.
|
||||||
setlocal noreadonly modifiable noswapfile
|
setlocal noreadonly modifiable noswapfile
|
||||||
if g:gitgutter_close_preview_on_escape
|
if g:gitgutter_close_preview_on_escape
|
||||||
" Ensure cursor goes to the expected window.
|
" Ensure cursor goes to the expected window.
|
||||||
nnoremap <buffer> <silent> <Esc> :<C-U>wincmd p<Bar>pclose<CR>
|
nnoremap <buffer> <silent> <Esc> :<C-U>execute b:source_window . "wincmd w"<Bar>pclose<CR>
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists('&previewpopup')
|
if exists('&previewpopup')
|
||||||
|
@ -594,7 +622,7 @@ endfunction
|
||||||
|
|
||||||
|
|
||||||
function! s:goto_original_window()
|
function! s:goto_original_window()
|
||||||
noautocmd wincmd p
|
noautocmd execute b:source_window . "wincmd w"
|
||||||
doautocmd WinEnter
|
doautocmd WinEnter
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
|
@ -150,9 +150,8 @@ function! gitgutter#utility#set_repo_path(bufnr, continuation) abort
|
||||||
|
|
||||||
call gitgutter#utility#setbufvar(a:bufnr, 'path', -1)
|
call gitgutter#utility#setbufvar(a:bufnr, 'path', -1)
|
||||||
let cmd = gitgutter#utility#cd_cmd(a:bufnr,
|
let cmd = gitgutter#utility#cd_cmd(a:bufnr,
|
||||||
\ g:gitgutter_git_executable.' '.g:gitgutter_git_args.
|
\ gitgutter#git().' ls-files -v --error-unmatch --full-name -z -- '.
|
||||||
\ ' ls-files -v --error-unmatch --full-name -z -- '.
|
\ gitgutter#utility#shellescape(gitgutter#utility#filename(a:bufnr)))
|
||||||
\ gitgutter#utility#shellescape(s:filename(a:bufnr)))
|
|
||||||
|
|
||||||
if g:gitgutter_async && gitgutter#async#available() && !has('vim_starting')
|
if g:gitgutter_async && gitgutter#async#available() && !has('vim_starting')
|
||||||
let handler = copy(s:set_path_handler)
|
let handler = copy(s:set_path_handler)
|
||||||
|
@ -178,6 +177,20 @@ function! gitgutter#utility#set_repo_path(bufnr, continuation) abort
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! gitgutter#utility#clean_smudge_filter_applies(bufnr)
|
||||||
|
let filtered = gitgutter#utility#getbufvar(a:bufnr, 'filter', -1)
|
||||||
|
if filtered == -1
|
||||||
|
let cmd = gitgutter#utility#cd_cmd(a:bufnr,
|
||||||
|
\ gitgutter#git().' check-attr filter -- '.
|
||||||
|
\ gitgutter#utility#shellescape(gitgutter#utility#filename(a:bufnr)))
|
||||||
|
let out = gitgutter#utility#system(cmd)
|
||||||
|
let filtered = out !~ 'unspecified'
|
||||||
|
call gitgutter#utility#setbufvar(a:bufnr, 'filter', filtered)
|
||||||
|
endif
|
||||||
|
return filtered
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! gitgutter#utility#cd_cmd(bufnr, cmd) abort
|
function! gitgutter#utility#cd_cmd(bufnr, cmd) abort
|
||||||
let cd = s:unc_path(a:bufnr) ? 'pushd' : (gitgutter#utility#windows() && s:dos_shell() ? 'cd /d' : 'cd')
|
let cd = s:unc_path(a:bufnr) ? 'pushd' : (gitgutter#utility#windows() && s:dos_shell() ? 'cd /d' : 'cd')
|
||||||
return cd.' '.s:dir(a:bufnr).' && '.a:cmd
|
return cd.' '.s:dir(a:bufnr).' && '.a:cmd
|
||||||
|
@ -233,7 +246,7 @@ function! s:dir(bufnr) abort
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Not shellescaped.
|
" Not shellescaped.
|
||||||
function! s:filename(bufnr) abort
|
function! gitgutter#utility#filename(bufnr) abort
|
||||||
return fnamemodify(s:abs_path(a:bufnr, 0), ':t')
|
return fnamemodify(s:abs_path(a:bufnr, 0), ':t')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,8 @@ one in 2013.
|
||||||
===============================================================================
|
===============================================================================
|
||||||
INSTALLATION *gitgutter-installation*
|
INSTALLATION *gitgutter-installation*
|
||||||
|
|
||||||
Use your favourite package manager, or use Vim's built-in package support.
|
First, use your favourite package manager, or use Vim's built-in package
|
||||||
|
support.
|
||||||
|
|
||||||
Vim:~
|
Vim:~
|
||||||
>
|
>
|
||||||
|
@ -59,6 +60,16 @@ Neovim:~
|
||||||
nvim -u NONE -c "helptags vim-gitgutter/doc" -c q
|
nvim -u NONE -c "helptags vim-gitgutter/doc" -c q
|
||||||
<
|
<
|
||||||
|
|
||||||
|
Second, ensure your 'updatetime' and 'signcolumn' options are set appropriately.
|
||||||
|
|
||||||
|
When you make a change to a file tracked by git, the diff markers should
|
||||||
|
appear automatically after a short delay. The delay is governed by vim's
|
||||||
|
'updatetime' option; the default value is `4000`, i.e. 4 seconds, but I
|
||||||
|
suggest reducing it to around 100ms (add `set updatetime=100` to your vimrc).
|
||||||
|
Note 'updatetime' also controls the delay before vim writes its swap file.
|
||||||
|
|
||||||
|
The 'signcolumn' option can have any value except "off".
|
||||||
|
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
WINDOWS *gitgutter-windows*
|
WINDOWS *gitgutter-windows*
|
||||||
|
@ -635,7 +646,7 @@ colorscheme or |vimrc|:
|
||||||
GitGutterAddLine " default: links to DiffAdd
|
GitGutterAddLine " default: links to DiffAdd
|
||||||
GitGutterChangeLine " default: links to DiffChange
|
GitGutterChangeLine " default: links to DiffChange
|
||||||
GitGutterDeleteLine " default: links to DiffDelete
|
GitGutterDeleteLine " default: links to DiffDelete
|
||||||
GitGutterChangeDeleteLine " default: links to GitGutterChangeLineDefault
|
GitGutterChangeDeleteLine " default: links to GitGutterChangeLine
|
||||||
<
|
<
|
||||||
|
|
||||||
For example, to use |hl-DiffText| instead of |hl-DiffChange|:
|
For example, to use |hl-DiffText| instead of |hl-DiffChange|:
|
||||||
|
@ -648,7 +659,7 @@ your colorscheme or |vimrc|:
|
||||||
GitGutterAddLineNr " default: links to CursorLineNr
|
GitGutterAddLineNr " default: links to CursorLineNr
|
||||||
GitGutterChangeLineNr " default: links to CursorLineNr
|
GitGutterChangeLineNr " default: links to CursorLineNr
|
||||||
GitGutterDeleteLineNr " default: links to CursorLineNr
|
GitGutterDeleteLineNr " default: links to CursorLineNr
|
||||||
GitGutterChangeDeleteLineNr " default: links to CursorLineNr
|
GitGutterChangeDeleteLineNr " default: links to GitGutterChangeLineNr
|
||||||
<
|
<
|
||||||
For example, to use |hl-Underlined| instead of |hl-CursorLineNr|:
|
For example, to use |hl-Underlined| instead of |hl-CursorLineNr|:
|
||||||
>
|
>
|
||||||
|
|
|
@ -296,9 +296,6 @@ augroup gitgutter
|
||||||
|
|
||||||
autocmd User FugitiveChanged call gitgutter#all(1)
|
autocmd User FugitiveChanged call gitgutter#all(1)
|
||||||
|
|
||||||
autocmd BufFilePre * GitGutterBufferDisable
|
|
||||||
autocmd BufFilePost * GitGutterBufferEnable
|
|
||||||
|
|
||||||
" Handle all buffers when focus is gained, but only after it was lost.
|
" Handle all buffers when focus is gained, but only after it was lost.
|
||||||
" FocusGained gets triggered on startup with Neovim at least already.
|
" FocusGained gets triggered on startup with Neovim at least already.
|
||||||
" Therefore this tracks also if it was lost before.
|
" Therefore this tracks also if it was lost before.
|
||||||
|
@ -312,9 +309,11 @@ augroup gitgutter
|
||||||
|
|
||||||
autocmd ColorScheme * call gitgutter#highlight#define_highlights()
|
autocmd ColorScheme * call gitgutter#highlight#define_highlights()
|
||||||
|
|
||||||
" Disable during :vimgrep
|
autocmd BufFilePre * let b:gitgutter_was_enabled = gitgutter#utility#getbufvar(expand('<abuf>'), 'enabled') | GitGutterBufferDisable
|
||||||
autocmd QuickFixCmdPre *vimgrep* let [g:gitgutter_was_enabled, g:gitgutter_enabled] = [g:gitgutter_enabled, 0]
|
autocmd BufFilePost * if b:gitgutter_was_enabled | GitGutterBufferEnable | endif | unlet b:gitgutter_was_enabled
|
||||||
autocmd QuickFixCmdPost *vimgrep* let g:gitgutter_enabled = g:gitgutter_was_enabled | unlet g:gitgutter_was_enabled
|
|
||||||
|
autocmd QuickFixCmdPre *vimgrep* let b:gitgutter_was_enabled = gitgutter#utility#getbufvar(expand('<abuf>'), 'enabled') | GitGutterBufferDisable
|
||||||
|
autocmd QuickFixCmdPost *vimgrep* if b:gitgutter_was_enabled | GitGutterBufferEnable | endif | unlet b:gitgutter_was_enabled
|
||||||
augroup END
|
augroup END
|
||||||
|
|
||||||
" }}}
|
" }}}
|
||||||
|
|
1
sources_non_forked/vim-gitgutter/test/.gitattributes
vendored
Normal file
1
sources_non_forked/vim-gitgutter/test/.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*.foo filter=reverse diff=reverse
|
6
sources_non_forked/vim-gitgutter/test/.gitconfig
Normal file
6
sources_non_forked/vim-gitgutter/test/.gitconfig
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[filter "reverse"]
|
||||||
|
clean = "rev"
|
||||||
|
smudge = "rev"
|
||||||
|
|
||||||
|
[diff "reverse"]
|
||||||
|
textconv = "cat"
|
4
sources_non_forked/vim-gitgutter/test/fixture.foo
Normal file
4
sources_non_forked/vim-gitgutter/test/fixture.foo
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
one
|
||||||
|
two
|
||||||
|
three
|
||||||
|
four
|
|
@ -0,0 +1,7 @@
|
||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
d
|
||||||
|
e
|
||||||
|
f
|
||||||
|
g
|
|
@ -54,8 +54,12 @@ endfunction
|
||||||
function SetUp()
|
function SetUp()
|
||||||
call system("git init ".s:test_repo.
|
call system("git init ".s:test_repo.
|
||||||
\ " && cd ".s:test_repo.
|
\ " && cd ".s:test_repo.
|
||||||
|
\ " && cp ../.gitconfig .".
|
||||||
|
\ " && cp ../.gitattributes .".
|
||||||
|
\ " && cp ../fixture.foo .".
|
||||||
\ " && cp ../fixture.txt .".
|
\ " && cp ../fixture.txt .".
|
||||||
\ " && cp ../fixture_dos.txt .".
|
\ " && cp ../fixture_dos.txt .".
|
||||||
|
\ " && cp ../fixture_dos_noeol.txt .".
|
||||||
\ " && git add . && git commit -m 'initial'".
|
\ " && git add . && git commit -m 'initial'".
|
||||||
\ " && git config diff.mnemonicPrefix false")
|
\ " && git config diff.mnemonicPrefix false")
|
||||||
execute ':cd' s:test_repo
|
execute ':cd' s:test_repo
|
||||||
|
@ -348,6 +352,21 @@ function Test_untracked_file_square_brackets_within_repo()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function Test_file_unknown_in_base()
|
||||||
|
let starting_branch = system('git branch --show-current')
|
||||||
|
let starting_branch = 'main'
|
||||||
|
call system('git checkout -b some-feature')
|
||||||
|
let tmp = 'file-on-this-branch-only.tmp'
|
||||||
|
call system('echo "hi" > '.tmp.' && git add '.tmp)
|
||||||
|
execute 'edit '.tmp
|
||||||
|
let g:gitgutter_diff_base = starting_branch
|
||||||
|
GitGutter
|
||||||
|
let expected = [{'lnum': 1, 'name': 'GitGutterLineAdded', 'group': 'gitgutter', 'priority': 10}]
|
||||||
|
call s:assert_signs(expected, tmp)
|
||||||
|
let g:gitgutter_diff_base = ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function Test_hunk_outside_noop()
|
function Test_hunk_outside_noop()
|
||||||
5
|
5
|
||||||
GitGutterStageHunk
|
GitGutterStageHunk
|
||||||
|
@ -390,6 +409,12 @@ function Test_preview_dos()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function Test_dos_noeol()
|
||||||
|
edit! fixture_dos_noeol.txt
|
||||||
|
GitGutter
|
||||||
|
|
||||||
|
call s:assert_signs([], 'fixture_dos_noeol.txt')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function Test_hunk_stage()
|
function Test_hunk_stage()
|
||||||
|
@ -752,7 +777,7 @@ endfunction
|
||||||
|
|
||||||
|
|
||||||
function Test_overlapping_hunk_op()
|
function Test_overlapping_hunk_op()
|
||||||
func Answer(char)
|
func! Answer(char)
|
||||||
call feedkeys(a:char."\<CR>")
|
call feedkeys(a:char."\<CR>")
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
@ -1164,3 +1189,29 @@ function Test_assume_unchanged()
|
||||||
call s:trigger_gitgutter()
|
call s:trigger_gitgutter()
|
||||||
call s:assert_signs([], 'fixture.txt')
|
call s:assert_signs([], 'fixture.txt')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function Test_clean_smudge_filter()
|
||||||
|
call system("git config --local include.path ../.gitconfig")
|
||||||
|
call system("rm fixture.foo && git checkout fixture.foo")
|
||||||
|
|
||||||
|
func! Answer(char)
|
||||||
|
call feedkeys(a:char."\<CR>")
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
edit fixture.foo
|
||||||
|
call setline(2, ['A'])
|
||||||
|
call setline(4, ['B'])
|
||||||
|
call s:trigger_gitgutter()
|
||||||
|
normal! 2G
|
||||||
|
call timer_start(100, {-> Answer('y')} )
|
||||||
|
GitGutterStageHunk
|
||||||
|
call s:trigger_gitgutter()
|
||||||
|
|
||||||
|
let expected = [
|
||||||
|
\ {'lnum': 2, 'id': 23, 'name': 'GitGutterLineModified', 'priority': 10, 'group': 'gitgutter'},
|
||||||
|
\ {'lnum': 4, 'id': 24, 'name': 'GitGutterLineModified', 'priority': 10, 'group': 'gitgutter'}
|
||||||
|
\ ]
|
||||||
|
" call s:assert_signs(expected, 'fixture.foo')
|
||||||
|
call s:assert_signs([], 'fixture.foo')
|
||||||
|
endfunction
|
||||||
|
|
|
@ -656,6 +656,11 @@ endfunction
|
||||||
function! s:OpenUrlUnderCursor()
|
function! s:OpenUrlUnderCursor()
|
||||||
let l:url = s:Markdown_GetUrlForPosition(line('.'), col('.'))
|
let l:url = s:Markdown_GetUrlForPosition(line('.'), col('.'))
|
||||||
if l:url !=# ''
|
if l:url !=# ''
|
||||||
|
if l:url =~? 'http[s]\?:\/\/[[:alnum:]%\/_#.-]*'
|
||||||
|
"Do nothing
|
||||||
|
else
|
||||||
|
let l:url = expand(expand('%:h').'/'.l:url)
|
||||||
|
endif
|
||||||
call s:VersionAwareNetrwBrowseX(l:url)
|
call s:VersionAwareNetrwBrowseX(l:url)
|
||||||
else
|
else
|
||||||
echomsg 'The cursor is not on a link.'
|
echomsg 'The cursor is not on a link.'
|
||||||
|
|
|
@ -230,3 +230,24 @@ snippet af auto function
|
||||||
{
|
{
|
||||||
${0}
|
${0}
|
||||||
};
|
};
|
||||||
|
# Range-v3 transform
|
||||||
|
snippet transform "ranges::views::transform"
|
||||||
|
${1:${2:std::}${3:ranges::}views::}transform($4)
|
||||||
|
# Range-v3 transform
|
||||||
|
snippet filter "ranges::views::filter"
|
||||||
|
${1:${2:std::}${3:ranges::}views::}filter($4)
|
||||||
|
# Range-v3 ranges::
|
||||||
|
snippet r "ranges::"
|
||||||
|
ranges::
|
||||||
|
# Range-v3 ranges::views::
|
||||||
|
snippet rv "ranges::views::"
|
||||||
|
ranges::views::
|
||||||
|
# Range-v3 ranges::actions::
|
||||||
|
snippet ra "ranges::actions::"
|
||||||
|
ranges::actions::
|
||||||
|
# STL std::ranges::
|
||||||
|
snippet sr "std::ranges::"
|
||||||
|
std::ranges::
|
||||||
|
# STL std::views::
|
||||||
|
snippet sv "std::views::"
|
||||||
|
std::views::
|
||||||
|
|
|
@ -390,63 +390,48 @@ snippet hrefc
|
||||||
# enquote from package csquotes
|
# enquote from package csquotes
|
||||||
snippet enq enquote
|
snippet enq enquote
|
||||||
\\enquote{${1:${VISUAL:text}}} ${0}
|
\\enquote{${1:${VISUAL:text}}} ${0}
|
||||||
|
|
||||||
# Time derivative
|
# Time derivative
|
||||||
snippet ddt time derivative
|
snippet ddt time derivative
|
||||||
\\frac{d}{dt} {$1} {$0}
|
\\frac{d}{dt} {$1} {$0}
|
||||||
|
|
||||||
# Limit
|
# Limit
|
||||||
snippet lim limit
|
snippet lim limit
|
||||||
\\lim_{{$1}} {{$2}} {$0}
|
\\lim_{{$1}} {{$2}} {$0}
|
||||||
|
|
||||||
# Partial derivative
|
# Partial derivative
|
||||||
snippet pdv partial derivation
|
snippet pdv partial derivation
|
||||||
\\frac{\\partial {$1}}{\\partial {$2}} {$0}
|
\\frac{\\partial {$1}}{\\partial {$2}} {$0}
|
||||||
|
|
||||||
# Second order partial derivative
|
# Second order partial derivative
|
||||||
snippet ppdv second partial derivation
|
snippet ppdv second partial derivation
|
||||||
\\frac{\\partial^2 {$1}}{\\partial {$2} \\partial {$3}} {$0}
|
\\frac{\\partial^2 {$1}}{\\partial {$2} \\partial {$3}} {$0}
|
||||||
|
|
||||||
# Ordinary derivative
|
# Ordinary derivative
|
||||||
snippet dv derivative
|
snippet dv derivative
|
||||||
\\frac{d {$1}}{d {$2}} {$0}
|
\\frac{d {$1}}{d {$2}} {$0}
|
||||||
|
|
||||||
# Summation
|
# Summation
|
||||||
snippet summ summation
|
snippet summ summation
|
||||||
\\sum_{{$1}} {$0}
|
\\sum_{{$1}} {$0}
|
||||||
|
|
||||||
# Shorthand for time derivative
|
# Shorthand for time derivative
|
||||||
snippet dot dot
|
snippet dot dot
|
||||||
\\dot{{$1}} {$0}
|
\\dot{{$1}} {$0}
|
||||||
|
|
||||||
# Shorthand for second order time derivative
|
# Shorthand for second order time derivative
|
||||||
snippet ddot ddot
|
snippet ddot ddot
|
||||||
\\ddot{{$1}} {$0}
|
\\ddot{{$1}} {$0}
|
||||||
|
|
||||||
# Vector
|
# Vector
|
||||||
snippet vec vector
|
snippet vec vector
|
||||||
\\vec{{$1}} {$0}
|
\\vec{{$1}} {$0}
|
||||||
|
|
||||||
# Bar
|
# Bar
|
||||||
snippet bar bar
|
snippet bar bar
|
||||||
\\bar{{$1}} {$0}
|
\\bar{{$1}} {$0}
|
||||||
|
|
||||||
# Cross product
|
# Cross product
|
||||||
snippet \x cross product
|
snippet \x cross product
|
||||||
\\times {$0}
|
\\times {$0}
|
||||||
|
|
||||||
# Dot product
|
# Dot product
|
||||||
snippet . dot product
|
snippet . dot product
|
||||||
\\cdot {$0}
|
\\cdot {$0}
|
||||||
|
|
||||||
# Integral
|
# Integral
|
||||||
snippet int integral
|
snippet int integral
|
||||||
\\int_{{$1}}^{{$2}} {$3} \\: d{$4} {$0}
|
\\int_{{$1}}^{{$2}} {$3} \\: d{$4} {$0}
|
||||||
|
|
||||||
# Right arrow
|
# Right arrow
|
||||||
snippet ra rightarrow
|
snippet ra rightarrow
|
||||||
\\rightarrow {$0}
|
\\rightarrow {$0}
|
||||||
|
|
||||||
# Long right arrow
|
# Long right arrow
|
||||||
snippet lra longrightarrow
|
snippet lra longrightarrow
|
||||||
\\longrightarrow {$0}
|
\\longrightarrow {$0}
|
||||||
|
|
|
@ -168,6 +168,7 @@ let g:ale_set_highlights = 0
|
||||||
" Only run linting when saving the file
|
" Only run linting when saving the file
|
||||||
let g:ale_lint_on_text_changed = 'never'
|
let g:ale_lint_on_text_changed = 'never'
|
||||||
let g:ale_lint_on_enter = 0
|
let g:ale_lint_on_enter = 0
|
||||||
|
let g:ale_virtualtext_cursor = 'disabled'
|
||||||
|
|
||||||
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
Loading…
Reference in a new issue