From 47af4b71377cfae0c11d02571266bb31ec72b870 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Fri, 8 Aug 2014 19:51:45 +0900 Subject: [PATCH] Create variable to ignore specific filetypes for highlight --- doc/trailing-whitespace.txt | 10 ++++++++++ plugin/trailing-whitespace.vim | 17 ++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/doc/trailing-whitespace.txt b/doc/trailing-whitespace.txt index 8974e98..323dc0b 100644 --- a/doc/trailing-whitespace.txt +++ b/doc/trailing-whitespace.txt @@ -14,3 +14,13 @@ The repo is at http://github.com/bronson/vim-trailing-whitespace Originally based on http://vim.wikia.com/wiki/Highlight_unwanted_spaces +------------------------------------------------------------------------------ +VARIABLES *FixWhitespace-variables* + + g:extra_whitespace_ignored_filetypes +g:extra_whitespace_ignored_filetypes + You can set filetypes to be ignored for highlight into this variable. + + let g:extra_whitespace_ignored_filetypes = ['unite', 'mkd'] + + The default value is []. diff --git a/plugin/trailing-whitespace.vim b/plugin/trailing-whitespace.vim index 5edc29b..104c0b9 100644 --- a/plugin/trailing-whitespace.vim +++ b/plugin/trailing-whitespace.vim @@ -1,14 +1,25 @@ if exists('loaded_trailing_whitespace_plugin') | finish | endif let loaded_trailing_whitespace_plugin = 1 +if !exists('g:extra_whitespace_ignored_filetypes') + let g:extra_whitespace_ignored_filetypes = [] +endif + +function! ShouldMatchWhitespace() + for ft in g:extra_whitespace_ignored_filetypes + if ft ==# &filetype | return 0 | endif + endfor + return 1 +endfunction + " Highlight EOL whitespace, http://vim.wikia.com/wiki/Highlight_unwanted_spaces highlight ExtraWhitespace ctermbg=darkred guibg=#382424 autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red -autocmd BufWinEnter * match ExtraWhitespace /\s\+$/ +autocmd BufWinEnter * if ShouldMatchWhitespace() | match ExtraWhitespace /\s\+$/ | endif " The above flashes annoyingly while typing, be calmer in insert mode -autocmd InsertLeave * match ExtraWhitespace /\s\+$/ -autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@