Markdownのテーブル整形が気に入らなかったので自作

preservim/vim-markdown の :TableFormat、なんか先頭にスペースを付けるようになってて気持ち悪い。 というわけで、とりあえず Vim9Script で自作。

# after/ftplugin/
def FormatMarkdownTable()
	var save_pos = getpos('.')
	var start_line = line("'{")
	var end_line = line("'}")
	start_line = start_line <= 0 ? 1 : start_line
	end_line = end_line <= 0 ? line('$') : end_line
	var range = $':{start_line},{end_line}'

	silent! execute range .. 'Tabularize /\(\\\)\@<!|'
	silent! execute range .. 's/^\s\+//e'
	silent! execute range .. 's/| \([-:]\+\) /|\1/ge'
	silent! execute range .. 's/   |/ |/ge'

	setpos('.', save_pos)
enddef

command! -buffer TableFix FormatMarkdownTable()

とりあえず動いてるっぽい。 まだあんまりテストできてないし、そもそも Vim9Script でのテストの書き方もよく分かってない。

まあ、そのうち気が向いたら調べるか。