@@ -401,23 +401,24 @@ endfor
401
401
402
402
403
403
for [key , val] in items (g: NERDTreeExtensionHighlightColor )
404
+ let label_identifier = ' nerdtreeFileExtensionLabel_' .key
404
405
let icon_identifier = ' nerdtreeFileExtensionIcon_' .key
405
406
let regexp = ' \v' .s: characters .' +\.' .substitute (key , ' \W' , ' \\\0' , ' g' )
406
407
408
+ exec ' silent syn match ' .label_identifier.' "' .regexp.' $" containedin=NERDTreeFile'
409
+ exec ' silent syn match ' .label_identifier.' "' .regexp.' \*$" containedin=NERDTreeExecFile'
410
+ exec ' hi def link ' .label_identifier.' NERDTreeFile'
411
+
407
412
if exists (' g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols["' .key .' "]' )
408
413
let icon = g: WebDevIconsUnicodeDecorateFileNodesExtensionSymbols [key ]
409
- exec ' silent syn keyword ' .icon_identifier.' ' .icon .' containedin=NERDTreeFile'
410
- exec ' silent syn keyword ' .icon_identifier.' ' .icon .' containedin=NERDTreeExecFile'
411
- exec ' hi def link ' .icon_identifier.' NERDTreeFile '
414
+ exec ' silent syn match ' .icon_identifier.' "\zs[ ' .icon .' ]\ze.\+\. ' . key . ' $" containedin=NERDTreeFile'
415
+ exec ' silent syn match ' .icon_identifier.' "\zs[ ' .icon .' ]\ze.\+\. ' . key . ' \*$" containedin=NERDTreeExecFile'
416
+ exec ' hi def link ' .icon_identifier.' ' .label_identifier
412
417
endif
413
418
414
419
if ! exists (' g:NERDTreeDisableFileExtensionHighlight' ) && val != ' '
415
420
call s: X (icon_identifier, val, ' ' , ' ' )
416
421
if exists (' g:NERDTreeFileExtensionHighlightFullName' )
417
- let label_identifier = ' nerdtreeFileExtensionLabel_' .key
418
- exec ' silent syn match ' .label_identifier.' "' .regexp.' $" containedin=NERDTreeFile'
419
- exec ' silent syn match ' .label_identifier.' "' .regexp.' \*$" containedin=NERDTreeExecFile'
420
- exec ' hi def link ' .label_identifier.' NERDTreeFile'
421
422
call s: X (label_identifier, val, ' ' , ' ' )
422
423
endif
423
424
endif
@@ -436,32 +437,32 @@ for [key, val] in items(s:file_node_exact_matches)
436
437
endfor
437
438
438
439
for [key , val] in items (g: NERDTreeExactMatchHighlightColor )
440
+ let label_identifier = ' nerdtreeExactMatchLabel_' .key
439
441
let icon_identifier = ' nerdtreeExactMatchIcon_' .key
442
+ let folder_identifier = ' nerdtreeExactMatchFolder_' .key
440
443
let folder_icon_identifier = ' nerdtreeExactMatchFolderIcon_' .key
444
+ exec ' silent syn match ' .label_identifier.' "\c' .key .' $" containedin=NERDTreeFile'
445
+ exec ' silent syn match ' .label_identifier.' "\c' .key .' \*$" containedin=NERDTreeExecFile'
446
+ exec ' hi def link ' .label_identifier.' NERDTreeFile'
447
+ exec ' silent syn match ' .folder_identifier.' "\v\c<' .key .' \ze\/" containedin=NERDTreeDir'
448
+ exec ' hi def link ' .folder_identifier.' NERDTreeDir'
441
449
if exists (' g:WebDevIconsUnicodeDecorateFileNodesExactSymbols["' .key .' "]' )
442
450
let icon = g: WebDevIconsUnicodeDecorateFileNodesExactSymbols [key ]
443
- exec ' silent syn keyword ' .icon_identifier.' ' .icon .' containedin=NERDTreeFile'
444
- exec ' silent syn keyword ' .icon_identifier.' ' .icon .' containedin=NERDTreeExecFile'
445
- exec ' hi def link ' .icon_identifier.' NERDTreeFile '
451
+ exec ' silent syn match ' .icon_identifier.' "\c[ ' .icon .' ]\ze.* ' . key . ' $" containedin=NERDTreeFile'
452
+ exec ' silent syn match ' .icon_identifier.' "\c[ ' .icon .' ]\ze.* ' . key . ' \*$" containedin=NERDTreeExecFile'
453
+ exec ' hi def link ' .icon_identifier.' ' .label_identifier
446
454
exec ' silent syn match ' .folder_icon_identifier.' "\c[' .icon .' ]\ze.*' .key .' \/" containedin=NERDTreeDir'
447
- exec ' hi def link ' .folder_icon_identifier.' NERDTreeDir '
455
+ exec ' hi def link ' .folder_icon_identifier.' ' .folder_identifier
448
456
endif
449
457
450
458
if ! exists (' g:NERDTreeDisableExactMatchHighlight' ) && val != ' '
451
459
call s: X (icon_identifier, val, ' ' , ' ' )
452
460
if exists (' g:NERDTreeExactMatchHighlightFullName' )
453
- let label_identifier = ' nerdtreeExactMatchLabel_' .key
454
- exec ' silent syn match ' .label_identifier.' "\c' .key .' $" containedin=NERDTreeFile'
455
- exec ' silent syn match ' .label_identifier.' "\c' .key .' \*$" containedin=NERDTreeExecFile'
456
- exec ' hi def link ' .label_identifier.' NERDTreeFile'
457
461
call s: X (label_identifier, val, ' ' , ' ' )
458
462
endif
459
463
if exists (' g:NERDTreeHighlightFolders' )
460
464
call s: X (folder_icon_identifier, val, ' ' , ' ' )
461
465
if exists (' g:NERDTreeHighlightFoldersFullName' )
462
- let folder_identifier = ' nerdtreeExactMatchFolder_' .key
463
- exec ' silent syn match ' .folder_identifier.' "\v\c<' .key .' \ze\/" containedin=NERDTreeDir'
464
- exec ' hi def link ' .folder_identifier.' NERDTreeDir'
465
466
call s: X (folder_identifier, val, ' ' , ' ' )
466
467
endif
467
468
endif
@@ -482,25 +483,25 @@ endfor
482
483
483
484
for [key , val] in items (g: NERDTreePatternMatchHighlightColor )
484
485
let suffix = substitute (key , ' \W' , ' ' , ' g' )
486
+ let label_identifier = ' nerdtreePatternMatchLabel_' .suffix
485
487
let icon_identifier = ' nerdtreePatternMatchIcon_' .suffix
486
488
let sub_regexp = substitute (key , ' \v\\@<!\.' , s: characters , ' g' )
487
489
let exec_sub_regexp = substitute (sub_regexp, ' \$$' , ' \\*$' , ' ' )
488
490
491
+ exec ' syn match ' .label_identifier.' "\v\c' .sub_regexp.' " containedin=NERDTreeFile'
492
+ exec ' syn match ' .label_identifier.' "\v\c' .exec_sub_regexp.' " containedin=NERDTreeFile'
493
+ " TODO: handle executable file
494
+ exec ' hi def link ' .label_identifier.' NERDTreeFile'
495
+
489
496
if exists (" g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols['" .key ." ']" )
490
497
let icon = g: WebDevIconsUnicodeDecorateFileNodesPatternSymbols [key ]
491
- exec ' syn keyword ' .icon_identifier.' ' .icon .' containedin=NERDTreeFile'
492
- exec ' hi def link ' .icon_identifier.' NERDTreeFile '
498
+ exec ' syn match ' .icon_identifier.' "\v\c\zs[ ' .icon .' ]\ze.* ' .sub_regexp. ' " containedin=NERDTreeFile'
499
+ exec ' hi def link ' .icon_identifier.' ' .label_identifier
493
500
endif
494
501
495
502
if ! exists (' g:NERDTreeDisablePatternMatchHighlight' ) && val != ' '
496
503
call s: X (icon_identifier, val, ' ' , ' ' )
497
504
if exists (' g:NERDTreePatternMatchHighlightFullName' )
498
- let label_identifier = ' nerdtreePatternMatchLabel_' .suffix
499
- exec ' syn match ' .label_identifier.' "\v\c' .sub_regexp.' " containedin=NERDTreeFile'
500
- exec ' syn match ' .label_identifier.' "\v\c' .exec_sub_regexp.' " containedin=NERDTreeFile'
501
- " TODO: handle executable file
502
- exec ' hi def link ' .label_identifier.' NERDTreeFile'
503
-
504
505
call s: X (label_identifier, val, ' ' , ' ' )
505
506
endif
506
507
endif
0 commit comments