From dca621b6755a47469c94ee8fd26f390e34804077 Mon Sep 17 00:00:00 2001 From: w0rp Date: Sat, 16 Sep 2023 23:04:46 +0100 Subject: Fix #4505 - Handle spaces in markdown fences --- autoload/ale/hover.vim | 2 +- test/test_hover_parsing.vader | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) 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 \ [ -- cgit v1.2.3