[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
parent
35681032d9
commit
710b54869a
|
@ -1,2 +1,3 @@
|
||||||
*.factor text eol=lf
|
*.factor text eol=lf
|
||||||
*.html text eol=lf
|
*.html text eol=lf
|
||||||
|
misc/vim/ftplugin/factor.vim linguist-generated
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -15,14 +15,13 @@ let b:did_ftplugin = 1
|
||||||
" Tabs are not allowed in Factor source files; use four spaces instead.
|
" Tabs are not allowed in Factor source files; use four spaces instead.
|
||||||
setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4
|
setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4
|
||||||
|
|
||||||
" Try to limit lines to 64 characters, except for documentation, which can be
|
" Try to limit lines to 64 characters.
|
||||||
" any length.
|
setlocal textwidth=64
|
||||||
if expand("%:t") !~ "-docs\.factor$"
|
augroup factorTextWidth
|
||||||
setlocal textwidth=64
|
au!
|
||||||
|
au BufEnter <buffer> 2match Error /\%>64v.\+/
|
||||||
" Mark anything in column 64 or beyond as a syntax error.
|
au BufLeave <buffer> 2match none
|
||||||
match Error /\%>63v.\+/
|
augroup END
|
||||||
endif
|
|
||||||
|
|
||||||
" Teach Vim what comments look like.
|
" Teach Vim what comments look like.
|
||||||
setlocal comments+=b:!,b:#!
|
setlocal comments+=b:!,b:#!
|
||||||
|
|
Loading…
Reference in New Issue