Fix #4505 - Handle spaces in markdown fences

This commit is contained in:
w0rp 2023-09-16 23:04:46 +01:00
parent e412fa34ff
commit dca621b675
No known key found for this signature in database
GPG Key ID: 0FC1ECAA8C81CD83
2 changed files with 24 additions and 1 deletions

View File

@ -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]

View File

@ -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
\ [