From 747d4093f47d0ef30809850e64d7064bdcf95003 Mon Sep 17 00:00:00 2001 From: Amir Date: Sat, 15 Jul 2023 12:43:27 +0200 Subject: [PATCH] Updated plugins --- .../ale/ale_linters/ansible/ansible_lint.vim | 16 ++++- .../ale/ale_linters/bicep/az_bicep.vim | 69 +++++++++++++++++++ .../ale/ale_linters/bicep/bicep.vim | 15 ++-- .../ale/ale_linters/bzl/buildifier.vim | 40 +++++++++++ .../ale/ale_linters/cairo/sierra.vim | 54 +++++++++++++++ .../ale/ale_linters/cairo/starknet.vim | 4 +- .../ale_linters/dockerfile/dockerlinter.vim | 69 +++++++++++++++++++ .../ale/ale_linters/eruby/erb.vim | 2 +- .../ale/ale_linters/go/golangci_lint.vim | 2 +- .../ale/ale_linters/go/golint.vim | 21 ------ .../ale/ale_linters/groovy/npmgroovylint.vim | 46 +++++++++++++ .../ale/ale_linters/python/pyright.vim | 2 +- .../ale/autoload/ale/fix/registry.vim | 10 +++ .../ale/autoload/ale/fixers/fourmolu.vim | 20 ++++++ .../ale/autoload/ale/fixers/npmgroovylint.vim | 16 +++++ .../ale/autoload/ale/linter.vim | 3 +- sources_non_forked/ale/doc/ale-bicep.txt | 21 +++++- sources_non_forked/ale/doc/ale-c.txt | 4 +- sources_non_forked/ale/doc/ale-dockerfile.txt | 25 +++++++ sources_non_forked/ale/doc/ale-go.txt | 25 +------ sources_non_forked/ale/doc/ale-groovy.txt | 42 +++++++++++ sources_non_forked/ale/doc/ale-haskell.txt | 20 ++++++ .../doc/ale-supported-languages-and-tools.txt | 6 +- sources_non_forked/ale/doc/ale.txt | 9 ++- sources_non_forked/ale/supported-tools.md | 6 +- .../bufexplorer/doc/bufexplorer.txt | 13 +++- .../bufexplorer/plugin/bufexplorer.vim | 9 ++- sources_non_forked/copilot.vim | 1 - sources_non_forked/dracula/INSTALL.md | 24 ++++--- .../dracula/after/plugin/dracula.vim | 7 +- .../typescript-vim/ftplugin/typescript.vim | 2 +- .../vim-abolish/README.markdown | 6 +- .../vim-abolish/plugin/abolish.vim | 6 -- .../vim-fugitive/autoload/fugitive.vim | 6 +- .../vim-fugitive/plugin/fugitive.vim | 5 +- sources_non_forked/vim-gitgutter/README.mkd | 17 +++-- .../vim-gitgutter/autoload/gitgutter.vim | 18 ++++- .../autoload/gitgutter/debug.vim | 30 ++++---- .../vim-gitgutter/autoload/gitgutter/diff.vim | 34 +++++++-- .../autoload/gitgutter/highlight.vim | 2 +- .../vim-gitgutter/autoload/gitgutter/hunk.vim | 42 +++++++++-- .../autoload/gitgutter/utility.vim | 21 ++++-- .../vim-gitgutter/doc/gitgutter.txt | 17 ++++- .../vim-gitgutter/plugin/gitgutter.vim | 11 ++- .../vim-gitgutter/test/.gitattributes | 1 + .../vim-gitgutter/test/.gitconfig | 6 ++ .../vim-gitgutter/test/fixture.foo | 4 ++ .../vim-gitgutter/test/fixture_dos_noeol.txt | 7 ++ .../vim-gitgutter/test/test_gitgutter.vim | 53 +++++++++++++- .../vim-markdown/ftplugin/markdown.vim | 7 +- .../vim-snippets/snippets/cpp.snippets | 21 ++++++ .../vim-snippets/snippets/tex.snippets | 15 ---- 52 files changed, 767 insertions(+), 165 deletions(-) create mode 100644 sources_non_forked/ale/ale_linters/bicep/az_bicep.vim create mode 100644 sources_non_forked/ale/ale_linters/bzl/buildifier.vim create mode 100644 sources_non_forked/ale/ale_linters/cairo/sierra.vim create mode 100644 sources_non_forked/ale/ale_linters/dockerfile/dockerlinter.vim delete mode 100644 sources_non_forked/ale/ale_linters/go/golint.vim create mode 100644 sources_non_forked/ale/ale_linters/groovy/npmgroovylint.vim create mode 100644 sources_non_forked/ale/autoload/ale/fixers/fourmolu.vim create mode 100644 sources_non_forked/ale/autoload/ale/fixers/npmgroovylint.vim create mode 100644 sources_non_forked/ale/doc/ale-groovy.txt delete mode 160000 sources_non_forked/copilot.vim create mode 100644 sources_non_forked/vim-gitgutter/test/.gitattributes create mode 100644 sources_non_forked/vim-gitgutter/test/.gitconfig create mode 100644 sources_non_forked/vim-gitgutter/test/fixture.foo create mode 100644 sources_non_forked/vim-gitgutter/test/fixture_dos_noeol.txt diff --git a/sources_non_forked/ale/ale_linters/ansible/ansible_lint.vim b/sources_non_forked/ale/ale_linters/ansible/ansible_lint.vim index bdfbee3c..e15008c8 100644 --- a/sources_non_forked/ale/ale_linters/ansible/ansible_lint.vim +++ b/sources_non_forked/ale/ale_linters/ansible/ansible_lint.vim @@ -29,10 +29,20 @@ function! ale_linters#ansible#ansible_lint#Handle(buffer, version, lines) abort for l:issue in l:linter_issues 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, { - \ 'lnum': exists('l:issue.location.lines.begin.column') ? l:issue.location.lines.begin.line : - \ l:issue.location.lines.begin, - \ 'col': exists('l:issue.location.lines.begin.column') ? l:issue.location.lines.begin.column : 0, + \ 'lnum': exists(l:column_member) ? l:issue.location[l:coord_keyname].begin.line : + \ l:issue.location[l:coord_keyname].begin, + \ 'col': exists(l:column_member) ? l:issue.location[l:coord_keyname].begin.column : 0, \ 'text': l:issue.check_name, \ 'detail': l:issue.description, \ 'code': l:issue.severity, diff --git a/sources_non_forked/ale/ale_linters/bicep/az_bicep.vim b/sources_non_forked/ale/ale_linters/bicep/az_bicep.vim new file mode 100644 index 00000000..f487ae0f --- /dev/null +++ b/sources_non_forked/ale/ale_linters/bicep/az_bicep.vim @@ -0,0 +1,69 @@ +" Author: Carl Smedstad +" 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, +\}) diff --git a/sources_non_forked/ale/ale_linters/bicep/bicep.vim b/sources_non_forked/ale/ale_linters/bicep/bicep.vim index 91cc1986..a5f0d7c6 100644 --- a/sources_non_forked/ale/ale_linters/bicep/bicep.vim +++ b/sources_non_forked/ale/ale_linters/bicep/bicep.vim @@ -30,24 +30,25 @@ function! ale_linters#bicep#bicep#Command(buffer) abort endfunction 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 = [] 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' - elseif l:match[3] is# 'Warning' + elseif l:match[4] is# 'Warning' let l:type = 'W' else let l:type = 'I' endif call add(l:output, { - \ 'lnum': l:match[1] + 0, - \ 'col': l:match[2] + 0, + \ 'filename': l:match[1], + \ 'lnum': l:match[2] + 0, + \ 'col': l:match[3] + 0, \ 'type': l:type, - \ 'code': l:match[4], - \ 'text': l:match[5], + \ 'code': l:match[5], + \ 'text': l:match[6], \}) endfor diff --git a/sources_non_forked/ale/ale_linters/bzl/buildifier.vim b/sources_non_forked/ale/ale_linters/bzl/buildifier.vim new file mode 100644 index 00000000..42cd3cd9 --- /dev/null +++ b/sources_non_forked/ale/ale_linters/bzl/buildifier.vim @@ -0,0 +1,40 @@ +" Author: Chuck Grindel +" 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'), +\}) diff --git a/sources_non_forked/ale/ale_linters/cairo/sierra.vim b/sources_non_forked/ale/ale_linters/cairo/sierra.vim new file mode 100644 index 00000000..06eb87f4 --- /dev/null +++ b/sources_non_forked/ale/ale_linters/cairo/sierra.vim @@ -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', +\}) + diff --git a/sources_non_forked/ale/ale_linters/cairo/starknet.vim b/sources_non_forked/ale/ale_linters/cairo/starknet.vim index 990bda6d..d471cc89 100644 --- a/sources_non_forked/ale/ale_linters/cairo/starknet.vim +++ b/sources_non_forked/ale/ale_linters/cairo/starknet.vim @@ -1,5 +1,6 @@ " 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_options', '') @@ -35,3 +36,4 @@ call ale#linter#Define('cairo', { \ 'callback': 'ale_linters#cairo#starknet#Handle', \ 'output_stream': 'stderr', \}) + diff --git a/sources_non_forked/ale/ale_linters/dockerfile/dockerlinter.vim b/sources_non_forked/ale/ale_linters/dockerfile/dockerlinter.vim new file mode 100644 index 00000000..6b35438f --- /dev/null +++ b/sources_non_forked/ale/ale_linters/dockerfile/dockerlinter.vim @@ -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', +\}) diff --git a/sources_non_forked/ale/ale_linters/eruby/erb.vim b/sources_non_forked/ale/ale_linters/eruby/erb.vim index f3438320..0ca157aa 100644 --- a/sources_non_forked/ale/ale_linters/eruby/erb.vim +++ b/sources_non_forked/ale/ale_linters/eruby/erb.vim @@ -11,7 +11,7 @@ function! ale_linters#eruby#erb#GetCommand(buffer) abort " 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 " 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 call ale#linter#Define('eruby', { diff --git a/sources_non_forked/ale/ale_linters/go/golangci_lint.vim b/sources_non_forked/ale/ale_linters/go/golangci_lint.vim index 80431b99..78087b5e 100644 --- a/sources_non_forked/ale/ale_linters/go/golangci_lint.vim +++ b/sources_non_forked/ale/ale_linters/go/golangci_lint.vim @@ -1,7 +1,7 @@ " Author: Sascha Grunert " 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_package', 0) diff --git a/sources_non_forked/ale/ale_linters/go/golint.vim b/sources_non_forked/ale/ale_linters/go/golint.vim deleted file mode 100644 index 79bfaeb5..00000000 --- a/sources_non_forked/ale/ale_linters/go/golint.vim +++ /dev/null @@ -1,21 +0,0 @@ -" Author: neersighted -" 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', -\}) diff --git a/sources_non_forked/ale/ale_linters/groovy/npmgroovylint.vim b/sources_non_forked/ale/ale_linters/groovy/npmgroovylint.vim new file mode 100644 index 00000000..4141bd25 --- /dev/null +++ b/sources_non_forked/ale/ale_linters/groovy/npmgroovylint.vim @@ -0,0 +1,46 @@ +" Author: lucas-str +" 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', +\}) diff --git a/sources_non_forked/ale/ale_linters/python/pyright.vim b/sources_non_forked/ale/ale_linters/python/pyright.vim index ccade0c9..e41f7f14 100644 --- a/sources_non_forked/ale/ale_linters/python/pyright.vim +++ b/sources_non_forked/ale/ale_linters/python/pyright.vim @@ -65,7 +65,7 @@ endfunction function! ale_linters#python#pyright#GetCommand(buffer) abort let l:executable = ale_linters#python#pyright#GetExecutable(a:buffer) let l:exec_args = l:executable =~? 'pipenv\|poetry$' - \ ? ' run pyright' + \ ? ' run pyright-langserver' \ : '' let l:env_string = '' diff --git a/sources_non_forked/ale/autoload/ale/fix/registry.vim b/sources_non_forked/ale/autoload/ale/fix/registry.vim index f7fff6a7..2f7edba8 100644 --- a/sources_non_forked/ale/autoload/ale/fix/registry.vim +++ b/sources_non_forked/ale/autoload/ale/fix/registry.vim @@ -561,6 +561,11 @@ let s:default_registry = { \ 'suggested_filetypes': ['haskell'], \ 'description': 'A formatter for Haskell source code.', \ }, +\ 'fourmolu': { +\ 'function': 'ale#fixers#fourmolu#Fix', +\ 'suggested_filetypes': ['haskell'], +\ 'description': 'A formatter for Haskell source code.', +\ }, \ 'jsonnetfmt': { \ 'function': 'ale#fixers#jsonnetfmt#Fix', \ 'suggested_filetypes': ['jsonnet'], @@ -605,6 +610,11 @@ let s:default_registry = { \ 'function': 'ale#fixers#rustywind#Fix', \ 'suggested_filetypes': ['html'], \ 'description': 'Sort Tailwind CSS classes', +\ }, +\ 'npm-groovy-lint': { +\ 'function': 'ale#fixers#npmgroovylint#Fix', +\ 'suggested_filetypes': ['groovy'], +\ 'description': 'Fix Groovy files with npm-groovy-fix.', \ } \} diff --git a/sources_non_forked/ale/autoload/ale/fixers/fourmolu.vim b/sources_non_forked/ale/autoload/ale/fixers/fourmolu.vim new file mode 100644 index 00000000..399ec0f4 --- /dev/null +++ b/sources_non_forked/ale/autoload/ale/fixers/fourmolu.vim @@ -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 diff --git a/sources_non_forked/ale/autoload/ale/fixers/npmgroovylint.vim b/sources_non_forked/ale/autoload/ale/fixers/npmgroovylint.vim new file mode 100644 index 00000000..39e43cf6 --- /dev/null +++ b/sources_non_forked/ale/autoload/ale/fixers/npmgroovylint.vim @@ -0,0 +1,16 @@ +" Author: lucas-str +" 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 diff --git a/sources_non_forked/ale/autoload/ale/linter.vim b/sources_non_forked/ale/autoload/ale/linter.vim index d90deace..093243a9 100644 --- a/sources_non_forked/ale/autoload/ale/linter.vim +++ b/sources_non_forked/ale/autoload/ale/linter.vim @@ -42,7 +42,8 @@ let s:default_ale_linters = { \ 'apkbuild': ['apkbuild_lint', 'secfixes_check'], \ 'csh': ['shell'], \ 'elixir': ['credo', 'dialyxir', 'dogma'], -\ 'go': ['gofmt', 'golint', 'gopls', 'govet'], +\ 'go': ['gofmt', 'gopls', 'govet'], +\ 'groovy': ['npm-groovy-lint'], \ 'hack': ['hack'], \ 'help': [], \ 'inko': ['inko'], diff --git a/sources_non_forked/ale/doc/ale-bicep.txt b/sources_non_forked/ale/doc/ale-bicep.txt index d26d67bc..a5ab645d 100644 --- a/sources_non_forked/ale/doc/ale-bicep.txt +++ b/sources_non_forked/ale/doc/ale-bicep.txt @@ -16,9 +16,28 @@ g:ale_bicep_bicep_executable *g:ale_bicep_bicep_executable* g:ale_bicep_bicep_options *g:ale_bicep_bicep_options* *b:ale_bicep_bicep_options* Type: |String| - Default: `'build --outfile /dev/null'` + Default: `''` 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: diff --git a/sources_non_forked/ale/doc/ale-c.txt b/sources_non_forked/ale/doc/ale-c.txt index 0f4b1b01..d3517e79 100644 --- a/sources_non_forked/ale/doc/ale-c.txt +++ b/sources_non_forked/ale/doc/ale-c.txt @@ -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 - available options and explanations. + For all available options and explanations, visit + https://github.com/MaskRay/ccls/wiki/Customization#initialization-options. =============================================================================== diff --git a/sources_non_forked/ale/doc/ale-dockerfile.txt b/sources_non_forked/ale/doc/ale-dockerfile.txt index 51b9acc1..5d955404 100644 --- a/sources_non_forked/ale/doc/ale-dockerfile.txt +++ b/sources_non_forked/ale/doc/ale-dockerfile.txt @@ -25,6 +25,31 @@ g:ale_dockerfile_dockerfile_lint_options 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* diff --git a/sources_non_forked/ale/doc/ale-go.txt b/sources_non_forked/ale/doc/ale-go.txt index 133096d8..d09f6cac 100644 --- a/sources_non_forked/ale/doc/ale-go.txt +++ b/sources_non_forked/ale/doc/ale-go.txt @@ -6,8 +6,8 @@ ALE Go Integration *ale-go-options* Integration Information The `gometalinter` linter is disabled by default. ALE enables `gofmt`, -`golint` and `go vet` by default. It also supports `staticcheck`, `go -build`, `gosimple`, `golangserver`. +`gopls`, and `go vet` by default. It also supports `staticcheck, `go +build`, `gosimple`, `golangserver`, and `golangci-lint`. 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* *b:ale_go_golangci_lint_options* Type: |String| - Default: `'--enable-all'` + Default: `''` This variable can be changed to alter the command-line arguments to the 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) -=============================================================================== -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* diff --git a/sources_non_forked/ale/doc/ale-groovy.txt b/sources_non_forked/ale/doc/ale-groovy.txt new file mode 100644 index 00000000..cc5e8881 --- /dev/null +++ b/sources_non_forked/ale/doc/ale-groovy.txt @@ -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: diff --git a/sources_non_forked/ale/doc/ale-haskell.txt b/sources_non_forked/ale/doc/ale-haskell.txt index bd5a5edf..bcd15724 100644 --- a/sources_non_forked/ale/doc/ale-haskell.txt +++ b/sources_non_forked/ale/doc/ale-haskell.txt @@ -224,5 +224,25 @@ g:ale_haskell_ormolu_options *g:ale_haskell_ormolu_options* 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: diff --git a/sources_non_forked/ale/doc/ale-supported-languages-and-tools.txt b/sources_non_forked/ale/doc/ale-supported-languages-and-tools.txt index d56d0a76..b6ea5035 100644 --- a/sources_non_forked/ale/doc/ale-supported-languages-and-tools.txt +++ b/sources_non_forked/ale/doc/ale-supported-languages-and-tools.txt @@ -159,6 +159,7 @@ Notes: * `dhall-lint` * Dockerfile * `dockerfile_lint` + * `dockerlinter` * `dprint` * `hadolint` * Elixir @@ -212,7 +213,6 @@ Notes: * `golangci-lint`!! * `golangserver` * `golines` - * `golint` * `gometalinter`!! * `gopls` * `gosimple`!! @@ -223,6 +223,8 @@ Notes: * `eslint` * `gqlint` * `prettier` +* Groovy + * `npm-groovy-lint` * Hack * `hack` * `hackfmt` @@ -236,6 +238,7 @@ Notes: * `cabal-ghc` * `cspell` * `floskell` + * `fourmolu` * `ghc` * `ghc-mod` * `hdevtools` @@ -382,6 +385,7 @@ Notes: * `nimpretty` * nix * `alejandra` + * `deadnix` * `nix-instantiate` * `nixfmt` * `nixpkgs-fmt` diff --git a/sources_non_forked/ale/doc/ale.txt b/sources_non_forked/ale/doc/ale.txt index f55e73bc..d0c7e9e9 100644 --- a/sources_non_forked/ale/doc/ale.txt +++ b/sources_non_forked/ale/doc/ale.txt @@ -1641,7 +1641,8 @@ g:ale_linters *g:ale_linters* \ 'apkbuild': ['apkbuild_lint', 'secfixes_check'], \ 'csh': ['shell'], \ 'elixir': ['credo', 'dialyxir', 'dogma'], - \ 'go': ['gofmt', 'golint', 'gopls', 'govet'], + \ 'go': ['gofmt', 'gopls', 'govet'], + \ 'groovy': ['npm-groovy-lint'], \ 'hack': ['hack'], \ 'help': [], \ 'inko': ['inko'], @@ -2858,6 +2859,7 @@ documented in additional help files. bibclean..............................|ale-bib-bibclean| bicep...................................|ale-bicep-options| bicep.................................|ale-bicep-bicep| + az_bicep..............................|ale-bicep-az_bicep| bitbake.................................|ale-bitbake-options| oelint-adv............................|ale-bitbake-oelint_adv| c.......................................|ale-c-options| @@ -2939,6 +2941,7 @@ documented in additional help files. dhall-lint............................|ale-dhall-lint| dockerfile..............................|ale-dockerfile-options| dockerfile_lint.......................|ale-dockerfile-dockerfile_lint| + dockerlinter..........................|ale-dockerfile-dockerlinter| dprint................................|ale-dockerfile-dprint| hadolint..............................|ale-dockerfile-hadolint| elixir..................................|ale-elixir-options| @@ -2984,7 +2987,6 @@ documented in additional help files. golangci-lint.........................|ale-go-golangci-lint| golangserver..........................|ale-go-golangserver| golines...............................|ale-go-golines| - golint................................|ale-go-golint| gometalinter..........................|ale-go-gometalinter| gopls.................................|ale-go-gopls| govet.................................|ale-go-govet| @@ -2994,6 +2996,8 @@ documented in additional help files. eslint................................|ale-graphql-eslint| gqlint................................|ale-graphql-gqlint| prettier..............................|ale-graphql-prettier| + groovy..................................|ale-groovy-options| + npm-groovy-lint.......................|ale-groovy-npm-groovy-lint| hack....................................|ale-hack-options| hack..................................|ale-hack-hack| hackfmt...............................|ale-hack-hackfmt| @@ -3018,6 +3022,7 @@ documented in additional help files. stylish-haskell.......................|ale-haskell-stylish-haskell| hie...................................|ale-haskell-hie| ormolu................................|ale-haskell-ormolu| + fourmolu..............................|ale-haskell-fourmolu| hcl.....................................|ale-hcl-options| packer-fmt............................|ale-hcl-packer-fmt| terraform-fmt.........................|ale-hcl-terraform-fmt| diff --git a/sources_non_forked/ale/supported-tools.md b/sources_non_forked/ale/supported-tools.md index 0767cc35..d87d53da 100644 --- a/sources_non_forked/ale/supported-tools.md +++ b/sources_non_forked/ale/supported-tools.md @@ -168,6 +168,7 @@ formatting. * [dhall-lint](https://github.com/dhall-lang/dhall-lang) * Dockerfile * [dockerfile_lint](https://github.com/projectatomic/dockerfile_lint) + * [dockerlinter](https://github.com/buddy-works/dockerfile-linter) * [dprint](https://dprint.dev) * [hadolint](https://github.com/hadolint/hadolint) * Elixir @@ -221,7 +222,6 @@ formatting. * [golangci-lint](https://github.com/golangci/golangci-lint) :warning: :floppy_disk: * [golangserver](https://github.com/sourcegraph/go-langserver) :warning: * [golines](https://github.com/segmentio/golines) - * [golint](https://godoc.org/github.com/golang/lint) * [gometalinter](https://github.com/alecthomas/gometalinter) :warning: :floppy_disk: * [gopls](https://github.com/golang/go/wiki/gopls) * [gosimple](https://github.com/dominikh/go-tools/tree/master/cmd/gosimple) :warning: :floppy_disk: @@ -232,6 +232,8 @@ formatting. * [eslint](http://eslint.org/) * [gqlint](https://github.com/happylinks/gqlint) * [prettier](https://github.com/prettier/prettier) +* Groovy + * [npm-groovy-lint](https://github.com/nvuillam/npm-groovy-lint) * Hack * [hack](http://hacklang.org/) * [hackfmt](https://github.com/facebook/hhvm/tree/master/hphp/hack/hackfmt) @@ -245,6 +247,7 @@ formatting. * [cabal-ghc](https://www.haskell.org/cabal/) * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [floskell](https://github.com/ennocramer/floskell) + * [fourmolu](https://github.com/fourmolu/fourmolu) * [ghc](https://www.haskell.org/ghc/) * [ghc-mod](https://github.com/DanielG/ghc-mod) * [hdevtools](https://hackage.haskell.org/package/hdevtools) @@ -391,6 +394,7 @@ formatting. * nimpretty * nix * [alejandra](https://github.com/kamadorueda/alejandra) + * [deadnix](https://github.com/astro/deadnix) * [nix-instantiate](http://nixos.org/nix/manual/#sec-nix-instantiate) * [nixfmt](https://github.com/serokell/nixfmt) * [nixpkgs-fmt](https://github.com/nix-community/nixpkgs-fmt) diff --git a/sources_non_forked/bufexplorer/doc/bufexplorer.txt b/sources_non_forked/bufexplorer/doc/bufexplorer.txt index 043c3155..6e1e1b51 100644 --- a/sources_non_forked/bufexplorer/doc/bufexplorer.txt +++ b/sources_non_forked/bufexplorer/doc/bufexplorer.txt @@ -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* - Version 7.4.25 + Version 7.4.26 Plugin for easily exploring (or browsing) Vim|:buffers|. @@ -263,6 +263,15 @@ The default is 1. =============================================================================== 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 What's Changed - Fix MRU sort order after loading vim session by @mmrwoods in diff --git a/sources_non_forked/bufexplorer/plugin/bufexplorer.vim b/sources_non_forked/bufexplorer/plugin/bufexplorer.vim index 4cf13b65..c5c04e71 100644 --- a/sources_non_forked/bufexplorer/plugin/bufexplorer.vim +++ b/sources_non_forked/bufexplorer/plugin/bufexplorer.vim @@ -1,5 +1,5 @@ "============================================================================ -" Copyright: Copyright (c) 2001-2022, Jeff Lanzarotta +" Copyright: Copyright (c) 2001-2023, Jeff Lanzarotta " All rights reserved. " " Redistribution and use in source and binary forms, with or @@ -36,7 +36,7 @@ " Name Of File: bufexplorer.vim " Description: Buffer Explorer Vim Plugin " 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. " Usage: This file should reside in the plugin directory and be " automatically sourced. @@ -74,7 +74,7 @@ endif "1}}} " Version number -let g:bufexplorer_version = "7.4.25" +let g:bufexplorer_version = "7.4.26" " Plugin Code {{{1 " Check for Vim version {{{2 @@ -480,13 +480,12 @@ endfunction " DisplayBufferList {{{2 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 modifiable setlocal noreadonly setlocal noswapfile setlocal nowrap + setlocal bufhidden=wipe call s:SetupSyntax() call s:MapKeys() diff --git a/sources_non_forked/copilot.vim b/sources_non_forked/copilot.vim deleted file mode 160000 index b6e56243..00000000 --- a/sources_non_forked/copilot.vim +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b6e5624351ba735e25eb8864d7d22819aad00606 diff --git a/sources_non_forked/dracula/INSTALL.md b/sources_non_forked/dracula/INSTALL.md index 0868adcc..7fc0247d 100644 --- a/sources_non_forked/dracula/INSTALL.md +++ b/sources_non_forked/dracula/INSTALL.md @@ -5,28 +5,32 @@ These are the default instructions using Vim 8's `|packages|` feature. See 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: ``` +# vim 8.2+ mkdir -p ~/.vim/pack/themes/start +# vim 8.0 +mkdir -p ~/.vim/pack/themes/opt ``` -- Windows: create directory `$HOME\vimfiles\pack\themes\start` - -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. +- Windows: create directory `$HOME\vimfiles\pack\themes\start` or + `$HOME\vimfiles\pack\themes\opt`, according to your version. 2. Navigate to the folder above: - \*nix: ``` +# vim 8.2+ 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: @@ -38,7 +42,9 @@ git clone https://github.com/dracula/vim.git dracula 4. Edit your `vimrc` file with the following content: ``` -packadd! dracula +if v:version < 802 + packadd! dracula +endif syntax enable 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 introduced autoload functionality for part of the plugin, which doesn't work 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. diff --git a/sources_non_forked/dracula/after/plugin/dracula.vim b/sources_non_forked/dracula/after/plugin/dracula.vim index dd76de07..7767122c 100644 --- a/sources_non_forked/dracula/after/plugin/dracula.vim +++ b/sources_non_forked/dracula/after/plugin/dracula.vim @@ -56,9 +56,10 @@ if has('nvim-0.5') && luaeval("pcall(require, 'gitsigns')") hi! link GitSignsChange DiffChange hi! link GitSignsChangeLn DiffChange hi! link GitSignsChangeNr DiffChange - hi! link GitSignsDelete DiffDelete - hi! link GitSignsDeleteLn DiffDelete - hi! link GitSignsDeleteNr DiffDelete + + hi! link GitSignsDelete DraculaRed + hi! link GitSignsDeleteLn DraculaRed + hi! link GitSignsDeleteNr DraculaRed endif " }}} " Tree-sitter: {{{ diff --git a/sources_non_forked/typescript-vim/ftplugin/typescript.vim b/sources_non_forked/typescript-vim/ftplugin/typescript.vim index da4b1e85..87704541 100644 --- a/sources_non_forked/typescript-vim/ftplugin/typescript.vim +++ b/sources_non_forked/typescript-vim/ftplugin/typescript.vim @@ -15,7 +15,7 @@ setlocal formatoptions-=t formatoptions+=croql 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 unlet s:cpo_save diff --git a/sources_non_forked/vim-abolish/README.markdown b/sources_non_forked/vim-abolish/README.markdown index 168ada2a..a9b0734a 100644 --- a/sources_non_forked/vim-abolish/README.markdown +++ b/sources_non_forked/vim-abolish/README.markdown @@ -117,9 +117,9 @@ There's also a variant for searching and a variant for grepping. ## Coercion Want to turn `fooBar` into `foo_bar`? Press `crs` (coerce to -snake\_case). MixedCase (`crm`), camelCase (`crc`), UPPER\_CASE (`cru`), -dash-case (`cr-`), dot.case (`cr.`), space case (`cr`), and -Title Case (`crt`) are all just 3 keystrokes away. +snake\_case). MixedCase (`crm`), camelCase (`crc`), UPPER\_CASE +(`cru`), dash-case (`cr-`), and dot.case (`cr.`) are all just 3 +keystrokes away. ## Installation diff --git a/sources_non_forked/vim-abolish/plugin/abolish.vim b/sources_non_forked/vim-abolish/plugin/abolish.vim index e5d8c785..1e9fb799 100644 --- a/sources_non_forked/vim-abolish/plugin/abolish.vim +++ b/sources_non_forked/vim-abolish/plugin/abolish.vim @@ -142,10 +142,6 @@ function! s:dotcase(word) return substitute(s:snakecase(a:word),'_','.','g') endfunction -function! s:titlecase(word) - return substitute(s:spacecase(a:word), '\(\<\w\)','\=toupper(submatch(1))','g') -endfunction - call extend(Abolish, { \ 'camelcase': s:function('s:camelcase'), \ 'mixedcase': s:function('s:mixedcase'), @@ -154,7 +150,6 @@ call extend(Abolish, { \ 'dashcase': s:function('s:dashcase'), \ 'dotcase': s:function('s:dotcase'), \ 'spacecase': s:function('s:spacecase'), - \ 'titlecase': s:function('s:titlecase') \ }, 'keep') function! s:create_dictionary(lhs,rhs,opts) @@ -574,7 +569,6 @@ call extend(Abolish.Coercions, { \ 'k': Abolish.dashcase, \ '.': Abolish.dotcase, \ ' ': Abolish.spacecase, - \ 't': Abolish.titlecase, \ "function missing": s:function("s:unknown_coercion") \}, "keep") diff --git a/sources_non_forked/vim-fugitive/autoload/fugitive.vim b/sources_non_forked/vim-fugitive/autoload/fugitive.vim index 04ed1e9f..13df6a45 100644 --- a/sources_non_forked/vim-fugitive/autoload/fugitive.vim +++ b/sources_non_forked/vim-fugitive/autoload/fugitive.vim @@ -3188,12 +3188,12 @@ function! fugitive#BufReadCmd(...) abort setlocal bufhidden=delete endif let &l:modifiable = modifiable + call fugitive#MapJumps() if b:fugitive_type !=# 'blob' - setlocal filetype=git call s:Map('n', 'a', ":let b:fugitive_display_format += v:count1exe fugitive#BufReadCmd(@%)", '') call s:Map('n', 'i', ":let b:fugitive_display_format -= v:count1exe fugitive#BufReadCmd(@%)", '') + setlocal filetype=git endif - call fugitive#MapJumps() endtry setlocal modifiable @@ -4265,7 +4265,7 @@ function! s:ReloadStatusBuffer(...) abort endif let original_lnum = a:0 ? a:1 : line('.') let info = s:StageInfo(original_lnum) - call fugitive#BufReadStatus(0) + exe fugitive#BufReadStatus(0) call setpos('.', [0, s:StageSeek(info, original_lnum), 1, 0]) return '' endfunction diff --git a/sources_non_forked/vim-fugitive/plugin/fugitive.vim b/sources_non_forked/vim-fugitive/plugin/fugitive.vim index 9bc237fd..d88fb8cc 100644 --- a/sources_non_forked/vim-fugitive/plugin/fugitive.vim +++ b/sources_non_forked/vim-fugitive/plugin/fugitive.vim @@ -23,7 +23,7 @@ function! FugitiveGitDir(...) abort return g:fugitive_event endif 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()) elseif (!exists('b:git_dir') || b:git_dir =~# s:bad_git_dir) && &buftype =~# '^\%(nowrite\)\=$' 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', '')) elseif type(a:path) == type(0) 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 let path = s:Slash(a:path) endif diff --git a/sources_non_forked/vim-gitgutter/README.mkd b/sources_non_forked/vim-gitgutter/README.mkd index 3a6e96e6..82e65bd3 100644 --- a/sources_non_forked/vim-gitgutter/README.mkd +++ b/sources_non_forked/vim-gitgutter/README.mkd @@ -23,6 +23,7 @@ Features: * 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. * Handles line endings correctly, even with repos that do CRLF conversion. +* Handles clean/smudge filters. * Optional line highlighting. * 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). @@ -54,7 +55,7 @@ In the screenshot above you can see: ### 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: @@ -67,7 +68,6 @@ vim -u NONE -c "helptags vim-gitgutter/doc" -c q Neovim: - ``` mkdir -p ~/.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 ``` +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 @@ -92,7 +98,7 @@ Unfortunately I don't know the correct escaping for the path - if you do, please ### 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 `hp`, `hs`, and `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 GitGutterChangeLine " default: links to DiffChange 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: @@ -395,7 +401,7 @@ Similarly to the signs' colours, set up the following highlight groups in your c GitGutterAddLineNr " default: links to CursorLineNr GitGutterChangeLineNr " 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: @@ -747,5 +753,4 @@ Copyright Andrew Stewart, AirBlade Software Ltd. Released under the MIT licence [pathogen]: https://github.com/tpope/vim-pathogen [siv]: http://pluralsight.com/training/Courses/TableOfContents/smash-into-vim - [airblade]: http://airbladesoftware.com/peepcode-vim [terminus]: https://github.com/wincent/terminus diff --git a/sources_non_forked/vim-gitgutter/autoload/gitgutter.vim b/sources_non_forked/vim-gitgutter/autoload/gitgutter.vim index 69789795..da1053d1 100644 --- a/sources_non_forked/vim-gitgutter/autoload/gitgutter.vim +++ b/sources_non_forked/vim-gitgutter/autoload/gitgutter.vim @@ -46,6 +46,8 @@ function! gitgutter#process_buffer(bufnr, force) abort call gitgutter#debug#log('Not tracked: '.gitgutter#utility#file(a:bufnr)) catch /gitgutter assume unchanged/ 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/ call gitgutter#debug#log('Diff failed: '.gitgutter#utility#file(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() if !g:gitgutter_map_keys return @@ -193,14 +205,14 @@ endfunction " - it ignores unsaved changes in buffers " - it does not change to the repo root 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, '') if !empty(path_to_repo) && path_to_repo[-1:] != '/' let path_to_repo .= '/' endif 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'. \ ' --src-prefix=a/'.path_to_repo.' --dst-prefix=b/'.path_to_repo.' '. \ g:gitgutter_diff_args. ' '. g:gitgutter_diff_base @@ -249,7 +261,7 @@ function! gitgutter#difforig() if g:gitgutter_diff_relative_to ==# 'index' let index_name = gitgutter#utility#get_diff_base(bufnr).':'.path 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 " gitgutter#utility's use_known_shell() / restore_shell() functions. diff --git a/sources_non_forked/vim-gitgutter/autoload/gitgutter/debug.vim b/sources_non_forked/vim-gitgutter/autoload/gitgutter/debug.vim index def5b806..3ef0e384 100644 --- a/sources_non_forked/vim-gitgutter/autoload/gitgutter/debug.vim +++ b/sources_non_forked/vim-gitgutter/autoload/gitgutter/debug.vim @@ -75,23 +75,21 @@ function! gitgutter#debug#log(message, ...) abort endif endif - execute 'redir >> '.s:log_file - if s:new_log_session - let s:start = reltime() - silent echo "\n==== start log session ====" - endif + if s:new_log_session + let s:start = reltime() + call writefile(['', '========== start log session '.strftime('%d.%m.%Y %H:%M:%S').' =========='], s:log_file, 'a') + endif - let elapsed = reltimestr(reltime(s:start)).' ' - silent echo '' - " callers excluding this function - silent echo elapsed.expand('')[:-22].':' - silent echo elapsed.s:format_for_log(a:message) - if a:0 && !empty(a:1) - for msg in a:000 - silent echo elapsed.s:format_for_log(msg) - endfor - endif - redir END + let elapsed = reltimestr(reltime(s:start)).' ' + call writefile([''], s:log_file, 'a') + " callers excluding this function + call writefile([elapsed.expand('')[:-22].':'], s:log_file, 'a') + call writefile([elapsed.s:format_for_log(a:message)], s:log_file, 'a') + if a:0 && !empty(a:1) + for msg in a:000 + call writefile([elapsed.s:format_for_log(msg)], s:log_file, 'a') + endfor + endif let s:new_log_session = 0 endif diff --git a/sources_non_forked/vim-gitgutter/autoload/gitgutter/diff.vim b/sources_non_forked/vim-gitgutter/autoload/gitgutter/diff.vim index 794cd140..9e016a40 100644 --- a/sources_non_forked/vim-gitgutter/autoload/gitgutter/diff.vim +++ b/sources_non_forked/vim-gitgutter/autoload/gitgutter/diff.vim @@ -6,7 +6,7 @@ let s:hunk_re = '^@@ -\(\d\+\),\?\(\d*\) +\(\d\+\),\?\(\d*\) @@' " True for git v1.7.2+. 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 endfunction @@ -81,6 +81,20 @@ function! gitgutter#diff#run_diff(bufnr, from, preserve_full_diff) abort throw 'gitgutter assume unchanged' 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. " bash doesn't mind the parentheses. let cmd = '(' @@ -124,14 +138,14 @@ function! gitgutter#diff#run_diff(bufnr, from, preserve_full_diff) abort " 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 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' let from_file = gitgutter#utility#repo_path(a:bufnr, 1) endif " 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 let cmd .= ' -c "diff.autorefreshindex=0"' let cmd .= ' -c "diff.noprefix=false"' @@ -376,6 +390,12 @@ function! gitgutter#diff#hunk_diff(bufnr, full_diff, ...) 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) let bufcontents = getbufline(a:bufnr, 1, '$') @@ -387,7 +407,13 @@ function! s:write_buffer(bufnr, file) endif if getbufvar(a:bufnr, '&fileformat') ==# 'dos' - call map(bufcontents, 'v:val."\r"') + if getbufvar(a:bufnr, '&endofline') + call map(bufcontents, 'v:val."\r"') + else + for i in range(len(bufcontents) - 1) + let bufcontents[i] = bufcontents[i] . "\r" + endfor + endif endif if getbufvar(a:bufnr, '&endofline') diff --git a/sources_non_forked/vim-gitgutter/autoload/gitgutter/highlight.vim b/sources_non_forked/vim-gitgutter/autoload/gitgutter/highlight.vim index 3684549c..dd790338 100644 --- a/sources_non_forked/vim-gitgutter/autoload/gitgutter/highlight.vim +++ b/sources_non_forked/vim-gitgutter/autoload/gitgutter/highlight.vim @@ -106,7 +106,7 @@ function! gitgutter#highlight#define_highlights() abort highlight default link GitGutterAddLineNr CursorLineNr highlight default link GitGutterChangeLineNr CursorLineNr highlight default link GitGutterDeleteLineNr CursorLineNr - highlight default link GitGutterChangeDeleteLineNr CursorLineNr + highlight default link GitGutterChangeDeleteLineNr GitGutterChangeLineNr " Highlights used intra line. highlight default GitGutterAddIntraLine gui=reverse cterm=reverse diff --git a/sources_non_forked/vim-gitgutter/autoload/gitgutter/hunk.vim b/sources_non_forked/vim-gitgutter/autoload/gitgutter/hunk.vim index 87719b8f..e76cd9b2 100644 --- a/sources_non_forked/vim-gitgutter/autoload/gitgutter/hunk.vim +++ b/sources_non_forked/vim-gitgutter/autoload/gitgutter/hunk.vim @@ -294,11 +294,32 @@ endfunction function! s:stage(hunk_diff) let bufnr = bufnr('') - let diff = s:adjust_header(bufnr, a:hunk_diff) - " Apply patch to index. - call gitgutter#utility#system( - \ gitgutter#utility#cd_cmd(bufnr, g:gitgutter_git_executable.' '.g:gitgutter_git_args.' apply --cached --unidiff-zero - '), - \ diff) + + if gitgutter#utility#clean_smudge_filter_applies(bufnr) + let choice = input('File uses clean/smudge filter. Stage entire file (y/n)? ') + normal! : + 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) + " Apply patch to index. + call gitgutter#utility#system( + \ gitgutter#utility#cd_cmd(bufnr, gitgutter#git().' apply --cached --unidiff-zero - '), + \ diff) + endif + if v:shell_error call gitgutter#utility#warn('Patch does not apply') else @@ -422,6 +443,9 @@ endfunction " Floating window: does not move cursor to floating window. " Preview window: moves cursor to preview window. function! s:open_hunk_preview_window() + let source_wrap = &wrap + let source_window = winnr() + if g:gitgutter_preview_win_floating if exists('*nvim_open_win') 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) " Set default width and height for now. 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, 'buftype', 'acwrite') 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) call setbufvar(winbufnr(s:winid), '&filetype', 'diff') + call setwinvar(s:winid, '&wrap', source_wrap) return endif @@ -479,11 +505,13 @@ function! s:open_hunk_preview_window() let s:preview_bufnr = bufnr('') endif 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. setlocal noreadonly modifiable noswapfile if g:gitgutter_close_preview_on_escape " Ensure cursor goes to the expected window. - nnoremap :wincmd ppclose + nnoremap :execute b:source_window . "wincmd w"pclose endif if exists('&previewpopup') @@ -594,7 +622,7 @@ endfunction function! s:goto_original_window() - noautocmd wincmd p + noautocmd execute b:source_window . "wincmd w" doautocmd WinEnter endfunction diff --git a/sources_non_forked/vim-gitgutter/autoload/gitgutter/utility.vim b/sources_non_forked/vim-gitgutter/autoload/gitgutter/utility.vim index b81efbe8..657b1a2c 100644 --- a/sources_non_forked/vim-gitgutter/autoload/gitgutter/utility.vim +++ b/sources_non_forked/vim-gitgutter/autoload/gitgutter/utility.vim @@ -150,9 +150,8 @@ function! gitgutter#utility#set_repo_path(bufnr, continuation) abort call gitgutter#utility#setbufvar(a:bufnr, 'path', -1) let cmd = gitgutter#utility#cd_cmd(a:bufnr, - \ g:gitgutter_git_executable.' '.g:gitgutter_git_args. - \ ' ls-files -v --error-unmatch --full-name -z -- '. - \ gitgutter#utility#shellescape(s:filename(a:bufnr))) + \ gitgutter#git().' ls-files -v --error-unmatch --full-name -z -- '. + \ gitgutter#utility#shellescape(gitgutter#utility#filename(a:bufnr))) if g:gitgutter_async && gitgutter#async#available() && !has('vim_starting') let handler = copy(s:set_path_handler) @@ -178,6 +177,20 @@ function! gitgutter#utility#set_repo_path(bufnr, continuation) abort 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 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 @@ -233,7 +246,7 @@ function! s:dir(bufnr) abort endfunction " Not shellescaped. -function! s:filename(bufnr) abort +function! gitgutter#utility#filename(bufnr) abort return fnamemodify(s:abs_path(a:bufnr, 0), ':t') endfunction diff --git a/sources_non_forked/vim-gitgutter/doc/gitgutter.txt b/sources_non_forked/vim-gitgutter/doc/gitgutter.txt index 19f28d18..bb930674 100644 --- a/sources_non_forked/vim-gitgutter/doc/gitgutter.txt +++ b/sources_non_forked/vim-gitgutter/doc/gitgutter.txt @@ -41,7 +41,8 @@ one in 2013. =============================================================================== 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:~ > @@ -59,6 +60,16 @@ Neovim:~ 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* @@ -635,7 +646,7 @@ colorscheme or |vimrc|: GitGutterAddLine " default: links to DiffAdd GitGutterChangeLine " default: links to DiffChange 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|: @@ -648,7 +659,7 @@ your colorscheme or |vimrc|: GitGutterAddLineNr " default: links to CursorLineNr GitGutterChangeLineNr " 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|: > diff --git a/sources_non_forked/vim-gitgutter/plugin/gitgutter.vim b/sources_non_forked/vim-gitgutter/plugin/gitgutter.vim index 008724e3..a9bdca74 100644 --- a/sources_non_forked/vim-gitgutter/plugin/gitgutter.vim +++ b/sources_non_forked/vim-gitgutter/plugin/gitgutter.vim @@ -296,9 +296,6 @@ augroup gitgutter 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. " FocusGained gets triggered on startup with Neovim at least already. " Therefore this tracks also if it was lost before. @@ -312,9 +309,11 @@ augroup gitgutter autocmd ColorScheme * call gitgutter#highlight#define_highlights() - " Disable during :vimgrep - autocmd QuickFixCmdPre *vimgrep* let [g:gitgutter_was_enabled, g:gitgutter_enabled] = [g:gitgutter_enabled, 0] - autocmd QuickFixCmdPost *vimgrep* let g:gitgutter_enabled = g:gitgutter_was_enabled | unlet g:gitgutter_was_enabled + autocmd BufFilePre * let b:gitgutter_was_enabled = gitgutter#utility#getbufvar(expand(''), 'enabled') | GitGutterBufferDisable + autocmd BufFilePost * if b:gitgutter_was_enabled | GitGutterBufferEnable | endif | unlet b:gitgutter_was_enabled + + autocmd QuickFixCmdPre *vimgrep* let b:gitgutter_was_enabled = gitgutter#utility#getbufvar(expand(''), 'enabled') | GitGutterBufferDisable + autocmd QuickFixCmdPost *vimgrep* if b:gitgutter_was_enabled | GitGutterBufferEnable | endif | unlet b:gitgutter_was_enabled augroup END " }}} diff --git a/sources_non_forked/vim-gitgutter/test/.gitattributes b/sources_non_forked/vim-gitgutter/test/.gitattributes new file mode 100644 index 00000000..a2ef04b6 --- /dev/null +++ b/sources_non_forked/vim-gitgutter/test/.gitattributes @@ -0,0 +1 @@ +*.foo filter=reverse diff=reverse diff --git a/sources_non_forked/vim-gitgutter/test/.gitconfig b/sources_non_forked/vim-gitgutter/test/.gitconfig new file mode 100644 index 00000000..da9456fb --- /dev/null +++ b/sources_non_forked/vim-gitgutter/test/.gitconfig @@ -0,0 +1,6 @@ +[filter "reverse"] + clean = "rev" + smudge = "rev" + +[diff "reverse"] + textconv = "cat" diff --git a/sources_non_forked/vim-gitgutter/test/fixture.foo b/sources_non_forked/vim-gitgutter/test/fixture.foo new file mode 100644 index 00000000..f384549c --- /dev/null +++ b/sources_non_forked/vim-gitgutter/test/fixture.foo @@ -0,0 +1,4 @@ +one +two +three +four diff --git a/sources_non_forked/vim-gitgutter/test/fixture_dos_noeol.txt b/sources_non_forked/vim-gitgutter/test/fixture_dos_noeol.txt new file mode 100644 index 00000000..ecf5d7cf --- /dev/null +++ b/sources_non_forked/vim-gitgutter/test/fixture_dos_noeol.txt @@ -0,0 +1,7 @@ +a +b +c +d +e +f +g \ No newline at end of file diff --git a/sources_non_forked/vim-gitgutter/test/test_gitgutter.vim b/sources_non_forked/vim-gitgutter/test/test_gitgutter.vim index df527b86..e0ded711 100644 --- a/sources_non_forked/vim-gitgutter/test/test_gitgutter.vim +++ b/sources_non_forked/vim-gitgutter/test/test_gitgutter.vim @@ -54,8 +54,12 @@ endfunction function SetUp() call system("git init ".s:test_repo. \ " && cd ".s:test_repo. + \ " && cp ../.gitconfig .". + \ " && cp ../.gitattributes .". + \ " && cp ../fixture.foo .". \ " && cp ../fixture.txt .". \ " && cp ../fixture_dos.txt .". + \ " && cp ../fixture_dos_noeol.txt .". \ " && git add . && git commit -m 'initial'". \ " && git config diff.mnemonicPrefix false") execute ':cd' s:test_repo @@ -348,6 +352,21 @@ function Test_untracked_file_square_brackets_within_repo() 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() 5 GitGutterStageHunk @@ -390,6 +409,12 @@ function Test_preview_dos() endfunction +function Test_dos_noeol() + edit! fixture_dos_noeol.txt + GitGutter + + call s:assert_signs([], 'fixture_dos_noeol.txt') +endfunction function Test_hunk_stage() @@ -752,7 +777,7 @@ endfunction function Test_overlapping_hunk_op() - func Answer(char) + func! Answer(char) call feedkeys(a:char."\") endfunc @@ -1164,3 +1189,29 @@ function Test_assume_unchanged() call s:trigger_gitgutter() call s:assert_signs([], 'fixture.txt') 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."\") + 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 diff --git a/sources_non_forked/vim-markdown/ftplugin/markdown.vim b/sources_non_forked/vim-markdown/ftplugin/markdown.vim index 4c4c85ea..60505cd3 100644 --- a/sources_non_forked/vim-markdown/ftplugin/markdown.vim +++ b/sources_non_forked/vim-markdown/ftplugin/markdown.vim @@ -656,7 +656,12 @@ endfunction function! s:OpenUrlUnderCursor() let l:url = s:Markdown_GetUrlForPosition(line('.'), col('.')) if l:url !=# '' - call s:VersionAwareNetrwBrowseX(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) else echomsg 'The cursor is not on a link.' endif diff --git a/sources_non_forked/vim-snippets/snippets/cpp.snippets b/sources_non_forked/vim-snippets/snippets/cpp.snippets index 4e4155a8..3bd1f001 100644 --- a/sources_non_forked/vim-snippets/snippets/cpp.snippets +++ b/sources_non_forked/vim-snippets/snippets/cpp.snippets @@ -230,3 +230,24 @@ snippet af auto function { ${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:: diff --git a/sources_non_forked/vim-snippets/snippets/tex.snippets b/sources_non_forked/vim-snippets/snippets/tex.snippets index 25f8f37f..3dddd184 100644 --- a/sources_non_forked/vim-snippets/snippets/tex.snippets +++ b/sources_non_forked/vim-snippets/snippets/tex.snippets @@ -390,63 +390,48 @@ snippet hrefc # enquote from package csquotes snippet enq enquote \\enquote{${1:${VISUAL:text}}} ${0} - # Time derivative snippet ddt time derivative \\frac{d}{dt} {$1} {$0} - # Limit snippet lim limit \\lim_{{$1}} {{$2}} {$0} - # Partial derivative snippet pdv partial derivation \\frac{\\partial {$1}}{\\partial {$2}} {$0} - # Second order partial derivative snippet ppdv second partial derivation \\frac{\\partial^2 {$1}}{\\partial {$2} \\partial {$3}} {$0} - # Ordinary derivative snippet dv derivative \\frac{d {$1}}{d {$2}} {$0} - # Summation snippet summ summation \\sum_{{$1}} {$0} - # Shorthand for time derivative snippet dot dot \\dot{{$1}} {$0} - # Shorthand for second order time derivative snippet ddot ddot \\ddot{{$1}} {$0} - # Vector snippet vec vector \\vec{{$1}} {$0} - # Bar snippet bar bar \\bar{{$1}} {$0} - # Cross product snippet \x cross product \\times {$0} - # Dot product snippet . dot product \\cdot {$0} - # Integral snippet int integral \\int_{{$1}}^{{$2}} {$3} \\: d{$4} {$0} - # Right arrow snippet ra rightarrow \\rightarrow {$0} - # Long right arrow snippet lra longrightarrow \\longrightarrow {$0}