From: Roberto Castagnola Date: Sun, 23 Jul 2023 08:19:20 +0000 (+0200) Subject: Expand tabs used to define block structure in markdown parser X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=d4a19d74aa9c048f5e1f48ebb4f35a51a4cc5a2d;p=vim-lsp.git Expand tabs used to define block structure in markdown parser --- diff --git a/autoload/lsp/markdown.vim b/autoload/lsp/markdown.vim index e6aa670..756c7a7 100644 --- a/autoload/lsp/markdown.vim +++ b/autoload/lsp/markdown.vim @@ -545,12 +545,28 @@ def CloseBlocks(document: dict>, blocks: list>, start: numbe endfor enddef +def ExpandTabs(line: string): string + var block_marker = line->matchstrpos($'^ \{{,3}}>[ \t]\+\|^[ \t]*\%({list_marker}\)\=[ \t]*') + if block_marker[0]->match('\t') < 0 + return line + endif + var begin: string = "" + for char in block_marker[0] + if char == ' ' + begin ..= ' '->repeat(4 - (begin->strlen() % 4)) + else + begin ..= char + endif + endfor + return begin .. line[block_marker[2] :] +enddef + export def ParseMarkdown(data: list, width: number = 80): dict> var document: dict> = {content: [], syntax: []} var open_blocks: list> = [] for l in data - var line: string = l + var line: string = ExpandTabs(l) var cur = 0 # for each open block check if current line continue it