From f703015dc0137d79379492ae61e78efbb7ecf512 Mon Sep 17 00:00:00 2001
From: José Luis Lafuente <jl@lafuente.me>
Date: Sat, 4 Nov 2017 14:31:00 +0100
Subject: Make local customization easier

---
 README.md                  |  14 ++++++
 templates/default.mustache | 121 ++++++++++++++++++++++++++++++---------------
 2 files changed, 96 insertions(+), 39 deletions(-)

diff --git a/README.md b/README.md
index 9ac8016..c9a634d 100644
--- a/README.md
+++ b/README.md
@@ -55,3 +55,17 @@ If your Vim looks like the above image you are using a 256 terminal theme withou
 ![blue line numbers screenshot](https://raw.github.com/chriskempson/base16-vim/master/with-base16colorspace-256-without-base16-shell.png)
 
 If your Vim looks like the above image you are setting `let base16colorspace=256` in your `~/.vimrc` but either not running [Base16 Shell](https://github.com/chriskempson/base16-shell) or [Base16 Shell](https://github.com/chriskempson/base16-shell) is not working for your terminal. Either ensure [Base16 Shell](https://github.com/chriskempson/base16-shell) is working by running the `colortest` available in the [Base16 Shell](https://github.com/chriskempson/base16-shell) repository or not setting `let base16colorspace=256` in your `~/.vimrc`.
+
+## Customization
+If you want to do some local customization, you can add something like this to your `~/.vimrc`:
+
+```vim
+function! s:base16_customize() abort
+  call Base16hi("MatchParen", g:base16_gui05, g:base16_gui03, g:base16_cterm05, g:base16_cterm03, "bold,italic", "")
+endfunction
+
+augroup on_change_colorschema
+  autocmd!
+  autocmd ColorScheme * call s:base16_customize()
+augroup END
+```
diff --git a/templates/default.mustache b/templates/default.mustache
index 71b9f93..bdf3646 100644
--- a/templates/default.mustache
+++ b/templates/default.mustache
@@ -15,48 +15,86 @@ if !has('gui_running')
 endif
 
 " GUI color definitions
-let s:gui00 = "{{base00-hex}}"
-let s:gui01 = "{{base01-hex}}"
-let s:gui02 = "{{base02-hex}}"
-let s:gui03 = "{{base03-hex}}"
-let s:gui04 = "{{base04-hex}}"
-let s:gui05 = "{{base05-hex}}"
-let s:gui06 = "{{base06-hex}}"
-let s:gui07 = "{{base07-hex}}"
-let s:gui08 = "{{base08-hex}}"
-let s:gui09 = "{{base09-hex}}"
-let s:gui0A = "{{base0A-hex}}"
-let s:gui0B = "{{base0B-hex}}"
-let s:gui0C = "{{base0C-hex}}"
-let s:gui0D = "{{base0D-hex}}"
-let s:gui0E = "{{base0E-hex}}"
-let s:gui0F = "{{base0F-hex}}"
+let s:gui00        = "{{base00-hex}}"
+let g:base16_gui00 = "{{base00-hex}}"
+let s:gui01        = "{{base01-hex}}"
+let g:base16_gui01 = "{{base01-hex}}"
+let s:gui02        = "{{base02-hex}}"
+let g:base16_gui02 = "{{base02-hex}}"
+let s:gui03        = "{{base03-hex}}"
+let g:base16_gui03 = "{{base03-hex}}"
+let s:gui04        = "{{base04-hex}}"
+let g:base16_gui04 = "{{base04-hex}}"
+let s:gui05        = "{{base05-hex}}"
+let g:base16_gui05 = "{{base05-hex}}"
+let s:gui06        = "{{base06-hex}}"
+let g:base16_gui06 = "{{base06-hex}}"
+let s:gui07        = "{{base07-hex}}"
+let g:base16_gui07 = "{{base07-hex}}"
+let s:gui08        = "{{base08-hex}}"
+let g:base16_gui08 = "{{base08-hex}}"
+let s:gui09        = "{{base09-hex}}"
+let g:base16_gui09 = "{{base09-hex}}"
+let s:gui0A        = "{{base0A-hex}}"
+let g:base16_gui0A = "{{base0A-hex}}"
+let s:gui0B        = "{{base0B-hex}}"
+let g:base16_gui0B = "{{base0B-hex}}"
+let s:gui0C        = "{{base0C-hex}}"
+let g:base16_gui0C = "{{base0C-hex}}"
+let s:gui0D        = "{{base0D-hex}}"
+let g:base16_gui0D = "{{base0D-hex}}"
+let s:gui0E        = "{{base0E-hex}}"
+let g:base16_gui0E = "{{base0E-hex}}"
+let s:gui0F        = "{{base0F-hex}}"
+let g:base16_gui0F = "{{base0F-hex}}"
 
 " Terminal color definitions
-let s:cterm00 = "00"
-let s:cterm03 = "08"
-let s:cterm05 = "07"
-let s:cterm07 = "15"
-let s:cterm08 = "01"
-let s:cterm0A = "03"
-let s:cterm0B = "02"
-let s:cterm0C = "06"
-let s:cterm0D = "04"
-let s:cterm0E = "05"
+let s:cterm00        = "00"
+let g:base16_cterm00 = "00"
+let s:cterm03        = "08"
+let g:base16_cterm03 = "08"
+let s:cterm05        = "07"
+let g:base16_cterm05 = "07"
+let s:cterm07        = "15"
+let g:base16_cterm07 = "15"
+let s:cterm08        = "01"
+let g:base16_cterm08 = "01"
+let s:cterm0A        = "03"
+let g:base16_cterm0A = "03"
+let s:cterm0B        = "02"
+let g:base16_cterm0B = "02"
+let s:cterm0C        = "06"
+let g:base16_cterm0C = "06"
+let s:cterm0D        = "04"
+let g:base16_cterm0D = "04"
+let s:cterm0E        = "05"
+let g:base16_cterm0E = "05"
 if exists('base16colorspace') && base16colorspace == "256"
-  let s:cterm01 = "18"
-  let s:cterm02 = "19"
-  let s:cterm04 = "20"
-  let s:cterm06 = "21"
-  let s:cterm09 = "16"
-  let s:cterm0F = "17"
+  let s:cterm01        = "18"
+  let g:base16_cterm01 = "18"
+  let s:cterm02        = "19"
+  let g:base16_cterm02 = "19"
+  let s:cterm04        = "20"
+  let g:base16_cterm04 = "20"
+  let s:cterm06        = "21"
+  let g:base16_cterm06 = "21"
+  let s:cterm09        = "16"
+  let g:base16_cterm09 = "16"
+  let s:cterm0F        = "17"
+  let g:base16_cterm0F = "17"
 else
-  let s:cterm01 = "10"
-  let s:cterm02 = "11"
-  let s:cterm04 = "12"
-  let s:cterm06 = "13"
-  let s:cterm09 = "09"
-  let s:cterm0F = "14"
+  let s:cterm01        = "10"
+  let g:base16_cterm01 = "10"
+  let s:cterm02        = "11"
+  let g:base16_cterm02 = "11"
+  let s:cterm04        = "12"
+  let g:base16_cterm04 = "12"
+  let s:cterm06        = "13"
+  let g:base16_cterm06 = "13"
+  let s:cterm09        = "09"
+  let g:base16_cterm09 = "09"
+  let s:cterm0F        = "14"
+  let g:base16_cterm0F = "14"
 endif
 
 " Neovim terminal colours
@@ -91,7 +129,7 @@ syntax reset
 let g:colors_name = "base16-{{scheme-slug}}"
 
 " Highlighting function
-fun <sid>hi(group, guifg, guibg, ctermfg, ctermbg, attr, guisp)
+function! g:Base16hi(group, guifg, guibg, ctermfg, ctermbg, attr, guisp)
   if a:guifg != ""
     exec "hi " . a:group . " guifg=#" . a:guifg
   endif
@@ -110,6 +148,11 @@ fun <sid>hi(group, guifg, guibg, ctermfg, ctermbg, attr, guisp)
   if a:guisp != ""
     exec "hi " . a:group . " guisp=#" . a:guisp
   endif
+endfunction
+
+
+fun <sid>hi(group, guifg, guibg, ctermfg, ctermbg, attr, guisp)
+  call Base16hi(a:group, a:guifg, a:guibg, a:ctermfg, a:ctermbg, a:attr, a:guisp)
 endfun
 
 " Vim editor colors
-- 
cgit v1.2.3