summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2023-09-16 23:04:46 +0100
committerw0rp <devw0rp@gmail.com>2023-09-16 23:04:46 +0100
commitdca621b6755a47469c94ee8fd26f390e34804077 (patch)
treee5eecd18cc725ce379233efdcbfbe277c12004bf
parente412fa34ff172b4101893aacab94be31992fb5c6 (diff)
downloadale-dca621b6755a47469c94ee8fd26f390e34804077.zip
Fix #4505 - Handle spaces in markdown fences
-rw-r--r--autoload/ale/hover.vim2
-rw-r--r--test/test_hover_parsing.vader23
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
\ [