diff options
author | w0rp <devw0rp@gmail.com> | 2023-09-16 23:04:46 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2023-09-16 23:04:46 +0100 |
commit | dca621b6755a47469c94ee8fd26f390e34804077 (patch) | |
tree | e5eecd18cc725ce379233efdcbfbe277c12004bf | |
parent | e412fa34ff172b4101893aacab94be31992fb5c6 (diff) | |
download | ale-dca621b6755a47469c94ee8fd26f390e34804077.zip |
Fix #4505 - Handle spaces in markdown fences
-rw-r--r-- | autoload/ale/hover.vim | 2 | ||||
-rw-r--r-- | test/test_hover_parsing.vader | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/autoload/ale/hover.vim b/autoload/ale/hover.vim index 7070b86d..1202e08e 100644 --- a/autoload/ale/hover.vim +++ b/autoload/ale/hover.vim @@ -117,7 +117,7 @@ function! ale#hover#ParseLSPResult(contents) abort for l:line in split(l:item, "\n") if l:fence_language is v:null " Look for the start of a code fence. (```python, etc.) - let l:match = matchlist(l:line, '^```\(.*\)$') + let l:match = matchlist(l:line, '^``` *\([^ ]\+\) *$') if !empty(l:match) let l:fence_language = l:match[1] diff --git a/test/test_hover_parsing.vader b/test/test_hover_parsing.vader index 221b42ac..81db1da3 100644 --- a/test/test_hover_parsing.vader +++ b/test/test_hover_parsing.vader @@ -172,6 +172,29 @@ Execute(Simple markdown formatting should be handled): \ 'formatted \_ line \_', \ ], "\n")) +Execute(Fences padded with spaces should be handled): + AssertEqual + \ [ + \ [ + \ 'unlet! b:current_syntax', + \ 'syntax include @ALE_hover_python syntax/python.vim', + \ 'syntax region ALE_hover_1 start=/\%1l/ end=/\%3l/ contains=@ALE_hover_python', + \ ], + \ [ + \ 'def foo():', + \ ' pass', + \ '', + \ 'formatted _ line _', + \ ], + \ ], + \ ale#hover#ParseLSPResult(join([ + \ '``` python ', + \ 'def foo():', + \ ' pass', + \ '```', + \ 'formatted \_ line \_', + \ ], "\n")) + Execute(Non-existent syntax files shouldn't be loaded): AssertEqual \ [ |