Updated vim plugins

This commit is contained in:
Amir 2022-12-03 11:29:32 +01:00
parent d8db85c663
commit 2b653aa950
32 changed files with 650 additions and 110 deletions

View file

@ -0,0 +1,46 @@
" Author: Horacio Sanson <https://github.com/hsanson>
" Description: Support ansible language server https://github.com/ansible/ansible-language-server/
call ale#Set('ansible_language_server_executable', 'ansible-language-server')
call ale#Set('ansible_language_server_config', {})
function! ale_linters#ansible#ansible_language_server#Executable(buffer) abort
return ale#Var(a:buffer, 'ansible_language_server_executable')
endfunction
function! ale_linters#ansible#ansible_language_server#GetCommand(buffer) abort
let l:executable = ale_linters#ansible#ansible_language_server#Executable(a:buffer)
return ale#Escape(l:executable) . ' --stdio'
endfunction
function! ale_linters#ansible#ansible_language_server#FindProjectRoot(buffer) abort
let l:dir = fnamemodify(
\ ale#path#FindNearestFile(a:buffer, 'ansible.cfg'),
\ ':h'
\)
if l:dir isnot# '.' && isdirectory(l:dir)
return l:dir
endif
let l:dir = fnamemodify(
\ ale#path#FindNearestDirectory(a:buffer, '.git'),
\ ':h:h'
\)
if l:dir isnot# '.' && isdirectory(l:dir)
return l:dir
endif
return ''
endfunction
call ale#linter#Define('ansible', {
\ 'name': 'ansible-language-server',
\ 'lsp': 'stdio',
\ 'executable': function('ale_linters#ansible#ansible_language_server#Executable'),
\ 'command': function('ale_linters#ansible#ansible_language_server#GetCommand'),
\ 'project_root': function('ale_linters#ansible#ansible_language_server#FindProjectRoot'),
\ 'lsp_config': {b -> ale#Var(b, 'ansible_language_server_config')}
\})

View file

@ -1,10 +1,15 @@
" Author: Ty-Lucas Kelley <tylucaskelley@gmail.com> " Author: Ty-Lucas Kelley <tylucaskelley@gmail.com>
" Description: Adds support for markdownlint " Description: Adds support for markdownlint
call ale#Set('markdown_markdownlint_executable', 'markdownlint')
call ale#Set('markdown_markdownlint_options', '') call ale#Set('markdown_markdownlint_options', '')
function! ale_linters#markdown#markdownlint#GetExecutable(buffer) abort
return ale#Var(a:buffer, 'markdown_markdownlint_executable')
endfunction
function! ale_linters#markdown#markdownlint#GetCommand(buffer) abort function! ale_linters#markdown#markdownlint#GetCommand(buffer) abort
let l:executable = 'markdownlint' let l:executable = ale_linters#markdown#markdownlint#GetExecutable(a:buffer)
let l:options = ale#Var(a:buffer, 'markdown_markdownlint_options') let l:options = ale#Var(a:buffer, 'markdown_markdownlint_options')
@ -14,7 +19,7 @@ endfunction
call ale#linter#Define('markdown', { call ale#linter#Define('markdown', {
\ 'name': 'markdownlint', \ 'name': 'markdownlint',
\ 'executable': 'markdownlint', \ 'executable': function('ale_linters#markdown#markdownlint#GetExecutable'),
\ 'lint_file': 1, \ 'lint_file': 1,
\ 'output_stream': 'both', \ 'output_stream': 'both',
\ 'command': function('ale_linters#markdown#markdownlint#GetCommand'), \ 'command': function('ale_linters#markdown#markdownlint#GetCommand'),

View file

@ -0,0 +1,72 @@
" Author: Carl Smedstad <carl.smedstad at protonmail dot com>
" Description: sqlfluff for SQL files
let g:ale_sql_sqlfluff_executable =
\ get(g:, 'ale_sql_sqlfluff_executable', 'sqlfluff')
let g:ale_sql_sqlfluff_options =
\ get(g:, 'ale_sql_sqlfluff_options', '')
function! ale_linters#sql#sqlfluff#Executable(buffer) abort
return ale#Var(a:buffer, 'sql_sqlfluff_executable')
endfunction
function! ale_linters#sql#sqlfluff#Command(buffer) abort
let l:executable = ale_linters#sql#sqlfluff#Executable(a:buffer)
let l:options = ale#Var(a:buffer, 'sql_sqlfluff_options')
let l:cmd =
\ ale#Escape(l:executable)
\ . ' lint'
let l:config_file = ale#path#FindNearestFile(a:buffer, '.sqlfluff')
if !empty(l:config_file)
let l:cmd .= ' --config ' . ale#Escape(l:config_file)
else
let l:cmd .= ' --dialect ansi'
endif
let l:cmd .=
\ ' --format json '
\ . l:options
\ . ' %t'
return l:cmd
endfunction
function! ale_linters#sql#sqlfluff#Handle(buffer, lines) abort
let l:output = []
let l:json_lines = ale#util#FuzzyJSONDecode(a:lines, [])
if empty(l:json_lines)
return l:output
endif
let l:json = l:json_lines[0]
" if there's no warning, 'result' is `null`.
if empty(get(l:json, 'violations'))
return l:output
endif
for l:violation in get(l:json, 'violations', [])
call add(l:output, {
\ 'filename': l:json.filepath,
\ 'lnum': l:violation.line_no,
\ 'col': l:violation.line_pos,
\ 'text': l:violation.description,
\ 'code': l:violation.code,
\ 'type': 'W',
\})
endfor
return l:output
endfunction
call ale#linter#Define('sql', {
\ 'name': 'sqlfluff',
\ 'executable': function('ale_linters#sql#sqlfluff#Executable'),
\ 'command': function('ale_linters#sql#sqlfluff#Command'),
\ 'callback': 'ale_linters#sql#sqlfluff#Handle',
\})

View file

