aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatveyt <35012635+matveyt@users.noreply.github.com>2021-12-18 19:14:42 +0300
committerGitHub <noreply@github.com>2021-12-18 09:14:42 -0700
commit734fba0d88cc9ff3b5fa24328e5ba7852e0e3211 (patch)
tree809ce43f8961909abd9bd126a8404624face1993
parent36758ba9a78ecf01ab8f654be08051015932983a (diff)
downloadrneovim-734fba0d88cc9ff3b5fa24328e5ba7852e0e3211.tar.gz
rneovim-734fba0d88cc9ff3b5fa24328e5ba7852e0e3211.tar.bz2
rneovim-734fba0d88cc9ff3b5fa24328e5ba7852e0e3211.zip
feat(runtime): new checkhealth filetype (#16660)
-rw-r--r--runtime/autoload/health.vim36
-rw-r--r--runtime/ftplugin/checkhealth.vim20
-rw-r--r--runtime/syntax/checkhealth.vim28
-rw-r--r--test/functional/plugin/health_spec.lua6
4 files changed, 54 insertions, 36 deletions
diff --git a/runtime/autoload/health.vim b/runtime/autoload/health.vim
index 73c1459f86..1d462ad02c 100644
--- a/runtime/autoload/health.vim
+++ b/runtime/autoload/health.vim
@@ -1,27 +1,3 @@
-function! s:enhance_syntax() abort
- syntax case match
-
- syntax keyword healthError ERROR[:]
- \ containedin=markdownCodeBlock,mkdListItemLine
- highlight default link healthError Error
-
- syntax keyword healthWarning WARNING[:]
- \ containedin=markdownCodeBlock,mkdListItemLine
- highlight default link healthWarning WarningMsg
-
- syntax keyword healthSuccess OK[:]
- \ containedin=markdownCodeBlock,mkdListItemLine
- highlight default healthSuccess guibg=#5fff00 guifg=#080808 ctermbg=82 ctermfg=232
-
- syntax match healthHelp "|.\{-}|" contains=healthBar
- \ containedin=markdownCodeBlock,mkdListItemLine
- syntax match healthBar "|" contained conceal
- highlight default link healthHelp Identifier
-
- " We do not care about markdown syntax errors in :checkhealth output.
- highlight! link markdownError Normal
-endfunction
-
" Runs the specified healthchecks.
" Runs all discovered healthchecks if a:plugin_names is empty.
function! health#check(plugin_names) abort
@@ -29,13 +5,9 @@ function! health#check(plugin_names) abort
\ ? s:discover_healthchecks()
\ : s:get_healthcheck(a:plugin_names)
- tabnew
- setlocal wrap breakindent linebreak
- setlocal filetype=markdown
- setlocal conceallevel=2 concealcursor=nc
- setlocal keywordprg=:help
- let &l:iskeyword='!-~,^*,^|,^",192-255'
- call s:enhance_syntax()
+ " create scratch-buffer
+ execute 'tab sbuffer' nvim_create_buf(v:true, v:true)
+ setfiletype checkhealth
if empty(healthchecks)
call setline(1, 'ERROR: No healthchecks found.')
@@ -70,8 +42,6 @@ function! health#check(plugin_names) abort
" needed for plasticboy/vim-markdown, because it uses fdm=expr
normal! zR
- setlocal nomodified
- setlocal bufhidden=hide
redraw|echo ''
endfunction
diff --git a/runtime/ftplugin/checkhealth.vim b/runtime/ftplugin/checkhealth.vim
new file mode 100644
index 0000000000..3d8e9ace1a
--- /dev/null
+++ b/runtime/ftplugin/checkhealth.vim
@@ -0,0 +1,20 @@
+" Vim filetype plugin
+" Language: Neovim checkhealth buffer
+" Last Change: 2021 Dec 15
+
+if exists("b:did_ftplugin")
+ finish
+endif
+
+runtime! ftplugin/markdown.vim ftplugin/markdown_*.vim ftplugin/markdown/*.vim
+
+setlocal wrap breakindent linebreak
+setlocal conceallevel=2 concealcursor=nc
+setlocal keywordprg=:help
+let &l:iskeyword='!-~,^*,^|,^",192-255'
+
+if exists("b:undo_ftplugin")
+ let b:undo_ftplugin .= "|setl wrap< bri< lbr< cole< cocu< kp< isk<"
+else
+ let b:undo_ftplugin = "setl wrap< bri< lbr< cole< cocu< kp< isk<"
+endif
diff --git a/runtime/syntax/checkhealth.vim b/runtime/syntax/checkhealth.vim
new file mode 100644
index 0000000000..dff880a0bc
--- /dev/null
+++ b/runtime/syntax/checkhealth.vim
@@ -0,0 +1,28 @@
+" Vim syntax file
+" Language: Neovim checkhealth buffer
+" Last Change: 2021 Dec 15
+
+if exists("b:current_syntax")
+ finish
+endif
+
+runtime! syntax/markdown.vim
+unlet! b:current_syntax
+
+syn case match
+
+" We do not care about markdown syntax errors
+syn clear markdownError
+
+syn keyword healthError ERROR[:] containedin=markdownCodeBlock,mkdListItemLine
+syn keyword healthWarning WARNING[:] containedin=markdownCodeBlock,mkdListItemLine
+syn keyword healthSuccess OK[:] containedin=markdownCodeBlock,mkdListItemLine
+syn match healthHelp "|.\{-}|" containedin=markdownCodeBlock,mkdListItemLine contains=healthBar
+syn match healthBar "|" contained conceal
+
+hi def link healthError Error
+hi def link healthWarning WarningMsg
+hi def healthSuccess guibg=#5fff00 guifg=#080808 ctermbg=82 ctermfg=232
+hi def link healthHelp Identifier
+
+let b:current_syntax = "checkhealth"
diff --git a/test/functional/plugin/health_spec.lua b/test/functional/plugin/health_spec.lua
index b567b3e20c..37de5d0ce6 100644
--- a/test/functional/plugin/health_spec.lua
+++ b/test/functional/plugin/health_spec.lua
@@ -156,7 +156,7 @@ describe('health.vim', function()
test_plug.submodule_failed: require("test_plug.submodule_failed.health").check()
========================================================================
- ERROR: Failed to run healthcheck for "test_plug.submodule_failed" plugin. Exception:
- function health#check, line 24]])
+ function health#check, line 20]])
eq(expected, received)
end)
@@ -167,7 +167,7 @@ describe('health.vim', function()
broken: health#broken#check
========================================================================
- ERROR: Failed to run healthcheck for "broken" plugin. Exception:
- function health#check[24]..health#broken#check, line 1
+ function health#check[20]..health#broken#check, line 1
caused an error
]])
end)
@@ -186,7 +186,7 @@ describe('health.vim', function()
test_plug.submodule_failed: require("test_plug.submodule_failed.health").check()
========================================================================
- ERROR: Failed to run healthcheck for "test_plug.submodule_failed" plugin. Exception:
- function health#check, line 24]])
+ function health#check, line 20]])
eq(expected, received)
end)