From dfb91117860a33ae911646223d37ffd28907ac21 Mon Sep 17 00:00:00 2001 From: Alex Carlson Date: Fri, 26 Feb 2016 17:57:40 -0800 Subject: [PATCH] Allow user-defined RO indicator. (inspired by overwriting g:NERDTreeDirArrowCollapsible/Expandable) Replace instances of the RO string with a variable that the user can override. Useful for custom unicode glyphs, i.e. Font Awesome. * Initialize variable g:NERDTreeGlyphReadOnly = "RO". -> plugin/NERD_tree.vim * Replace instances of 'RO' with g:NERDTreeGlyphReadOnly --- lib/nerdtree/path.vim | 2 +- lib/nerdtree/ui.vim | 2 +- plugin/NERD_tree.vim | 2 ++ syntax/nerdtree.vim | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/nerdtree/path.vim b/lib/nerdtree/path.vim index df18505..674ca03 100644 --- a/lib/nerdtree/path.vim +++ b/lib/nerdtree/path.vim @@ -61,7 +61,7 @@ function! s:Path.cacheDisplayString() abort endif if self.isReadOnly - let self.cachedDisplayString .= ' [RO]' + let self.cachedDisplayString .= ' ['.g:NERDTreeGlyphReadOnly.']' endif endfunction diff --git a/lib/nerdtree/ui.vim b/lib/nerdtree/ui.vim index 1ad4469..c683198 100644 --- a/lib/nerdtree/ui.vim +++ b/lib/nerdtree/ui.vim @@ -375,7 +375,7 @@ function! s:UI._stripMarkup(line, removeLeadingSpaces) let line = substitute (line, g:NERDTreeUI.MarkupReg(),"","") "strip off any read only flag - let line = substitute (line, ' \[RO\]', "","") + exec 'let line = substitute (line, " \['.g:NERDTreeGlyphReadOnly.'\]", "","")' "strip off any bookmark flags let line = substitute (line, ' {[^}]*}', "","") diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim index bbcc55f..8ce0a2b 100644 --- a/plugin/NERD_tree.vim +++ b/plugin/NERD_tree.vim @@ -84,6 +84,8 @@ else endif endif +call s:initVariable("g:NERDTreeGlyphReadOnly", "RO") + if !exists('g:NERDTreeStatusline') "the exists() crap here is a hack to stop vim spazzing out when diff --git a/syntax/nerdtree.vim b/syntax/nerdtree.vim index 8a4e424..d2a9483 100644 --- a/syntax/nerdtree.vim +++ b/syntax/nerdtree.vim @@ -1,6 +1,6 @@ let s:tree_up_dir_line = '.. (up a dir)' syn match NERDTreeIgnore #\~# -syn match NERDTreeIgnore #\[RO\]# +exec 'syn match NERDTreeIgnore #\['.g:NERDTreeGlyphReadOnly.'\]#' "highlighting for the .. (up dir) line at the top of the tree execute "syn match NERDTreeUp #\\V". s:tree_up_dir_line ."#" @@ -31,7 +31,7 @@ syn match NERDTreeExecFile #^ .*\*\($\| \)# contains=NERDTreeRO,NERDTreeBookmar exec 'syn match NERDTreeFile #^[^"\.'.s:dirArrows.'] *[^'.s:dirArrows.']*# contains=NERDTreeLink,NERDTreeRO,NERDTreeBookmark,NERDTreeExecFile' "highlighting for readonly files -syn match NERDTreeRO # *\zs.*\ze \[RO\]# contains=NERDTreeIgnore,NERDTreeBookmark,NERDTreeFile +exec 'syn match NERDTreeRO # *\zs.*\ze \['.g:NERDTreeGlyphReadOnly.'\]# contains=NERDTreeIgnore,NERDTreeBookmark,NERDTreeFile' syn match NERDTreeFlags #^ *\zs\[.\]# containedin=NERDTreeFile,NERDTreeExecFile syn match NERDTreeFlags #\[.\]# containedin=NERDTreeDir