@ -263,8 +263,8 @@ let s:default_registry = {
\ }, \ },
\ 'clang-format': { \ 'clang-format': {
\ 'function': 'ale#fixers#clangformat#Fix', \ 'function': 'ale#fixers#clangformat#Fix',
\ 'suggested_filetypes': ['c', 'cpp', 'cuda'], \ 'suggested_filetypes': ['c', 'cpp', 'cs', 'cuda', 'java', 'javascript', 'json', 'objc', 'proto'],
\ 'description': 'Fix C/C++ and cuda files with clang-format.', \ 'description': 'Fix C, C++, C#, CUDA, Java, JavaScript, JSON, ObjectiveC and Protobuf files with clang-format.',
\ }, \ },
\ 'cmakeformat': { \ 'cmakeformat': {
\ 'function': 'ale#fixers#cmakeformat#Fix', \ 'function': 'ale#fixers#cmakeformat#Fix',
@ -386,6 +386,11 @@ let s:default_registry = {
\ 'suggested_filetypes': ['sh'], \ 'suggested_filetypes': ['sh'],
\ 'description': 'Fix sh files with shfmt.', \ 'description': 'Fix sh files with shfmt.',
\ }, \ },
\ 'sqlfluff': {
\ 'function': 'ale#fixers#sqlfluff#Fix',
\ 'suggested_filetypes': ['sql'],
\ 'description': 'Fix SQL files with sqlfluff.',
\ },
\ 'sqlfmt': { \ 'sqlfmt': {
\ 'function': 'ale#fixers#sqlfmt#Fix', \ 'function': 'ale#fixers#sqlfmt#Fix',
\ 'suggested_filetypes': ['sql'], \ 'suggested_filetypes': ['sql'],

View file

@ -0,0 +1,25 @@
" Author: Carl Smedstad <carl.smedstad at protonmail dot com>
" Description: Fixing SQL files with sqlfluff
call ale#Set('sql_sqlfluff_executable', 'sqlfluff')
function! ale#fixers#sqlfluff#Fix(buffer) abort
let l:executable = ale#Var(a:buffer, 'sql_sqlfluff_executable')
let l:cmd =
\ ale#Escape(l:executable)
\ . ' fix --force'
let l:config_file = ale#path#FindNearestFile(a:buffer, '.sqlfluff')
if !empty(l:config_file)
let l:cmd .= ' --config ' . ale#Escape(l:config_file)
else
let l:cmd .= ' --dialect ansi'
endif
return {
\ 'command': l:cmd . ' %t > /dev/null',
\ 'read_temporary_file': 1,
\}
endfunction

View file

@ -1,6 +1,28 @@
=============================================================================== ===============================================================================
ALE Ansible Integration *ale-ansible-options* ALE Ansible Integration *ale-ansible-options*
===============================================================================
ansible-language-server *ale-ansible-language-server*
g:ale_ansible_language_server_executable *g:ale_ansible_language_server*
*b:ale_ansible_language_server*
Type: |String|
Default: 'ansible-language-server'
Variable can be used to modify the executable used for ansible language server.
g:ale_ansible_language_server_config *g:ale_ansible_language_server_config*
*b:ale_ansible_language_server_config*
Type: |Dictionary|
Default: '{}'
Configuration parameters sent to the language server on start. Refer to the
ansible language server configuration documentation for list of available
options: https://als.readthedocs.io/en/latest/settings/
=============================================================================== ===============================================================================
ansible-lint *ale-ansible-ansible-lint* ansible-lint *ale-ansible-ansible-lint*
@ -12,5 +34,6 @@ g:ale_ansible_ansible_lint_executable *g:ale_ansible_ansible_lint_executable*
This variable can be changed to modify the executable used for ansible-lint. This variable can be changed to modify the executable used for ansible-lint.
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:

View file

@ -6,6 +6,13 @@ In addition to the linters that are provided with ALE, C# code can be checked
with the OmniSharp plugin. See here: https://github.com/OmniSharp/omnisharp-vim with the OmniSharp plugin. See here: https://github.com/OmniSharp/omnisharp-vim
===============================================================================
clang-format *ale-cs-clangformat*
See |ale-c-clangformat| for information about the available options.
Note that the C options are also used for C#.
=============================================================================== ===============================================================================
csc *ale-cs-csc* csc *ale-cs-csc*

View file

@ -2,6 +2,32 @@
ALE CUDA Integration *ale-cuda-options* ALE CUDA Integration *ale-cuda-options*
===============================================================================
clang-format *ale-cuda-clangformat*
See |ale-c-clangformat| for information about the available options.
Note that the C options are also used for CUDA.
===============================================================================
clangd *ale-cuda-clangd*
g:ale_cuda_clangd_executable *g:ale_cuda_clangd_executable*
*b:ale_cuda_clangd_executable*
Type: |String|
Default: `'clangd'`
This variable can be changed to use a different executable for clangd.
g:ale_cuda_clangd_options *g:ale_cuda_clangd_options*
*b:ale_cuda_clangd_options*
Type: |String|
Default: `''`
This variable can be changed to modify flags given to clangd.
=============================================================================== ===============================================================================
nvcc *ale-cuda-nvcc* nvcc *ale-cuda-nvcc*
@ -21,30 +47,6 @@ g:ale_cuda_nvcc_options *g:ale_cuda_nvcc_options*
This variable can be changed to modify flags given to nvcc. This variable can be changed to modify flags given to nvcc.
===============================================================================
clangd *ale-cuda-clangd*
g:ale_cuda_clangd_executable *g:ale_cuda_clangd_executable*
*b:ale_cuda_clangd_executable*
Type: |String|
Default: `'clangd'`
This variable can be changed to use a different executable for clangd.
g:ale_cuda_clangd_options *g:ale_cuda_clangd_options*
*b:ale_cuda_clangd_options*
Type: |String|
Default: `''`
This variable can be changed to modify flags given to clangd.
===============================================================================
clang-format *ale-cuda-clangformat*
See |ale-c-clangformat| for information about the available options.
Note that the C options are also used for cuda.
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:

View file

@ -154,9 +154,9 @@ ALE runs tests with the following versions of Vim in the following
environments. environments.
1. Vim 8.0.0027 on Linux via GitHub Actions. 1. Vim 8.0.0027 on Linux via GitHub Actions.
2. Vim 8.2.4693 on Linux via GitHub Actions. 2. Vim 9.0.0133 on Linux via GitHub Actions.
3. NeoVim 0.2.0 on Linux via GitHub Actions. 3. NeoVim 0.2.0 on Linux via GitHub Actions.
4. NeoVim 0.7.0 on Linux via GitHub Actions. 4. NeoVim 0.8.0 on Linux via GitHub Actions.
6. Vim 8 (stable builds) on Windows via AppVeyor. 6. Vim 8 (stable builds) on Windows via AppVeyor.
If you are developing ALE code on Linux, Mac OSX, or BSD, you can run ALEs If you are developing ALE code on Linux, Mac OSX, or BSD, you can run ALEs

View file

@ -41,6 +41,13 @@ g:ale_java_checkstyle_options *g:ale_java_checkstyle_options*
configuration files set with |g:ale_java_checkstyle_config|. configuration files set with |g:ale_java_checkstyle_config|.
===============================================================================
clang-format *ale-java-clangformat*
See |ale-c-clangformat| for information about the available options.
Note that the C options are also used for Java.
=============================================================================== ===============================================================================
cspell *ale-java-cspell* cspell *ale-java-cspell*

View file

@ -17,12 +17,21 @@ You should change the structure of your project from this: >
/path/foo/.eslintrc.js # root: true /path/foo/.eslintrc.js # root: true
/path/foo/bar/.eslintrc.js # root: false /path/foo/bar/.eslintrc.js # root: false
< <
To this: > To this: >
/path/foo/.base-eslintrc.js # Base configuration here /path/foo/.base-eslintrc.js # Base configuration here
/path/foo/.eslintrc.js # extends: ["/path/foo/.base-eslintrc.js"] /path/foo/.eslintrc.js # extends: ["/path/foo/.base-eslintrc.js"]
/path/foo/bar/.eslintrc.js # extends: ["/path/foo/.base-eslintrc.js"] /path/foo/bar/.eslintrc.js # extends: ["/path/foo/.base-eslintrc.js"]
< <
===============================================================================
clang-format *ale-javascript-clangformat*
See |ale-c-clangformat| for information about the available options.
Note that the C options are also used for JavaScript.
=============================================================================== ===============================================================================
cspell *ale-javascript-cspell* cspell *ale-javascript-cspell*

View file

@ -2,6 +2,13 @@
ALE JSON Integration *ale-json-options* ALE JSON Integration *ale-json-options*
===============================================================================
clang-format *ale-json-clangformat*
See |ale-c-clangformat| for information about the available options.
Note that the C options are also used for JSON.
=============================================================================== ===============================================================================
cspell *ale-json-cspell* cspell *ale-json-cspell*

View file

@ -17,6 +17,15 @@ See |ale-dprint-options| and https://dprint.dev/plugins/markdown
=============================================================================== ===============================================================================
markdownlint *ale-markdown-markdownlint* markdownlint *ale-markdown-markdownlint*
g:ale_markdown_markdown_executable *g:ale_markdown_markdownlint_executable*
*b:ale_markdown_markdownlint_executable*
Type: |String|
Default: `'markdownlint'`
Override the invoked markdownlint binary. You can use other binaries such as
markdownlint-cli2.
g:ale_markdown_markdownlint_options *g:ale_markdown_markdownlint_options* g:ale_markdown_markdownlint_options *g:ale_markdown_markdownlint_options*
*b:ale_markdown_markdownlint_options* *b:ale_markdown_markdownlint_options*
Type: |String| Type: |String|

View file

@ -2,42 +2,6 @@
ALE Objective-C Integration *ale-objc-options* ALE Objective-C Integration *ale-objc-options*
===============================================================================
clang *ale-objc-clang*
g:ale_objc_clang_options *g:ale_objc_clang_options*
*b:ale_objc_clang_options*
Type: |String|
Default: `'-std=c11 -Wall'`
This variable can be changed to modify flags given to clang.
===============================================================================
clangd *ale-objc-clangd*
g:ale_objc_clangd_executable *g:ale_objc_clangd_executable*
*b:ale_objc_clangd_executable*
Type: |String|
Default: `'clangd'`
This variable can be changed to use a different executable for clangd.
g:ale_objc_clangd_options *g:ale_objc_clangd_options*
*b:ale_objc_clangd_options*
Type: |String|
Default: `''`
This variable can be changed to modify flags given to clangd.
===============================================================================
uncrustify *ale-objc-uncrustify*
See |ale-c-uncrustify| for information about the available options.
=============================================================================== ===============================================================================
ccls *ale-objc-ccls* ccls *ale-objc-ccls*
@ -69,5 +33,48 @@ g:ale_objc_ccls_init_options *g:ale_objc_ccls_init_options*
available options and explanations. available options and explanations.
===============================================================================
clang *ale-objc-clang*
g:ale_objc_clang_options *g:ale_objc_clang_options*
*b:ale_objc_clang_options*
Type: |String|
Default: `'-std=c11 -Wall'`
This variable can be changed to modify flags given to clang.
===============================================================================
clang-format *ale-objc-clangformat*
See |ale-c-clangformat| for information about the available options.
Note that the C options are also used for Objective-C.
===============================================================================
clangd *ale-objc-clangd*
g:ale_objc_clangd_executable *g:ale_objc_clangd_executable*
*b:ale_objc_clangd_executable*
Type: |String|
Default: `'clangd'`
This variable can be changed to use a different executable for clangd.
g:ale_objc_clangd_options *g:ale_objc_clangd_options*
*b:ale_objc_clangd_options*
Type: |String|
Default: `''`
This variable can be changed to modify flags given to clangd.
===============================================================================
uncrustify *ale-objc-uncrustify*
See |ale-c-uncrustify| for information about the available options.
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:

View file

@ -9,12 +9,15 @@ To enable `.proto` file linting, update |g:ale_linters| as appropriate:
> >
" Enable linter for .proto files " Enable linter for .proto files
let g:ale_linters = {'proto': ['buf-lint', 'protoc-gen-lint', 'protolint']} let g:ale_linters = {'proto': ['buf-lint', 'protoc-gen-lint', 'protolint']}
<
To enable `.proto` file fixing, update |g:ale_fixers| as appropriate: To enable `.proto` file fixing, update |g:ale_fixers| as appropriate:
> >
" Enable linter for .proto files " Enable linter for .proto files
let b:ale_fixers = {'proto': ['buf-format', 'protolint']} let b:ale_fixers = {'proto': ['buf-format', 'protolint']}
< <
=============================================================================== ===============================================================================
buf-format *ale-proto-buf-format* buf-format *ale-proto-buf-format*
@ -29,6 +32,7 @@ g:ale_proto_buf_format_executable *g:ale_proto_buf_format_executable*
This variable can be changed to modify the executable used for buf. This variable can be changed to modify the executable used for buf.
=============================================================================== ===============================================================================
buf-lint *ale-proto-buf-lint* buf-lint *ale-proto-buf-lint*
@ -53,6 +57,14 @@ g:ale_proto_buf_lint_config *g:ale_proto_buf_lint_config*
The path to the configuration file can be an absolute path or a relative The path to the configuration file can be an absolute path or a relative
path. ALE will search for the relative path in parent directories. path. ALE will search for the relative path in parent directories.
===============================================================================
clang-format *ale-proto-clangformat*
See |ale-c-clangformat| for information about the available options.
Note that the C options are also used for Proto.
=============================================================================== ===============================================================================
protoc-gen-lint *ale-proto-protoc-gen-lint* protoc-gen-lint *ale-proto-protoc-gen-lint*
@ -68,6 +80,7 @@ g:ale_proto_protoc_gen_lint_options *g:ale_proto_protoc_gen_lint_options*
directory of the linted file is always passed as an include path with '-I' directory of the linted file is always passed as an include path with '-I'
before any user-supplied options. before any user-supplied options.
=============================================================================== ===============================================================================
protolint *ale-proto-protolint* protolint *ale-proto-protolint*
@ -94,5 +107,6 @@ g:ale_proto_protolint_config *g:ale_proto_protolint_config*
The path to the configuration file can be an absolute path or a relative The path to the configuration file can be an absolute path or a relative
path. ALE will search for the relative path in parent directories. path. ALE will search for the relative path in parent directories.
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:

View file

@ -288,5 +288,13 @@ g:ale_rust_rustfmt_options *g:ale_rust_rustfmt_options*
This variable can be set to pass additional options to the rustfmt fixer. This variable can be set to pass additional options to the rustfmt fixer.
g:ale_rust_rustfmt_executable *g:ale_rust_rustfmt_executable*
*b:ale_rust_rustfmt_executable*
Type: |String|
Default: `'rustfmt'`
This variable can be modified to change the executable path for `rustfmt`.
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:

View file

@ -27,6 +27,27 @@ g:ale_sql_pgformatter_options *g:ale_sql_pgformatter_options*
This variable can be set to pass additional options to the pgformatter fixer. This variable can be set to pass additional options to the pgformatter fixer.
===============================================================================
sqlfluff *ale-sql-sqlfluff*
g:ale_sql_sqlfluff_executable *g:ale_sql_sqlfluff_executable*
*b:ale_sql_sqlfluff_executable*
Type: |String|
Default: `'sqlfluff'`
This variable sets executable used for sqlfluff.
g:ale_sql_sqlfluff_options *g:ale_sql_sqlfluff_options*
*b:ale_sql_sqlfluff_options*
Type: |String|
Default: `''`
This variable can be set to pass additional options to the sqlfluff linter.
===============================================================================
=============================================================================== ===============================================================================
sqlfmt *ale-sql-sqlfmt* sqlfmt *ale-sql-sqlfmt*

View file

@ -18,6 +18,7 @@ Notes:
* `gcc` * `gcc`
* `gnatpp` * `gnatpp`
* Ansible * Ansible
* `ansible-language-server`
* `ansible-lint`!! * `ansible-lint`!!
* API Blueprint * API Blueprint
* `drafter` * `drafter`
@ -75,6 +76,7 @@ Notes:
* `gcc` (`cc`) * `gcc` (`cc`)
* `uncrustify` * `uncrustify`
* C# * C#
* `clang-format`
* `csc`!! * `csc`!!
* `cspell` * `cspell`
* `dotnet-format` * `dotnet-format`
@ -128,6 +130,7 @@ Notes:
* Cucumber * Cucumber
* `cucumber` * `cucumber`
* CUDA * CUDA
* `clang-format`
* `clangd` * `clangd`
* `nvcc`!! * `nvcc`!!
* Cypher * Cypher
@ -270,6 +273,7 @@ Notes:
* Java * Java
* `PMD` * `PMD`
* `checkstyle`!! * `checkstyle`!!
* `clang-format`
* `cspell` * `cspell`
* `eclipselsp` * `eclipselsp`
* `google-java-format` * `google-java-format`
@ -277,6 +281,7 @@ Notes:
* `javalsp` * `javalsp`
* `uncrustify` * `uncrustify`
* JavaScript * JavaScript
* `clang-format`
* `cspell` * `cspell`
* `deno` * `deno`
* `dprint` * `dprint`
@ -293,6 +298,7 @@ Notes:
* `xo` * `xo`
* JSON * JSON
* `VSCode JSON language server` * `VSCode JSON language server`
* `clang-format`
* `cspell` * `cspell`
* `dprint` * `dprint`
* `eslint` * `eslint`
@ -383,6 +389,7 @@ Notes:
* Objective-C * Objective-C
* `ccls` * `ccls`
* `clang` * `clang`
* `clang-format`
* `clangd` * `clangd`
* `uncrustify` * `uncrustify`
* Objective-C++ * Objective-C++
@ -449,6 +456,7 @@ Notes:
* proto * proto
* `buf-format`!! * `buf-format`!!
* `buf-lint`!! * `buf-lint`!!
* `clang-format`
* `protoc-gen-lint`!! * `protoc-gen-lint`!!
* `protolint`!! * `protolint`!!
* Pug * Pug
@ -573,6 +581,7 @@ Notes:
* `dprint` * `dprint`
* `pgformatter` * `pgformatter`
* `sql-lint` * `sql-lint`
* `sqlfluff`
* `sqlfmt` * `sqlfmt`
* `sqlformat` * `sqlformat`
* `sqlint` * `sqlint`

View file

@ -2767,6 +2767,7 @@ documented in additional help files.
gnatpp................................|ale-ada-gnatpp| gnatpp................................|ale-ada-gnatpp|
ada-language-server...................|ale-ada-language-server| ada-language-server...................|ale-ada-language-server|
ansible.................................|ale-ansible-options| ansible.................................|ale-ansible-options|
ansible-language-server...............|ale-ansible-language-server|
ansible-lint..........................|ale-ansible-ansible-lint| ansible-lint..........................|ale-ansible-ansible-lint|
apkbuild................................|ale-apkbuild-options| apkbuild................................|ale-apkbuild-options|
apkbuild-lint.........................|ale-apkbuild-apkbuild-lint| apkbuild-lint.........................|ale-apkbuild-apkbuild-lint|
@ -2833,6 +2834,7 @@ documented in additional help files.
flawfinder............................|ale-cpp-flawfinder| flawfinder............................|ale-cpp-flawfinder|
uncrustify............................|ale-cpp-uncrustify| uncrustify............................|ale-cpp-uncrustify|
c#......................................|ale-cs-options| c#......................................|ale-cs-options|
clang-format..........................|ale-cs-clangformat|
csc...................................|ale-cs-csc| csc...................................|ale-cs-csc|
cspell................................|ale-cs-cspell| cspell................................|ale-cs-cspell|
dotnet-format.........................|ale-cs-dotnet-format| dotnet-format.........................|ale-cs-dotnet-format|
@ -2847,9 +2849,9 @@ documented in additional help files.
stylelint.............................|ale-css-stylelint| stylelint.............................|ale-css-stylelint|
vscodecss.............................|ale-css-vscode| vscodecss.............................|ale-css-vscode|
cuda....................................|ale-cuda-options| cuda....................................|ale-cuda-options|
nvcc..................................|ale-cuda-nvcc|
clangd................................|ale-cuda-clangd|
clang-format..........................|ale-cuda-clangformat| clang-format..........................|ale-cuda-clangformat|
clangd................................|ale-cuda-clangd|
nvcc..................................|ale-cuda-nvcc|
d.......................................|ale-d-options| d.......................................|ale-d-options|
dfmt..................................|ale-d-dfmt| dfmt..................................|ale-d-dfmt|
dls...................................|ale-d-dls| dls...................................|ale-d-dls|
@ -2974,6 +2976,7 @@ documented in additional help files.
ispc..................................|ale-ispc-ispc| ispc..................................|ale-ispc-ispc|
java....................................|ale-java-options| java....................................|ale-java-options|
checkstyle............................|ale-java-checkstyle| checkstyle............................|ale-java-checkstyle|
clang-format..........................|ale-java-clangformat|
cspell................................|ale-java-cspell| cspell................................|ale-java-cspell|
javac.................................|ale-java-javac| javac.................................|ale-java-javac|
google-java-format....................|ale-java-google-java-format| google-java-format....................|ale-java-google-java-format|
@ -2982,6 +2985,7 @@ documented in additional help files.
eclipselsp............................|ale-java-eclipselsp| eclipselsp............................|ale-java-eclipselsp|
uncrustify............................|ale-java-uncrustify| uncrustify............................|ale-java-uncrustify|
javascript..............................|ale-javascript-options| javascript..............................|ale-javascript-options|
clang-format..........................|ale-javascript-clangformat|
cspell................................|ale-javascript-cspell| cspell................................|ale-javascript-cspell|
deno..................................|ale-javascript-deno| deno..................................|ale-javascript-deno|
dprint................................|ale-javascript-dprint| dprint................................|ale-javascript-dprint|
@ -2997,6 +3001,7 @@ documented in additional help files.
standard..............................|ale-javascript-standard| standard..............................|ale-javascript-standard|
xo....................................|ale-javascript-xo| xo....................................|ale-javascript-xo|
json....................................|ale-json-options| json....................................|ale-json-options|
clang-format..........................|ale-json-clangformat|
cspell................................|ale-json-cspell| cspell................................|ale-json-cspell|
dprint................................|ale-json-dprint| dprint................................|ale-json-dprint|
eslint................................|ale-json-eslint| eslint................................|ale-json-eslint|
@ -3064,10 +3069,11 @@ documented in additional help files.
nroff...................................|ale-nroff-options| nroff...................................|ale-nroff-options|
write-good............................|ale-nroff-write-good| write-good............................|ale-nroff-write-good|
objc....................................|ale-objc-options| objc....................................|ale-objc-options|
ccls..................................|ale-objc-ccls|
clang.................................|ale-objc-clang| clang.................................|ale-objc-clang|
clang-format..........................|ale-objc-clangformat|
clangd................................|ale-objc-clangd| clangd................................|ale-objc-clangd|
uncrustify............................|ale-objc-uncrustify| uncrustify............................|ale-objc-uncrustify|
ccls..................................|ale-objc-ccls|
objcpp..................................|ale-objcpp-options| objcpp..................................|ale-objcpp-options|
clang.................................|ale-objcpp-clang| clang.................................|ale-objcpp-clang|
clangd................................|ale-objcpp-clangd| clangd................................|ale-objcpp-clangd|
@ -3126,6 +3132,7 @@ documented in additional help files.
proto...................................|ale-proto-options| proto...................................|ale-proto-options|
buf-format............................|ale-proto-buf-format| buf-format............................|ale-proto-buf-format|
buf-lint..............................|ale-proto-buf-lint| buf-lint..............................|ale-proto-buf-lint|
clang-format..........................|ale-proto-clangformat|
protoc-gen-lint.......................|ale-proto-protoc-gen-lint| protoc-gen-lint.......................|ale-proto-protoc-gen-lint|
protolint.............................|ale-proto-protolint| protolint.............................|ale-proto-protolint|
pug.....................................|ale-pug-options| pug.....................................|ale-pug-options|
@ -3241,6 +3248,7 @@ documented in additional help files.
sql.....................................|ale-sql-options| sql.....................................|ale-sql-options|
dprint................................|ale-sql-dprint| dprint................................|ale-sql-dprint|
pgformatter...........................|ale-sql-pgformatter| pgformatter...........................|ale-sql-pgformatter|
sqlfluff..............................|ale-sql-sqlfluff|
sqlfmt................................|ale-sql-sqlfmt| sqlfmt................................|ale-sql-sqlfmt|
sqlformat.............................|ale-sql-sqlformat| sqlformat.............................|ale-sql-sqlformat|
stylus..................................|ale-stylus-options| stylus..................................|ale-stylus-options|

View file

@ -323,6 +323,7 @@ nnoremap <silent> <Plug>(ale_go_to_type_definition) :ALEGoToTypeDefinition<Retur
nnoremap <silent> <Plug>(ale_go_to_type_definition_in_tab) :ALEGoToTypeDefinition -tab<Return> nnoremap <silent> <Plug>(ale_go_to_type_definition_in_tab) :ALEGoToTypeDefinition -tab<Return>
nnoremap <silent> <Plug>(ale_go_to_type_definition_in_split) :ALEGoToTypeDefinition -split<Return> nnoremap <silent> <Plug>(ale_go_to_type_definition_in_split) :ALEGoToTypeDefinition -split<Return>
nnoremap <silent> <Plug>(ale_go_to_type_definition_in_vsplit) :ALEGoToTypeDefinition -vsplit<Return> nnoremap <silent> <Plug>(ale_go_to_type_definition_in_vsplit) :ALEGoToTypeDefinition -vsplit<Return>
nnoremap <silent> <Plug>(ale_go_to_implementation) :ALEGoToImplementation<Return>
nnoremap <silent> <Plug>(ale_go_to_implementation_in_tab) :ALEGoToImplementation -tab<Return> nnoremap <silent> <Plug>(ale_go_to_implementation_in_tab) :ALEGoToImplementation -tab<Return>
nnoremap <silent> <Plug>(ale_go_to_implementation_in_split) :ALEGoToImplementation -split<Return> nnoremap <silent> <Plug>(ale_go_to_implementation_in_split) :ALEGoToImplementation -split<Return>
nnoremap <silent> <Plug>(ale_go_to_implementation_in_vsplit) :ALEGoToImplementation -vsplit<Return> nnoremap <silent> <Plug>(ale_go_to_implementation_in_vsplit) :ALEGoToImplementation -vsplit<Return>

View file

@ -27,6 +27,7 @@ formatting.
* [gcc](https://gcc.gnu.org) * [gcc](https://gcc.gnu.org)
* [gnatpp](https://docs.adacore.com/gnat_ugn-docs/html/gnat_ugn/gnat_ugn/gnat_utility_programs.html#the-gnat-pretty-printer-gnatpp) :floppy_disk: * [gnatpp](https://docs.adacore.com/gnat_ugn-docs/html/gnat_ugn/gnat_ugn/gnat_utility_programs.html#the-gnat-pretty-printer-gnatpp) :floppy_disk:
* Ansible * Ansible
* [ansible-language-server](https://github.com/ansible/ansible-language-server/)
* [ansible-lint](https://github.com/willthames/ansible-lint) :floppy_disk: * [ansible-lint](https://github.com/willthames/ansible-lint) :floppy_disk:
* API Blueprint * API Blueprint
* [drafter](https://github.com/apiaryio/drafter) * [drafter](https://github.com/apiaryio/drafter)
@ -84,6 +85,7 @@ formatting.
* [gcc](https://gcc.gnu.org/) * [gcc](https://gcc.gnu.org/)
* [uncrustify](https://github.com/uncrustify/uncrustify) * [uncrustify](https://github.com/uncrustify/uncrustify)
* C# * C#
* [clang-format](https://clang.llvm.org/docs/ClangFormat.html)
* [csc](http://www.mono-project.com/docs/about-mono/languages/csharp/) :floppy_disk: see:`help ale-cs-csc` for details and configuration * [csc](http://www.mono-project.com/docs/about-mono/languages/csharp/) :floppy_disk: see:`help ale-cs-csc` for details and configuration
* [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell)
* [dotnet-format](https://github.com/dotnet/format) * [dotnet-format](https://github.com/dotnet/format)
@ -137,6 +139,7 @@ formatting.
* Cucumber * Cucumber
* [cucumber](https://cucumber.io/) * [cucumber](https://cucumber.io/)
* CUDA * CUDA
* [clang-format](https://clang.llvm.org/docs/ClangFormat.html)
* [clangd](https://clang.llvm.org/extra/clangd.html) * [clangd](https://clang.llvm.org/extra/clangd.html)
* [nvcc](http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html) :floppy_disk: * [nvcc](http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html) :floppy_disk:
* Cypher * Cypher
@ -279,6 +282,7 @@ formatting.
* Java * Java
* [PMD](https://pmd.github.io/) * [PMD](https://pmd.github.io/)
* [checkstyle](http://checkstyle.sourceforge.net) :floppy_disk: * [checkstyle](http://checkstyle.sourceforge.net) :floppy_disk:
* [clang-format](https://clang.llvm.org/docs/ClangFormat.html)
* [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell)
* [eclipselsp](https://github.com/eclipse/eclipse.jdt.ls) * [eclipselsp](https://github.com/eclipse/eclipse.jdt.ls)
* [google-java-format](https://github.com/google/google-java-format) * [google-java-format](https://github.com/google/google-java-format)
@ -286,6 +290,7 @@ formatting.
* [javalsp](https://github.com/georgewfraser/vscode-javac) * [javalsp](https://github.com/georgewfraser/vscode-javac)
* [uncrustify](https://github.com/uncrustify/uncrustify) * [uncrustify](https://github.com/uncrustify/uncrustify)
* JavaScript * JavaScript
* [clang-format](https://clang.llvm.org/docs/ClangFormat.html)
* [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell)
* [deno](https://deno.land/) * [deno](https://deno.land/)
* [dprint](https://dprint.dev/) * [dprint](https://dprint.dev/)
@ -302,6 +307,7 @@ formatting.
* [xo](https://github.com/sindresorhus/xo) * [xo](https://github.com/sindresorhus/xo)
* JSON * JSON
* [VSCode JSON language server](https://github.com/hrsh7th/vscode-langservers-extracted) * [VSCode JSON language server](https://github.com/hrsh7th/vscode-langservers-extracted)
* [clang-format](https://clang.llvm.org/docs/ClangFormat.html)
* [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) :warning: * [cspell](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell) :warning:
* [dprint](https://dprint.dev) * [dprint](https://dprint.dev)
* [eslint](http://eslint.org/) :warning: * [eslint](http://eslint.org/) :warning:
@ -392,6 +398,7 @@ formatting.
* Objective-C * Objective-C
* [ccls](https://github.com/MaskRay/ccls) * [ccls](https://github.com/MaskRay/ccls)
* [clang](http://clang.llvm.org/) * [clang](http://clang.llvm.org/)
* [clang-format](https://clang.llvm.org/docs/ClangFormat.html)
* [clangd](https://clang.llvm.org/extra/clangd.html) * [clangd](https://clang.llvm.org/extra/clangd.html)
* [uncrustify](https://github.com/uncrustify/uncrustify) * [uncrustify](https://github.com/uncrustify/uncrustify)
* Objective-C++ * Objective-C++
@ -458,6 +465,7 @@ formatting.
* proto * proto
* [buf-format](https://github.com/bufbuild/buf) :floppy_disk: * [buf-format](https://github.com/bufbuild/buf) :floppy_disk:
* [buf-lint](https://github.com/bufbuild/buf) :floppy_disk: * [buf-lint](https://github.com/bufbuild/buf) :floppy_disk:
* [clang-format](https://clang.llvm.org/docs/ClangFormat.html)
* [protoc-gen-lint](https://github.com/ckaznocha/protoc-gen-lint) :floppy_disk: * [protoc-gen-lint](https://github.com/ckaznocha/protoc-gen-lint) :floppy_disk:
* [protolint](https://github.com/yoheimuta/protolint) :floppy_disk: * [protolint](https://github.com/yoheimuta/protolint) :floppy_disk:
* Pug * Pug
@ -582,6 +590,7 @@ formatting.
* [dprint](https://dprint.dev) * [dprint](https://dprint.dev)
* [pgformatter](https://github.com/darold/pgFormatter) * [pgformatter](https://github.com/darold/pgFormatter)
* [sql-lint](https://github.com/joereynolds/sql-lint) * [sql-lint](https://github.com/joereynolds/sql-lint)
* [sqlfluff](https://github.com/sqlfluff/sqlfluff)
* [sqlfmt](https://github.com/jackc/sqlfmt) * [sqlfmt](https://github.com/jackc/sqlfmt)
* [sqlformat](https://github.com/andialbrecht/sqlparse) * [sqlformat](https://github.com/andialbrecht/sqlparse)
* [sqlint](https://github.com/purcell/sqlint) * [sqlint](https://github.com/purcell/sqlint)

View file

@ -100,7 +100,7 @@ if exists('g:loaded_nvim_treesitter')
" which in turn links to Identifer (white). " which in turn links to Identifer (white).
hi! link TSTagAttribute DraculaGreenItalic hi! link TSTagAttribute DraculaGreenItalic
if has('nvim-0.8') if has('nvim-0.8.1')
" # Misc " # Misc
hi! link @punctuation.delimiter Delimiter hi! link @punctuation.delimiter Delimiter
hi! link @punctuation.bracket Normal hi! link @punctuation.bracket Normal
@ -139,6 +139,8 @@ if exists('g:loaded_nvim_treesitter')
hi! link @text.title DraculaYellow hi! link @text.title DraculaYellow
hi! link @text.literal DraculaYellow hi! link @text.literal DraculaYellow
hi! link @text.uri DraculaYellow hi! link @text.uri DraculaYellow
hi! link @text.diff.add DiffAdd
hi! link @text.diff.delete DiffDelete
" # Tags " # Tags
hi! link @tag DraculaCyan hi! link @tag DraculaCyan
hi! link @tag.delimiter Normal hi! link @tag.delimiter Normal

View file

@ -1,13 +1,73 @@
if exists("b:did_indent") " Only load this indent file when no other was loaded.
finish if exists('b:did_indent')
finish
endif endif
let b:did_indent = 1 let b:did_indent = 1
setlocal indentexpr= setlocal indentexpr=GetNginxIndent()
" cindent actually works for nginx' simple file structure setlocal indentkeys=0{,0},0#,!^F,o,O
setlocal cindent
" Just make sure that the comments are not reset as defs would be.
setlocal cinkeys-=0#
let b:undo_indent = "setl cin< cink< inde<" let b:undo_indent = 'setl inde< indk<'
" Only define the function once.
if exists('*GetNginxIndent')
finish
endif
function! GetNginxIndent() abort
let plnum = s:PrevNotAsBlank(v:lnum - 1)
" Hit the start of the file, use zero indent.
if plnum == 0
return 0
endif
let ind = indent(plnum)
" Add a 'shiftwidth' after '{'
if s:AsEndWith(getline(plnum), '{')
let ind = ind + shiftwidth()
end
" Subtract a 'shiftwidth' on '}'
" This is the part that requires 'indentkeys'.
if getline(v:lnum) =~ '^\s*}'
let ind = ind - shiftwidth()
endif
let pplnum = s:PrevNotAsBlank(plnum - 1)
if s:IsLineContinuation(plnum)
if !s:IsLineContinuation(pplnum)
let ind = ind + shiftwidth()
end
else
if s:IsLineContinuation(pplnum)
let ind = ind - shiftwidth()
end
endif
return ind
endfunction
" Find the first line at or above {lnum} that is non-blank and not a comment.
function! s:PrevNotAsBlank(lnum) abort
let lnum = prevnonblank(a:lnum)
while lnum > 0
if getline(lnum) !~ '^\s*#'
break
endif
let lnum = prevnonblank(lnum - 1)
endwhile
return lnum
endfunction
" Check whether {line} ends with {pat}, ignoring trailing comments.
function! s:AsEndWith(line, pat) abort
return a:line =~ a:pat . '\m\s*\%(#.*\)\?$'
endfunction
function! s:IsLineContinuation(lnum) abort
return a:lnum > 0 && !s:AsEndWith(getline(a:lnum), '[;{}]')
endfunction

View file

@ -7553,7 +7553,7 @@ function! s:SquashArgument(...) abort
if &filetype == 'fugitive' if &filetype == 'fugitive'
let commit = matchstr(getline('.'), '^\%(\%(\x\x\x\)\@!\l\+\s\+\)\=\zs[0-9a-f]\{4,\}\ze \|^' . s:ref_header . ': \zs\S\+') let commit = matchstr(getline('.'), '^\%(\%(\x\x\x\)\@!\l\+\s\+\)\=\zs[0-9a-f]\{4,\}\ze \|^' . s:ref_header . ': \zs\S\+')
elseif has_key(s:temp_files, s:cpath(expand('%:p'))) elseif has_key(s:temp_files, s:cpath(expand('%:p')))
let commit = matchstr(getline('.'), '\S\@<!\x\{4,\}\>') let commit = matchstr(getline('.'), '\S\@<!\x\{4,\}\S\@!')
else else
let commit = s:Owner(@%) let commit = s:Owner(@%)
endif endif
@ -7599,7 +7599,7 @@ function! s:HunkPosition(lnum) abort
let lnum -= 1 let lnum -= 1
let line_char = getline(lnum)[0] let line_char = getline(lnum)[0]
endwhile endwhile
let starts = matchlist(getline(lnum), '^@@\+[ 0-9,-]* -\(\d\+\),\d\+ +\(\d\+\),') let starts = matchlist(getline(lnum), '^@@\+[ 0-9,-]* -\(\d\+\)\%(,\d\+\)\= +\(\d\+\)[ ,]')
if empty(starts) if empty(starts)
return [0, 0, 0] return [0, 0, 0]
endif endif

View file

@ -25,7 +25,7 @@ if get(g:, 'vim_markdown_folding_style_pythonic', 0)
let b:fenced_block = 0 let b:fenced_block = 0
endif endif
" else, if we're caring about front matter " else, if we're caring about front matter
elseif g:vim_markdown_frontmatter == 1 elseif get(g:, 'vim_markdown_frontmatter', 0) == 1
" if we're in front matter and not on line 1 " if we're in front matter and not on line 1
if b:front_matter == 1 && a:lnum > 2 if b:front_matter == 1 && a:lnum > 2
let l0 = getline(a:lnum-1) let l0 = getline(a:lnum-1)
@ -111,7 +111,7 @@ else " vim_markdown_folding_style_pythonic == 0
elseif b:fenced_block == 1 elseif b:fenced_block == 1
let b:fenced_block = 0 let b:fenced_block = 0
endif endif
elseif g:vim_markdown_frontmatter == 1 elseif get(g:, 'vim_markdown_frontmatter', 0) == 1
if b:front_matter == 1 if b:front_matter == 1
if l0 ==# '---' if l0 ==# '---'
let b:front_matter = 0 let b:front_matter = 0

View file

@ -494,7 +494,9 @@ endfunction
function! s:SetexToAtx(line1, line2) function! s:SetexToAtx(line1, line2)
let l:originalNumLines = line('$') let l:originalNumLines = line('$')
execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n\=+$/# \1/' execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n\=+$/# \1/'
execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n-+$/## \1/'
let l:changed = l:originalNumLines - line('$')
execute 'silent! ' . a:line1 . ',' . (a:line2 - l:changed) . 'substitute/\v(.*\S.*)\n-+$/## \1'
return l:originalNumLines - line('$') return l:originalNumLines - line('$')
endfunction endfunction
@ -854,19 +856,23 @@ function! s:SyntaxInclude(filetype)
return grouplistname return grouplistname
endfunction endfunction
function! s:IsHighlightSourcesEnabledForBuffer()
" Enable for markdown buffers, and for liquid buffers with markdown format
return &filetype =~# 'markdown' || get(b:, 'liquid_subtype', '') =~# 'markdown'
endfunction
function! s:MarkdownRefreshSyntax(force) function! s:MarkdownRefreshSyntax(force)
" Use != to compare &syntax's value to use the same logic run on " Use != to compare &syntax's value to use the same logic run on
" $VIMRUNTIME/syntax/synload.vim. " $VIMRUNTIME/syntax/synload.vim.
" "
" vint: next-line -ProhibitEqualTildeOperator " vint: next-line -ProhibitEqualTildeOperator
if &filetype =~# 'markdown' && line('$') > 1 && &syntax != 'OFF' if s:IsHighlightSourcesEnabledForBuffer() && line('$') > 1 && &syntax != 'OFF'
call s:MarkdownHighlightSources(a:force) call s:MarkdownHighlightSources(a:force)
endif endif
endfunction endfunction
function! s:MarkdownClearSyntaxVariables() function! s:MarkdownClearSyntaxVariables()
if &filetype =~# 'markdown' if s:IsHighlightSourcesEnabledForBuffer()
unlet! b:mkd_included_filetypes unlet! b:mkd_included_filetypes
endif endif
endfunction endfunction

View file

@ -109,8 +109,9 @@ syn region mkdFootnote start="\[^" end="\]"
syn match mkdCode /^\s*\n\(\(\s\{8,}[^ ]\|\t\t\+[^\t]\).*\n\)\+/ syn match mkdCode /^\s*\n\(\(\s\{8,}[^ ]\|\t\t\+[^\t]\).*\n\)\+/
syn match mkdCode /\%^\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ syn match mkdCode /\%^\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/
syn match mkdCode /^\s*\n\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ contained syn match mkdCode /^\s*\n\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ contained
syn match mkdListItem /^\s*\%([-*+]\|\d\+\.\)\ze\s\+/ contained syn match mkdListItem /^\s*\%([-*+]\|\d\+\.\)\ze\s\+/ contained nextgroup=mkdListItemCheckbox
syn region mkdListItemLine start="^\s*\%([-*+]\|\d\+\.\)\s\+" end="$" oneline contains=@mkdNonListItem,mkdListItem,@Spell syn match mkdListItemCheckbox /\[[xXoO ]\]\ze\s\+/ contained contains=mkdListItem
syn region mkdListItemLine start="^\s*\%([-*+]\|\d\+\.\)\s\+" end="$" oneline contains=@mkdNonListItem,mkdListItem,mkdListItemCheckbox,@Spell
syn region mkdNonListItemBlock start="\(\%^\(\s*\([-*+]\|\d\+\.\)\s\+\)\@!\|\n\(\_^\_$\|\s\{4,}[^ ]\|\t+[^\t]\)\@!\)" end="^\(\s*\([-*+]\|\d\+\.\)\s\+\)\@=" contains=@mkdNonListItem,@Spell syn region mkdNonListItemBlock start="\(\%^\(\s*\([-*+]\|\d\+\.\)\s\+\)\@!\|\n\(\_^\_$\|\s\{4,}[^ ]\|\t+[^\t]\)\@!\)" end="^\(\s*\([-*+]\|\d\+\.\)\s\+\)\@=" contains=@mkdNonListItem,@Spell
syn match mkdRule /^\s*\*\s\{0,1}\*\s\{0,1}\*\(\*\|\s\)*$/ syn match mkdRule /^\s*\*\s\{0,1}\*\s\{0,1}\*\(\*\|\s\)*$/
syn match mkdRule /^\s*-\s\{0,1}-\s\{0,1}-\(-\|\s\)*$/ syn match mkdRule /^\s*-\s\{0,1}-\s\{0,1}-\(-\|\s\)*$/
@ -158,25 +159,26 @@ endif
syn cluster mkdNonListItem contains=@htmlTop,htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdInlineURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,mkdMath,mkdStrike syn cluster mkdNonListItem contains=@htmlTop,htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdInlineURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,mkdMath,mkdStrike
"highlighting for Markdown groups "highlighting for Markdown groups
HtmlHiLink mkdString String HtmlHiLink mkdString String
HtmlHiLink mkdCode String HtmlHiLink mkdCode String
HtmlHiLink mkdCodeDelimiter String HtmlHiLink mkdCodeDelimiter String
HtmlHiLink mkdCodeStart String HtmlHiLink mkdCodeStart String
HtmlHiLink mkdCodeEnd String HtmlHiLink mkdCodeEnd String
HtmlHiLink mkdFootnote Comment HtmlHiLink mkdFootnote Comment
HtmlHiLink mkdBlockquote Comment HtmlHiLink mkdBlockquote Comment
HtmlHiLink mkdListItem Identifier HtmlHiLink mkdListItem Identifier
HtmlHiLink mkdRule Identifier HtmlHiLink mkdListItemCheckbox Identifier
HtmlHiLink mkdLineBreak Visual HtmlHiLink mkdRule Identifier
HtmlHiLink mkdFootnotes htmlLink HtmlHiLink mkdLineBreak Visual
HtmlHiLink mkdLink htmlLink HtmlHiLink mkdFootnotes htmlLink
HtmlHiLink mkdURL htmlString HtmlHiLink mkdLink htmlLink
HtmlHiLink mkdInlineURL htmlLink HtmlHiLink mkdURL htmlString
HtmlHiLink mkdID Identifier HtmlHiLink mkdInlineURL htmlLink
HtmlHiLink mkdLinkDef mkdID HtmlHiLink mkdID Identifier
HtmlHiLink mkdLinkDefTarget mkdURL HtmlHiLink mkdLinkDef mkdID
HtmlHiLink mkdLinkTitle htmlString HtmlHiLink mkdLinkDefTarget mkdURL
HtmlHiLink mkdDelimiter Delimiter HtmlHiLink mkdLinkTitle htmlString
HtmlHiLink mkdDelimiter Delimiter
let b:current_syntax = 'mkd' let b:current_syntax = 'mkd'

View file

@ -0,0 +1,116 @@
Given markdown;
# a
## b
### c
#### d
##### e
Execute (HeaderIncrease without forbidden level):
:HeaderIncrease
Expect (increase level of all headers):
## a
### b
#### c
##### d
###### e
Given markdown;
# a
###### b
Execute (HeaderIncrease with forbidden level):
:HeaderIncrease
Expect (no changes):
# a
###### b
Given markdown;
## a
### b
#### c
##### d
###### e
Execute (HeaderDecrease without forbidden level):
:HeaderDecrease
Expect (decrease level of all headers):
# a
## b
### c
#### d
##### e
Given markdown;
# a
## b
### c
#### d
##### e
###### f
Execute (HeaderDecrease with forbidden level):
:HeaderDecrease
Expect (no changes):
# a
## b
### c
#### d
##### e
###### f
Given markdown;
a
=
b
-
Execute (HeaderIncrease with setext headers):
:HeaderIncrease
Expect (convert to atx headers):
## a
### b
Given markdown;
a
-
Execute (HeaderDecrease with setext headers):
:HeaderDecrease
Expect (convert to atx headers):
# a

View file

@ -0,0 +1,48 @@
Given markdown;
# a
a
=
## b
b
-
Execute (SetexToAtx):
:SetexToAtx
Expect (convert setex-style headings to atx):
# a
# a
## b
## b
Given markdown;
a
=
b
=
c
-
d
-
Execute (SetexToAtx with range):
:1,8SetexToAtx
Expect (only convert setex headings in original range):
# a
# b
## c
d
-

View file

@ -2,6 +2,7 @@ Before:
unlet! b:mkd_known_filetypes unlet! b:mkd_known_filetypes
unlet! b:mkd_included_filetypes unlet! b:mkd_included_filetypes
unlet! g:vim_markdown_math unlet! g:vim_markdown_math
unlet! b:liquid_subtype
Given markdown; Given markdown;
a **b** c a **b** c
@ -855,6 +856,17 @@ a
Execute (fenced code block with extended info strings): Execute (fenced code block with extended info strings):
AssertEqual SyntaxOf('a'), 'mkdCode' AssertEqual SyntaxOf('a'), 'mkdCode'
Given liquid;
```vim
let g:a = 1
```
Execute (fenced code block syntax in liquid file with markdown subtype):
let b:liquid_subtype = 'markdown'
let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
call b:func(0)
AssertEqual SyntaxOf('g:a'), 'vimVar'
# Code Blocks in pre and code tag # Code Blocks in pre and code tag
Given markdown; Given markdown;

View file

@ -371,11 +371,11 @@ snippet != "Not Equal" w
\neq \neq
endsnippet endsnippet
snippet <= "leq" Aw snippet <= "leq" w
\le \le
endsnippet endsnippet
snippet >= "geq" Aw snippet >= "geq" w
\ge \ge
endsnippet endsnippet

View file

@ -68,5 +68,5 @@ snippet fwrs
io.${1:stderr}:write("$0") io.${1:stderr}:write("$0")
snippet fwrf snippet fwrf
io.${1:stderr}:write(string.format("${2:%s}"$0)) io.${1:stderr}:write(string.format("${2:%s}"$0))
snippet im snippet req
import "${1:import file}" require('${1:mod}')