[misc] vim: Hygenic text width highlights

This lets Factor's overly long line highlighting avoid bleeding over
into documentation source buffers, or buffers of other non-Factor file
types entirely. Also, by taking `:2match` instead of `:match`,
clobbering of most user matches (or vice versa) can be avoided.

Unfortunately, the highlighting effects all windows in a multi-buffer
split setup, but since we can't reasonably make this a `:syntax match`
group, it'll have to do. (And this behavior isn't new.)
master
Dusk 2020-05-29 16:47:22 -07:00 committed by John Benediktsson
parent 35681032d9
commit 710b54869a
4 changed files with 21 additions and 9 deletions

1
.gitattributes vendored
View File

@ -1,2 +1,3 @@
*.factor text eol=lf
*.html text eol=lf
misc/vim/ftplugin/factor.vim linguist-generated

View File

@ -1 +1,3 @@
autocmd BufRead,BufNewFile *.factor,{,.}factor*-rc set filetype=factor
" autocmd BufRead,BufNewFile *.factor setf factor " upstreamed
autocmd BufRead,BufNewFile {,.}factor*-rc setf factor
autocmd BufRead,BufNewFile *-docs.factor set ft=factor.factor-docs

View File

@ -0,0 +1,10 @@
" Vim filetype plugin file
" Language: Factor (documentation)
" Maintainer: Tim Allen <screwtape@froup.com>
" Last Change: 2020 May 29
" Documentation lines can be any length of characters.
setlocal textwidth=0
augroup factorTextWidth
au!
augroup END

View File

@ -15,14 +15,13 @@ let b:did_ftplugin = 1
" Tabs are not allowed in Factor source files; use four spaces instead.
setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4
" Try to limit lines to 64 characters, except for documentation, which can be
" any length.
if expand("%:t") !~ "-docs\.factor$"
setlocal textwidth=64
" Mark anything in column 64 or beyond as a syntax error.
match Error /\%>63v.\+/
endif
" Try to limit lines to 64 characters.
setlocal textwidth=64
augroup factorTextWidth
au!
au BufEnter <buffer> 2match Error /\%>64v.\+/
au BufLeave <buffer> 2match none
augroup END
" Teach Vim what comments look like.
setlocal comments+=b:!,b:#!