my dotfiles
parent
630312c86d
commit
89dba15eda
|
@ -0,0 +1,6 @@
|
||||||
|
# .bash_profile
|
||||||
|
|
||||||
|
# Get the aliases and functions
|
||||||
|
if [ -f ~/.bashrc ]; then
|
||||||
|
. ~/.bashrc
|
||||||
|
fi
|
|
@ -0,0 +1,35 @@
|
||||||
|
test -f /etc/bashrc && . /etc/bashrc || true
|
||||||
|
|
||||||
|
#export AWS_ACCESS_KEY_ID=
|
||||||
|
#export AWS_SECRET_ACCESS_KEY=
|
||||||
|
export KOPS_STATE_STORE=s3://consolo-kops-state-store
|
||||||
|
export MINIKUBE_WANTUPDATENOTIFICATION=true
|
||||||
|
export MINIKUBE_WANTREPORTERRORPROMPT=false
|
||||||
|
export MINIKUBE_WANTKUBECTLDOWNLOADMSG=false
|
||||||
|
export MINIKUBE_HOME=$HOME
|
||||||
|
export MINIKUBE_DRIVER=kvm2
|
||||||
|
export CHANGE_MINIKUBE_NONE_USER=true
|
||||||
|
test -d $HOME/.kube || mkdir $HOME/.kube
|
||||||
|
test -f $HOME/.kube/config || touch $HOME/.kube/config
|
||||||
|
export KUBECONFIG=$HOME/.kube/config
|
||||||
|
|
||||||
|
export GIT_MERGE_AUTOEDIT=no
|
||||||
|
export EDITOR=vim
|
||||||
|
export PATH=$PATH:$HOME/.local/bin:$HOME/bin
|
||||||
|
|
||||||
|
test -s $HOME/code/consolo-enterprise-config/src/dev-env/dev-aliases && . $HOME/code/consolo-enterprise-config/src/dev-env/dev-aliases || true
|
||||||
|
|
||||||
|
HISTSIZE=5000
|
||||||
|
HISTFILESIZE=10000
|
||||||
|
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
|
||||||
|
|
||||||
|
for k in $HOME/bin/*.bash ; do . $k ; done
|
||||||
|
|
||||||
|
function _update_ps1() {
|
||||||
|
PS1="$(powerline-shell $?)"
|
||||||
|
}
|
||||||
|
if [[ $(which powerline-shell) && "$TERM" != "linux" && -z $TMUX ]]; then
|
||||||
|
PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
|
||||||
|
else
|
||||||
|
PS1='[\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w$(__git_ps1 " (%s)")\[\033[00m\]]\$ '
|
||||||
|
fi
|
|
@ -0,0 +1 @@
|
||||||
|
.vim/.netrwhist
|
|
@ -0,0 +1,18 @@
|
||||||
|
[submodule ".vim/bundle/lightline.vim"]
|
||||||
|
path = .vim/bundle/lightline.vim
|
||||||
|
url = https://github.com/itchyny/lightline.vim
|
||||||
|
[submodule ".vim/bundle/nerdtree"]
|
||||||
|
path = .vim/bundle/nerdtree
|
||||||
|
url = https://github.com/scrooloose/nerdtree.git
|
||||||
|
[submodule ".vim/bundle/typescript-vim"]
|
||||||
|
path = .vim/bundle/typescript-vim
|
||||||
|
url = https://github.com/leafgarland/typescript-vim.git
|
||||||
|
[submodule ".vim/bundle/vim-elixir"]
|
||||||
|
path = .vim/bundle/vim-elixir
|
||||||
|
url = https://github.com/elixir-lang/vim-elixir.git
|
||||||
|
[submodule ".vim/bundle/vim-gitgutter"]
|
||||||
|
path = .vim/bundle/vim-gitgutter
|
||||||
|
url = https://github.com/airblade/vim-gitgutter.git
|
||||||
|
[submodule ".vim/bundle/vim-unimpaired"]
|
||||||
|
path = .vim/bundle/vim-unimpaired
|
||||||
|
url = https://github.com/tpope/vim-unimpaired.git
|
|
@ -0,0 +1,289 @@
|
||||||
|
" pathogen.vim - path option manipulation
|
||||||
|
" Maintainer: Tim Pope <http://tpo.pe/>
|
||||||
|
" Version: 2.4
|
||||||
|
|
||||||
|
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
|
||||||
|
"
|
||||||
|
" For management of individually installed plugins in ~/.vim/bundle (or
|
||||||
|
" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your
|
||||||
|
" .vimrc is the only other setup necessary.
|
||||||
|
"
|
||||||
|
" The API is documented inline below.
|
||||||
|
|
||||||
|
if exists("g:loaded_pathogen") || &cp
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:loaded_pathogen = 1
|
||||||
|
|
||||||
|
" Point of entry for basic default usage. Give a relative path to invoke
|
||||||
|
" pathogen#interpose() (defaults to "bundle/{}"), or an absolute path to invoke
|
||||||
|
" pathogen#surround(). Curly braces are expanded with pathogen#expand():
|
||||||
|
" "bundle/{}" finds all subdirectories inside "bundle" inside all directories
|
||||||
|
" in the runtime path.
|
||||||
|
function! pathogen#infect(...) abort
|
||||||
|
for path in a:0 ? filter(reverse(copy(a:000)), 'type(v:val) == type("")') : ['bundle/{}']
|
||||||
|
if path =~# '^\%({\=[$~\\/]\|{\=\w:[\\/]\).*[{}*]'
|
||||||
|
call pathogen#surround(path)
|
||||||
|
elseif path =~# '^\%([$~\\/]\|\w:[\\/]\)'
|
||||||
|
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
|
||||||
|
call pathogen#surround(path . '/{}')
|
||||||
|
elseif path =~# '[{}*]'
|
||||||
|
call pathogen#interpose(path)
|
||||||
|
else
|
||||||
|
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
|
||||||
|
call pathogen#interpose(path . '/{}')
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call pathogen#cycle_filetype()
|
||||||
|
if pathogen#is_disabled($MYVIMRC)
|
||||||
|
return 'finish'
|
||||||
|
endif
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Split a path into a list.
|
||||||
|
function! pathogen#split(path) abort
|
||||||
|
if type(a:path) == type([]) | return a:path | endif
|
||||||
|
if empty(a:path) | return [] | endif
|
||||||
|
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
|
||||||
|
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Convert a list to a path.
|
||||||
|
function! pathogen#join(...) abort
|
||||||
|
if type(a:1) == type(1) && a:1
|
||||||
|
let i = 1
|
||||||
|
let space = ' '
|
||||||
|
else
|
||||||
|
let i = 0
|
||||||
|
let space = ''
|
||||||
|
endif
|
||||||
|
let path = ""
|
||||||
|
while i < a:0
|
||||||
|
if type(a:000[i]) == type([])
|
||||||
|
let list = a:000[i]
|
||||||
|
let j = 0
|
||||||
|
while j < len(list)
|
||||||
|
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
|
||||||
|
let path .= ',' . escaped
|
||||||
|
let j += 1
|
||||||
|
endwhile
|
||||||
|
else
|
||||||
|
let path .= "," . a:000[i]
|
||||||
|
endif
|
||||||
|
let i += 1
|
||||||
|
endwhile
|
||||||
|
return substitute(path,'^,','','')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
|
||||||
|
function! pathogen#legacyjoin(...) abort
|
||||||
|
return call('pathogen#join',[1] + a:000)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Turn filetype detection off and back on again if it was already enabled.
|
||||||
|
function! pathogen#cycle_filetype() abort
|
||||||
|
if exists('g:did_load_filetypes')
|
||||||
|
filetype off
|
||||||
|
filetype on
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Check if a bundle is disabled. A bundle is considered disabled if its
|
||||||
|
" basename or full name is included in the list g:pathogen_blacklist or the
|
||||||
|
" comma delimited environment variable $VIMBLACKLIST.
|
||||||
|
function! pathogen#is_disabled(path) abort
|
||||||
|
if a:path =~# '\~$'
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
let sep = pathogen#slash()
|
||||||
|
let blacklist =
|
||||||
|
\ get(g:, 'pathogen_blacklist', get(g:, 'pathogen_disabled', [])) +
|
||||||
|
\ pathogen#split($VIMBLACKLIST)
|
||||||
|
if !empty(blacklist)
|
||||||
|
call map(blacklist, 'substitute(v:val, "[\\/]$", "", "")')
|
||||||
|
endif
|
||||||
|
return index(blacklist, fnamemodify(a:path, ':t')) != -1 || index(blacklist, a:path) != -1
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Prepend the given directory to the runtime path and append its corresponding
|
||||||
|
" after directory. Curly braces are expanded with pathogen#expand().
|
||||||
|
function! pathogen#surround(path) abort
|
||||||
|
let sep = pathogen#slash()
|
||||||
|
let rtp = pathogen#split(&rtp)
|
||||||
|
let path = fnamemodify(a:path, ':s?[\\/]\=$??')
|
||||||
|
let before = filter(pathogen#expand(path), '!pathogen#is_disabled(v:val)')
|
||||||
|
let after = filter(reverse(pathogen#expand(path, sep.'after')), '!pathogen#is_disabled(v:val[0:-7])')
|
||||||
|
call filter(rtp, 'index(before + after, v:val) == -1')
|
||||||
|
let &rtp = pathogen#join(before, rtp, after)
|
||||||
|
return &rtp
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" For each directory in the runtime path, add a second entry with the given
|
||||||
|
" argument appended. Curly braces are expanded with pathogen#expand().
|
||||||
|
function! pathogen#interpose(name) abort
|
||||||
|
let sep = pathogen#slash()
|
||||||
|
let name = a:name
|
||||||
|
if has_key(s:done_bundles, name)
|
||||||
|
return ""
|
||||||
|
endif
|
||||||
|
let s:done_bundles[name] = 1
|
||||||
|
let list = []
|
||||||
|
for dir in pathogen#split(&rtp)
|
||||||
|
if dir =~# '\<after$'
|
||||||
|
let list += reverse(filter(pathogen#expand(dir[0:-6].name, sep.'after'), '!pathogen#is_disabled(v:val[0:-7])')) + [dir]
|
||||||
|
else
|
||||||
|
let list += [dir] + filter(pathogen#expand(dir.sep.name), '!pathogen#is_disabled(v:val)')
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
let &rtp = pathogen#join(pathogen#uniq(list))
|
||||||
|
return 1
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let s:done_bundles = {}
|
||||||
|
|
||||||
|
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
|
||||||
|
function! pathogen#helptags() abort
|
||||||
|
let sep = pathogen#slash()
|
||||||
|
for glob in pathogen#split(&rtp)
|
||||||
|
for dir in map(split(glob(glob), "\n"), 'v:val.sep."/doc/".sep')
|
||||||
|
if (dir)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir) == 2 && !empty(split(glob(dir.'*.txt'))) && (!filereadable(dir.'tags') || filewritable(dir.'tags'))
|
||||||
|
silent! execute 'helptags' pathogen#fnameescape(dir)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command! -bar Helptags :call pathogen#helptags()
|
||||||
|
|
||||||
|
" Execute the given command. This is basically a backdoor for --remote-expr.
|
||||||
|
function! pathogen#execute(...) abort
|
||||||
|
for command in a:000
|
||||||
|
execute command
|
||||||
|
endfor
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Section: Unofficial
|
||||||
|
|
||||||
|
function! pathogen#is_absolute(path) abort
|
||||||
|
return a:path =~# (has('win32') ? '^\%([\\/]\|\w:\)[\\/]\|^[~$]' : '^[/~$]')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Given a string, returns all possible permutations of comma delimited braced
|
||||||
|
" alternatives of that string. pathogen#expand('/{a,b}/{c,d}') yields
|
||||||
|
" ['/a/c', '/a/d', '/b/c', '/b/d']. Empty braces are treated as a wildcard
|
||||||
|
" and globbed. Actual globs are preserved.
|
||||||
|
function! pathogen#expand(pattern, ...) abort
|
||||||
|
let after = a:0 ? a:1 : ''
|
||||||
|
if a:pattern =~# '{[^{}]\+}'
|
||||||
|
let [pre, pat, post] = split(substitute(a:pattern, '\(.\{-\}\){\([^{}]\+\)}\(.*\)', "\\1\001\\2\001\\3", ''), "\001", 1)
|
||||||
|
let found = map(split(pat, ',', 1), 'pre.v:val.post')
|
||||||
|
let results = []
|
||||||
|
for pattern in found
|
||||||
|
call extend(results, pathogen#expand(pattern))
|
||||||
|
endfor
|
||||||
|
elseif a:pattern =~# '{}'
|
||||||
|
let pat = matchstr(a:pattern, '^.*{}[^*]*\%($\|[\\/]\)')
|
||||||
|
let post = a:pattern[strlen(pat) : -1]
|
||||||
|
let results = map(split(glob(substitute(pat, '{}', '*', 'g')), "\n"), 'v:val.post')
|
||||||
|
else
|
||||||
|
let results = [a:pattern]
|
||||||
|
endif
|
||||||
|
let vf = pathogen#slash() . 'vimfiles'
|
||||||
|
call map(results, 'v:val =~# "\\*" ? v:val.after : isdirectory(v:val.vf.after) ? v:val.vf.after : isdirectory(v:val.after) ? v:val.after : ""')
|
||||||
|
return filter(results, '!empty(v:val)')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" \ on Windows unless shellslash is set, / everywhere else.
|
||||||
|
function! pathogen#slash() abort
|
||||||
|
return !exists("+shellslash") || &shellslash ? '/' : '\'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! pathogen#separator() abort
|
||||||
|
return pathogen#slash()
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Convenience wrapper around glob() which returns a list.
|
||||||
|
function! pathogen#glob(pattern) abort
|
||||||
|
let files = split(glob(a:pattern),"\n")
|
||||||
|
return map(files,'substitute(v:val,"[".pathogen#slash()."/]$","","")')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Like pathogen#glob(), only limit the results to directories.
|
||||||
|
function! pathogen#glob_directories(pattern) abort
|
||||||
|
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Remove duplicates from a list.
|
||||||
|
function! pathogen#uniq(list) abort
|
||||||
|
let i = 0
|
||||||
|
let seen = {}
|
||||||
|
while i < len(a:list)
|
||||||
|
if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
|
||||||
|
call remove(a:list,i)
|
||||||
|
elseif a:list[i] ==# ''
|
||||||
|
let i += 1
|
||||||
|
let empty = 1
|
||||||
|
else
|
||||||
|
let seen[a:list[i]] = 1
|
||||||
|
let i += 1
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
return a:list
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Backport of fnameescape().
|
||||||
|
function! pathogen#fnameescape(string) abort
|
||||||
|
if exists('*fnameescape')
|
||||||
|
return fnameescape(a:string)
|
||||||
|
elseif a:string ==# '-'
|
||||||
|
return '\-'
|
||||||
|
else
|
||||||
|
return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Like findfile(), but hardcoded to use the runtimepath.
|
||||||
|
function! pathogen#runtime_findfile(file,count) abort
|
||||||
|
let rtp = pathogen#join(1,pathogen#split(&rtp))
|
||||||
|
let file = findfile(a:file,rtp,a:count)
|
||||||
|
if file ==# ''
|
||||||
|
return ''
|
||||||
|
else
|
||||||
|
return fnamemodify(file,':p')
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Section: Deprecated
|
||||||
|
|
||||||
|
function! s:warn(msg) abort
|
||||||
|
echohl WarningMsg
|
||||||
|
echomsg a:msg
|
||||||
|
echohl NONE
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Prepend all subdirectories of path to the rtp, and append all 'after'
|
||||||
|
" directories in those subdirectories. Deprecated.
|
||||||
|
function! pathogen#runtime_prepend_subdirectories(path) abort
|
||||||
|
call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#infect('.string(a:path.'/{}').')')
|
||||||
|
return pathogen#surround(a:path . pathogen#slash() . '{}')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! pathogen#incubate(...) abort
|
||||||
|
let name = a:0 ? a:1 : 'bundle/{}'
|
||||||
|
call s:warn('Change pathogen#incubate('.(a:0 ? string(a:1) : '').') to pathogen#infect('.string(name).')')
|
||||||
|
return pathogen#interpose(name)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Deprecated alias for pathogen#interpose().
|
||||||
|
function! pathogen#runtime_append_all_bundles(...) abort
|
||||||
|
if a:0
|
||||||
|
call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#infect('.string(a:1.'/{}').')')
|
||||||
|
else
|
||||||
|
call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#infect()')
|
||||||
|
endif
|
||||||
|
return pathogen#interpose(a:0 ? a:1 . '/{}' : 'bundle/{}')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=':
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 0532dff598abca9975d3f80128eaadadbf1d91d4
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit d6032c876c6d6932ab7f07e262a16c9a85a31d5b
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit e25636b44211a4be7b089bfed7cf09aa7dd086f5
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit b916c00a7cdb6099dbebb6096eab55794751e2b3
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 6076c9678643a8b2fc9973f16ec9efcd5dbe1aca
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit da7921aad2b44b270af5caa223d13ca55173b5b3
|
|
@ -0,0 +1,489 @@
|
||||||
|
" Tomorrow Night Blue - Full Colour and 256 Colour
|
||||||
|
" http://chriskempson.com
|
||||||
|
"
|
||||||
|
" Hex colour conversion functions borrowed from the theme "Desert256""
|
||||||
|
|
||||||
|
" Default GUI Colours
|
||||||
|
let s:foreground = "ffffff"
|
||||||
|
let s:background = "002451"
|
||||||
|
let s:selection = "003f8e"
|
||||||
|
let s:line = "00346e"
|
||||||
|
let s:comment = "7285b7"
|
||||||
|
let s:red = "ff9da4"
|
||||||
|
let s:orange = "ffc58f"
|
||||||
|
let s:yellow = "ffeead"
|
||||||
|
let s:green = "d1f1a9"
|
||||||
|
let s:aqua = "99ffff"
|
||||||
|
let s:blue = "bbdaff"
|
||||||
|
let s:purple = "ebbbff"
|
||||||
|
let s:window = "4d5057"
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
syntax reset
|
||||||
|
|
||||||
|
let g:colors_name = "Tomorrow-Night-Blue"
|
||||||
|
|
||||||
|
if has("gui_running") || &t_Co == 88 || &t_Co == 256
|
||||||
|
" Returns an approximate grey index for the given grey level
|
||||||
|
fun <SID>grey_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 23
|
||||||
|
return 0
|
||||||
|
elseif a:x < 69
|
||||||
|
return 1
|
||||||
|
elseif a:x < 103
|
||||||
|
return 2
|
||||||
|
elseif a:x < 127
|
||||||
|
return 3
|
||||||
|
elseif a:x < 150
|
||||||
|
return 4
|
||||||
|
elseif a:x < 173
|
||||||
|
return 5
|
||||||
|
elseif a:x < 196
|
||||||
|
return 6
|
||||||
|
elseif a:x < 219
|
||||||
|
return 7
|
||||||
|
elseif a:x < 243
|
||||||
|
return 8
|
||||||
|
else
|
||||||
|
return 9
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 14
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 8) / 10
|
||||||
|
let l:m = (a:x - 8) % 10
|
||||||
|
if l:m < 5
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the actual grey level represented by the grey index
|
||||||
|
fun <SID>grey_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 46
|
||||||
|
elseif a:n == 2
|
||||||
|
return 92
|
||||||
|
elseif a:n == 3
|
||||||
|
return 115
|
||||||
|
elseif a:n == 4
|
||||||
|
return 139
|
||||||
|
elseif a:n == 5
|
||||||
|
return 162
|
||||||
|
elseif a:n == 6
|
||||||
|
return 185
|
||||||
|
elseif a:n == 7
|
||||||
|
return 208
|
||||||
|
elseif a:n == 8
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 8 + (a:n * 10)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index for the given grey index
|
||||||
|
fun <SID>grey_colour(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 9
|
||||||
|
return 79
|
||||||
|
else
|
||||||
|
return 79 + a:n
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 25
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 231 + a:n
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns an approximate colour index for the given colour level
|
||||||
|
fun <SID>rgb_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 69
|
||||||
|
return 0
|
||||||
|
elseif a:x < 172
|
||||||
|
return 1
|
||||||
|
elseif a:x < 230
|
||||||
|
return 2
|
||||||
|
else
|
||||||
|
return 3
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 75
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 55) / 40
|
||||||
|
let l:m = (a:x - 55) % 40
|
||||||
|
if l:m < 20
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the actual colour level for the given colour index
|
||||||
|
fun <SID>rgb_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 139
|
||||||
|
elseif a:n == 2
|
||||||
|
return 205
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 55 + (a:n * 40)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index for the given R/G/B colour indices
|
||||||
|
fun <SID>rgb_colour(x, y, z)
|
||||||
|
if &t_Co == 88
|
||||||
|
return 16 + (a:x * 16) + (a:y * 4) + a:z
|
||||||
|
else
|
||||||
|
return 16 + (a:x * 36) + (a:y * 6) + a:z
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index to approximate the given R/G/B colour levels
|
||||||
|
fun <SID>colour(r, g, b)
|
||||||
|
" Get the closest grey
|
||||||
|
let l:gx = <SID>grey_number(a:r)
|
||||||
|
let l:gy = <SID>grey_number(a:g)
|
||||||
|
let l:gz = <SID>grey_number(a:b)
|
||||||
|
|
||||||
|
" Get the closest colour
|
||||||
|
let l:x = <SID>rgb_number(a:r)
|
||||||
|
let l:y = <SID>rgb_number(a:g)
|
||||||
|
let l:z = <SID>rgb_number(a:b)
|
||||||
|
|
||||||
|
if l:gx == l:gy && l:gy == l:gz
|
||||||
|
" There are two possibilities
|
||||||
|
let l:dgr = <SID>grey_level(l:gx) - a:r
|
||||||
|
let l:dgg = <SID>grey_level(l:gy) - a:g
|
||||||
|
let l:dgb = <SID>grey_level(l:gz) - a:b
|
||||||
|
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
|
||||||
|
let l:dr = <SID>rgb_level(l:gx) - a:r
|
||||||
|
let l:dg = <SID>rgb_level(l:gy) - a:g
|
||||||
|
let l:db = <SID>rgb_level(l:gz) - a:b
|
||||||
|
let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db)
|
||||||
|
if l:dgrey < l:drgb
|
||||||
|
" Use the grey
|
||||||
|
return <SID>grey_colour(l:gx)
|
||||||
|
else
|
||||||
|
" Use the colour
|
||||||
|
return <SID>rgb_colour(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" Only one possibility
|
||||||
|
return <SID>rgb_colour(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index to approximate the 'rrggbb' hex string
|
||||||
|
fun <SID>rgb(rgb)
|
||||||
|
let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0
|
||||||
|
let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0
|
||||||
|
let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0
|
||||||
|
|
||||||
|
return <SID>colour(l:r, l:g, l:b)
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Sets the highlighting for the given group
|
||||||
|
fun <SID>X(group, fg, bg, attr)
|
||||||
|
if a:fg != ""
|
||||||
|
exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg)
|
||||||
|
endif
|
||||||
|
if a:bg != ""
|
||||||
|
exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg)
|
||||||
|
endif
|
||||||
|
if a:attr != ""
|
||||||
|
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Vim Highlighting
|
||||||
|
call <SID>X("Normal", s:foreground, s:background, "")
|
||||||
|
call <SID>X("LineNr", s:foreground, s:background, "")
|
||||||
|
call <SID>X("NonText", s:selection, "", "")
|
||||||
|
call <SID>X("SpecialKey", s:selection, "", "")
|
||||||
|
call <SID>X("Search", s:background, s:yellow, "")
|
||||||
|
call <SID>X("TabLine", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("TabLineFill", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("StatusLine", s:window, s:yellow, "reverse")
|
||||||
|
call <SID>X("StatusLineNC", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("VertSplit", s:window, s:window, "none")
|
||||||
|
call <SID>X("Visual", "", s:selection, "")
|
||||||
|
call <SID>X("Directory", s:blue, "", "")
|
||||||
|
call <SID>X("ModeMsg", s:green, "", "")
|
||||||
|
call <SID>X("MoreMsg", s:green, "", "")
|
||||||
|
call <SID>X("Question", s:green, "", "")
|
||||||
|
call <SID>X("WarningMsg", s:red, "", "")
|
||||||
|
call <SID>X("MatchParen", "", s:selection, "")
|
||||||
|
call <SID>X("Folded", s:comment, s:background, "")
|
||||||
|
call <SID>X("FoldColumn", "", s:background, "")
|
||||||
|
if version >= 700
|
||||||
|
call <SID>X("CursorLine", "", s:line, "none")
|
||||||
|
call <SID>X("CursorColumn", "", s:line, "none")
|
||||||
|
call <SID>X("PMenu", s:foreground, s:selection, "none")
|
||||||
|
call <SID>X("PMenuSel", s:foreground, s:selection, "reverse")
|
||||||
|
call <SID>X("SignColumn", "", s:background, "none")
|
||||||
|
end
|
||||||
|
if version >= 703
|
||||||
|
call <SID>X("ColorColumn", "", s:line, "none")
|
||||||
|
end
|
||||||
|
|
||||||
|
" Standard Highlighting
|
||||||
|
call <SID>X("Comment", s:comment, "", "")
|
||||||
|
call <SID>X("Todo", s:comment, s:background, "")
|
||||||
|
call <SID>X("Title", s:comment, "", "")
|
||||||
|
call <SID>X("Identifier", s:red, "", "none")
|
||||||
|
call <SID>X("Statement", s:foreground, "", "")
|
||||||
|
call <SID>X("Conditional", s:foreground, "", "")
|
||||||
|
call <SID>X("Repeat", s:foreground, "", "")
|
||||||
|
call <SID>X("Structure", s:purple, "", "")
|
||||||
|
call <SID>X("Function", s:blue, "", "")
|
||||||
|
call <SID>X("Constant", s:orange, "", "")
|
||||||
|
call <SID>X("Keyword", s:orange, "", "")
|
||||||
|
call <SID>X("String", s:green, "", "")
|
||||||
|
call <SID>X("Special", s:foreground, "", "")
|
||||||
|
call <SID>X("PreProc", s:purple, "", "")
|
||||||
|
call <SID>X("Operator", s:aqua, "", "none")
|
||||||
|
call <SID>X("Type", s:blue, "", "none")
|
||||||
|
call <SID>X("Define", s:purple, "", "none")
|
||||||
|
call <SID>X("Include", s:blue, "", "")
|
||||||
|
"call <SID>X("Ignore", "666666", "", "")
|
||||||
|
|
||||||
|
" Vim Highlighting
|
||||||
|
call <SID>X("vimCommand", s:red, "", "none")
|
||||||
|
|
||||||
|
" C Highlighting
|
||||||
|
call <SID>X("cType", s:yellow, "", "")
|
||||||
|
call <SID>X("cStorageClass", s:purple, "", "")
|
||||||
|
call <SID>X("cConditional", s:purple, "", "")
|
||||||
|
call <SID>X("cRepeat", s:purple, "", "")
|
||||||
|
|
||||||
|
" PHP Highlighting
|
||||||
|
call <SID>X("phpVarSelector", s:red, "", "")
|
||||||
|
call <SID>X("phpKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("phpRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("phpConditional", s:purple, "", "")
|
||||||
|
call <SID>X("phpStatement", s:purple, "", "")
|
||||||
|
call <SID>X("phpMemberSelector", s:foreground, "", "")
|
||||||
|
|
||||||
|
" Ruby Highlighting
|
||||||
|
call <SID>X("rubySymbol", s:green, "", "")
|
||||||
|
call <SID>X("rubyConstant", s:yellow, "", "")
|
||||||
|
call <SID>X("rubyAccess", s:yellow, "", "")
|
||||||
|
call <SID>X("rubyAttribute", s:blue, "", "")
|
||||||
|
call <SID>X("rubyInclude", s:blue, "", "")
|
||||||
|
call <SID>X("rubyLocalVariableOrMethod", s:orange, "", "")
|
||||||
|
call <SID>X("rubyCurlyBlock", s:orange, "", "")
|
||||||
|
call <SID>X("rubyStringDelimiter", s:green, "", "")
|
||||||
|
call <SID>X("rubyInterpolationDelimiter", s:orange, "", "")
|
||||||
|
call <SID>X("rubyConditional", s:purple, "", "")
|
||||||
|
call <SID>X("rubyRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("rubyControl", s:purple, "", "")
|
||||||
|
call <SID>X("rubyException", s:purple, "", "")
|
||||||
|
|
||||||
|
" Crystal Highlighting
|
||||||
|
call <SID>X("crystalSymbol", s:green, "", "")
|
||||||
|
call <SID>X("crystalConstant", s:yellow, "", "")
|
||||||
|
call <SID>X("crystalAccess", s:yellow, "", "")
|
||||||
|
call <SID>X("crystalAttribute", s:blue, "", "")
|
||||||
|
call <SID>X("crystalInclude", s:blue, "", "")
|
||||||
|
call <SID>X("crystalLocalVariableOrMethod", s:orange, "", "")
|
||||||
|
call <SID>X("crystalCurlyBlock", s:orange, "", "")
|
||||||
|
call <SID>X("crystalStringDelimiter", s:green, "", "")
|
||||||
|
call <SID>X("crystalInterpolationDelimiter", s:orange, "", "")
|
||||||
|
call <SID>X("crystalConditional", s:purple, "", "")
|
||||||
|
call <SID>X("crystalRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("crystalControl", s:purple, "", "")
|
||||||
|
call <SID>X("crystalException", s:purple, "", "")
|
||||||
|
|
||||||
|
" Python Highlighting
|
||||||
|
call <SID>X("pythonInclude", s:purple, "", "")
|
||||||
|
call <SID>X("pythonStatement", s:purple, "", "")
|
||||||
|
call <SID>X("pythonConditional", s:purple, "", "")
|
||||||
|
call <SID>X("pythonRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("pythonException", s:purple, "", "")
|
||||||
|
call <SID>X("pythonFunction", s:blue, "", "")
|
||||||
|
call <SID>X("pythonPreCondit", s:purple, "", "")
|
||||||
|
call <SID>X("pythonRepeat", s:aqua, "", "")
|
||||||
|
call <SID>X("pythonExClass", s:orange, "", "")
|
||||||
|
|
||||||
|
" JavaScript Highlighting
|
||||||
|
call <SID>X("javaScriptBraces", s:foreground, "", "")
|
||||||
|
call <SID>X("javaScriptFunction", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptConditional", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptNumber", s:orange, "", "")
|
||||||
|
call <SID>X("javaScriptMember", s:orange, "", "")
|
||||||
|
call <SID>X("javascriptNull", s:orange, "", "")
|
||||||
|
call <SID>X("javascriptGlobal", s:blue, "", "")
|
||||||
|
call <SID>X("javascriptStatement", s:red, "", "")
|
||||||
|
|
||||||
|
" CoffeeScript Highlighting
|
||||||
|
call <SID>X("coffeeRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeConditional", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeObject", s:yellow, "", "")
|
||||||
|
|
||||||
|
" HTML Highlighting
|
||||||
|
call <SID>X("htmlTag", s:red, "", "")
|
||||||
|
call <SID>X("htmlTagName", s:red, "", "")
|
||||||
|
call <SID>X("htmlArg", s:red, "", "")
|
||||||
|
call <SID>X("htmlScriptTag", s:red, "", "")
|
||||||
|
|
||||||
|
" Diff Highlighting
|
||||||
|
call <SID>X("diffAdd", "", "4c4e39", "")
|
||||||
|
call <SID>X("diffDelete", s:background, s:red, "")
|
||||||
|
call <SID>X("diffChange", "", "2b5b77", "")
|
||||||
|
call <SID>X("diffText", s:line, s:blue, "")
|
||||||
|
|
||||||
|
" ShowMarks Highlighting
|
||||||
|
call <SID>X("ShowMarksHLl", s:orange, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLo", s:purple, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLu", s:yellow, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLm", s:aqua, s:background, "none")
|
||||||
|
|
||||||
|
" Lua Highlighting
|
||||||
|
call <SID>X("luaStatement", s:purple, "", "")
|
||||||
|
call <SID>X("luaRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondStart", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondElseif", s:purple, "", "")
|
||||||
|
call <SID>X("luaCond", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondEnd", s:purple, "", "")
|
||||||
|
|
||||||
|
" Cucumber Highlighting
|
||||||
|
call <SID>X("cucumberGiven", s:blue, "", "")
|
||||||
|
call <SID>X("cucumberGivenAnd", s:blue, "", "")
|
||||||
|
|
||||||
|
" Go Highlighting
|
||||||
|
call <SID>X("goDirective", s:purple, "", "")
|
||||||
|
call <SID>X("goDeclaration", s:purple, "", "")
|
||||||
|
call <SID>X("goStatement", s:purple, "", "")
|
||||||
|
call <SID>X("goConditional", s:purple, "", "")
|
||||||
|
call <SID>X("goConstants", s:orange, "", "")
|
||||||
|
call <SID>X("goTodo", s:yellow, "", "")
|
||||||
|
call <SID>X("goDeclType", s:blue, "", "")
|
||||||
|
call <SID>X("goBuiltins", s:purple, "", "")
|
||||||
|
call <SID>X("goRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("goLabel", s:purple, "", "")
|
||||||
|
|
||||||
|
" Clojure Highlighting
|
||||||
|
call <SID>X("clojureConstant", s:orange, "", "")
|
||||||
|
call <SID>X("clojureBoolean", s:orange, "", "")
|
||||||
|
call <SID>X("clojureCharacter", s:orange, "", "")
|
||||||
|
call <SID>X("clojureKeyword", s:green, "", "")
|
||||||
|
call <SID>X("clojureNumber", s:orange, "", "")
|
||||||
|
call <SID>X("clojureString", s:green, "", "")
|
||||||
|
call <SID>X("clojureRegexp", s:green, "", "")
|
||||||
|
call <SID>X("clojureParen", s:aqua, "", "")
|
||||||
|
call <SID>X("clojureVariable", s:yellow, "", "")
|
||||||
|
call <SID>X("clojureCond", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDefine", s:purple, "", "")
|
||||||
|
call <SID>X("clojureException", s:red, "", "")
|
||||||
|
call <SID>X("clojureFunc", s:blue, "", "")
|
||||||
|
call <SID>X("clojureMacro", s:blue, "", "")
|
||||||
|
call <SID>X("clojureRepeat", s:blue, "", "")
|
||||||
|
call <SID>X("clojureSpecial", s:purple, "", "")
|
||||||
|
call <SID>X("clojureQuote", s:blue, "", "")
|
||||||
|
call <SID>X("clojureUnquote", s:blue, "", "")
|
||||||
|
call <SID>X("clojureMeta", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDeref", s:blue, "", "")
|
||||||
|
call <SID>X("clojureAnonArg", s:blue, "", "")
|
||||||
|
call <SID>X("clojureRepeat", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDispatch", s:blue, "", "")
|
||||||
|
|
||||||
|
" Scala Highlighting
|
||||||
|
call <SID>X("scalaKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("scalaKeywordModifier", s:purple, "", "")
|
||||||
|
call <SID>X("scalaOperator", s:blue, "", "")
|
||||||
|
call <SID>X("scalaPackage", s:red, "", "")
|
||||||
|
call <SID>X("scalaFqn", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaFqnSet", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaImport", s:purple, "", "")
|
||||||
|
call <SID>X("scalaBoolean", s:orange, "", "")
|
||||||
|
call <SID>X("scalaDef", s:purple, "", "")
|
||||||
|
call <SID>X("scalaVal", s:purple, "", "")
|
||||||
|
call <SID>X("scalaVar", s:aqua, "", "")
|
||||||
|
call <SID>X("scalaClass", s:purple, "", "")
|
||||||
|
call <SID>X("scalaObject", s:purple, "", "")
|
||||||
|
call <SID>X("scalaTrait", s:purple, "", "")
|
||||||
|
call <SID>X("scalaDefName", s:blue, "", "")
|
||||||
|
call <SID>X("scalaValName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaVarName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaClassName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaType", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaTypeSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaAnnotation", s:orange, "", "")
|
||||||
|
call <SID>X("scalaNumber", s:orange, "", "")
|
||||||
|
call <SID>X("scalaDefSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaClassSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaBackTick", s:green, "", "")
|
||||||
|
call <SID>X("scalaRoot", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaMethodCall", s:blue, "", "")
|
||||||
|
call <SID>X("scalaCaseType", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaLineComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaDocComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaDocTags", s:comment, "", "")
|
||||||
|
call <SID>X("scalaEmptyString", s:green, "", "")
|
||||||
|
call <SID>X("scalaMultiLineString", s:green, "", "")
|
||||||
|
call <SID>X("scalaUnicode", s:orange, "", "")
|
||||||
|
call <SID>X("scalaString", s:green, "", "")
|
||||||
|
call <SID>X("scalaStringEscape", s:green, "", "")
|
||||||
|
call <SID>X("scalaSymbol", s:orange, "", "")
|
||||||
|
call <SID>X("scalaChar", s:orange, "", "")
|
||||||
|
call <SID>X("scalaXml", s:green, "", "")
|
||||||
|
call <SID>X("scalaConstructorSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaBackTick", s:blue, "", "")
|
||||||
|
|
||||||
|
" Git
|
||||||
|
call <SID>X("diffAdded", s:green, "", "")
|
||||||
|
call <SID>X("diffRemoved", s:red, "", "")
|
||||||
|
call <SID>X("gitcommitSummary", "", "", "bold")
|
||||||
|
|
||||||
|
" Delete Functions
|
||||||
|
delf <SID>X
|
||||||
|
delf <SID>rgb
|
||||||
|
delf <SID>colour
|
||||||
|
delf <SID>rgb_colour
|
||||||
|
delf <SID>rgb_level
|
||||||
|
delf <SID>rgb_number
|
||||||
|
delf <SID>grey_colour
|
||||||
|
delf <SID>grey_level
|
||||||
|
delf <SID>grey_number
|
||||||
|
endif
|
||||||
|
|
||||||
|
set background=dark
|
|
@ -0,0 +1,489 @@
|
||||||
|
" Tomorrow Night Bright - Full Colour and 256 Colour
|
||||||
|
" http://chriskempson.com
|
||||||
|
"
|
||||||
|
" Hex colour conversion functions borrowed from the theme "Desert256""
|
||||||
|
|
||||||
|
" Default GUI Colours
|
||||||
|
let s:foreground = "eaeaea"
|
||||||
|
let s:background = "000000"
|
||||||
|
let s:selection = "424242"
|
||||||
|
let s:line = "2a2a2a"
|
||||||
|
let s:comment = "969896"
|
||||||
|
let s:red = "d54e53"
|
||||||
|
let s:orange = "e78c45"
|
||||||
|
let s:yellow = "e7c547"
|
||||||
|
let s:green = "b9ca4a"
|
||||||
|
let s:aqua = "70c0b1"
|
||||||
|
let s:blue = "7aa6da"
|
||||||
|
let s:purple = "c397d8"
|
||||||
|
let s:window = "4d5057"
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
syntax reset
|
||||||
|
|
||||||
|
let g:colors_name = "Tomorrow-Night-Bright"
|
||||||
|
|
||||||
|
if has("gui_running") || &t_Co == 88 || &t_Co == 256
|
||||||
|
" Returns an approximate grey index for the given grey level
|
||||||
|
fun <SID>grey_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 23
|
||||||
|
return 0
|
||||||
|
elseif a:x < 69
|
||||||
|
return 1
|
||||||
|
elseif a:x < 103
|
||||||
|
return 2
|
||||||
|
elseif a:x < 127
|
||||||
|
return 3
|
||||||
|
elseif a:x < 150
|
||||||
|
return 4
|
||||||
|
elseif a:x < 173
|
||||||
|
return 5
|
||||||
|
elseif a:x < 196
|
||||||
|
return 6
|
||||||
|
elseif a:x < 219
|
||||||
|
return 7
|
||||||
|
elseif a:x < 243
|
||||||
|
return 8
|
||||||
|
else
|
||||||
|
return 9
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 14
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 8) / 10
|
||||||
|
let l:m = (a:x - 8) % 10
|
||||||
|
if l:m < 5
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the actual grey level represented by the grey index
|
||||||
|
fun <SID>grey_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 46
|
||||||
|
elseif a:n == 2
|
||||||
|
return 92
|
||||||
|
elseif a:n == 3
|
||||||
|
return 115
|
||||||
|
elseif a:n == 4
|
||||||
|
return 139
|
||||||
|
elseif a:n == 5
|
||||||
|
return 162
|
||||||
|
elseif a:n == 6
|
||||||
|
return 185
|
||||||
|
elseif a:n == 7
|
||||||
|
return 208
|
||||||
|
elseif a:n == 8
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 8 + (a:n * 10)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index for the given grey index
|
||||||
|
fun <SID>grey_colour(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 9
|
||||||
|
return 79
|
||||||
|
else
|
||||||
|
return 79 + a:n
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 25
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 231 + a:n
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns an approximate colour index for the given colour level
|
||||||
|
fun <SID>rgb_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 69
|
||||||
|
return 0
|
||||||
|
elseif a:x < 172
|
||||||
|
return 1
|
||||||
|
elseif a:x < 230
|
||||||
|
return 2
|
||||||
|
else
|
||||||
|
return 3
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 75
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 55) / 40
|
||||||
|
let l:m = (a:x - 55) % 40
|
||||||
|
if l:m < 20
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the actual colour level for the given colour index
|
||||||
|
fun <SID>rgb_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 139
|
||||||
|
elseif a:n == 2
|
||||||
|
return 205
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 55 + (a:n * 40)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index for the given R/G/B colour indices
|
||||||
|
fun <SID>rgb_colour(x, y, z)
|
||||||
|
if &t_Co == 88
|
||||||
|
return 16 + (a:x * 16) + (a:y * 4) + a:z
|
||||||
|
else
|
||||||
|
return 16 + (a:x * 36) + (a:y * 6) + a:z
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index to approximate the given R/G/B colour levels
|
||||||
|
fun <SID>colour(r, g, b)
|
||||||
|
" Get the closest grey
|
||||||
|
let l:gx = <SID>grey_number(a:r)
|
||||||
|
let l:gy = <SID>grey_number(a:g)
|
||||||
|
let l:gz = <SID>grey_number(a:b)
|
||||||
|
|
||||||
|
" Get the closest colour
|
||||||
|
let l:x = <SID>rgb_number(a:r)
|
||||||
|
let l:y = <SID>rgb_number(a:g)
|
||||||
|
let l:z = <SID>rgb_number(a:b)
|
||||||
|
|
||||||
|
if l:gx == l:gy && l:gy == l:gz
|
||||||
|
" There are two possibilities
|
||||||
|
let l:dgr = <SID>grey_level(l:gx) - a:r
|
||||||
|
let l:dgg = <SID>grey_level(l:gy) - a:g
|
||||||
|
let l:dgb = <SID>grey_level(l:gz) - a:b
|
||||||
|
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
|
||||||
|
let l:dr = <SID>rgb_level(l:gx) - a:r
|
||||||
|
let l:dg = <SID>rgb_level(l:gy) - a:g
|
||||||
|
let l:db = <SID>rgb_level(l:gz) - a:b
|
||||||
|
let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db)
|
||||||
|
if l:dgrey < l:drgb
|
||||||
|
" Use the grey
|
||||||
|
return <SID>grey_colour(l:gx)
|
||||||
|
else
|
||||||
|
" Use the colour
|
||||||
|
return <SID>rgb_colour(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" Only one possibility
|
||||||
|
return <SID>rgb_colour(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index to approximate the 'rrggbb' hex string
|
||||||
|
fun <SID>rgb(rgb)
|
||||||
|
let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0
|
||||||
|
let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0
|
||||||
|
let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0
|
||||||
|
|
||||||
|
return <SID>colour(l:r, l:g, l:b)
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Sets the highlighting for the given group
|
||||||
|
fun <SID>X(group, fg, bg, attr)
|
||||||
|
if a:fg != ""
|
||||||
|
exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg)
|
||||||
|
endif
|
||||||
|
if a:bg != ""
|
||||||
|
exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg)
|
||||||
|
endif
|
||||||
|
if a:attr != ""
|
||||||
|
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Vim Highlighting
|
||||||
|
call <SID>X("Normal", s:foreground, s:background, "")
|
||||||
|
call <SID>X("LineNr", s:selection, "", "")
|
||||||
|
call <SID>X("NonText", s:selection, "", "")
|
||||||
|
call <SID>X("SpecialKey", s:selection, "", "")
|
||||||
|
call <SID>X("Search", s:background, s:yellow, "")
|
||||||
|
call <SID>X("TabLine", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("TabLineFill", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("StatusLine", s:window, s:yellow, "reverse")
|
||||||
|
call <SID>X("StatusLineNC", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("VertSplit", s:window, s:window, "none")
|
||||||
|
call <SID>X("Visual", "", s:selection, "")
|
||||||
|
call <SID>X("Directory", s:blue, "", "")
|
||||||
|
call <SID>X("ModeMsg", s:green, "", "")
|
||||||
|
call <SID>X("MoreMsg", s:green, "", "")
|
||||||
|
call <SID>X("Question", s:green, "", "")
|
||||||
|
call <SID>X("WarningMsg", s:red, "", "")
|
||||||
|
call <SID>X("MatchParen", "", s:selection, "")
|
||||||
|
call <SID>X("Folded", s:comment, s:background, "")
|
||||||
|
call <SID>X("FoldColumn", "", s:background, "")
|
||||||
|
if version >= 700
|
||||||
|
call <SID>X("CursorLine", "", s:line, "none")
|
||||||
|
call <SID>X("CursorColumn", "", s:line, "none")
|
||||||
|
call <SID>X("PMenu", s:foreground, s:selection, "none")
|
||||||
|
call <SID>X("PMenuSel", s:foreground, s:selection, "reverse")
|
||||||
|
call <SID>X("SignColumn", "", s:background, "none")
|
||||||
|
end
|
||||||
|
if version >= 703
|
||||||
|
call <SID>X("ColorColumn", "", s:line, "none")
|
||||||
|
end
|
||||||
|
|
||||||
|
" Standard Highlighting
|
||||||
|
call <SID>X("Comment", s:comment, "", "")
|
||||||
|
call <SID>X("Todo", s:comment, s:background, "")
|
||||||
|
call <SID>X("Title", s:comment, "", "")
|
||||||
|
call <SID>X("Identifier", s:red, "", "none")
|
||||||
|
call <SID>X("Statement", s:foreground, "", "")
|
||||||
|
call <SID>X("Conditional", s:foreground, "", "")
|
||||||
|
call <SID>X("Repeat", s:foreground, "", "")
|
||||||
|
call <SID>X("Structure", s:purple, "", "")
|
||||||
|
call <SID>X("Function", s:blue, "", "")
|
||||||
|
call <SID>X("Constant", s:orange, "", "")
|
||||||
|
call <SID>X("Keyword", s:orange, "", "")
|
||||||
|
call <SID>X("String", s:green, "", "")
|
||||||
|
call <SID>X("Special", s:foreground, "", "")
|
||||||
|
call <SID>X("PreProc", s:purple, "", "")
|
||||||
|
call <SID>X("Operator", s:aqua, "", "none")
|
||||||
|
call <SID>X("Type", s:blue, "", "none")
|
||||||
|
call <SID>X("Define", s:purple, "", "none")
|
||||||
|
call <SID>X("Include", s:blue, "", "")
|
||||||
|
"call <SID>X("Ignore", "666666", "", "")
|
||||||
|
|
||||||
|
" Vim Highlighting
|
||||||
|
call <SID>X("vimCommand", s:red, "", "none")
|
||||||
|
|
||||||
|
" C Highlighting
|
||||||
|
call <SID>X("cType", s:yellow, "", "")
|
||||||
|
call <SID>X("cStorageClass", s:purple, "", "")
|
||||||
|
call <SID>X("cConditional", s:purple, "", "")
|
||||||
|
call <SID>X("cRepeat", s:purple, "", "")
|
||||||
|
|
||||||
|
" PHP Highlighting
|
||||||
|
call <SID>X("phpVarSelector", s:red, "", "")
|
||||||
|
call <SID>X("phpKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("phpRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("phpConditional", s:purple, "", "")
|
||||||
|
call <SID>X("phpStatement", s:purple, "", "")
|
||||||
|
call <SID>X("phpMemberSelector", s:foreground, "", "")
|
||||||
|
|
||||||
|
" Ruby Highlighting
|
||||||
|
call <SID>X("rubySymbol", s:green, "", "")
|
||||||
|
call <SID>X("rubyConstant", s:yellow, "", "")
|
||||||
|
call <SID>X("rubyAccess", s:yellow, "", "")
|
||||||
|
call <SID>X("rubyAttribute", s:blue, "", "")
|
||||||
|
call <SID>X("rubyInclude", s:blue, "", "")
|
||||||
|
call <SID>X("rubyLocalVariableOrMethod", s:orange, "", "")
|
||||||
|
call <SID>X("rubyCurlyBlock", s:orange, "", "")
|
||||||
|
call <SID>X("rubyStringDelimiter", s:green, "", "")
|
||||||
|
call <SID>X("rubyInterpolationDelimiter", s:orange, "", "")
|
||||||
|
call <SID>X("rubyConditional", s:purple, "", "")
|
||||||
|
call <SID>X("rubyRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("rubyControl", s:purple, "", "")
|
||||||
|
call <SID>X("rubyException", s:purple, "", "")
|
||||||
|
|
||||||
|
" Crystal Highlighting
|
||||||
|
call <SID>X("crystalSymbol", s:green, "", "")
|
||||||
|
call <SID>X("crystalConstant", s:yellow, "", "")
|
||||||
|
call <SID>X("crystalAccess", s:yellow, "", "")
|
||||||
|
call <SID>X("crystalAttribute", s:blue, "", "")
|
||||||
|
call <SID>X("crystalInclude", s:blue, "", "")
|
||||||
|
call <SID>X("crystalLocalVariableOrMethod", s:orange, "", "")
|
||||||
|
call <SID>X("crystalCurlyBlock", s:orange, "", "")
|
||||||
|
call <SID>X("crystalStringDelimiter", s:green, "", "")
|
||||||
|
call <SID>X("crystalInterpolationDelimiter", s:orange, "", "")
|
||||||
|
call <SID>X("crystalConditional", s:purple, "", "")
|
||||||
|
call <SID>X("crystalRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("crystalControl", s:purple, "", "")
|
||||||
|
call <SID>X("crystalException", s:purple, "", "")
|
||||||
|
|
||||||
|
" Python Highlighting
|
||||||
|
call <SID>X("pythonInclude", s:purple, "", "")
|
||||||
|
call <SID>X("pythonStatement", s:purple, "", "")
|
||||||
|
call <SID>X("pythonConditional", s:purple, "", "")
|
||||||
|
call <SID>X("pythonRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("pythonException", s:purple, "", "")
|
||||||
|
call <SID>X("pythonFunction", s:blue, "", "")
|
||||||
|
call <SID>X("pythonPreCondit", s:purple, "", "")
|
||||||
|
call <SID>X("pythonRepeat", s:aqua, "", "")
|
||||||
|
call <SID>X("pythonExClass", s:orange, "", "")
|
||||||
|
|
||||||
|
" JavaScript Highlighting
|
||||||
|
call <SID>X("javaScriptBraces", s:foreground, "", "")
|
||||||
|
call <SID>X("javaScriptFunction", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptConditional", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptNumber", s:orange, "", "")
|
||||||
|
call <SID>X("javaScriptMember", s:orange, "", "")
|
||||||
|
call <SID>X("javascriptNull", s:orange, "", "")
|
||||||
|
call <SID>X("javascriptGlobal", s:blue, "", "")
|
||||||
|
call <SID>X("javascriptStatement", s:red, "", "")
|
||||||
|
|
||||||
|
" CoffeeScript Highlighting
|
||||||
|
call <SID>X("coffeeRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeConditional", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeObject", s:yellow, "", "")
|
||||||
|
|
||||||
|
" HTML Highlighting
|
||||||
|
call <SID>X("htmlTag", s:red, "", "")
|
||||||
|
call <SID>X("htmlTagName", s:red, "", "")
|
||||||
|
call <SID>X("htmlArg", s:red, "", "")
|
||||||
|
call <SID>X("htmlScriptTag", s:red, "", "")
|
||||||
|
|
||||||
|
" Diff Highlighting
|
||||||
|
call <SID>X("diffAdd", "", "4c4e39", "")
|
||||||
|
call <SID>X("diffDelete", s:background, s:red, "")
|
||||||
|
call <SID>X("diffChange", "", "2B5B77", "")
|
||||||
|
call <SID>X("diffText", s:line, s:blue, "")
|
||||||
|
|
||||||
|
" ShowMarks Highlighting
|
||||||
|
call <SID>X("ShowMarksHLl", s:orange, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLo", s:purple, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLu", s:yellow, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLm", s:aqua, s:background, "none")
|
||||||
|
|
||||||
|
" Lua Highlighting
|
||||||
|
call <SID>X("luaStatement", s:purple, "", "")
|
||||||
|
call <SID>X("luaRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondStart", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondElseif", s:purple, "", "")
|
||||||
|
call <SID>X("luaCond", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondEnd", s:purple, "", "")
|
||||||
|
|
||||||
|
" Cucumber Highlighting
|
||||||
|
call <SID>X("cucumberGiven", s:blue, "", "")
|
||||||
|
call <SID>X("cucumberGivenAnd", s:blue, "", "")
|
||||||
|
|
||||||
|
" Go Highlighting
|
||||||
|
call <SID>X("goDirective", s:purple, "", "")
|
||||||
|
call <SID>X("goDeclaration", s:purple, "", "")
|
||||||
|
call <SID>X("goStatement", s:purple, "", "")
|
||||||
|
call <SID>X("goConditional", s:purple, "", "")
|
||||||
|
call <SID>X("goConstants", s:orange, "", "")
|
||||||
|
call <SID>X("goTodo", s:yellow, "", "")
|
||||||
|
call <SID>X("goDeclType", s:blue, "", "")
|
||||||
|
call <SID>X("goBuiltins", s:purple, "", "")
|
||||||
|
call <SID>X("goRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("goLabel", s:purple, "", "")
|
||||||
|
|
||||||
|
" Clojure Highlighting
|
||||||
|
call <SID>X("clojureConstant", s:orange, "", "")
|
||||||
|
call <SID>X("clojureBoolean", s:orange, "", "")
|
||||||
|
call <SID>X("clojureCharacter", s:orange, "", "")
|
||||||
|
call <SID>X("clojureKeyword", s:green, "", "")
|
||||||
|
call <SID>X("clojureNumber", s:orange, "", "")
|
||||||
|
call <SID>X("clojureString", s:green, "", "")
|
||||||
|
call <SID>X("clojureRegexp", s:green, "", "")
|
||||||
|
call <SID>X("clojureParen", s:aqua, "", "")
|
||||||
|
call <SID>X("clojureVariable", s:yellow, "", "")
|
||||||
|
call <SID>X("clojureCond", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDefine", s:purple, "", "")
|
||||||
|
call <SID>X("clojureException", s:red, "", "")
|
||||||
|
call <SID>X("clojureFunc", s:blue, "", "")
|
||||||
|
call <SID>X("clojureMacro", s:blue, "", "")
|
||||||
|
call <SID>X("clojureRepeat", s:blue, "", "")
|
||||||
|
call <SID>X("clojureSpecial", s:purple, "", "")
|
||||||
|
call <SID>X("clojureQuote", s:blue, "", "")
|
||||||
|
call <SID>X("clojureUnquote", s:blue, "", "")
|
||||||
|
call <SID>X("clojureMeta", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDeref", s:blue, "", "")
|
||||||
|
call <SID>X("clojureAnonArg", s:blue, "", "")
|
||||||
|
call <SID>X("clojureRepeat", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDispatch", s:blue, "", "")
|
||||||
|
|
||||||
|
" Scala Highlighting
|
||||||
|
call <SID>X("scalaKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("scalaKeywordModifier", s:purple, "", "")
|
||||||
|
call <SID>X("scalaOperator", s:blue, "", "")
|
||||||
|
call <SID>X("scalaPackage", s:red, "", "")
|
||||||
|
call <SID>X("scalaFqn", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaFqnSet", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaImport", s:purple, "", "")
|
||||||
|
call <SID>X("scalaBoolean", s:orange, "", "")
|
||||||
|
call <SID>X("scalaDef", s:purple, "", "")
|
||||||
|
call <SID>X("scalaVal", s:purple, "", "")
|
||||||
|
call <SID>X("scalaVar", s:aqua, "", "")
|
||||||
|
call <SID>X("scalaClass", s:purple, "", "")
|
||||||
|
call <SID>X("scalaObject", s:purple, "", "")
|
||||||
|
call <SID>X("scalaTrait", s:purple, "", "")
|
||||||
|
call <SID>X("scalaDefName", s:blue, "", "")
|
||||||
|
call <SID>X("scalaValName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaVarName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaClassName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaType", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaTypeSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaAnnotation", s:orange, "", "")
|
||||||
|
call <SID>X("scalaNumber", s:orange, "", "")
|
||||||
|
call <SID>X("scalaDefSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaClassSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaBackTick", s:green, "", "")
|
||||||
|
call <SID>X("scalaRoot", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaMethodCall", s:blue, "", "")
|
||||||
|
call <SID>X("scalaCaseType", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaLineComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaDocComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaDocTags", s:comment, "", "")
|
||||||
|
call <SID>X("scalaEmptyString", s:green, "", "")
|
||||||
|
call <SID>X("scalaMultiLineString", s:green, "", "")
|
||||||
|
call <SID>X("scalaUnicode", s:orange, "", "")
|
||||||
|
call <SID>X("scalaString", s:green, "", "")
|
||||||
|
call <SID>X("scalaStringEscape", s:green, "", "")
|
||||||
|
call <SID>X("scalaSymbol", s:orange, "", "")
|
||||||
|
call <SID>X("scalaChar", s:orange, "", "")
|
||||||
|
call <SID>X("scalaXml", s:green, "", "")
|
||||||
|
call <SID>X("scalaConstructorSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaBackTick", s:blue, "", "")
|
||||||
|
|
||||||
|
" Git
|
||||||
|
call <SID>X("diffAdded", s:green, "", "")
|
||||||
|
call <SID>X("diffRemoved", s:red, "", "")
|
||||||
|
call <SID>X("gitcommitSummary", "", "", "bold")
|
||||||
|
|
||||||
|
" Delete Functions
|
||||||
|
delf <SID>X
|
||||||
|
delf <SID>rgb
|
||||||
|
delf <SID>colour
|
||||||
|
delf <SID>rgb_colour
|
||||||
|
delf <SID>rgb_level
|
||||||
|
delf <SID>rgb_number
|
||||||
|
delf <SID>grey_colour
|
||||||
|
delf <SID>grey_level
|
||||||
|
delf <SID>grey_number
|
||||||
|
endif
|
||||||
|
|
||||||
|
set background=dark
|
|
@ -0,0 +1,489 @@
|
||||||
|
" Tomorrow Night Eighties - Full Colour and 256 Colour
|
||||||
|
" http://chriskempson.com
|
||||||
|
"
|
||||||
|
" Hex colour conversion functions borrowed from the theme "Desert256""
|
||||||
|
|
||||||
|
" Default GUI Colours
|
||||||
|
let s:foreground = "cccccc"
|
||||||
|
let s:background = "2d2d2d"
|
||||||
|
let s:selection = "515151"
|
||||||
|
let s:line = "393939"
|
||||||
|
let s:comment = "999999"
|
||||||
|
let s:red = "f2777a"
|
||||||
|
let s:orange = "f99157"
|
||||||
|
let s:yellow = "ffcc66"
|
||||||
|
let s:green = "99cc99"
|
||||||
|
let s:aqua = "66cccc"
|
||||||
|
let s:blue = "6699cc"
|
||||||
|
let s:purple = "cc99cc"
|
||||||
|
let s:window = "4d5057"
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
syntax reset
|
||||||
|
|
||||||
|
let g:colors_name = "Tomorrow-Night-Eighties"
|
||||||
|
|
||||||
|
if has("gui_running") || &t_Co == 88 || &t_Co == 256
|
||||||
|
" Returns an approximate grey index for the given grey level
|
||||||
|
fun <SID>grey_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 23
|
||||||
|
return 0
|
||||||
|
elseif a:x < 69
|
||||||
|
return 1
|
||||||
|
elseif a:x < 103
|
||||||
|
return 2
|
||||||
|
elseif a:x < 127
|
||||||
|
return 3
|
||||||
|
elseif a:x < 150
|
||||||
|
return 4
|
||||||
|
elseif a:x < 173
|
||||||
|
return 5
|
||||||
|
elseif a:x < 196
|
||||||
|
return 6
|
||||||
|
elseif a:x < 219
|
||||||
|
return 7
|
||||||
|
elseif a:x < 243
|
||||||
|
return 8
|
||||||
|
else
|
||||||
|
return 9
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 14
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 8) / 10
|
||||||
|
let l:m = (a:x - 8) % 10
|
||||||
|
if l:m < 5
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the actual grey level represented by the grey index
|
||||||
|
fun <SID>grey_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 46
|
||||||
|
elseif a:n == 2
|
||||||
|
return 92
|
||||||
|
elseif a:n == 3
|
||||||
|
return 115
|
||||||
|
elseif a:n == 4
|
||||||
|
return 139
|
||||||
|
elseif a:n == 5
|
||||||
|
return 162
|
||||||
|
elseif a:n == 6
|
||||||
|
return 185
|
||||||
|
elseif a:n == 7
|
||||||
|
return 208
|
||||||
|
elseif a:n == 8
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 8 + (a:n * 10)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index for the given grey index
|
||||||
|
fun <SID>grey_colour(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 9
|
||||||
|
return 79
|
||||||
|
else
|
||||||
|
return 79 + a:n
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 25
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 231 + a:n
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns an approximate colour index for the given colour level
|
||||||
|
fun <SID>rgb_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 69
|
||||||
|
return 0
|
||||||
|
elseif a:x < 172
|
||||||
|
return 1
|
||||||
|
elseif a:x < 230
|
||||||
|
return 2
|
||||||
|
else
|
||||||
|
return 3
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 75
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 55) / 40
|
||||||
|
let l:m = (a:x - 55) % 40
|
||||||
|
if l:m < 20
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the actual colour level for the given colour index
|
||||||
|
fun <SID>rgb_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 139
|
||||||
|
elseif a:n == 2
|
||||||
|
return 205
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 55 + (a:n * 40)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index for the given R/G/B colour indices
|
||||||
|
fun <SID>rgb_colour(x, y, z)
|
||||||
|
if &t_Co == 88
|
||||||
|
return 16 + (a:x * 16) + (a:y * 4) + a:z
|
||||||
|
else
|
||||||
|
return 16 + (a:x * 36) + (a:y * 6) + a:z
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index to approximate the given R/G/B colour levels
|
||||||
|
fun <SID>colour(r, g, b)
|
||||||
|
" Get the closest grey
|
||||||
|
let l:gx = <SID>grey_number(a:r)
|
||||||
|
let l:gy = <SID>grey_number(a:g)
|
||||||
|
let l:gz = <SID>grey_number(a:b)
|
||||||
|
|
||||||
|
" Get the closest colour
|
||||||
|
let l:x = <SID>rgb_number(a:r)
|
||||||
|
let l:y = <SID>rgb_number(a:g)
|
||||||
|
let l:z = <SID>rgb_number(a:b)
|
||||||
|
|
||||||
|
if l:gx == l:gy && l:gy == l:gz
|
||||||
|
" There are two possibilities
|
||||||
|
let l:dgr = <SID>grey_level(l:gx) - a:r
|
||||||
|
let l:dgg = <SID>grey_level(l:gy) - a:g
|
||||||
|
let l:dgb = <SID>grey_level(l:gz) - a:b
|
||||||
|
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
|
||||||
|
let l:dr = <SID>rgb_level(l:gx) - a:r
|
||||||
|
let l:dg = <SID>rgb_level(l:gy) - a:g
|
||||||
|
let l:db = <SID>rgb_level(l:gz) - a:b
|
||||||
|
let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db)
|
||||||
|
if l:dgrey < l:drgb
|
||||||
|
" Use the grey
|
||||||
|
return <SID>grey_colour(l:gx)
|
||||||
|
else
|
||||||
|
" Use the colour
|
||||||
|
return <SID>rgb_colour(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" Only one possibility
|
||||||
|
return <SID>rgb_colour(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index to approximate the 'rrggbb' hex string
|
||||||
|
fun <SID>rgb(rgb)
|
||||||
|
let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0
|
||||||
|
let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0
|
||||||
|
let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0
|
||||||
|
|
||||||
|
return <SID>colour(l:r, l:g, l:b)
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Sets the highlighting for the given group
|
||||||
|
fun <SID>X(group, fg, bg, attr)
|
||||||
|
if a:fg != ""
|
||||||
|
exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg)
|
||||||
|
endif
|
||||||
|
if a:bg != ""
|
||||||
|
exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg)
|
||||||
|
endif
|
||||||
|
if a:attr != ""
|
||||||
|
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Vim Highlighting
|
||||||
|
call <SID>X("Normal", s:foreground, s:background, "")
|
||||||
|
call <SID>X("LineNr", s:selection, "", "")
|
||||||
|
call <SID>X("NonText", s:selection, "", "")
|
||||||
|
call <SID>X("SpecialKey", s:selection, "", "")
|
||||||
|
call <SID>X("Search", s:background, s:yellow, "")
|
||||||
|
call <SID>X("TabLine", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("TabLineFill", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("StatusLine", s:window, s:yellow, "reverse")
|
||||||
|
call <SID>X("StatusLineNC", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("VertSplit", s:window, s:window, "none")
|
||||||
|
call <SID>X("Visual", "", s:selection, "")
|
||||||
|
call <SID>X("Directory", s:blue, "", "")
|
||||||
|
call <SID>X("ModeMsg", s:green, "", "")
|
||||||
|
call <SID>X("MoreMsg", s:green, "", "")
|
||||||
|
call <SID>X("Question", s:green, "", "")
|
||||||
|
call <SID>X("WarningMsg", s:red, "", "")
|
||||||
|
call <SID>X("MatchParen", "", s:selection, "")
|
||||||
|
call <SID>X("Folded", s:comment, s:background, "")
|
||||||
|
call <SID>X("FoldColumn", "", s:background, "")
|
||||||
|
if version >= 700
|
||||||
|
call <SID>X("CursorLine", "", s:line, "none")
|
||||||
|
call <SID>X("CursorColumn", "", s:line, "none")
|
||||||
|
call <SID>X("PMenu", s:foreground, s:selection, "none")
|
||||||
|
call <SID>X("PMenuSel", s:foreground, s:selection, "reverse")
|
||||||
|
call <SID>X("SignColumn", "", s:background, "none")
|
||||||
|
end
|
||||||
|
if version >= 703
|
||||||
|
call <SID>X("ColorColumn", "", s:line, "none")
|
||||||
|
end
|
||||||
|
|
||||||
|
" Standard Highlighting
|
||||||
|
call <SID>X("Comment", s:comment, "", "")
|
||||||
|
call <SID>X("Todo", s:comment, s:background, "")
|
||||||
|
call <SID>X("Title", s:comment, "", "")
|
||||||
|
call <SID>X("Identifier", s:red, "", "none")
|
||||||
|
call <SID>X("Statement", s:foreground, "", "")
|
||||||
|
call <SID>X("Conditional", s:foreground, "", "")
|
||||||
|
call <SID>X("Repeat", s:foreground, "", "")
|
||||||
|
call <SID>X("Structure", s:purple, "", "")
|
||||||
|
call <SID>X("Function", s:blue, "", "")
|
||||||
|
call <SID>X("Constant", s:orange, "", "")
|
||||||
|
call <SID>X("Keyword", s:orange, "", "")
|
||||||
|
call <SID>X("String", s:green, "", "")
|
||||||
|
call <SID>X("Special", s:foreground, "", "")
|
||||||
|
call <SID>X("PreProc", s:purple, "", "")
|
||||||
|
call <SID>X("Operator", s:aqua, "", "none")
|
||||||
|
call <SID>X("Type", s:blue, "", "none")
|
||||||
|
call <SID>X("Define", s:purple, "", "none")
|
||||||
|
call <SID>X("Include", s:blue, "", "")
|
||||||
|
"call <SID>X("Ignore", "666666", "", "")
|
||||||
|
|
||||||
|
" Vim Highlighting
|
||||||
|
call <SID>X("vimCommand", s:red, "", "none")
|
||||||
|
|
||||||
|
" C Highlighting
|
||||||
|
call <SID>X("cType", s:yellow, "", "")
|
||||||
|
call <SID>X("cStorageClass", s:purple, "", "")
|
||||||
|
call <SID>X("cConditional", s:purple, "", "")
|
||||||
|
call <SID>X("cRepeat", s:purple, "", "")
|
||||||
|
|
||||||
|
" PHP Highlighting
|
||||||
|
call <SID>X("phpVarSelector", s:red, "", "")
|
||||||
|
call <SID>X("phpKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("phpRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("phpConditional", s:purple, "", "")
|
||||||
|
call <SID>X("phpStatement", s:purple, "", "")
|
||||||
|
call <SID>X("phpMemberSelector", s:foreground, "", "")
|
||||||
|
|
||||||
|
" Ruby Highlighting
|
||||||
|
call <SID>X("rubySymbol", s:green, "", "")
|
||||||
|
call <SID>X("rubyConstant", s:yellow, "", "")
|
||||||
|
call <SID>X("rubyAccess", s:yellow, "", "")
|
||||||
|
call <SID>X("rubyAttribute", s:blue, "", "")
|
||||||
|
call <SID>X("rubyInclude", s:blue, "", "")
|
||||||
|
call <SID>X("rubyLocalVariableOrMethod", s:orange, "", "")
|
||||||
|
call <SID>X("rubyCurlyBlock", s:orange, "", "")
|
||||||
|
call <SID>X("rubyStringDelimiter", s:green, "", "")
|
||||||
|
call <SID>X("rubyInterpolationDelimiter", s:orange, "", "")
|
||||||
|
call <SID>X("rubyConditional", s:purple, "", "")
|
||||||
|
call <SID>X("rubyRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("rubyControl", s:purple, "", "")
|
||||||
|
call <SID>X("rubyException", s:purple, "", "")
|
||||||
|
|
||||||
|
" Crystal Highlighting
|
||||||
|
call <SID>X("crystalSymbol", s:green, "", "")
|
||||||
|
call <SID>X("crystalConstant", s:yellow, "", "")
|
||||||
|
call <SID>X("crystalAccess", s:yellow, "", "")
|
||||||
|
call <SID>X("crystalAttribute", s:blue, "", "")
|
||||||
|
call <SID>X("crystalInclude", s:blue, "", "")
|
||||||
|
call <SID>X("crystalLocalVariableOrMethod", s:orange, "", "")
|
||||||
|
call <SID>X("crystalCurlyBlock", s:orange, "", "")
|
||||||
|
call <SID>X("crystalStringDelimiter", s:green, "", "")
|
||||||
|
call <SID>X("crystalInterpolationDelimiter", s:orange, "", "")
|
||||||
|
call <SID>X("crystalConditional", s:purple, "", "")
|
||||||
|
call <SID>X("crystalRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("crystalControl", s:purple, "", "")
|
||||||
|
call <SID>X("crystalException", s:purple, "", "")
|
||||||
|
|
||||||
|
" Python Highlighting
|
||||||
|
call <SID>X("pythonInclude", s:purple, "", "")
|
||||||
|
call <SID>X("pythonStatement", s:purple, "", "")
|
||||||
|
call <SID>X("pythonConditional", s:purple, "", "")
|
||||||
|
call <SID>X("pythonRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("pythonException", s:purple, "", "")
|
||||||
|
call <SID>X("pythonFunction", s:blue, "", "")
|
||||||
|
call <SID>X("pythonPreCondit", s:purple, "", "")
|
||||||
|
call <SID>X("pythonRepeat", s:aqua, "", "")
|
||||||
|
call <SID>X("pythonExClass", s:orange, "", "")
|
||||||
|
|
||||||
|
" JavaScript Highlighting
|
||||||
|
call <SID>X("javaScriptBraces", s:foreground, "", "")
|
||||||
|
call <SID>X("javaScriptFunction", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptConditional", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptNumber", s:orange, "", "")
|
||||||
|
call <SID>X("javaScriptMember", s:orange, "", "")
|
||||||
|
call <SID>X("javascriptNull", s:orange, "", "")
|
||||||
|
call <SID>X("javascriptGlobal", s:blue, "", "")
|
||||||
|
call <SID>X("javascriptStatement", s:red, "", "")
|
||||||
|
|
||||||
|
" CoffeeScript Highlighting
|
||||||
|
call <SID>X("coffeeRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeConditional", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeObject", s:yellow, "", "")
|
||||||
|
|
||||||
|
" HTML Highlighting
|
||||||
|
call <SID>X("htmlTag", s:red, "", "")
|
||||||
|
call <SID>X("htmlTagName", s:red, "", "")
|
||||||
|
call <SID>X("htmlArg", s:red, "", "")
|
||||||
|
call <SID>X("htmlScriptTag", s:red, "", "")
|
||||||
|
|
||||||
|
" Diff Highlighting
|
||||||
|
call <SID>X("diffAdd", "", "4c4e39", "")
|
||||||
|
call <SID>X("diffDelete", s:background, s:red, "")
|
||||||
|
call <SID>X("diffChange", "", "2B5B77", "")
|
||||||
|
call <SID>X("diffText", s:line, s:blue, "")
|
||||||
|
|
||||||
|
" ShowMarks Highlighting
|
||||||
|
call <SID>X("ShowMarksHLl", s:orange, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLo", s:purple, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLu", s:yellow, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLm", s:aqua, s:background, "none")
|
||||||
|
|
||||||
|
" Lua Highlighting
|
||||||
|
call <SID>X("luaStatement", s:purple, "", "")
|
||||||
|
call <SID>X("luaRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondStart", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondElseif", s:purple, "", "")
|
||||||
|
call <SID>X("luaCond", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondEnd", s:purple, "", "")
|
||||||
|
|
||||||
|
" Cucumber Highlighting
|
||||||
|
call <SID>X("cucumberGiven", s:blue, "", "")
|
||||||
|
call <SID>X("cucumberGivenAnd", s:blue, "", "")
|
||||||
|
|
||||||
|
" Go Highlighting
|
||||||
|
call <SID>X("goDirective", s:purple, "", "")
|
||||||
|
call <SID>X("goDeclaration", s:purple, "", "")
|
||||||
|
call <SID>X("goStatement", s:purple, "", "")
|
||||||
|
call <SID>X("goConditional", s:purple, "", "")
|
||||||
|
call <SID>X("goConstants", s:orange, "", "")
|
||||||
|
call <SID>X("goTodo", s:yellow, "", "")
|
||||||
|
call <SID>X("goDeclType", s:blue, "", "")
|
||||||
|
call <SID>X("goBuiltins", s:purple, "", "")
|
||||||
|
call <SID>X("goRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("goLabel", s:purple, "", "")
|
||||||
|
|
||||||
|
" Clojure Highlighting
|
||||||
|
call <SID>X("clojureConstant", s:orange, "", "")
|
||||||
|
call <SID>X("clojureBoolean", s:orange, "", "")
|
||||||
|
call <SID>X("clojureCharacter", s:orange, "", "")
|
||||||
|
call <SID>X("clojureKeyword", s:green, "", "")
|
||||||
|
call <SID>X("clojureNumber", s:orange, "", "")
|
||||||
|
call <SID>X("clojureString", s:green, "", "")
|
||||||
|
call <SID>X("clojureRegexp", s:green, "", "")
|
||||||
|
call <SID>X("clojureParen", s:aqua, "", "")
|
||||||
|
call <SID>X("clojureVariable", s:yellow, "", "")
|
||||||
|
call <SID>X("clojureCond", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDefine", s:purple, "", "")
|
||||||
|
call <SID>X("clojureException", s:red, "", "")
|
||||||
|
call <SID>X("clojureFunc", s:blue, "", "")
|
||||||
|
call <SID>X("clojureMacro", s:blue, "", "")
|
||||||
|
call <SID>X("clojureRepeat", s:blue, "", "")
|
||||||
|
call <SID>X("clojureSpecial", s:purple, "", "")
|
||||||
|
call <SID>X("clojureQuote", s:blue, "", "")
|
||||||
|
call <SID>X("clojureUnquote", s:blue, "", "")
|
||||||
|
call <SID>X("clojureMeta", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDeref", s:blue, "", "")
|
||||||
|
call <SID>X("clojureAnonArg", s:blue, "", "")
|
||||||
|
call <SID>X("clojureRepeat", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDispatch", s:blue, "", "")
|
||||||
|
|
||||||
|
" Scala Highlighting
|
||||||
|
call <SID>X("scalaKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("scalaKeywordModifier", s:purple, "", "")
|
||||||
|
call <SID>X("scalaOperator", s:blue, "", "")
|
||||||
|
call <SID>X("scalaPackage", s:red, "", "")
|
||||||
|
call <SID>X("scalaFqn", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaFqnSet", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaImport", s:purple, "", "")
|
||||||
|
call <SID>X("scalaBoolean", s:orange, "", "")
|
||||||
|
call <SID>X("scalaDef", s:purple, "", "")
|
||||||
|
call <SID>X("scalaVal", s:purple, "", "")
|
||||||
|
call <SID>X("scalaVar", s:aqua, "", "")
|
||||||
|
call <SID>X("scalaClass", s:purple, "", "")
|
||||||
|
call <SID>X("scalaObject", s:purple, "", "")
|
||||||
|
call <SID>X("scalaTrait", s:purple, "", "")
|
||||||
|
call <SID>X("scalaDefName", s:blue, "", "")
|
||||||
|
call <SID>X("scalaValName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaVarName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaClassName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaType", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaTypeSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaAnnotation", s:orange, "", "")
|
||||||
|
call <SID>X("scalaNumber", s:orange, "", "")
|
||||||
|
call <SID>X("scalaDefSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaClassSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaBackTick", s:green, "", "")
|
||||||
|
call <SID>X("scalaRoot", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaMethodCall", s:blue, "", "")
|
||||||
|
call <SID>X("scalaCaseType", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaLineComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaDocComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaDocTags", s:comment, "", "")
|
||||||
|
call <SID>X("scalaEmptyString", s:green, "", "")
|
||||||
|
call <SID>X("scalaMultiLineString", s:green, "", "")
|
||||||
|
call <SID>X("scalaUnicode", s:orange, "", "")
|
||||||
|
call <SID>X("scalaString", s:green, "", "")
|
||||||
|
call <SID>X("scalaStringEscape", s:green, "", "")
|
||||||
|
call <SID>X("scalaSymbol", s:orange, "", "")
|
||||||
|
call <SID>X("scalaChar", s:orange, "", "")
|
||||||
|
call <SID>X("scalaXml", s:green, "", "")
|
||||||
|
call <SID>X("scalaConstructorSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaBackTick", s:blue, "", "")
|
||||||
|
|
||||||
|
" Git
|
||||||
|
call <SID>X("diffAdded", s:green, "", "")
|
||||||
|
call <SID>X("diffRemoved", s:red, "", "")
|
||||||
|
call <SID>X("gitcommitSummary", "", "", "bold")
|
||||||
|
|
||||||
|
" Delete Functions
|
||||||
|
delf <SID>X
|
||||||
|
delf <SID>rgb
|
||||||
|
delf <SID>colour
|
||||||
|
delf <SID>rgb_colour
|
||||||
|
delf <SID>rgb_level
|
||||||
|
delf <SID>rgb_number
|
||||||
|
delf <SID>grey_colour
|
||||||
|
delf <SID>grey_level
|
||||||
|
delf <SID>grey_number
|
||||||
|
endif
|
||||||
|
|
||||||
|
set background=dark
|
|
@ -0,0 +1,497 @@
|
||||||
|
" Tomorrow Night - Full Colour and 256 Colour
|
||||||
|
" http://chriskempson.com
|
||||||
|
"
|
||||||
|
" Hex colour conversion functions borrowed from the theme "Desert256""
|
||||||
|
|
||||||
|
" Default GUI Colours
|
||||||
|
let s:foreground = "c5c8c6"
|
||||||
|
let s:background = "1d1f21"
|
||||||
|
let s:selection = "373b41"
|
||||||
|
let s:line = "282a2e"
|
||||||
|
let s:comment = "969896"
|
||||||
|
let s:red = "cc6666"
|
||||||
|
let s:orange = "de935f"
|
||||||
|
let s:yellow = "f0c674"
|
||||||
|
let s:green = "b5bd68"
|
||||||
|
let s:aqua = "8abeb7"
|
||||||
|
let s:blue = "81a2be"
|
||||||
|
let s:purple = "b294bb"
|
||||||
|
let s:window = "4d5057"
|
||||||
|
|
||||||
|
" Console 256 Colours
|
||||||
|
if !has("gui_running")
|
||||||
|
let s:background = "303030"
|
||||||
|
let s:window = "5e5e5e"
|
||||||
|
let s:line = "3a3a3a"
|
||||||
|
let s:selection = "585858"
|
||||||
|
end
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
syntax reset
|
||||||
|
|
||||||
|
let g:colors_name = "Tomorrow-Night"
|
||||||
|
|
||||||
|
if has("gui_running") || &t_Co == 88 || &t_Co == 256
|
||||||
|
" Returns an approximate grey index for the given grey level
|
||||||
|
fun <SID>grey_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 23
|
||||||
|
return 0
|
||||||
|
elseif a:x < 69
|
||||||
|
return 1
|
||||||
|
elseif a:x < 103
|
||||||
|
return 2
|
||||||
|
elseif a:x < 127
|
||||||
|
return 3
|
||||||
|
elseif a:x < 150
|
||||||
|
return 4
|
||||||
|
elseif a:x < 173
|
||||||
|
return 5
|
||||||
|
elseif a:x < 196
|
||||||
|
return 6
|
||||||
|
elseif a:x < 219
|
||||||
|
return 7
|
||||||
|
elseif a:x < 243
|
||||||
|
return 8
|
||||||
|
else
|
||||||
|
return 9
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 14
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 8) / 10
|
||||||
|
let l:m = (a:x - 8) % 10
|
||||||
|
if l:m < 5
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the actual grey level represented by the grey index
|
||||||
|
fun <SID>grey_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 46
|
||||||
|
elseif a:n == 2
|
||||||
|
return 92
|
||||||
|
elseif a:n == 3
|
||||||
|
return 115
|
||||||
|
elseif a:n == 4
|
||||||
|
return 139
|
||||||
|
elseif a:n == 5
|
||||||
|
return 162
|
||||||
|
elseif a:n == 6
|
||||||
|
return 185
|
||||||
|
elseif a:n == 7
|
||||||
|
return 208
|
||||||
|
elseif a:n == 8
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 8 + (a:n * 10)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index for the given grey index
|
||||||
|
fun <SID>grey_colour(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 9
|
||||||
|
return 79
|
||||||
|
else
|
||||||
|
return 79 + a:n
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 25
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 231 + a:n
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns an approximate colour index for the given colour level
|
||||||
|
fun <SID>rgb_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 69
|
||||||
|
return 0
|
||||||
|
elseif a:x < 172
|
||||||
|
return 1
|
||||||
|
elseif a:x < 230
|
||||||
|
return 2
|
||||||
|
else
|
||||||
|
return 3
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 75
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 55) / 40
|
||||||
|
let l:m = (a:x - 55) % 40
|
||||||
|
if l:m < 20
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the actual colour level for the given colour index
|
||||||
|
fun <SID>rgb_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 139
|
||||||
|
elseif a:n == 2
|
||||||
|
return 205
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 55 + (a:n * 40)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index for the given R/G/B colour indices
|
||||||
|
fun <SID>rgb_colour(x, y, z)
|
||||||
|
if &t_Co == 88
|
||||||
|
return 16 + (a:x * 16) + (a:y * 4) + a:z
|
||||||
|
else
|
||||||
|
return 16 + (a:x * 36) + (a:y * 6) + a:z
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index to approximate the given R/G/B colour levels
|
||||||
|
fun <SID>colour(r, g, b)
|
||||||
|
" Get the closest grey
|
||||||
|
let l:gx = <SID>grey_number(a:r)
|
||||||
|
let l:gy = <SID>grey_number(a:g)
|
||||||
|
let l:gz = <SID>grey_number(a:b)
|
||||||
|
|
||||||
|
" Get the closest colour
|
||||||
|
let l:x = <SID>rgb_number(a:r)
|
||||||
|
let l:y = <SID>rgb_number(a:g)
|
||||||
|
let l:z = <SID>rgb_number(a:b)
|
||||||
|
|
||||||
|
if l:gx == l:gy && l:gy == l:gz
|
||||||
|
" There are two possibilities
|
||||||
|
let l:dgr = <SID>grey_level(l:gx) - a:r
|
||||||
|
let l:dgg = <SID>grey_level(l:gy) - a:g
|
||||||
|
let l:dgb = <SID>grey_level(l:gz) - a:b
|
||||||
|
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
|
||||||
|
let l:dr = <SID>rgb_level(l:gx) - a:r
|
||||||
|
let l:dg = <SID>rgb_level(l:gy) - a:g
|
||||||
|
let l:db = <SID>rgb_level(l:gz) - a:b
|
||||||
|
let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db)
|
||||||
|
if l:dgrey < l:drgb
|
||||||
|
" Use the grey
|
||||||
|
return <SID>grey_colour(l:gx)
|
||||||
|
else
|
||||||
|
" Use the colour
|
||||||
|
return <SID>rgb_colour(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" Only one possibility
|
||||||
|
return <SID>rgb_colour(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index to approximate the 'rrggbb' hex string
|
||||||
|
fun <SID>rgb(rgb)
|
||||||
|
let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0
|
||||||
|
let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0
|
||||||
|
let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0
|
||||||
|
|
||||||
|
return <SID>colour(l:r, l:g, l:b)
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Sets the highlighting for the given group
|
||||||
|
fun <SID>X(group, fg, bg, attr)
|
||||||
|
if a:fg != ""
|
||||||
|
exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg)
|
||||||
|
endif
|
||||||
|
if a:bg != ""
|
||||||
|
exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg)
|
||||||
|
endif
|
||||||
|
if a:attr != ""
|
||||||
|
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Vim Highlighting
|
||||||
|
call <SID>X("Normal", s:foreground, s:background, "")
|
||||||
|
call <SID>X("LineNr", s:selection, "", "")
|
||||||
|
call <SID>X("NonText", s:selection, "", "")
|
||||||
|
call <SID>X("SpecialKey", s:selection, "", "")
|
||||||
|
call <SID>X("Search", s:background, s:yellow, "")
|
||||||
|
call <SID>X("TabLine", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("TabLineFill", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("StatusLine", s:window, s:yellow, "reverse")
|
||||||
|
call <SID>X("StatusLineNC", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("VertSplit", s:window, s:window, "none")
|
||||||
|
call <SID>X("Visual", "", s:selection, "")
|
||||||
|
call <SID>X("Directory", s:blue, "", "")
|
||||||
|
call <SID>X("ModeMsg", s:green, "", "")
|
||||||
|
call <SID>X("MoreMsg", s:green, "", "")
|
||||||
|
call <SID>X("Question", s:green, "", "")
|
||||||
|
call <SID>X("WarningMsg", s:red, "", "")
|
||||||
|
call <SID>X("MatchParen", "", s:selection, "")
|
||||||
|
call <SID>X("Folded", s:comment, s:background, "")
|
||||||
|
call <SID>X("FoldColumn", "", s:background, "")
|
||||||
|
if version >= 700
|
||||||
|
call <SID>X("CursorLine", "", s:line, "none")
|
||||||
|
call <SID>X("CursorColumn", "", s:line, "none")
|
||||||
|
call <SID>X("PMenu", s:foreground, s:selection, "none")
|
||||||
|
call <SID>X("PMenuSel", s:foreground, s:selection, "reverse")
|
||||||
|
call <SID>X("SignColumn", "", s:background, "none")
|
||||||
|
end
|
||||||
|
if version >= 703
|
||||||
|
call <SID>X("ColorColumn", "", s:line, "none")
|
||||||
|
end
|
||||||
|
|
||||||
|
" Standard Highlighting
|
||||||
|
call <SID>X("Comment", s:comment, "", "")
|
||||||
|
call <SID>X("Todo", s:comment, s:background, "")
|
||||||
|
call <SID>X("Title", s:comment, "", "")
|
||||||
|
call <SID>X("Identifier", s:red, "", "none")
|
||||||
|
call <SID>X("Statement", s:foreground, "", "")
|
||||||
|
call <SID>X("Conditional", s:foreground, "", "")
|
||||||
|
call <SID>X("Repeat", s:foreground, "", "")
|
||||||
|
call <SID>X("Structure", s:purple, "", "")
|
||||||
|
call <SID>X("Function", s:blue, "", "")
|
||||||
|
call <SID>X("Constant", s:orange, "", "")
|
||||||
|
call <SID>X("Keyword", s:orange, "", "")
|
||||||
|
call <SID>X("String", s:green, "", "")
|
||||||
|
call <SID>X("Special", s:foreground, "", "")
|
||||||
|
call <SID>X("PreProc", s:purple, "", "")
|
||||||
|
call <SID>X("Operator", s:aqua, "", "none")
|
||||||
|
call <SID>X("Type", s:blue, "", "none")
|
||||||
|
call <SID>X("Define", s:purple, "", "none")
|
||||||
|
call <SID>X("Include", s:blue, "", "")
|
||||||
|
"call <SID>X("Ignore", "666666", "", "")
|
||||||
|
|
||||||
|
" Vim Highlighting
|
||||||
|
call <SID>X("vimCommand", s:red, "", "none")
|
||||||
|
|
||||||
|
" C Highlighting
|
||||||
|
call <SID>X("cType", s:yellow, "", "")
|
||||||
|
call <SID>X("cStorageClass", s:purple, "", "")
|
||||||
|
call <SID>X("cConditional", s:purple, "", "")
|
||||||
|
call <SID>X("cRepeat", s:purple, "", "")
|
||||||
|
|
||||||
|
" PHP Highlighting
|
||||||
|
call <SID>X("phpVarSelector", s:red, "", "")
|
||||||
|
call <SID>X("phpKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("phpRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("phpConditional", s:purple, "", "")
|
||||||
|
call <SID>X("phpStatement", s:purple, "", "")
|
||||||
|
call <SID>X("phpMemberSelector", s:foreground, "", "")
|
||||||
|
|
||||||
|
" Ruby Highlighting
|
||||||
|
call <SID>X("rubySymbol", s:green, "", "")
|
||||||
|
call <SID>X("rubyConstant", s:yellow, "", "")
|
||||||
|
call <SID>X("rubyAccess", s:yellow, "", "")
|
||||||
|
call <SID>X("rubyAttribute", s:blue, "", "")
|
||||||
|
call <SID>X("rubyInclude", s:blue, "", "")
|
||||||
|
call <SID>X("rubyLocalVariableOrMethod", s:orange, "", "")
|
||||||
|
call <SID>X("rubyCurlyBlock", s:orange, "", "")
|
||||||
|
call <SID>X("rubyStringDelimiter", s:green, "", "")
|
||||||
|
call <SID>X("rubyInterpolationDelimiter", s:orange, "", "")
|
||||||
|
call <SID>X("rubyConditional", s:purple, "", "")
|
||||||
|
call <SID>X("rubyRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("rubyControl", s:purple, "", "")
|
||||||
|
call <SID>X("rubyException", s:purple, "", "")
|
||||||
|
|
||||||
|
" Crystal Highlighting
|
||||||
|
call <SID>X("crystalSymbol", s:green, "", "")
|
||||||
|
call <SID>X("crystalConstant", s:yellow, "", "")
|
||||||
|
call <SID>X("crystalAccess", s:yellow, "", "")
|
||||||
|
call <SID>X("crystalAttribute", s:blue, "", "")
|
||||||
|
call <SID>X("crystalInclude", s:blue, "", "")
|
||||||
|
call <SID>X("crystalLocalVariableOrMethod", s:orange, "", "")
|
||||||
|
call <SID>X("crystalCurlyBlock", s:orange, "", "")
|
||||||
|
call <SID>X("crystalStringDelimiter", s:green, "", "")
|
||||||
|
call <SID>X("crystalInterpolationDelimiter", s:orange, "", "")
|
||||||
|
call <SID>X("crystalConditional", s:purple, "", "")
|
||||||
|
call <SID>X("crystalRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("crystalControl", s:purple, "", "")
|
||||||
|
call <SID>X("crystalException", s:purple, "", "")
|
||||||
|
|
||||||
|
" Python Highlighting
|
||||||
|
call <SID>X("pythonInclude", s:purple, "", "")
|
||||||
|
call <SID>X("pythonStatement", s:purple, "", "")
|
||||||
|
call <SID>X("pythonConditional", s:purple, "", "")
|
||||||
|
call <SID>X("pythonRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("pythonException", s:purple, "", "")
|
||||||
|
call <SID>X("pythonFunction", s:blue, "", "")
|
||||||
|
call <SID>X("pythonPreCondit", s:purple, "", "")
|
||||||
|
call <SID>X("pythonRepeat", s:aqua, "", "")
|
||||||
|
call <SID>X("pythonExClass", s:orange, "", "")
|
||||||
|
|
||||||
|
" JavaScript Highlighting
|
||||||
|
call <SID>X("javaScriptBraces", s:foreground, "", "")
|
||||||
|
call <SID>X("javaScriptFunction", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptConditional", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptNumber", s:orange, "", "")
|
||||||
|
call <SID>X("javaScriptMember", s:orange, "", "")
|
||||||
|
call <SID>X("javascriptNull", s:orange, "", "")
|
||||||
|
call <SID>X("javascriptGlobal", s:blue, "", "")
|
||||||
|
call <SID>X("javascriptStatement", s:red, "", "")
|
||||||
|
|
||||||
|
" CoffeeScript Highlighting
|
||||||
|
call <SID>X("coffeeRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeConditional", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeObject", s:yellow, "", "")
|
||||||
|
|
||||||
|
" HTML Highlighting
|
||||||
|
call <SID>X("htmlTag", s:red, "", "")
|
||||||
|
call <SID>X("htmlTagName", s:red, "", "")
|
||||||
|
call <SID>X("htmlArg", s:red, "", "")
|
||||||
|
call <SID>X("htmlScriptTag", s:red, "", "")
|
||||||
|
|
||||||
|
" Diff Highlighting
|
||||||
|
call <SID>X("diffAdd", "", "4c4e39", "")
|
||||||
|
call <SID>X("diffDelete", s:background, s:red, "")
|
||||||
|
call <SID>X("diffChange", "", "2B5B77", "")
|
||||||
|
call <SID>X("diffText", s:line, s:blue, "")
|
||||||
|
|
||||||
|
" ShowMarks Highlighting
|
||||||
|
call <SID>X("ShowMarksHLl", s:orange, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLo", s:purple, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLu", s:yellow, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLm", s:aqua, s:background, "none")
|
||||||
|
|
||||||
|
" Lua Highlighting
|
||||||
|
call <SID>X("luaStatement", s:purple, "", "")
|
||||||
|
call <SID>X("luaRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondStart", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondElseif", s:purple, "", "")
|
||||||
|
call <SID>X("luaCond", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondEnd", s:purple, "", "")
|
||||||
|
|
||||||
|
" Cucumber Highlighting
|
||||||
|
call <SID>X("cucumberGiven", s:blue, "", "")
|
||||||
|
call <SID>X("cucumberGivenAnd", s:blue, "", "")
|
||||||
|
|
||||||
|
" Go Highlighting
|
||||||
|
call <SID>X("goDirective", s:purple, "", "")
|
||||||
|
call <SID>X("goDeclaration", s:purple, "", "")
|
||||||
|
call <SID>X("goStatement", s:purple, "", "")
|
||||||
|
call <SID>X("goConditional", s:purple, "", "")
|
||||||
|
call <SID>X("goConstants", s:orange, "", "")
|
||||||
|
call <SID>X("goTodo", s:yellow, "", "")
|
||||||
|
call <SID>X("goDeclType", s:blue, "", "")
|
||||||
|
call <SID>X("goBuiltins", s:purple, "", "")
|
||||||
|
call <SID>X("goRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("goLabel", s:purple, "", "")
|
||||||
|
|
||||||
|
" Clojure Highlighting
|
||||||
|
call <SID>X("clojureConstant", s:orange, "", "")
|
||||||
|
call <SID>X("clojureBoolean", s:orange, "", "")
|
||||||
|
call <SID>X("clojureCharacter", s:orange, "", "")
|
||||||
|
call <SID>X("clojureKeyword", s:green, "", "")
|
||||||
|
call <SID>X("clojureNumber", s:orange, "", "")
|
||||||
|
call <SID>X("clojureString", s:green, "", "")
|
||||||
|
call <SID>X("clojureRegexp", s:green, "", "")
|
||||||
|
call <SID>X("clojureParen", s:aqua, "", "")
|
||||||
|
call <SID>X("clojureVariable", s:yellow, "", "")
|
||||||
|
call <SID>X("clojureCond", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDefine", s:purple, "", "")
|
||||||
|
call <SID>X("clojureException", s:red, "", "")
|
||||||
|
call <SID>X("clojureFunc", s:blue, "", "")
|
||||||
|
call <SID>X("clojureMacro", s:blue, "", "")
|
||||||
|
call <SID>X("clojureRepeat", s:blue, "", "")
|
||||||
|
call <SID>X("clojureSpecial", s:purple, "", "")
|
||||||
|
call <SID>X("clojureQuote", s:blue, "", "")
|
||||||
|
call <SID>X("clojureUnquote", s:blue, "", "")
|
||||||
|
call <SID>X("clojureMeta", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDeref", s:blue, "", "")
|
||||||
|
call <SID>X("clojureAnonArg", s:blue, "", "")
|
||||||
|
call <SID>X("clojureRepeat", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDispatch", s:blue, "", "")
|
||||||
|
|
||||||
|
" Scala Highlighting
|
||||||
|
call <SID>X("scalaKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("scalaKeywordModifier", s:purple, "", "")
|
||||||
|
call <SID>X("scalaOperator", s:blue, "", "")
|
||||||
|
call <SID>X("scalaPackage", s:red, "", "")
|
||||||
|
call <SID>X("scalaFqn", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaFqnSet", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaImport", s:purple, "", "")
|
||||||
|
call <SID>X("scalaBoolean", s:orange, "", "")
|
||||||
|
call <SID>X("scalaDef", s:purple, "", "")
|
||||||
|
call <SID>X("scalaVal", s:purple, "", "")
|
||||||
|
call <SID>X("scalaVar", s:aqua, "", "")
|
||||||
|
call <SID>X("scalaClass", s:purple, "", "")
|
||||||
|
call <SID>X("scalaObject", s:purple, "", "")
|
||||||
|
call <SID>X("scalaTrait", s:purple, "", "")
|
||||||
|
call <SID>X("scalaDefName", s:blue, "", "")
|
||||||
|
call <SID>X("scalaValName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaVarName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaClassName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaType", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaTypeSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaAnnotation", s:orange, "", "")
|
||||||
|
call <SID>X("scalaNumber", s:orange, "", "")
|
||||||
|
call <SID>X("scalaDefSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaClassSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaBackTick", s:green, "", "")
|
||||||
|
call <SID>X("scalaRoot", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaMethodCall", s:blue, "", "")
|
||||||
|
call <SID>X("scalaCaseType", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaLineComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaDocComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaDocTags", s:comment, "", "")
|
||||||
|
call <SID>X("scalaEmptyString", s:green, "", "")
|
||||||
|
call <SID>X("scalaMultiLineString", s:green, "", "")
|
||||||
|
call <SID>X("scalaUnicode", s:orange, "", "")
|
||||||
|
call <SID>X("scalaString", s:green, "", "")
|
||||||
|
call <SID>X("scalaStringEscape", s:green, "", "")
|
||||||
|
call <SID>X("scalaSymbol", s:orange, "", "")
|
||||||
|
call <SID>X("scalaChar", s:orange, "", "")
|
||||||
|
call <SID>X("scalaXml", s:green, "", "")
|
||||||
|
call <SID>X("scalaConstructorSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaBackTick", s:blue, "", "")
|
||||||
|
|
||||||
|
" Git
|
||||||
|
call <SID>X("diffAdded", s:green, "", "")
|
||||||
|
call <SID>X("diffRemoved", s:red, "", "")
|
||||||
|
call <SID>X("gitcommitSummary", "", "", "bold")
|
||||||
|
|
||||||
|
" Delete Functions
|
||||||
|
delf <SID>X
|
||||||
|
delf <SID>rgb
|
||||||
|
delf <SID>colour
|
||||||
|
delf <SID>rgb_colour
|
||||||
|
delf <SID>rgb_level
|
||||||
|
delf <SID>rgb_number
|
||||||
|
delf <SID>grey_colour
|
||||||
|
delf <SID>grey_level
|
||||||
|
delf <SID>grey_number
|
||||||
|
endif
|
||||||
|
|
||||||
|
set background=dark
|
|
@ -0,0 +1,482 @@
|
||||||
|
" Tomorrow - Full Colour and 256 Colour
|
||||||
|
" http://chriskempson.com
|
||||||
|
"
|
||||||
|
" Hex colour conversion functions borrowed from the theme "Desert256""
|
||||||
|
|
||||||
|
" Default GUI Colours
|
||||||
|
let s:foreground = "4d4d4c"
|
||||||
|
let s:background = "ffffff"
|
||||||
|
let s:selection = "d6d6d6"
|
||||||
|
let s:line = "efefef"
|
||||||
|
let s:comment = "8e908c"
|
||||||
|
let s:red = "c82829"
|
||||||
|
let s:orange = "f5871f"
|
||||||
|
let s:yellow = "eab700"
|
||||||
|
let s:green = "718c00"
|
||||||
|
let s:aqua = "3e999f"
|
||||||
|
let s:blue = "4271ae"
|
||||||
|
let s:purple = "8959a8"
|
||||||
|
let s:window = "efefef"
|
||||||
|
|
||||||
|
set background=light
|
||||||
|
hi clear
|
||||||
|
syntax reset
|
||||||
|
|
||||||
|
let g:colors_name = "Tomorrow"
|
||||||
|
|
||||||
|
if has("gui_running") || &t_Co == 88 || &t_Co == 256
|
||||||
|
" Returns an approximate grey index for the given grey level
|
||||||
|
fun <SID>grey_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 23
|
||||||
|
return 0
|
||||||
|
elseif a:x < 69
|
||||||
|
return 1
|
||||||
|
elseif a:x < 103
|
||||||
|
return 2
|
||||||
|
elseif a:x < 127
|
||||||
|
return 3
|
||||||
|
elseif a:x < 150
|
||||||
|
return 4
|
||||||
|
elseif a:x < 173
|
||||||
|
return 5
|
||||||
|
elseif a:x < 196
|
||||||
|
return 6
|
||||||
|
elseif a:x < 219
|
||||||
|
return 7
|
||||||
|
elseif a:x < 243
|
||||||
|
return 8
|
||||||
|
else
|
||||||
|
return 9
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 14
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 8) / 10
|
||||||
|
let l:m = (a:x - 8) % 10
|
||||||
|
if l:m < 5
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the actual grey level represented by the grey index
|
||||||
|
fun <SID>grey_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 46
|
||||||
|
elseif a:n == 2
|
||||||
|
return 92
|
||||||
|
elseif a:n == 3
|
||||||
|
return 115
|
||||||
|
elseif a:n == 4
|
||||||
|
return 139
|
||||||
|
elseif a:n == 5
|
||||||
|
return 162
|
||||||
|
elseif a:n == 6
|
||||||
|
return 185
|
||||||
|
elseif a:n == 7
|
||||||
|
return 208
|
||||||
|
elseif a:n == 8
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 8 + (a:n * 10)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index for the given grey index
|
||||||
|
fun <SID>grey_colour(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 9
|
||||||
|
return 79
|
||||||
|
else
|
||||||
|
return 79 + a:n
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 16
|
||||||
|
elseif a:n == 25
|
||||||
|
return 231
|
||||||
|
else
|
||||||
|
return 231 + a:n
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns an approximate colour index for the given colour level
|
||||||
|
fun <SID>rgb_number(x)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:x < 69
|
||||||
|
return 0
|
||||||
|
elseif a:x < 172
|
||||||
|
return 1
|
||||||
|
elseif a:x < 230
|
||||||
|
return 2
|
||||||
|
else
|
||||||
|
return 3
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:x < 75
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
let l:n = (a:x - 55) / 40
|
||||||
|
let l:m = (a:x - 55) % 40
|
||||||
|
if l:m < 20
|
||||||
|
return l:n
|
||||||
|
else
|
||||||
|
return l:n + 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the actual colour level for the given colour index
|
||||||
|
fun <SID>rgb_level(n)
|
||||||
|
if &t_Co == 88
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
elseif a:n == 1
|
||||||
|
return 139
|
||||||
|
elseif a:n == 2
|
||||||
|
return 205
|
||||||
|
else
|
||||||
|
return 255
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if a:n == 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 55 + (a:n * 40)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index for the given R/G/B colour indices
|
||||||
|
fun <SID>rgb_colour(x, y, z)
|
||||||
|
if &t_Co == 88
|
||||||
|
return 16 + (a:x * 16) + (a:y * 4) + a:z
|
||||||
|
else
|
||||||
|
return 16 + (a:x * 36) + (a:y * 6) + a:z
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index to approximate the given R/G/B colour levels
|
||||||
|
fun <SID>colour(r, g, b)
|
||||||
|
" Get the closest grey
|
||||||
|
let l:gx = <SID>grey_number(a:r)
|
||||||
|
let l:gy = <SID>grey_number(a:g)
|
||||||
|
let l:gz = <SID>grey_number(a:b)
|
||||||
|
|
||||||
|
" Get the closest colour
|
||||||
|
let l:x = <SID>rgb_number(a:r)
|
||||||
|
let l:y = <SID>rgb_number(a:g)
|
||||||
|
let l:z = <SID>rgb_number(a:b)
|
||||||
|
|
||||||
|
if l:gx == l:gy && l:gy == l:gz
|
||||||
|
" There are two possibilities
|
||||||
|
let l:dgr = <SID>grey_level(l:gx) - a:r
|
||||||
|
let l:dgg = <SID>grey_level(l:gy) - a:g
|
||||||
|
let l:dgb = <SID>grey_level(l:gz) - a:b
|
||||||
|
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
|
||||||
|
let l:dr = <SID>rgb_level(l:gx) - a:r
|
||||||
|
let l:dg = <SID>rgb_level(l:gy) - a:g
|
||||||
|
let l:db = <SID>rgb_level(l:gz) - a:b
|
||||||
|
let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db)
|
||||||
|
if l:dgrey < l:drgb
|
||||||
|
" Use the grey
|
||||||
|
return <SID>grey_colour(l:gx)
|
||||||
|
else
|
||||||
|
" Use the colour
|
||||||
|
return <SID>rgb_colour(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" Only one possibility
|
||||||
|
return <SID>rgb_colour(l:x, l:y, l:z)
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Returns the palette index to approximate the 'rrggbb' hex string
|
||||||
|
fun <SID>rgb(rgb)
|
||||||
|
let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0
|
||||||
|
let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0
|
||||||
|
let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0
|
||||||
|
|
||||||
|
return <SID>colour(l:r, l:g, l:b)
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Sets the highlighting for the given group
|
||||||
|
fun <SID>X(group, fg, bg, attr)
|
||||||
|
if a:fg != ""
|
||||||
|
exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg)
|
||||||
|
endif
|
||||||
|
if a:bg != ""
|
||||||
|
exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg)
|
||||||
|
endif
|
||||||
|
if a:attr != ""
|
||||||
|
exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" Vim Highlighting
|
||||||
|
call <SID>X("Normal", s:foreground, s:background, "")
|
||||||
|
highlight LineNr term=bold cterm=NONE ctermfg=DarkGrey ctermbg=NONE gui=NONE guifg=DarkGrey guibg=NONE
|
||||||
|
call <SID>X("NonText", s:selection, "", "")
|
||||||
|
call <SID>X("SpecialKey", s:selection, "", "")
|
||||||
|
call <SID>X("Search", s:foreground, s:yellow, "")
|
||||||
|
call <SID>X("TabLine", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("TabLineFill", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("StatusLine", s:window, s:yellow, "reverse")
|
||||||
|
call <SID>X("StatusLineNC", s:window, s:foreground, "reverse")
|
||||||
|
call <SID>X("VertSplit", s:window, s:window, "none")
|
||||||
|
call <SID>X("Visual", "", s:selection, "")
|
||||||
|
call <SID>X("Directory", s:blue, "", "")
|
||||||
|
call <SID>X("ModeMsg", s:green, "", "")
|
||||||
|
call <SID>X("MoreMsg", s:green, "", "")
|
||||||
|
call <SID>X("Question", s:green, "", "")
|
||||||
|
call <SID>X("WarningMsg", s:red, "", "")
|
||||||
|
call <SID>X("MatchParen", "", s:selection, "")
|
||||||
|
call <SID>X("Folded", s:comment, s:background, "")
|
||||||
|
call <SID>X("FoldColumn", "", s:background, "")
|
||||||
|
if version >= 700
|
||||||
|
call <SID>X("CursorLine", "", s:line, "none")
|
||||||
|
call <SID>X("CursorColumn", "", s:line, "none")
|
||||||
|
call <SID>X("PMenu", s:foreground, s:selection, "none")
|
||||||
|
call <SID>X("PMenuSel", s:foreground, s:selection, "reverse")
|
||||||
|
call <SID>X("SignColumn", "", s:background, "none")
|
||||||
|
end
|
||||||
|
if version >= 703
|
||||||
|
call <SID>X("ColorColumn", "", s:line, "none")
|
||||||
|
end
|
||||||
|
|
||||||
|
" Standard Highlighting
|
||||||
|
call <SID>X("Comment", s:comment, "", "")
|
||||||
|
call <SID>X("Todo", s:comment, s:background, "")
|
||||||
|
call <SID>X("Title", s:comment, "", "")
|
||||||
|
call <SID>X("Identifier", s:red, "", "none")
|
||||||
|
call <SID>X("Statement", s:foreground, "", "")
|
||||||
|
call <SID>X("Conditional", s:foreground, "", "")
|
||||||
|
call <SID>X("Repeat", s:foreground, "", "")
|
||||||
|
call <SID>X("Structure", s:purple, "", "")
|
||||||
|
call <SID>X("Function", s:blue, "", "")
|
||||||
|
call <SID>X("Constant", s:orange, "", "")
|
||||||
|
call <SID>X("Keyword", s:orange, "", "")
|
||||||
|
call <SID>X("String", s:green, "", "")
|
||||||
|
call <SID>X("Special", s:foreground, "", "")
|
||||||
|
call <SID>X("PreProc", s:purple, "", "")
|
||||||
|
call <SID>X("Operator", s:aqua, "", "none")
|
||||||
|
call <SID>X("Type", s:blue, "", "none")
|
||||||
|
call <SID>X("Define", s:purple, "", "none")
|
||||||
|
call <SID>X("Include", s:blue, "", "")
|
||||||
|
"call <SID>X("Ignore", "666666", "", "")
|
||||||
|
|
||||||
|
" Vim Highlighting
|
||||||
|
call <SID>X("vimCommand", s:red, "", "none")
|
||||||
|
|
||||||
|
" C Highlighting
|
||||||
|
call <SID>X("cType", s:yellow, "", "")
|
||||||
|
call <SID>X("cStorageClass", s:purple, "", "")
|
||||||
|
call <SID>X("cConditional", s:purple, "", "")
|
||||||
|
call <SID>X("cRepeat", s:purple, "", "")
|
||||||
|
|
||||||
|
" PHP Highlighting
|
||||||
|
call <SID>X("phpVarSelector", s:red, "", "")
|
||||||
|
call <SID>X("phpKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("phpRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("phpConditional", s:purple, "", "")
|
||||||
|
call <SID>X("phpStatement", s:purple, "", "")
|
||||||
|
call <SID>X("phpMemberSelector", s:foreground, "", "")
|
||||||
|
|
||||||
|
" Ruby Highlighting
|
||||||
|
call <SID>X("rubySymbol", s:green, "", "")
|
||||||
|
call <SID>X("rubyConstant", s:yellow, "", "")
|
||||||
|
call <SID>X("rubyAccess", s:yellow, "", "")
|
||||||
|
call <SID>X("rubyAttribute", s:blue, "", "")
|
||||||
|
call <SID>X("rubyInclude", s:blue, "", "")
|
||||||
|
call <SID>X("rubyLocalVariableOrMethod", s:orange, "", "")
|
||||||
|
call <SID>X("rubyCurlyBlock", s:orange, "", "")
|
||||||
|
call <SID>X("rubyStringDelimiter", s:green, "", "")
|
||||||
|
call <SID>X("rubyInterpolationDelimiter", s:orange, "", "")
|
||||||
|
call <SID>X("rubyConditional", s:purple, "", "")
|
||||||
|
call <SID>X("rubyRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("rubyControl", s:purple, "", "")
|
||||||
|
call <SID>X("rubyException", s:purple, "", "")
|
||||||
|
|
||||||
|
" Crystal Highlighting
|
||||||
|
call <SID>X("crystalSymbol", s:green, "", "")
|
||||||
|
call <SID>X("crystalConstant", s:yellow, "", "")
|
||||||
|
call <SID>X("crystalAccess", s:yellow, "", "")
|
||||||
|
call <SID>X("crystalAttribute", s:blue, "", "")
|
||||||
|
call <SID>X("crystalInclude", s:blue, "", "")
|
||||||
|
call <SID>X("crystalLocalVariableOrMethod", s:orange, "", "")
|
||||||
|
call <SID>X("crystalCurlyBlock", s:orange, "", "")
|
||||||
|
call <SID>X("crystalStringDelimiter", s:green, "", "")
|
||||||
|
call <SID>X("crystalInterpolationDelimiter", s:orange, "", "")
|
||||||
|
call <SID>X("crystalConditional", s:purple, "", "")
|
||||||
|
call <SID>X("crystalRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("crystalControl", s:purple, "", "")
|
||||||
|
call <SID>X("crystalException", s:purple, "", "")
|
||||||
|
|
||||||
|
" Python Highlighting
|
||||||
|
call <SID>X("pythonInclude", s:purple, "", "")
|
||||||
|
call <SID>X("pythonStatement", s:purple, "", "")
|
||||||
|
call <SID>X("pythonConditional", s:purple, "", "")
|
||||||
|
call <SID>X("pythonRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("pythonException", s:purple, "", "")
|
||||||
|
call <SID>X("pythonFunction", s:blue, "", "")
|
||||||
|
call <SID>X("pythonPreCondit", s:purple, "", "")
|
||||||
|
call <SID>X("pythonRepeat", s:aqua, "", "")
|
||||||
|
call <SID>X("pythonExClass", s:orange, "", "")
|
||||||
|
|
||||||
|
" JavaScript Highlighting
|
||||||
|
call <SID>X("javaScriptBraces", s:foreground, "", "")
|
||||||
|
call <SID>X("javaScriptFunction", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptConditional", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("javaScriptNumber", s:orange, "", "")
|
||||||
|
call <SID>X("javaScriptMember", s:orange, "", "")
|
||||||
|
call <SID>X("javascriptNull", s:orange, "", "")
|
||||||
|
call <SID>X("javascriptGlobal", s:blue, "", "")
|
||||||
|
call <SID>X("javascriptStatement", s:red, "", "")
|
||||||
|
|
||||||
|
" CoffeeScript Highlighting
|
||||||
|
call <SID>X("coffeeRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeConditional", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("coffeeObject", s:yellow, "", "")
|
||||||
|
|
||||||
|
" HTML Highlighting
|
||||||
|
call <SID>X("htmlTag", s:red, "", "")
|
||||||
|
call <SID>X("htmlTagName", s:red, "", "")
|
||||||
|
call <SID>X("htmlArg", s:red, "", "")
|
||||||
|
call <SID>X("htmlScriptTag", s:red, "", "")
|
||||||
|
|
||||||
|
" ShowMarks Highlighting
|
||||||
|
call <SID>X("ShowMarksHLl", s:orange, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLo", s:purple, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLu", s:yellow, s:background, "none")
|
||||||
|
call <SID>X("ShowMarksHLm", s:aqua, s:background, "none")
|
||||||
|
|
||||||
|
" Lua Highlighting
|
||||||
|
call <SID>X("luaStatement", s:purple, "", "")
|
||||||
|
call <SID>X("luaRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondStart", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondElseif", s:purple, "", "")
|
||||||
|
call <SID>X("luaCond", s:purple, "", "")
|
||||||
|
call <SID>X("luaCondEnd", s:purple, "", "")
|
||||||
|
|
||||||
|
" Cucumber Highlighting
|
||||||
|
call <SID>X("cucumberGiven", s:blue, "", "")
|
||||||
|
call <SID>X("cucumberGivenAnd", s:blue, "", "")
|
||||||
|
|
||||||
|
" Go Highlighting
|
||||||
|
call <SID>X("goDirective", s:purple, "", "")
|
||||||
|
call <SID>X("goDeclaration", s:purple, "", "")
|
||||||
|
call <SID>X("goStatement", s:purple, "", "")
|
||||||
|
call <SID>X("goConditional", s:purple, "", "")
|
||||||
|
call <SID>X("goConstants", s:orange, "", "")
|
||||||
|
call <SID>X("goTodo", s:yellow, "", "")
|
||||||
|
call <SID>X("goDeclType", s:blue, "", "")
|
||||||
|
call <SID>X("goBuiltins", s:purple, "", "")
|
||||||
|
call <SID>X("goRepeat", s:purple, "", "")
|
||||||
|
call <SID>X("goLabel", s:purple, "", "")
|
||||||
|
|
||||||
|
" Clojure Highlighting
|
||||||
|
call <SID>X("clojureConstant", s:orange, "", "")
|
||||||
|
call <SID>X("clojureBoolean", s:orange, "", "")
|
||||||
|
call <SID>X("clojureCharacter", s:orange, "", "")
|
||||||
|
call <SID>X("clojureKeyword", s:green, "", "")
|
||||||
|
call <SID>X("clojureNumber", s:orange, "", "")
|
||||||
|
call <SID>X("clojureString", s:green, "", "")
|
||||||
|
call <SID>X("clojureRegexp", s:green, "", "")
|
||||||
|
call <SID>X("clojureParen", s:aqua, "", "")
|
||||||
|
call <SID>X("clojureVariable", s:yellow, "", "")
|
||||||
|
call <SID>X("clojureCond", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDefine", s:purple, "", "")
|
||||||
|
call <SID>X("clojureException", s:red, "", "")
|
||||||
|
call <SID>X("clojureFunc", s:blue, "", "")
|
||||||
|
call <SID>X("clojureMacro", s:blue, "", "")
|
||||||
|
call <SID>X("clojureRepeat", s:blue, "", "")
|
||||||
|
call <SID>X("clojureSpecial", s:purple, "", "")
|
||||||
|
call <SID>X("clojureQuote", s:blue, "", "")
|
||||||
|
call <SID>X("clojureUnquote", s:blue, "", "")
|
||||||
|
call <SID>X("clojureMeta", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDeref", s:blue, "", "")
|
||||||
|
call <SID>X("clojureAnonArg", s:blue, "", "")
|
||||||
|
call <SID>X("clojureRepeat", s:blue, "", "")
|
||||||
|
call <SID>X("clojureDispatch", s:blue, "", "")
|
||||||
|
|
||||||
|
" Scala Highlighting
|
||||||
|
call <SID>X("scalaKeyword", s:purple, "", "")
|
||||||
|
call <SID>X("scalaKeywordModifier", s:purple, "", "")
|
||||||
|
call <SID>X("scalaOperator", s:blue, "", "")
|
||||||
|
call <SID>X("scalaPackage", s:red, "", "")
|
||||||
|
call <SID>X("scalaFqn", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaFqnSet", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaImport", s:purple, "", "")
|
||||||
|
call <SID>X("scalaBoolean", s:orange, "", "")
|
||||||
|
call <SID>X("scalaDef", s:purple, "", "")
|
||||||
|
call <SID>X("scalaVal", s:purple, "", "")
|
||||||
|
call <SID>X("scalaVar", s:aqua, "", "")
|
||||||
|
call <SID>X("scalaClass", s:purple, "", "")
|
||||||
|
call <SID>X("scalaObject", s:purple, "", "")
|
||||||
|
call <SID>X("scalaTrait", s:purple, "", "")
|
||||||
|
call <SID>X("scalaDefName", s:blue, "", "")
|
||||||
|
call <SID>X("scalaValName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaVarName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaClassName", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaType", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaTypeSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaAnnotation", s:orange, "", "")
|
||||||
|
call <SID>X("scalaNumber", s:orange, "", "")
|
||||||
|
call <SID>X("scalaDefSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaClassSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaBackTick", s:green, "", "")
|
||||||
|
call <SID>X("scalaRoot", s:foreground, "", "")
|
||||||
|
call <SID>X("scalaMethodCall", s:blue, "", "")
|
||||||
|
call <SID>X("scalaCaseType", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaLineComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaDocComment", s:comment, "", "")
|
||||||
|
call <SID>X("scalaDocTags", s:comment, "", "")
|
||||||
|
call <SID>X("scalaEmptyString", s:green, "", "")
|
||||||
|
call <SID>X("scalaMultiLineString", s:green, "", "")
|
||||||
|
call <SID>X("scalaUnicode", s:orange, "", "")
|
||||||
|
call <SID>X("scalaString", s:green, "", "")
|
||||||
|
call <SID>X("scalaStringEscape", s:green, "", "")
|
||||||
|
call <SID>X("scalaSymbol", s:orange, "", "")
|
||||||
|
call <SID>X("scalaChar", s:orange, "", "")
|
||||||
|
call <SID>X("scalaXml", s:green, "", "")
|
||||||
|
call <SID>X("scalaConstructorSpecializer", s:yellow, "", "")
|
||||||
|
call <SID>X("scalaBackTick", s:blue, "", "")
|
||||||
|
|
||||||
|
" Git
|
||||||
|
call <SID>X("diffAdded", s:green, "", "")
|
||||||
|
call <SID>X("diffRemoved", s:red, "", "")
|
||||||
|
call <SID>X("gitcommitSummary", "", "", "bold")
|
||||||
|
|
||||||
|
" Delete Functions
|
||||||
|
delf <SID>X
|
||||||
|
delf <SID>rgb
|
||||||
|
delf <SID>colour
|
||||||
|
delf <SID>rgb_colour
|
||||||
|
delf <SID>rgb_level
|
||||||
|
delf <SID>rgb_number
|
||||||
|
delf <SID>grey_colour
|
||||||
|
delf <SID>grey_level
|
||||||
|
delf <SID>grey_number
|
||||||
|
endif
|
|
@ -0,0 +1,772 @@
|
||||||
|
*bufexplorer.txt* Buffer Explorer Last Change: 01 May 2017
|
||||||
|
|
||||||
|
Buffer Explorer *buffer-explorer* *bufexplorer*
|
||||||
|
Version 7.4.15
|
||||||
|
|
||||||
|
Plugin for easily exploring (or browsing) Vim|:buffers|.
|
||||||
|
|
||||||
|
|bufexplorer-installation| Installation
|
||||||
|
|bufexplorer-usage| Usage
|
||||||
|
|bufexplorer-windowlayout| Window Layout
|
||||||
|
|bufexplorer-customization| Customization
|
||||||
|
|bufexplorer-changelog| Change Log
|
||||||
|
|bufexplorer-todo| Todo
|
||||||
|
|bufexplorer-credits| Credits
|
||||||
|
|bufexplorer-copyright| Copyright
|
||||||
|
|
||||||
|
For Vim version 7.0 and above.
|
||||||
|
This plugin is only available if 'compatible' is not set.
|
||||||
|
|
||||||
|
{Vi does not have any of this}
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
INSTALLATION *bufexplorer-installation*
|
||||||
|
|
||||||
|
To install:
|
||||||
|
- Download the bufexplorer.zip from one of the following places:
|
||||||
|
https://github.com/jlanzarotta/bufexplorer
|
||||||
|
http://www.vim.org/scripts/script.php?script_id=42
|
||||||
|
or use a package manager like Vundle.
|
||||||
|
- Extract the zip archive into your runtime directory.
|
||||||
|
The archive contains plugin/bufexplorer.vim, and doc/bufexplorer.txt.
|
||||||
|
- Start Vim or goto an existing instance of Vim.
|
||||||
|
- Execute the following command:
|
||||||
|
>
|
||||||
|
:helptag <your runtime directory>/doc
|
||||||
|
<
|
||||||
|
This will generate all the help tags for any file located in the doc
|
||||||
|
directory.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
USAGE *bufexplorer-usage*
|
||||||
|
|
||||||
|
To start exploring in the current window, use: >
|
||||||
|
<Leader>be or :BufExplorer or Your custom key mapping
|
||||||
|
To toggle bufexplorer on or off in the current window, use: >
|
||||||
|
<Leader>bt or :ToggleBufExplorer or Your custom key mapping
|
||||||
|
To start exploring in a newly split horizontal window, use: >
|
||||||
|
<Leader>bs or :BufExplorerHorizontalSplit or Your custom key mapping
|
||||||
|
To start exploring in a newly split vertical window, use: >
|
||||||
|
<Leader>bv or :BufExplorerVerticalSplit or Your custom key mapping
|
||||||
|
|
||||||
|
If you would like to use something other than the default leader key - '\' -
|
||||||
|
you may simply change the leader (see |mapleader|).
|
||||||
|
|
||||||
|
When <Leader>bs or <Leader>bv is issued, bufexplorer opens in either a
|
||||||
|
horizontally or vertically split window. By issusing either of these commands,
|
||||||
|
the user is telling bufexplorer that they want to split the window and have
|
||||||
|
bufexplorer show the buffer they are about to select (from the bufexplorer
|
||||||
|
windows) in the newly split window. When <Leader>be is issued, bufexplorer
|
||||||
|
opens the bufexplorer contents in the current window and the buffer the user
|
||||||
|
selects is opened in the current window.
|
||||||
|
|
||||||
|
Note: If the current buffer is modified when bufexplorer started, the current
|
||||||
|
window is always split and the new bufexplorer is displayed in that new
|
||||||
|
window.
|
||||||
|
|
||||||
|
Commands to use once exploring:
|
||||||
|
|
||||||
|
<F1> Toggle help information.
|
||||||
|
<enter> Opens the buffer that is under the cursor into the current
|
||||||
|
window.
|
||||||
|
<leftmouse> Opens the buffer that is under the cursor into the current
|
||||||
|
window.
|
||||||
|
<shift-enter> Opens the buffer that is under the cursor in another tab.
|
||||||
|
b Fast buffer switching with b<any bufnum>.
|
||||||
|
B Works in association with the |ShowTabBuffer| option. If
|
||||||
|
|ShowTabBuffer| is set to 1, this toggles if BufExplorer is to
|
||||||
|
only store the most recent tab for this buffer or not.
|
||||||
|
d |:delete| the buffer under the cursor from the list. The
|
||||||
|
buffer's 'buflisted' is cleared. This allows for the buffer to
|
||||||
|
be displayed again using the 'show unlisted' command.
|
||||||
|
D |:wipeout| the buffer under the cursor from the list. When a
|
||||||
|
buffer is wiped, it will not be shown when unlisted buffers are
|
||||||
|
displayed.
|
||||||
|
f Toggles whether you are taken to the active window when
|
||||||
|
selecting a buffer or not.
|
||||||
|
o Opens the buffer that is under the cursor into the current
|
||||||
|
window.
|
||||||
|
p Toggles the showing of a split filename/pathname.
|
||||||
|
q Exit/Close bufexplorer.
|
||||||
|
r Reverses the order the buffers are listed in.
|
||||||
|
R Toggles relative path/absolute path.
|
||||||
|
s Cycle thru how the buffers are listed. Either by buffer
|
||||||
|
number, file name, file extension, most recently used (MRU), or
|
||||||
|
full path.
|
||||||
|
S Cycle thru how the buffers are listed, in reverse order.
|
||||||
|
Either by buffer number, file name, file extension, most
|
||||||
|
recently used (MRU), or full path.
|
||||||
|
t Opens the buffer that is under the cursor in another tab.
|
||||||
|
T Toggles to show only buffers for this tab or not.
|
||||||
|
u Toggles the showing of "unlisted" buffers.
|
||||||
|
|
||||||
|
Once invoked, Buffer Explorer displays a sorted list (MRU is the default
|
||||||
|
sort method) of all the buffers that are currently opened. You are then
|
||||||
|
able to move the cursor to the line containing the buffer's name you are
|
||||||
|
wanting to act upon. Once you have selected the buffer you would like,
|
||||||
|
you can then either open it, close it (delete), resort the list, reverse
|
||||||
|
the sort, quit exploring and so on...
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
WINDOW LAYOUT *bufexplorer-windowlayout*
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
" Press <F1> for Help
|
||||||
|
" Sorted by mru | Locate buffer | Absolute Split path
|
||||||
|
"=
|
||||||
|
1 %a bufexplorer.txt C:\Vim\vimfiles\doc line 87
|
||||||
|
2 # bufexplorer.vim c:\Vim\vimfiles\plugin line 1
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
| | | | |
|
||||||
|
| | | | +-- Current Line #.
|
||||||
|
| | | +-- Relative/Full Path
|
||||||
|
| | +-- Buffer Name.
|
||||||
|
| +-- Buffer Attributes. See |:buffers| for more information.
|
||||||
|
+-- Buffer Number. See |:buffers| for more information.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
CUSTOMIZATION *bufexplorer-customization*
|
||||||
|
|
||||||
|
If you do not like the default key mappings of <Leader>be, <Leader>bs, and
|
||||||
|
<Leader>bv, you can override bufexplorer's default mappings by setting up
|
||||||
|
something like the following in your vimrc file:
|
||||||
|
|
||||||
|
nnoremap <silent> <F11> :BufExplorer<CR>
|
||||||
|
nnoremap <silent> <s-F11> :ToggleBufExplorer<CR>
|
||||||
|
nnoremap <silent> <m-F11> :BufExplorerHorizontalSplit<CR>
|
||||||
|
nnoremap <silent> <c-F11> :BufExplorerVerticalSplit<CR>
|
||||||
|
|
||||||
|
*g:bufExplorerChgWin*
|
||||||
|
If set, bufexplorer will bring up the selected buffer in the window specified
|
||||||
|
by g:bufExplorerChgWin.
|
||||||
|
|
||||||
|
*g:bufExplorerDefaultHelp*
|
||||||
|
To control whether the default help is displayed or not, use: >
|
||||||
|
let g:bufExplorerDefaultHelp=0 " Do not show default help.
|
||||||
|
let g:bufExplorerDefaultHelp=1 " Show default help.
|
||||||
|
The default is to show the default help.
|
||||||
|
|
||||||
|
*g:bufExplorerDisableDefaultKeyMapping*
|
||||||
|
To control whether the default key mappings are enabled or not, use: >
|
||||||
|
let g:bufExplorerDisableDefaultKeyMapping=0 " Do not disable mapping.
|
||||||
|
let g:bufExplorerDisableDefaultKeyMapping=1 " Disable mapping.
|
||||||
|
The default is NOT to disable the default key mapping.
|
||||||
|
|
||||||
|
*g:bufExplorerDetailedHelp*
|
||||||
|
To control whether detailed help is display by, use: >
|
||||||
|
let g:bufExplorerDetailedHelp=0 " Do not show detailed help.
|
||||||
|
let g:bufExplorerDetailedHelp=1 " Show detailed help.
|
||||||
|
The default is NOT to show detailed help.
|
||||||
|
|
||||||
|
*g:bufExplorerFindActive*
|
||||||
|
To control whether you are taken to the active window when selecting a buffer,
|
||||||
|
use: >
|
||||||
|
let g:bufExplorerFindActive=0 " Do not go to active window.
|
||||||
|
let g:bufExplorerFindActive=1 " Go to active window.
|
||||||
|
The default is to be taken to the active window.
|
||||||
|
|
||||||
|
*g:bufExplorerFuncRef*
|
||||||
|
When a buffer is selected, the functions specified either singly or as a list
|
||||||
|
will be called.
|
||||||
|
|
||||||
|
*g:bufExplorerReverseSort*
|
||||||
|
To control whether to sort the buffer in reverse order or not, use: >
|
||||||
|
let g:bufExplorerReverseSort=0 " Do not sort in reverse order.
|
||||||
|
let g:bufExplorerReverseSort=1 " Sort in reverse order.
|
||||||
|
The default is NOT to sort in reverse order.
|
||||||
|
|
||||||
|
*g:bufExplorerShowDirectories*
|
||||||
|
Directories usually show up in the list from using a command like ":e .".
|
||||||
|
To control whether to show directories in the buffer list or not, use: >
|
||||||
|
let g:bufExplorerShowDirectories=0 " Do not show directories.
|
||||||
|
let g:bufExplorerShowDirectories=1 " Show directories.
|
||||||
|
The default is to show directories.
|
||||||
|
|
||||||
|
*g:bufExplorerShowNoName*
|
||||||
|
To control whether to show "No Name" buffers or not, use: >
|
||||||
|
let g:bufExplorerShowNoName=0 " Do not "No Name" buffers.
|
||||||
|
let g:bufExplorerShowNoName=1 " Show "No Name" buffers.
|
||||||
|
The default is to NOT show "No Name buffers.
|
||||||
|
|
||||||
|
*g:bufExplorerShowRelativePath*
|
||||||
|
To control whether to show absolute paths or relative to the current
|
||||||
|
directory, use: >
|
||||||
|
let g:bufExplorerShowRelativePath=0 " Show absolute paths.
|
||||||
|
let g:bufExplorerShowRelativePath=1 " Show relative paths.
|
||||||
|
The default is to show absolute paths.
|
||||||
|
|
||||||
|
*g:bufExplorerShowTabBuffer*
|
||||||
|
To control whether or not to show buffers on for the specific tab or not, use: >
|
||||||
|
let g:bufExplorerShowTabBuffer=0 " No.
|
||||||
|
let g:bufExplorerShowTabBuffer=1 " Yes.
|
||||||
|
The default is not to show.
|
||||||
|
|
||||||
|
*g:bufExplorerShowUnlisted*
|
||||||
|
To control whether to show unlisted buffers or not, use: >
|
||||||
|
let g:bufExplorerShowUnlisted=0 " Do not show unlisted buffers.
|
||||||
|
let g:bufExplorerShowUnlisted=1 " Show unlisted buffers.
|
||||||
|
The default is to NOT show unlisted buffers.
|
||||||
|
|
||||||
|
*g:bufExplorerSortBy*
|
||||||
|
To control what field the buffers are sorted by, use: >
|
||||||
|
let g:bufExplorerSortBy='extension' " Sort by file extension.
|
||||||
|
let g:bufExplorerSortBy='fullpath' " Sort by full file path name.
|
||||||
|
let g:bufExplorerSortBy='mru' " Sort by most recently used.
|
||||||
|
let g:bufExplorerSortBy='name' " Sort by the buffer's name.
|
||||||
|
let g:bufExplorerSortBy='number' " Sort by the buffer's number.
|
||||||
|
The default is to sort by mru.
|
||||||
|
|
||||||
|
*g:bufExplorerSplitBelow*
|
||||||
|
To control where the new split window will be placed above or below the
|
||||||
|
current window, use: >
|
||||||
|
let g:bufExplorerSplitBelow=1 " Split new window below current.
|
||||||
|
let g:bufExplorerSplitBelow=0 " Split new window above current.
|
||||||
|
The default is to use whatever is set by the global &splitbelow
|
||||||
|
variable.
|
||||||
|
|
||||||
|
*g:bufExplorerSplitHorzSize*
|
||||||
|
To control the size of the new horizontal split window. use: >
|
||||||
|
let g:bufExplorerSplitHorzSize=n " New split window is n rows high.
|
||||||
|
let g:bufExplorerSplitHorzSize=0 " New split window size set by Vim.
|
||||||
|
The default is 0, so that the size is set by Vim.
|
||||||
|
|
||||||
|
*g:bufExplorerSplitOutPathName*
|
||||||
|
To control whether to split out the path and file name or not, use: >
|
||||||
|
let g:bufExplorerSplitOutPathName=1 " Split the path and file name.
|
||||||
|
let g:bufExplorerSplitOutPathName=0 " Don't split the path and file
|
||||||
|
" name.
|
||||||
|
The default is to split the path and file name.
|
||||||
|
|
||||||
|
*g:bufExplorerSplitRight*
|
||||||
|
To control where the new vsplit window will be placed to the left or right of
|
||||||
|
current window, use: >
|
||||||
|
let g:bufExplorerSplitRight=0 " Split left.
|
||||||
|
let g:bufExplorerSplitRight=1 " Split right.
|
||||||
|
The default is to use the global &splitright.
|
||||||
|
|
||||||
|
*g:bufExplorerSplitVertSize*
|
||||||
|
To control the size of the new vertical split window. use: >
|
||||||
|
let g:bufExplorerVertSize=n " New split window is n columns wide.
|
||||||
|
let g:bufExplorerVertSize=0 " New split windows size set by Vim.
|
||||||
|
The default is 0, so that the size is set by Vim.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
CHANGE LOG *bufexplorer-changelog*
|
||||||
|
|
||||||
|
7.4.15 May 01, 2017
|
||||||
|
- Finally applied the patch submitted by justfalter. This patch is a
|
||||||
|
backward-compatible fix for the "invalid tab range" bug.
|
||||||
|
7.4.14 April 10, 2017
|
||||||
|
- As suggested by adelarsq way back on January 5th, 2016, a filetype has
|
||||||
|
been added. There is now 'filetype=bufexplorer'.
|
||||||
|
7.4.13 March 08, 2017
|
||||||
|
- Thanks to devakivamsi for pointing out that even though bufexplorer
|
||||||
|
turns off line numbers by default within its own window, this did not
|
||||||
|
work correctly when using WinManager. This has now been corrected.
|
||||||
|
7.4.12 September 30, 2016
|
||||||
|
- Thanks again to Martin Vuille for several more fixes related to making
|
||||||
|
bufexplorer more tab-friendly.
|
||||||
|
7.4.11 September, 20, 2016
|
||||||
|
- Thanks to Martin Vuille for reworking the per-tab buffer listing code.
|
||||||
|
Fix for g:bufExplorerShowTabBuffer is not working correctly and other
|
||||||
|
"gliches" when the ShotTabBuffer option is enabled. For example old
|
||||||
|
code would not correctly handle adding/deleting a tab that wasn't the
|
||||||
|
highest-numbered tab.
|
||||||
|
7.4.10 August 26, 2016
|
||||||
|
- Thanks to buddylindsey for fixing a misspelling in the docs.
|
||||||
|
7.4.9 April 01, 2016
|
||||||
|
- Thanks to ivegotasthma for supplying a patch to fix a major issue with
|
||||||
|
plugin performance when lots of buffers are open.
|
||||||
|
- Thanks to ershov for the patch to fix grouping of files in ambiguous
|
||||||
|
sort modes.
|
||||||
|
- Thanks to PhilRunninger for changing documentation to use <Leader>, in
|
||||||
|
place of '\'.
|
||||||
|
7.4.8 January 27, 2015
|
||||||
|
- Thanks to Marius Gedminas for fixing up the documentation and correcting
|
||||||
|
various typos.
|
||||||
|
7.4.7 January 20, 2015
|
||||||
|
- Thanks goes out to Phil Runninger for added the ability to toggle the
|
||||||
|
bufexplorer list on and off using the :ToggleBufExplorer command, the
|
||||||
|
map <Leader>bt, and the function ToggleBufExplorer().
|
||||||
|
7.4.6 November 03, 2014
|
||||||
|
- Not sure how, but the file format was converted to Dos instead of Unix.
|
||||||
|
I converted the file back to Unix.
|
||||||
|
7.4.5 October 24, 2014
|
||||||
|
- Dr Michael Henry suggested to change all noremap commands to nnoremap.
|
||||||
|
Using noremap is unnecessarily broad and can cause problems, especially
|
||||||
|
for select mode.
|
||||||
|
7.4.4 August 19, 2014
|
||||||
|
- Revert change where bufexplorer windows was closed even if the target
|
||||||
|
buffer has not been loaded yet.
|
||||||
|
7.4.3 August 13, 2014
|
||||||
|
- Ivan Ukhov fixed issue with deleting the last window. This update also
|
||||||
|
fixes as well as another. If you have say, NERDtree open on the left
|
||||||
|
side and bufexplorer on the right, that bufexplorer would close NERDtree
|
||||||
|
erroneously thinking that it is closing itself.
|
||||||
|
- Radoslaw Burny fixed a few bugs that surfaced when bufexplorer is used
|
||||||
|
within winmanager.
|
||||||
|
7.4.2 October 22, 2013
|
||||||
|
- Added global option g:bufExplorerDisableDefaultKeyMapping. This option
|
||||||
|
controls weather the default key mappings (\be, \bs, and \bv) are
|
||||||
|
enabled or not. See documentation for more information.
|
||||||
|
7.4.1 October 11, 2013
|
||||||
|
- First update related to Vim 7.4.
|
||||||
|
- Changed license text.
|
||||||
|
- Fixed issue with 'hidden'. If 'hidden' is set, make sure that
|
||||||
|
g:bufExplorerFindActive is set to 0. Otherwise, when using \bs or \bv,
|
||||||
|
and selecting a buffer, the original buffer will be switched to instead
|
||||||
|
of being opened in the newly created windows.
|
||||||
|
- Added new 'b' mapping when the bufExplorer window is opened. When 'b'
|
||||||
|
is pressed, the user is prompted for the buffer number to switch to, and
|
||||||
|
is is then switched to when <CR> is pressed. This allows for somewhat
|
||||||
|
faster buffer switching instead of using the j and k keys or the mouse
|
||||||
|
to select the buffer to switch to.
|
||||||
|
- Removed 'set nolist' from the Initialize() function as well as the
|
||||||
|
restore of the 'list' setting in the CleanUp() function. These were
|
||||||
|
causing issues when multiple new files were opened from the command
|
||||||
|
line. Furthermore, there was really no reason, that I can remember, to
|
||||||
|
why the 'list' setting was saved, modified, and restored anyways.
|
||||||
|
- Fixed issue with WinManager integration code not working correctly
|
||||||
|
anymore.
|
||||||
|
- Brought back the xnoremap setup for the 'd' and 'D' keys. These were
|
||||||
|
removed for some reason after version 7.2.8.
|
||||||
|
- Thanks to all the contributors and testers.
|
||||||
|
7.3.6 May 06, 2013
|
||||||
|
- Removed the 'drop' window command that was causing issue with the
|
||||||
|
argument-list being modified after the BufExplorer windows was
|
||||||
|
displayed.
|
||||||
|
7.3.5 February 08, 2013
|
||||||
|
- Michael Henry added the ability to view "No Name" buffers. This
|
||||||
|
functionality was lost since version 7.3.0. He also did some removal of
|
||||||
|
"dead" code and cleaned up the code to handle filenames with embedded
|
||||||
|
'"'.
|
||||||
|
7.3.4 January 28, 2013
|
||||||
|
- Thanks go out to John Szakmeister for finding and fixing a bug in the
|
||||||
|
RebuildBufferList method. The keepjumps line that clears the list could
|
||||||
|
potentially reference a backwards range.
|
||||||
|
7.3.3 January 14, 2013
|
||||||
|
- Major cleanup and reorganization of the change log.
|
||||||
|
- We welcome the return of g:bufExplorerSplitHorzSize and
|
||||||
|
g:bufExplorerSplitVertSize. When setting these values, anything less
|
||||||
|
than or equal to 0 causes the split windows size to be determined by
|
||||||
|
Vim. If for example you want your new horizontal split window 10 rows
|
||||||
|
high, set g:bufExplorerSplitHorzSize = 10 in your .vimrc. Similar would
|
||||||
|
be done if wanting a vertical split except you would use the
|
||||||
|
g:bufExplorerSplitVertSize variable instead.
|
||||||
|
7.3.2 December 24, 2012
|
||||||
|
- Thanks go out to Michael Henry for pointing out that I completely
|
||||||
|
missed yet another function, ReverseSortSelect(), during the
|
||||||
|
refactoring. This function has now returned.
|
||||||
|
7.3.1 December 06, 2012
|
||||||
|
- Thanks go out to Brett Rasmussen for pointing out that the feature
|
||||||
|
added way back in version 7.2.3 by Yuriy Ershov to automatically
|
||||||
|
reposition the cursor to the line containing the active buffer, was
|
||||||
|
no longer in the plugin. That bit of code has been re-added and
|
||||||
|
all is well.
|
||||||
|
7.3.0 October 09, 2012
|
||||||
|
- It has been quite a while since I published a new version and this
|
||||||
|
is the first version since Vim 7.3 was released. I have put some
|
||||||
|
time into reworking and cleaning up the code as well as various bug
|
||||||
|
fixes. Overall, I am hopeful that I not forgotten or lost a feature.
|
||||||
|
- Thanks to Tim Johnson for testing out this new version.
|
||||||
|
- I have hopefully allowed for better mapping of the main public
|
||||||
|
methods as is explained in the |bufexplorer-customization| section
|
||||||
|
of the documentation.
|
||||||
|
- Add new 'B', 'o', and 'S' key mappings.
|
||||||
|
7.2.8 November 08, 2010
|
||||||
|
- Thanks to Charles Campbell for integrating bufexplorer with GDBMGR.
|
||||||
|
http://mysite.verizon.net/astronaut/vim/index.html#GDBMGR
|
||||||
|
7.2.7 April 26, 2010
|
||||||
|
- My 1st attempt to fix the "cache" issue where buffers information
|
||||||
|
has changed but the cache/display does not reflect those changes.
|
||||||
|
More work still needs to be done.
|
||||||
|
7.2.6 February 12, 2010
|
||||||
|
- Thanks to Michael Henry for pointing out that I totally forgot to
|
||||||
|
update the inline help to reflect the previous change to the 'd'
|
||||||
|
and 'D' keys. Opps!
|
||||||
|
7.2.5 February 10, 2010
|
||||||
|
- Philip Morant suggested switching the command (bwipe) associated
|
||||||
|
with the 'd' key with the command (bdelete) associated with the 'D'
|
||||||
|
key. This made sense since the 'd' key is more likely to be used
|
||||||
|
compared to the 'D' key.
|
||||||
|
7.2.4 January 14, 2010
|
||||||
|
- I did not implement the patch provided by Godefroid Chapelle
|
||||||
|
correctly. I missed one line which happened to be the most important
|
||||||
|
one :)
|
||||||
|
7.2.3 December 15, 2009
|
||||||
|
- Hopefully I have not left anyone or anything out :)
|
||||||
|
- Thanks to David Fishburn for helping me out with a much needed
|
||||||
|
code overhaul as well as some awesome performance enhancements.
|
||||||
|
- David also reworked the handling of tabs.
|
||||||
|
- Thanks to Vladimir Dobriakov for making the suggestions on
|
||||||
|
enhancing the documentation to include a better explaination of
|
||||||
|
what is contained in the main bufexplorer window.
|
||||||
|
- Thanks to Yuriy Ershov for added code that when the bufexplorer
|
||||||
|
window is opened, the cursor is now positioned at the line with the
|
||||||
|
active buffer (useful in non-MRU sort modes).
|
||||||
|
- Yuriy also added the abiltiy to cycle through the sort fields in
|
||||||
|
reverse order.
|
||||||
|
- Thanks to Michael Henry for supplying a patch that allows
|
||||||
|
bufexplorer to be opened even when there is one buffer or less.
|
||||||
|
- Thanks to Godefroid Chapelle for supplying a patch that fixed
|
||||||
|
MRU sort order after loading a session.
|
||||||
|
7.2.2 November 19, 2008
|
||||||
|
- Thanks to David L. Dight for spotting and fixing an issue when using
|
||||||
|
ctrl^. bufexplorer would incorrectly handle the previous buffer so
|
||||||
|
that when ctrl^ was pressed the incorrect file was opened.
|
||||||
|
7.2.1 September 03, 2008
|
||||||
|
- Thanks to Dimitar for spotting and fixing a feature that was
|
||||||
|
inadvertently left out of the previous version. The feature was when
|
||||||
|
bufexplorer was used together with WinManager, you could use the tab
|
||||||
|
key to open a buffer in a split window.
|
||||||
|
7.2.0 August 15, 2008
|
||||||
|
- For all those missing the \bs and \bv commands, these have now
|
||||||
|
returned. Thanks to Phil O'Connell for asking for the return of
|
||||||
|
these missing features and helping test out this version.
|
||||||
|
- Fixed problem with the bufExplorerFindActive code not working
|
||||||
|
correctly.
|
||||||
|
- Fixed an incompatibility between bufexplorer and netrw that caused
|
||||||
|
buffers to be incorrectly removed from the MRU list.
|
||||||
|
7.1.7 December 21, 2007
|
||||||
|
- TaCahiroy fixed several issues related to opening a buffer in a tab.
|
||||||
|
7.1.6 December 01, 2007
|
||||||
|
- Removed ff=unix from modeline in bufexplorer.txt. Found by Bill
|
||||||
|
McCarthy.
|
||||||
|
7.1.5 November 30, 2007
|
||||||
|
- Could not open unnamed buffers. Fixed by TaCahiroy.
|
||||||
|
7.1.4 November 16, 2007
|
||||||
|
- Sometimes when a file's path has 'white space' in it, extra buffers
|
||||||
|
would be created containing each piece of the path. i.e:
|
||||||
|
opening c:\document and settings\test.txt would create a buffer
|
||||||
|
named "and" and a buffer named "Documents". This was reported and
|
||||||
|
fixed by TaCa Yoss.
|
||||||
|
7.1.3 November 15, 2007
|
||||||
|
- Added code to allow only one instance of the plugin to run at a time.
|
||||||
|
Thanks Dennis Hostetler.
|
||||||
|
7.1.2 November 07, 2007
|
||||||
|
- Dave Larson added handling of tabs.
|
||||||
|
- Dave Larson removed \bs and \bv commands because these are easier for
|
||||||
|
the used to create horizontal and vertical windows.
|
||||||
|
- Fixed a jumplist issue spotted by JiangJun. I overlooked the
|
||||||
|
'jumplist' and with a couple calls to 'keepjumps', everything is fine
|
||||||
|
again.
|
||||||
|
- Went back to using just a plugin file, instead of both an autoload
|
||||||
|
and plugin file. The splitting of the file caused issues with other
|
||||||
|
plugins. So if you have a prior version of bufexplorer that has an
|
||||||
|
autoload file, please remove autoload\bufexplorer and
|
||||||
|
plugin\bufexplorer before installing this new version.
|
||||||
|
- Fixed E493 error spotted by Thomas Arendsen Hein.
|
||||||
|
- Minor cosmetic changes.
|
||||||
|
- Minor help file changes.
|
||||||
|
7.1.1 August 02, 2007
|
||||||
|
- A problem spotted by Thomas Arendsen Hein. When running Vim
|
||||||
|
(7.1.94), error E493 was being thrown.
|
||||||
|
* Added 'D' for 'delete' buffer as the 'd' command was a 'wipe' buffer.
|
||||||
|
7.1.0 August 01, 2007
|
||||||
|
- Another 'major' update, some by Dave Larson, some by me.
|
||||||
|
- Making use of 'autoload' now to make the plugin load quicker.
|
||||||
|
- Removed '\bs' and '\bv'. These are now controlled by the user. The
|
||||||
|
user can issue a ':sp' or ':vs' to create a horizontal or vertical
|
||||||
|
split window and then issue a '\be'
|
||||||
|
- Added handling of tabs.
|
||||||
|
7.0.17 July 24, 2007
|
||||||
|
- Fixed issue with 'drop' command.
|
||||||
|
- Various enhancements and improvements.
|
||||||
|
7.0.16 May 15, 2007
|
||||||
|
- Fixed issue reported by Liu Jiaping on non Windows systems, which was
|
||||||
|
...
|
||||||
|
Open file1, open file2, modify file1, open bufexplorer, you get the
|
||||||
|
following error:
|
||||||
|
|
||||||
|
--------8<--------
|
||||||
|
Error detected while processing function
|
||||||
|
<SNR>14_StartBufExplorer..<SNR>14_SplitOpen:
|
||||||
|
line 4:
|
||||||
|
E37: No write since last change (add ! to override)
|
||||||
|
|
||||||
|
But the worse thing is, when I want to save the current buffer and
|
||||||
|
type ':w', I get another error message:
|
||||||
|
E382: Cannot write, 'buftype' option is set
|
||||||
|
--------8<--------
|
||||||
|
|
||||||
|
7.0.15 April 27, 2007
|
||||||
|
- Thanks to Mark Smithfield for suggesting bufexplorer needed to handle
|
||||||
|
the ':args' command.
|
||||||
|
7.0.14 March 23, 2007
|
||||||
|
- Thanks to Randall Hansen for removing the requirement of terminal
|
||||||
|
versions to be recompiled with 'gui' support so the 'drop' command
|
||||||
|
would work. The 'drop' command is really not needed in terminal
|
||||||
|
versions.
|
||||||
|
7.0.13 February 23, 2007
|
||||||
|
- Fixed integration with WinManager.
|
||||||
|
- Thanks to Dave Eggum for another update.
|
||||||
|
* Fix: The detailed help didn't display the mapping for toggling
|
||||||
|
the split type, even though the split type is displayed.
|
||||||
|
* Fixed incorrect description in the detailed help for toggling
|
||||||
|
relative or full paths.
|
||||||
|
* Deprecated s:ExtractBufferNbr(). Vim's str2nr() does the same
|
||||||
|
thing.
|
||||||
|
* Created a s:Set() function that sets a variable only if it hasn't
|
||||||
|
already been defined. It's useful for initializing all those
|
||||||
|
default settings.
|
||||||
|
* Removed checks for repetitive command definitions. They were
|
||||||
|
unnecessary.
|
||||||
|
* Made the help highlighting a little more fancy.
|
||||||
|
* Minor reverse compatibility issue: Changed ambiguous setting
|
||||||
|
names to be more descriptive of what they do (also makes the code
|
||||||
|
easier to follow):
|
||||||
|
Changed bufExplorerSortDirection to bufExplorerReverseSort
|
||||||
|
Changed bufExplorerSplitType to bufExplorerSplitVertical
|
||||||
|
Changed bufExplorerOpenMode to bufExplorerUseCurrentWindow
|
||||||
|
* When the BufExplorer window closes, all the file-local marks are
|
||||||
|
now deleted. This may have the benefit of cleaning up some of the
|
||||||
|
jumplist.
|
||||||
|
* Changed the name of the parameter for StartBufExplorer from
|
||||||
|
"split" to "open". The parameter is a string which specifies how
|
||||||
|
the buffer will be open, not if it is split or not.
|
||||||
|
* Deprecated DoAnyMoreBuffersExist() - it is a one line function
|
||||||
|
only used in one spot.
|
||||||
|
* Created four functions (SplitOpen(), RebuildBufferList(),
|
||||||
|
UpdateHelpStatus() and ReSortListing()) all with one purpose - to
|
||||||
|
reduce repeated code.
|
||||||
|
* Changed the name of AddHeader() to CreateHelp() to be more
|
||||||
|
descriptive of what it does. It now returns an array instead of
|
||||||
|
updating the window directly. This has the benefit of making the
|
||||||
|
code more efficient since the text the function returns is used a
|
||||||
|
little differently in the two places the function is called.
|
||||||
|
* Other minor simplifications.
|
||||||
|
7.0.12 November 30, 2006
|
||||||
|
- MAJOR Update. This version will ONLY run with Vim version 7.0 or
|
||||||
|
greater.
|
||||||
|
- Dave Eggum has made some 'significant' updates to this latest
|
||||||
|
version:
|
||||||
|
* Added BufExplorerGetAltBuf() global function to be used in the
|
||||||
|
user's rulerformat.
|
||||||
|
* Added g:bufExplorerSplitRight option.
|
||||||
|
* Added g:bufExplorerShowRelativePath option with mapping.
|
||||||
|
* Added current line highlighting.
|
||||||
|
* The split type can now be changed whether bufexplorer is opened
|
||||||
|
in split mode or not.
|
||||||
|
* Various major and minor bug fixes and speed improvements.
|
||||||
|
* Sort by extension.
|
||||||
|
- Other improvements/changes:
|
||||||
|
* Changed the help key from '?' to <F1> to be more 'standard'.
|
||||||
|
* Fixed splitting of vertical bufexplorer window.
|
||||||
|
- Hopefully I have not forgot something :)
|
||||||
|
7.0.11 March 10, 2006
|
||||||
|
- Fixed a couple of highlighting bugs, reported by David Eggum.
|
||||||
|
- Dave Eggum also changed passive voice to active on a couple of
|
||||||
|
warning messages.
|
||||||
|
7.0.10 March 02, 2006
|
||||||
|
- Fixed bug report by Xiangjiang Ma. If the 'ssl' option is set,
|
||||||
|
the slash character used when displaying the path was incorrect.
|
||||||
|
7.0.9 February 28, 2006
|
||||||
|
- Martin Grenfell found and eliminated an annoying bug in the
|
||||||
|
bufexplorer/winmanager integration. The bug was were an
|
||||||
|
annoying message would be displayed when a window was split or
|
||||||
|
a new file was opened in a new window. Thanks Martin!
|
||||||
|
7.0.8 January 18, 2006
|
||||||
|
- Thanks to Mike Li for catching a bug in the WinManager integration.
|
||||||
|
The bug was related to the incorrect displaying of the buffer
|
||||||
|
explorer's window title.
|
||||||
|
7.0.7 December 19, 2005
|
||||||
|
- Thanks to Jeremy Cowgar for adding a new enhancement. This
|
||||||
|
enhancement allows the user to press 'S', that is capital S, which
|
||||||
|
will open the buffer under the cursor in a newly created split
|
||||||
|
window.
|
||||||
|
7.0.6 November 18, 2005
|
||||||
|
- Thanks to Larry Zhang for finding a bug in the "split" buffer code.
|
||||||
|
If you force set g:bufExplorerSplitType='v' in your vimrc, and if you
|
||||||
|
tried to do a \bs to split the bufexplorer window, it would always
|
||||||
|
split horizontal, not vertical.
|
||||||
|
- Larry Zhang also found that I had a typeo in that the variable
|
||||||
|
g:bufExplorerSplitVertSize was all lower case in the documentation
|
||||||
|
which was incorrect.
|
||||||
|
7.0.5 October 18, 2005
|
||||||
|
- Thanks to Mun Johl for pointing out a bug that if a buffer was
|
||||||
|
modified, the '+' was not showing up correctly.
|
||||||
|
7.0.4 October 03, 2005
|
||||||
|
- Fixed a problem discovered first by Xiangjiang Ma. Well since I've
|
||||||
|
been using vim 7.0 and not 6.3, I started using a function (getftype)
|
||||||
|
that is not in 6.3. So for backward compatibility, I conditionaly use
|
||||||
|
this function now. Thus, the g:bufExplorerShowDirectories feature is
|
||||||
|
only available when using vim 7.0 and above.
|
||||||
|
7.0.3 September 30, 2005
|
||||||
|
- Thanks to Erwin Waterlander for finding a problem when the last
|
||||||
|
buffer was deleted. This issue got me to rewrite the buffer display
|
||||||
|
logic (which I've wanted to do for sometime now).
|
||||||
|
- Also great thanks to Dave Eggum for coming up with idea for
|
||||||
|
g:bufExplorerShowDirectories. Read the above information about this
|
||||||
|
feature.
|
||||||
|
7.0.2 March 25, 2005
|
||||||
|
- Thanks to Thomas Arendsen Hein for finding a problem when a user
|
||||||
|
has the default help turned off and then brought up the explorer. An
|
||||||
|
E493 would be displayed.
|
||||||
|
7.0.1 March 10, 2005
|
||||||
|
- Thanks to Erwin Waterlander for finding a couple problems.
|
||||||
|
The first problem allowed a modified buffer to be deleted. Opps! The
|
||||||
|
second problem occurred when several files were opened, BufExplorer
|
||||||
|
was started, the current buffer was deleted using the 'd' option, and
|
||||||
|
then BufExplorer was exited. The deleted buffer was still visible
|
||||||
|
while it is not in the buffers list. Opps again!
|
||||||
|
7.0.0 March 10, 205
|
||||||
|
- Thanks to Shankar R. for suggesting to add the ability to set
|
||||||
|
the fixed width (g:bufExplorerSplitVertSize) of a new window
|
||||||
|
when opening bufexplorer vertically and fixed height
|
||||||
|
(g:bufExplorerSplitHorzSize) of a new window when opening
|
||||||
|
bufexplorer horizontally. By default, the windows are normally
|
||||||
|
split to use half the existing width or height.
|
||||||
|
6.3.0 July 23, 2004
|
||||||
|
- Added keepjumps so that the jumps list would not get cluttered with
|
||||||
|
bufexplorer related stuff.
|
||||||
|
6.2.3 April 15, 2004
|
||||||
|
- Thanks to Jay Logan for finding a bug in the vertical split position
|
||||||
|
of the code. When selecting that the window was to be split
|
||||||
|
vertically by doing a '\bv', from then on, all splits, i.e. '\bs',
|
||||||
|
were split vertically, even though g:bufExplorerSplitType was not set
|
||||||
|
to 'v'.
|
||||||
|
6.2.2 January 09, 2004
|
||||||
|
- Thanks to Patrik Modesto for adding a small improvement. For some
|
||||||
|
reason his bufexplorer window was always showing up folded. He added
|
||||||
|
'setlocal nofoldenable' and it was fixed.
|
||||||
|
6.2.1 October 09, 2003
|
||||||
|
- Thanks goes out to Takashi Matsuo for added the 'fullPath' sorting
|
||||||
|
logic and option.
|
||||||
|
6.2.0 June 13, 2003
|
||||||
|
- Thanks goes out to Simon Johann-Ganter for spotting and fixing a
|
||||||
|
problem in that the last search pattern is overridden by the search
|
||||||
|
pattern for blank lines.
|
||||||
|
6.1.6 May 05, 2003
|
||||||
|
- Thanks to Artem Chuprina for finding a pesky bug that has been around
|
||||||
|
for sometime now. The <esc> key mapping was causing the buffer
|
||||||
|
explored to close prematurely when vim was run in an xterm. The <esc>
|
||||||
|
key mapping is now removed.
|
||||||
|
6.1.5 April 28, 2003
|
||||||
|
- Thanks to Khorev Sergey. Added option to show default help or not.
|
||||||
|
6.1.4 March 18, 2003
|
||||||
|
- Thanks goes out to Valery Kondakoff for suggesting the addition of
|
||||||
|
setlocal nonumber and foldcolumn=0. This allows for line numbering
|
||||||
|
and folding to be turned off temporarily while in the explorer.
|
||||||
|
6.1.3 March 11, 2003
|
||||||
|
- Added folding.
|
||||||
|
- Did some code cleanup.
|
||||||
|
- Added the ability to force the newly split window to be temporarily
|
||||||
|
vertical, which was suggested by Thomas Glanzmann.
|
||||||
|
6.1.2 November 05, 2002
|
||||||
|
- Now pressing the <esc> key will quit, just like 'q'.
|
||||||
|
- Added folds to hide winmanager configuration.
|
||||||
|
- If anyone had the 'C' option in their cpoptions they would receive
|
||||||
|
a E10 error on startup of BufExplorer. cpo is now saved, updated and
|
||||||
|
restored. Thanks to Charles E Campbell, Jr.
|
||||||
|
- Attempted to make sure there can only be one BufExplorer window open
|
||||||
|
at a time.
|
||||||
|
6.1.1 March 28, 2002
|
||||||
|
- Thanks to Brian D. Goodwin for adding toupper to FileNameCmp. This
|
||||||
|
way buffers sorted by name will be in the correct order regardless of
|
||||||
|
case.
|
||||||
|
6.0.16 March 14, 2002
|
||||||
|
- Thanks to Andre Pang for the original patch/idea to get bufexplorer
|
||||||
|
to work in insertmode/modeless mode (evim).
|
||||||
|
- Added Initialize and Cleanup autocommands to handle commands that
|
||||||
|
need to be performed when starting or leaving bufexplorer.
|
||||||
|
6.0.15 February 20, 2002
|
||||||
|
- Srinath Avadhanulax added a patch for winmanager.vim.
|
||||||
|
6.0.14 February 19, 2002
|
||||||
|
- Fix a few more bug that I thought I already had fixed.
|
||||||
|
- Thanks to Eric Bloodworth for adding 'Open Mode/Edit in Place'.
|
||||||
|
- Added vertical splitting.
|
||||||
|
6.0.13 February 05, 2002
|
||||||
|
- Thanks to Charles E Campbell, Jr. for pointing out some embarrassing
|
||||||
|
typos that I had in the documentation. I guess I need to run the
|
||||||
|
spell checker more :o)
|
||||||
|
6.0.12 February 04, 2002
|
||||||
|
- Thanks to Madoka Machitani, for the tip on adding the augroup command
|
||||||
|
around the MRUList autocommands.
|
||||||
|
6.0.11 January 26, 2002
|
||||||
|
- Fixed bug report by Xiangjiang Ma. '"=' was being added to the search
|
||||||
|
history which messed up hlsearch.
|
||||||
|
6.0.10 January 14, 2002
|
||||||
|
- Added the necessary hooks so that the Srinath Avadhanula's
|
||||||
|
winmanager.vim script could more easily integrate with this script.
|
||||||
|
- Tried to improve performance.
|
||||||
|
6.0.9 December 17, 2001
|
||||||
|
- Added MRU (Most Recently Used) sort ordering.
|
||||||
|
6.0.8 December 03, 2001
|
||||||
|
- Was not resetting the showcmd command correctly.
|
||||||
|
- Added nifty help file.
|
||||||
|
6.0.7 November 19, 2001
|
||||||
|
- Thanks to Brett Carlane for some great enhancements. Some are added,
|
||||||
|
some are not, yet. Added highlighting of current and alternate
|
||||||
|
filenames. Added splitting of path/filename toggle. Reworked
|
||||||
|
ShowBuffers().
|
||||||
|
- Changed my email address.
|
||||||
|
6.0.6 September 05, 2001
|
||||||
|
- Copyright notice added. Needed this so that it could be distributed
|
||||||
|
with Debian Linux.
|
||||||
|
- Fixed problem with the SortListing() function failing when there was
|
||||||
|
only one buffer to display.
|
||||||
|
6.0.5 August 10, 2001
|
||||||
|
- Fixed problems reported by David Pascoe, in that you where unable to
|
||||||
|
hit 'd' on a buffer that belonged to a files that no longer existed
|
||||||
|
and that the 'yank' buffer was being overridden by the help text when
|
||||||
|
the bufexplorer was opened.
|
||||||
|
6.0.4 July, 31, 2001
|
||||||
|
- Thanks to Charles Campbell, Jr. for making this plugin more plugin
|
||||||
|
*compliant*, adding default keymappings of <Leader>be and <Leader>bs
|
||||||
|
as well as fixing the 'w:sortDirLabel not being defined' bug.
|
||||||
|
6.0.3 July 30, 2001
|
||||||
|
- Added sorting capabilities. Sort taken from explorer.vim.
|
||||||
|
6.0.2 July 25, 2001
|
||||||
|
- Can't remember.
|
||||||
|
6.0.1 Sometime before July 25, 2001
|
||||||
|
- Initial release.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
TODO *bufexplorer-todo*
|
||||||
|
|
||||||
|
- Add ability to open a buffer in a horizontal or vertical split after the
|
||||||
|
initial bufexplorer window is opened.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
CREDITS *bufexplorer-credits*
|
||||||
|
|
||||||
|
Author: Jeff Lanzarotta <delux256-vim at outlook dot com>
|
||||||
|
|
||||||
|
Credit must go out to Bram Moolenaar and all the Vim developers for
|
||||||
|
making the world's best editor (IMHO). I also want to thank everyone who
|
||||||
|
helped and gave me suggestions. I wouldn't want to leave anyone out so I
|
||||||
|
won't list names.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
COPYRIGHT *bufexplorer-copyright*
|
||||||
|
|
||||||
|
Copyright (c) 2001-2017, Jeff Lanzarotta
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of the {organization} nor the names of its contributors may
|
||||||
|
be used to endorse or promote products derived from this software without
|
||||||
|
specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
vim:tw=78:noet:wrap:ts=4:ft=help:norl:
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,60 @@
|
||||||
|
execute pathogen#infect()
|
||||||
|
|
||||||
|
set nocompatible
|
||||||
|
set history=1000
|
||||||
|
set title
|
||||||
|
set encoding=utf-8
|
||||||
|
set scrolloff=3
|
||||||
|
set ttyfast
|
||||||
|
set laststatus=2
|
||||||
|
set ff=unix
|
||||||
|
"set number
|
||||||
|
set tabstop=2
|
||||||
|
set shiftwidth=2
|
||||||
|
set softtabstop=2
|
||||||
|
set expandtab
|
||||||
|
set listchars=tab:>-,trail:-
|
||||||
|
set list
|
||||||
|
syntax on
|
||||||
|
set t_Co=256
|
||||||
|
color koehler
|
||||||
|
color Tomorrow-Night-Bright
|
||||||
|
|
||||||
|
filetype on
|
||||||
|
filetype plugin on
|
||||||
|
filetype plugin indent on
|
||||||
|
autocmd FileType make set noexpandtab shiftwidth=8 softtabstop=0
|
||||||
|
|
||||||
|
" Center screen when scrolling search results
|
||||||
|
nmap n nzz
|
||||||
|
nmap N Nzz
|
||||||
|
|
||||||
|
let g:lightline = {
|
||||||
|
\ 'colorscheme': 'Tomorrow_Night_Blue',
|
||||||
|
\ 'component': {
|
||||||
|
\ 'readonly': '%{&readonly?"":""}',
|
||||||
|
\ },
|
||||||
|
\ 'separator': { 'left': '', 'right': '' },
|
||||||
|
\ 'subseparator': { 'left': '', 'right': '' }
|
||||||
|
\ }
|
||||||
|
|
||||||
|
map <C-p> :NERDTreeToggle<CR>
|
||||||
|
" automatically close vim if the only window open is nerdtree
|
||||||
|
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
|
||||||
|
let NERDTreeShowHidden=1
|
||||||
|
|
||||||
|
let g:bufExplorerDefaultHelp=0
|
||||||
|
let g:bufExplorerShowRelativePath=1
|
||||||
|
let g:bufExplorerFindActive=1
|
||||||
|
let g:bufExplorerSortBy='name'
|
||||||
|
map <leader>o :BufExplorer<cr>
|
||||||
|
map <F2> :bprevious<CR>
|
||||||
|
map <F3> :bnext<CR>
|
||||||
|
|
||||||
|
" highlight trailing whitespace
|
||||||
|
highlight ExtraWhitespace ctermbg=red guibg=red
|
||||||
|
match ExtraWhitespace /\s\+$/
|
||||||
|
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
|
||||||
|
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
|
||||||
|
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
|
||||||
|
autocmd BufWinLeave * call clearmatches()
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/bash
|
||||||
|
docker images -q -f dangling=true | xargs --no-run-if-empty --delim='\n' docker rmi
|
|
@ -0,0 +1,3 @@
|
||||||
|
#export AWS_ACCESS_KEY_ID=
|
||||||
|
#export AWS_SECRET_ACCESS_KEY=
|
||||||
|
test -s $HOME/code/consolo-enterprise-config/src/dev-env/dev-aliases && . $HOME/code/consolo-enterprise-config/src/dev-env/dev-aliases || true
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for i in 0 1 2 3 4 5 6 7 ; do
|
||||||
|
echo -n "cpu${i} " && cat /sys/devices/system/cpu/cpu${i}/cpufreq/scaling_cur_freq
|
||||||
|
done
|
|
@ -0,0 +1,534 @@
|
||||||
|
# bash/zsh git prompt support
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
|
||||||
|
# Distributed under the GNU General Public License, version 2.0.
|
||||||
|
#
|
||||||
|
# This script allows you to see repository status in your prompt.
|
||||||
|
#
|
||||||
|
# To enable:
|
||||||
|
#
|
||||||
|
# 1) Copy this file to somewhere (e.g. ~/.git-prompt.sh).
|
||||||
|
# 2) Add the following line to your .bashrc/.zshrc:
|
||||||
|
# source ~/.git-prompt.sh
|
||||||
|
# 3a) Change your PS1 to call __git_ps1 as
|
||||||
|
# command-substitution:
|
||||||
|
# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
|
||||||
|
# ZSH: setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
|
||||||
|
# the optional argument will be used as format string.
|
||||||
|
# 3b) Alternatively, for a slightly faster prompt, __git_ps1 can
|
||||||
|
# be used for PROMPT_COMMAND in Bash or for precmd() in Zsh
|
||||||
|
# with two parameters, <pre> and <post>, which are strings
|
||||||
|
# you would put in $PS1 before and after the status string
|
||||||
|
# generated by the git-prompt machinery. e.g.
|
||||||
|
# Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
|
||||||
|
# will show username, at-sign, host, colon, cwd, then
|
||||||
|
# various status string, followed by dollar and SP, as
|
||||||
|
# your prompt.
|
||||||
|
# ZSH: precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
|
||||||
|
# will show username, pipe, then various status string,
|
||||||
|
# followed by colon, cwd, dollar and SP, as your prompt.
|
||||||
|
# Optionally, you can supply a third argument with a printf
|
||||||
|
# format string to finetune the output of the branch status
|
||||||
|
#
|
||||||
|
# The repository status will be displayed only if you are currently in a
|
||||||
|
# git repository. The %s token is the placeholder for the shown status.
|
||||||
|
#
|
||||||
|
# The prompt status always includes the current branch name.
|
||||||
|
#
|
||||||
|
# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
|
||||||
|
# unstaged (*) and staged (+) changes will be shown next to the branch
|
||||||
|
# name. You can configure this per-repository with the
|
||||||
|
# bash.showDirtyState variable, which defaults to true once
|
||||||
|
# GIT_PS1_SHOWDIRTYSTATE is enabled.
|
||||||
|
#
|
||||||
|
# You can also see if currently something is stashed, by setting
|
||||||
|
# GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed,
|
||||||
|
# then a '$' will be shown next to the branch name.
|
||||||
|
#
|
||||||
|
# If you would like to see if there're untracked files, then you can set
|
||||||
|
# GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked
|
||||||
|
# files, then a '%' will be shown next to the branch name. You can
|
||||||
|
# configure this per-repository with the bash.showUntrackedFiles
|
||||||
|
# variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
|
||||||
|
# enabled.
|
||||||
|
#
|
||||||
|
# If you would like to see the difference between HEAD and its upstream,
|
||||||
|
# set GIT_PS1_SHOWUPSTREAM="auto". A "<" indicates you are behind, ">"
|
||||||
|
# indicates you are ahead, "<>" indicates you have diverged and "="
|
||||||
|
# indicates that there is no difference. You can further control
|
||||||
|
# behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated list
|
||||||
|
# of values:
|
||||||
|
#
|
||||||
|
# verbose show number of commits ahead/behind (+/-) upstream
|
||||||
|
# name if verbose, then also show the upstream abbrev name
|
||||||
|
# legacy don't use the '--count' option available in recent
|
||||||
|
# versions of git-rev-list
|
||||||
|
# git always compare HEAD to @{upstream}
|
||||||
|
# svn always compare HEAD to your SVN upstream
|
||||||
|
#
|
||||||
|
# You can change the separator between the branch name and the above
|
||||||
|
# state symbols by setting GIT_PS1_STATESEPARATOR. The default separator
|
||||||
|
# is SP.
|
||||||
|
#
|
||||||
|
# By default, __git_ps1 will compare HEAD to your SVN upstream if it can
|
||||||
|
# find one, or @{upstream} otherwise. Once you have set
|
||||||
|
# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
|
||||||
|
# setting the bash.showUpstream config variable.
|
||||||
|
#
|
||||||
|
# If you would like to see more information about the identity of
|
||||||
|
# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
|
||||||
|
# to one of these values:
|
||||||
|
#
|
||||||
|
# contains relative to newer annotated tag (v1.6.3.2~35)
|
||||||
|
# branch relative to newer tag or branch (master~4)
|
||||||
|
# describe relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
|
||||||
|
# tag relative to any older tag (v1.6.3.1-13-gdd42c2f)
|
||||||
|
# default exactly matching tag
|
||||||
|
#
|
||||||
|
# If you would like a colored hint about the current dirty state, set
|
||||||
|
# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
|
||||||
|
# the colored output of "git status -sb" and are available only when
|
||||||
|
# using __git_ps1 for PROMPT_COMMAND or precmd.
|
||||||
|
#
|
||||||
|
# If you would like __git_ps1 to do nothing in the case when the current
|
||||||
|
# directory is set up to be ignored by git, then set
|
||||||
|
# GIT_PS1_HIDE_IF_PWD_IGNORED to a nonempty value. Override this on the
|
||||||
|
# repository level by setting bash.hideIfPwdIgnored to "false".
|
||||||
|
|
||||||
|
# check whether printf supports -v
|
||||||
|
__git_printf_supports_v=
|
||||||
|
printf -v __git_printf_supports_v -- '%s' yes >/dev/null 2>&1
|
||||||
|
|
||||||
|
# stores the divergence from upstream in $p
|
||||||
|
# used by GIT_PS1_SHOWUPSTREAM
|
||||||
|
__git_ps1_show_upstream ()
|
||||||
|
{
|
||||||
|
local key value
|
||||||
|
local svn_remote svn_url_pattern count n
|
||||||
|
local upstream=git legacy="" verbose="" name=""
|
||||||
|
|
||||||
|
svn_remote=()
|
||||||
|
# get some config options from git-config
|
||||||
|
local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
|
||||||
|
while read -r key value; do
|
||||||
|
case "$key" in
|
||||||
|
bash.showupstream)
|
||||||
|
GIT_PS1_SHOWUPSTREAM="$value"
|
||||||
|
if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then
|
||||||
|
p=""
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
svn-remote.*.url)
|
||||||
|
svn_remote[$((${#svn_remote[@]} + 1))]="$value"
|
||||||
|
svn_url_pattern="$svn_url_pattern\\|$value"
|
||||||
|
upstream=svn+git # default upstream is SVN if available, else git
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done <<< "$output"
|
||||||
|
|
||||||
|
# parse configuration values
|
||||||
|
for option in ${GIT_PS1_SHOWUPSTREAM}; do
|
||||||
|
case "$option" in
|
||||||
|
git|svn) upstream="$option" ;;
|
||||||
|
verbose) verbose=1 ;;
|
||||||
|
legacy) legacy=1 ;;
|
||||||
|
name) name=1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Find our upstream
|
||||||
|
case "$upstream" in
|
||||||
|
git) upstream="@{upstream}" ;;
|
||||||
|
svn*)
|
||||||
|
# get the upstream from the "git-svn-id: ..." in a commit message
|
||||||
|
# (git-svn uses essentially the same procedure internally)
|
||||||
|
local -a svn_upstream
|
||||||
|
svn_upstream=($(git log --first-parent -1 \
|
||||||
|
--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
|
||||||
|
if [[ 0 -ne ${#svn_upstream[@]} ]]; then
|
||||||
|
svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
|
||||||
|
svn_upstream=${svn_upstream%@*}
|
||||||
|
local n_stop="${#svn_remote[@]}"
|
||||||
|
for ((n=1; n <= n_stop; n++)); do
|
||||||
|
svn_upstream=${svn_upstream#${svn_remote[$n]}}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -z "$svn_upstream" ]]; then
|
||||||
|
# default branch name for checkouts with no layout:
|
||||||
|
upstream=${GIT_SVN_ID:-git-svn}
|
||||||
|
else
|
||||||
|
upstream=${svn_upstream#/}
|
||||||
|
fi
|
||||||
|
elif [[ "svn+git" = "$upstream" ]]; then
|
||||||
|
upstream="@{upstream}"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Find how many commits we are ahead/behind our upstream
|
||||||
|
if [[ -z "$legacy" ]]; then
|
||||||
|
count="$(git rev-list --count --left-right \
|
||||||
|
"$upstream"...HEAD 2>/dev/null)"
|
||||||
|
else
|
||||||
|
# produce equivalent output to --count for older versions of git
|
||||||
|
local commits
|
||||||
|
if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)"
|
||||||
|
then
|
||||||
|
local commit behind=0 ahead=0
|
||||||
|
for commit in $commits
|
||||||
|
do
|
||||||
|
case "$commit" in
|
||||||
|
"<"*) ((behind++)) ;;
|
||||||
|
*) ((ahead++)) ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
count="$behind $ahead"
|
||||||
|
else
|
||||||
|
count=""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# calculate the result
|
||||||
|
if [[ -z "$verbose" ]]; then
|
||||||
|
case "$count" in
|
||||||
|
"") # no upstream
|
||||||
|
p="" ;;
|
||||||
|
"0 0") # equal to upstream
|
||||||
|
p="=" ;;
|
||||||
|
"0 "*) # ahead of upstream
|
||||||
|
p=">" ;;
|
||||||
|
*" 0") # behind upstream
|
||||||
|
p="<" ;;
|
||||||
|
*) # diverged from upstream
|
||||||
|
p="<>" ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
case "$count" in
|
||||||
|
"") # no upstream
|
||||||
|
p="" ;;
|
||||||
|
"0 0") # equal to upstream
|
||||||
|
p=" u=" ;;
|
||||||
|
"0 "*) # ahead of upstream
|
||||||
|
p=" u+${count#0 }" ;;
|
||||||
|
*" 0") # behind upstream
|
||||||
|
p=" u-${count% 0}" ;;
|
||||||
|
*) # diverged from upstream
|
||||||
|
p=" u+${count#* }-${count% *}" ;;
|
||||||
|
esac
|
||||||
|
if [[ -n "$count" && -n "$name" ]]; then
|
||||||
|
__git_ps1_upstream_name=$(git rev-parse \
|
||||||
|
--abbrev-ref "$upstream" 2>/dev/null)
|
||||||
|
if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
|
||||||
|
p="$p \${__git_ps1_upstream_name}"
|
||||||
|
else
|
||||||
|
p="$p ${__git_ps1_upstream_name}"
|
||||||
|
# not needed anymore; keep user's
|
||||||
|
# environment clean
|
||||||
|
unset __git_ps1_upstream_name
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Helper function that is meant to be called from __git_ps1. It
|
||||||
|
# injects color codes into the appropriate gitstring variables used
|
||||||
|
# to build a gitstring.
|
||||||
|
__git_ps1_colorize_gitstring ()
|
||||||
|
{
|
||||||
|
if [[ -n ${ZSH_VERSION-} ]]; then
|
||||||
|
local c_red='%F{red}'
|
||||||
|
local c_green='%F{green}'
|
||||||
|
local c_lblue='%F{blue}'
|
||||||
|
local c_clear='%f'
|
||||||
|
else
|
||||||
|
# Using \[ and \] around colors is necessary to prevent
|
||||||
|
# issues with command line editing/browsing/completion!
|
||||||
|
local c_red='\[\e[31m\]'
|
||||||
|
local c_green='\[\e[32m\]'
|
||||||
|
local c_lblue='\[\e[1;34m\]'
|
||||||
|
local c_clear='\[\e[0m\]'
|
||||||
|
fi
|
||||||
|
local bad_color=$c_red
|
||||||
|
local ok_color=$c_green
|
||||||
|
local flags_color="$c_lblue"
|
||||||
|
|
||||||
|
local branch_color=""
|
||||||
|
if [ $detached = no ]; then
|
||||||
|
branch_color="$ok_color"
|
||||||
|
else
|
||||||
|
branch_color="$bad_color"
|
||||||
|
fi
|
||||||
|
c="$branch_color$c"
|
||||||
|
|
||||||
|
z="$c_clear$z"
|
||||||
|
if [ "$w" = "*" ]; then
|
||||||
|
w="$bad_color$w"
|
||||||
|
fi
|
||||||
|
if [ -n "$i" ]; then
|
||||||
|
i="$ok_color$i"
|
||||||
|
fi
|
||||||
|
if [ -n "$s" ]; then
|
||||||
|
s="$flags_color$s"
|
||||||
|
fi
|
||||||
|
if [ -n "$u" ]; then
|
||||||
|
u="$bad_color$u"
|
||||||
|
fi
|
||||||
|
r="$c_clear$r"
|
||||||
|
}
|
||||||
|
|
||||||
|
__git_eread ()
|
||||||
|
{
|
||||||
|
local f="$1"
|
||||||
|
shift
|
||||||
|
test -r "$f" && read "$@" <"$f"
|
||||||
|
}
|
||||||
|
|
||||||
|
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
|
||||||
|
# when called from PS1 using command substitution
|
||||||
|
# in this mode it prints text to add to bash PS1 prompt (includes branch name)
|
||||||
|
#
|
||||||
|
# __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
|
||||||
|
# in that case it _sets_ PS1. The arguments are parts of a PS1 string.
|
||||||
|
# when two arguments are given, the first is prepended and the second appended
|
||||||
|
# to the state string when assigned to PS1.
|
||||||
|
# The optional third parameter will be used as printf format string to further
|
||||||
|
# customize the output of the git-status string.
|
||||||
|
# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
|
||||||
|
__git_ps1 ()
|
||||||
|
{
|
||||||
|
# preserve exit status
|
||||||
|
local exit=$?
|
||||||
|
local pcmode=no
|
||||||
|
local detached=no
|
||||||
|
local ps1pc_start='\u@\h:\w '
|
||||||
|
local ps1pc_end='\$ '
|
||||||
|
local printf_format=' (%s)'
|
||||||
|
|
||||||
|
case "$#" in
|
||||||
|
2|3) pcmode=yes
|
||||||
|
ps1pc_start="$1"
|
||||||
|
ps1pc_end="$2"
|
||||||
|
printf_format="${3:-$printf_format}"
|
||||||
|
# set PS1 to a plain prompt so that we can
|
||||||
|
# simply return early if the prompt should not
|
||||||
|
# be decorated
|
||||||
|
PS1="$ps1pc_start$ps1pc_end"
|
||||||
|
;;
|
||||||
|
0|1) printf_format="${1:-$printf_format}"
|
||||||
|
;;
|
||||||
|
*) return $exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# ps1_expanded: This variable is set to 'yes' if the shell
|
||||||
|
# subjects the value of PS1 to parameter expansion:
|
||||||
|
#
|
||||||
|
# * bash does unless the promptvars option is disabled
|
||||||
|
# * zsh does not unless the PROMPT_SUBST option is set
|
||||||
|
# * POSIX shells always do
|
||||||
|
#
|
||||||
|
# If the shell would expand the contents of PS1 when drawing
|
||||||
|
# the prompt, a raw ref name must not be included in PS1.
|
||||||
|
# This protects the user from arbitrary code execution via
|
||||||
|
# specially crafted ref names. For example, a ref named
|
||||||
|
# 'refs/heads/$(IFS=_;cmd=sudo_rm_-rf_/;$cmd)' might cause the
|
||||||
|
# shell to execute 'sudo rm -rf /' when the prompt is drawn.
|
||||||
|
#
|
||||||
|
# Instead, the ref name should be placed in a separate global
|
||||||
|
# variable (in the __git_ps1_* namespace to avoid colliding
|
||||||
|
# with the user's environment) and that variable should be
|
||||||
|
# referenced from PS1. For example:
|
||||||
|
#
|
||||||
|
# __git_ps1_foo=$(do_something_to_get_ref_name)
|
||||||
|
# PS1="...stuff...\${__git_ps1_foo}...stuff..."
|
||||||
|
#
|
||||||
|
# If the shell does not expand the contents of PS1, the raw
|
||||||
|
# ref name must be included in PS1.
|
||||||
|
#
|
||||||
|
# The value of this variable is only relevant when in pcmode.
|
||||||
|
#
|
||||||
|
# Assume that the shell follows the POSIX specification and
|
||||||
|
# expands PS1 unless determined otherwise. (This is more
|
||||||
|
# likely to be correct if the user has a non-bash, non-zsh
|
||||||
|
# shell and safer than the alternative if the assumption is
|
||||||
|
# incorrect.)
|
||||||
|
#
|
||||||
|
local ps1_expanded=yes
|
||||||
|
[ -z "${ZSH_VERSION-}" ] || [[ -o PROMPT_SUBST ]] || ps1_expanded=no
|
||||||
|
[ -z "${BASH_VERSION-}" ] || shopt -q promptvars || ps1_expanded=no
|
||||||
|
|
||||||
|
local repo_info rev_parse_exit_code
|
||||||
|
repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
|
||||||
|
--is-bare-repository --is-inside-work-tree \
|
||||||
|
--short HEAD 2>/dev/null)"
|
||||||
|
rev_parse_exit_code="$?"
|
||||||
|
|
||||||
|
if [ -z "$repo_info" ]; then
|
||||||
|
return $exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
local short_sha=""
|
||||||
|
if [ "$rev_parse_exit_code" = "0" ]; then
|
||||||
|
short_sha="${repo_info##*$'\n'}"
|
||||||
|
repo_info="${repo_info%$'\n'*}"
|
||||||
|
fi
|
||||||
|
local inside_worktree="${repo_info##*$'\n'}"
|
||||||
|
repo_info="${repo_info%$'\n'*}"
|
||||||
|
local bare_repo="${repo_info##*$'\n'}"
|
||||||
|
repo_info="${repo_info%$'\n'*}"
|
||||||
|
local inside_gitdir="${repo_info##*$'\n'}"
|
||||||
|
local g="${repo_info%$'\n'*}"
|
||||||
|
|
||||||
|
if [ "true" = "$inside_worktree" ] &&
|
||||||
|
[ -n "${GIT_PS1_HIDE_IF_PWD_IGNORED-}" ] &&
|
||||||
|
[ "$(git config --bool bash.hideIfPwdIgnored)" != "false" ] &&
|
||||||
|
git check-ignore -q .
|
||||||
|
then
|
||||||
|
return $exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
local r=""
|
||||||
|
local b=""
|
||||||
|
local step=""
|
||||||
|
local total=""
|
||||||
|
if [ -d "$g/rebase-merge" ]; then
|
||||||
|
__git_eread "$g/rebase-merge/head-name" b
|
||||||
|
__git_eread "$g/rebase-merge/msgnum" step
|
||||||
|
__git_eread "$g/rebase-merge/end" total
|
||||||
|
if [ -f "$g/rebase-merge/interactive" ]; then
|
||||||
|
r="|REBASE-i"
|
||||||
|
else
|
||||||
|
r="|REBASE-m"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ -d "$g/rebase-apply" ]; then
|
||||||
|
__git_eread "$g/rebase-apply/next" step
|
||||||
|
__git_eread "$g/rebase-apply/last" total
|
||||||
|
if [ -f "$g/rebase-apply/rebasing" ]; then
|
||||||
|
__git_eread "$g/rebase-apply/head-name" b
|
||||||
|
r="|REBASE"
|
||||||
|
elif [ -f "$g/rebase-apply/applying" ]; then
|
||||||
|
r="|AM"
|
||||||
|
else
|
||||||
|
r="|AM/REBASE"
|
||||||
|
fi
|
||||||
|
elif [ -f "$g/MERGE_HEAD" ]; then
|
||||||
|
r="|MERGING"
|
||||||
|
elif [ -f "$g/CHERRY_PICK_HEAD" ]; then
|
||||||
|
r="|CHERRY-PICKING"
|
||||||
|
elif [ -f "$g/REVERT_HEAD" ]; then
|
||||||
|
r="|REVERTING"
|
||||||
|
elif [ -f "$g/BISECT_LOG" ]; then
|
||||||
|
r="|BISECTING"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$b" ]; then
|
||||||
|
:
|
||||||
|
elif [ -h "$g/HEAD" ]; then
|
||||||
|
# symlink symbolic ref
|
||||||
|
b="$(git symbolic-ref HEAD 2>/dev/null)"
|
||||||
|
else
|
||||||
|
local head=""
|
||||||
|
if ! __git_eread "$g/HEAD" head; then
|
||||||
|
return $exit
|
||||||
|
fi
|
||||||
|
# is it a symbolic ref?
|
||||||
|
b="${head#ref: }"
|
||||||
|
if [ "$head" = "$b" ]; then
|
||||||
|
detached=yes
|
||||||
|
b="$(
|
||||||
|
case "${GIT_PS1_DESCRIBE_STYLE-}" in
|
||||||
|
(contains)
|
||||||
|
git describe --contains HEAD ;;
|
||||||
|
(branch)
|
||||||
|
git describe --contains --all HEAD ;;
|
||||||
|
(tag)
|
||||||
|
git describe --tags HEAD ;;
|
||||||
|
(describe)
|
||||||
|
git describe HEAD ;;
|
||||||
|
(* | default)
|
||||||
|
git describe --tags --exact-match HEAD ;;
|
||||||
|
esac 2>/dev/null)" ||
|
||||||
|
|
||||||
|
b="$short_sha..."
|
||||||
|
b="($b)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$step" ] && [ -n "$total" ]; then
|
||||||
|
r="$r $step/$total"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local w=""
|
||||||
|
local i=""
|
||||||
|
local s=""
|
||||||
|
local u=""
|
||||||
|
local c=""
|
||||||
|
local p=""
|
||||||
|
|
||||||
|
if [ "true" = "$inside_gitdir" ]; then
|
||||||
|
if [ "true" = "$bare_repo" ]; then
|
||||||
|
c="BARE:"
|
||||||
|
else
|
||||||
|
b="GIT_DIR!"
|
||||||
|
fi
|
||||||
|
elif [ "true" = "$inside_worktree" ]; then
|
||||||
|
if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
|
||||||
|
[ "$(git config --bool bash.showDirtyState)" != "false" ]
|
||||||
|
then
|
||||||
|
git diff --no-ext-diff --quiet || w="*"
|
||||||
|
git diff --no-ext-diff --cached --quiet || i="+"
|
||||||
|
if [ -z "$short_sha" ] && [ -z "$i" ]; then
|
||||||
|
i="#"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] &&
|
||||||
|
git rev-parse --verify --quiet refs/stash >/dev/null
|
||||||
|
then
|
||||||
|
s="$"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
|
||||||
|
[ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
|
||||||
|
git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' >/dev/null 2>/dev/null
|
||||||
|
then
|
||||||
|
u="%${ZSH_VERSION+%}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
|
||||||
|
__git_ps1_show_upstream
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
local z="${GIT_PS1_STATESEPARATOR-" "}"
|
||||||
|
|
||||||
|
# NO color option unless in PROMPT_COMMAND mode
|
||||||
|
if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
|
||||||
|
__git_ps1_colorize_gitstring
|
||||||
|
fi
|
||||||
|
|
||||||
|
b=${b##refs/heads/}
|
||||||
|
if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
|
||||||
|
__git_ps1_branch_name=$b
|
||||||
|
b="\${__git_ps1_branch_name}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local f="$w$i$s$u"
|
||||||
|
local gitstring="$c$b${f:+$z$f}$r$p"
|
||||||
|
|
||||||
|
if [ $pcmode = yes ]; then
|
||||||
|
if [ "${__git_printf_supports_v-}" != yes ]; then
|
||||||
|
gitstring=$(printf -- "$printf_format" "$gitstring")
|
||||||
|
else
|
||||||
|
printf -v gitstring -- "$printf_format" "$gitstring"
|
||||||
|
fi
|
||||||
|
PS1="$ps1pc_start$gitstring$ps1pc_end"
|
||||||
|
else
|
||||||
|
printf -- "$printf_format" "$gitstring"
|
||||||
|
fi
|
||||||
|
|
||||||
|
return $exit
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,10 @@
|
||||||
|
export KOPS_STATE_STORE=s3://consolo-kops-state-store
|
||||||
|
export MINIKUBE_WANTUPDATENOTIFICATION=true
|
||||||
|
export MINIKUBE_WANTREPORTERRORPROMPT=false
|
||||||
|
export MINIKUBE_WANTKUBECTLDOWNLOADMSG=false
|
||||||
|
export MINIKUBE_HOME=$HOME
|
||||||
|
export MINIKUBE_DRIVER=kvm2
|
||||||
|
export CHANGE_MINIKUBE_NONE_USER=true
|
||||||
|
test -d $HOME/.kube || mkdir $HOME/.kube
|
||||||
|
test -f $HOME/.kube/config || touch $HOME/.kube/config
|
||||||
|
export KUBECONFIG=$HOME/.kube/config
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/bash
|
||||||
|
ffmpeg -i "concat:$(ls -1 *.mp3 | paste -sd "|" -)" -c:a aac -b:a 64k -f mp4 o.mp4
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue