summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Lemon <y@yulqen.org>2024-04-04 13:00:43 +0100
committerMatthew Lemon <y@yulqen.org>2024-04-04 13:00:43 +0100
commit80426fe85bbd3b95820d6ea328a11ef83d25b8b6 (patch)
treed1d4f26e7571547adb5769049e0d0ade5898b2aa
parent446ac607c4556c421872a025ca0713ada3696520 (diff)
Big bring-up April 2023
-rw-r--r--Xresources4
-rw-r--r--fish/config.fish6
-rw-r--r--fish/fish_variables50
l---------fish/functions/__bass.py1
l---------fish/functions/bass.fish1
-rw-r--r--fish/functions/du.fish4
l---------fish/functions/fzf_key_bindings.fish1
l---------fish/functions/man.fish1
-rw-r--r--fish/functions/notes.fish4
-rw-r--r--fish/functions/tprojects.fish4
-rw-r--r--gitconfig2
-rw-r--r--[-rwxr-xr-x]lynx/lynx0
-rw-r--r--[-rwxr-xr-x]mutt/view_attachment.sh0
-rw-r--r--[-rwxr-xr-x]mutt2022/view_attachment.sh0
-rw-r--r--[-rwxr-xr-x]screenlayout/desktop_layout_debian.sh0
-rw-r--r--[-rwxr-xr-x]screenlayout/desktop_layout_debian_all_landscape.sh0
-rw-r--r--[-rwxr-xr-x]screenlayout/left_portrait_right_land.sh0
-rw-r--r--[-rwxr-xr-x]scripts/wireless_fix.sh0
-rw-r--r--taskrc73
-rw-r--r--tmux.conf2
-rw-r--r--vim/UltiSnips/markdown.snippets3
-rw-r--r--vim/autoload/plug.vim38
-rw-r--r--vim/colors/blackboard.vim99
-rw-r--r--vim/colors/codedark.vim656
-rw-r--r--vim/colors/distinguished.vim179
-rw-r--r--vim/colors/grb256.vim32
-rw-r--r--vim/colors/gruber-darker.vim228
-rw-r--r--vim/colors/hemisu.vim229
-rw-r--r--vim/colors/hipster.vim102
m---------vim/plugged/vim-go0
-rw-r--r--vim/vimrc722
-rwxr-xr-x[-rw-r--r--]xsession9
32 files changed, 1966 insertions, 484 deletions
diff --git a/Xresources b/Xresources
index da2dc1d..04266e6 100644
--- a/Xresources
+++ b/Xresources
@@ -79,8 +79,8 @@ xterm*faceSize4: 16
xterm*faceSize5: 22xterm*faceName: Terminus
!!xterm*faceSize: 15
-xterm*faceName: Comic Shanns Regular
-xterm*faceSize: 15
+xterm*faceName: monospace
+xterm*faceSize: 10
!!xterm*font: -xos4-terminus-medium-r-normal-*-17-120-100-100-c-0-iso10646-1
!!xterm*Boldfont: -xos4-terminus-bold-r-normal-*-17-120-100-100-c-0-iso10646-1
diff --git a/fish/config.fish b/fish/config.fish
index 29193c2..acfe0fe 100644
--- a/fish/config.fish
+++ b/fish/config.fish
@@ -48,6 +48,6 @@ fzf_key_bindings
# from https://opensource.com/article/19/9/linux-terminal-colors
#set -gx LS_COLORS 'rs=0:di=01;00:ln=01;00:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;66:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:';
set -gx GPG_TTY (tty)
-set -gx SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
-gpgconf --launch gpg-agent
-. ~/perl5/perlbrew/etc/perlbrew.fish
+#set -gx SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
+#gpgconf --launch gpg-agent
+#. ~/perl5/perlbrew/etc/perlbrew.fish
diff --git a/fish/fish_variables b/fish/fish_variables
index 301b1a5..c8e65ff 100644
--- a/fish/fish_variables
+++ b/fish/fish_variables
@@ -12,35 +12,45 @@ SETUVAR __fish_init_2_39_8:\x1d
SETUVAR __fish_init_2_3_0:\x1d
SETUVAR __fish_init_3_x:\x1d
SETUVAR __fish_initialized:3400
-SETUVAR fish_color_autosuggestion:555\x1ebrblack
-SETUVAR fish_color_cancel:\x2dr
-SETUVAR fish_color_command:005fd7
-SETUVAR fish_color_comment:990000
-SETUVAR fish_color_cwd:green
+SETUVAR fish_color_autosuggestion:8A9199
+SETUVAR fish_color_cancel:\x2d\x2dreverse
+SETUVAR fish_color_command:55B4D4
+SETUVAR fish_color_comment:ABB0B6
+SETUVAR fish_color_cwd:399EE6
SETUVAR fish_color_cwd_root:red
-SETUVAR fish_color_end:009900
-SETUVAR fish_color_error:ff0000
-SETUVAR fish_color_escape:00a6b2
+SETUVAR fish_color_end:ED9366
+SETUVAR fish_color_error:F51818
+SETUVAR fish_color_escape:4CBF99
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
-SETUVAR fish_color_host_remote:yellow
-SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
-SETUVAR fish_color_normal:normal
-SETUVAR fish_color_operator:00a6b2
-SETUVAR fish_color_param:00afff
-SETUVAR fish_color_quote:999900
-SETUVAR fish_color_redirection:00afff
-SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
-SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
+SETUVAR fish_color_host_remote:\x1d
+SETUVAR fish_color_keyword:\x1d
+SETUVAR fish_color_match:F07171
+SETUVAR fish_color_normal:575F66
+SETUVAR fish_color_operator:FF9940
+SETUVAR fish_color_option:\x1d
+SETUVAR fish_color_param:575F66
+SETUVAR fish_color_quote:86B300
+SETUVAR fish_color_redirection:A37ACC
+SETUVAR fish_color_search_match:\x2d\x2dbackground\x3dFF9940
+SETUVAR fish_color_selection:\x2d\x2dbackground\x3dFF9940
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_greeting:
SETUVAR fish_key_bindings:fish_default_key_bindings
+SETUVAR fish_pager_color_background:\x1d
SETUVAR fish_pager_color_completion:normal
-SETUVAR fish_pager_color_description:B3A06D\x1eyellow
-SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
+SETUVAR fish_pager_color_description:B3A06D
+SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
-SETUVAR fish_pager_color_selected_background:\x2dr
+SETUVAR fish_pager_color_secondary_background:\x1d
+SETUVAR fish_pager_color_secondary_completion:\x1d
+SETUVAR fish_pager_color_secondary_description:\x1d
+SETUVAR fish_pager_color_secondary_prefix:\x1d
+SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dFF9940
+SETUVAR fish_pager_color_selected_completion:\x1d
+SETUVAR fish_pager_color_selected_description:\x1d
+SETUVAR fish_pager_color_selected_prefix:\x1d
SETUVAR fish_user_paths:/home/lemon/local/bin\x1e/usr/local/jdk\x2d11/bin\x1e/home/lemon/bin\x2dscripts/\x1e/home/lemon/perl5/perlbrew/bin/\x1e/usr/lib/cargo/bin/\x1e/home/lemon/go/bin\x1e/usr/local/go/bin\x1e/snap/bin\x1e/home/lemon/\x2epoetry/bin\x1e/home/lemon/\x2ecargo/bin\x1e/home/lemon/bin\x1e/home/lemon/bin/adb\x2dfastboot/platform\x2dtools/\x1e/home/lemon/\x2efzf/bin
SETUVAR fisher_dependency_count:Colored\x2dMan\x2dPages\x1ebass
diff --git a/fish/functions/__bass.py b/fish/functions/__bass.py
deleted file mode 120000
index 32d6148..0000000
--- a/fish/functions/__bass.py
+++ /dev/null
@@ -1 +0,0 @@
-/home/lemon/.config/fisherman/bass/functions/__bass.py \ No newline at end of file
diff --git a/fish/functions/bass.fish b/fish/functions/bass.fish
deleted file mode 120000
index b639a8f..0000000
--- a/fish/functions/bass.fish
+++ /dev/null
@@ -1 +0,0 @@
-/home/lemon/.config/fisherman/bass/functions/bass.fish \ No newline at end of file
diff --git a/fish/functions/du.fish b/fish/functions/du.fish
deleted file mode 100644
index 1aec7cc..0000000
--- a/fish/functions/du.fish
+++ /dev/null
@@ -1,4 +0,0 @@
-# Defined in - @ line 0
-function du --description 'alias du=ncdu --color dark -rr -x --exclude .git'
- ncdu --color dark -rr -x --exclude .git $argv;
-end
diff --git a/fish/functions/fzf_key_bindings.fish b/fish/functions/fzf_key_bindings.fish
deleted file mode 120000
index c9ab910..0000000
--- a/fish/functions/fzf_key_bindings.fish
+++ /dev/null
@@ -1 +0,0 @@
-/home/lemon/.fzf/shell/key-bindings.fish \ No newline at end of file
diff --git a/fish/functions/man.fish b/fish/functions/man.fish
deleted file mode 120000
index 053f86b..0000000
--- a/fish/functions/man.fish
+++ /dev/null
@@ -1 +0,0 @@
-/home/lemon/.config/fisherman/Colored-Man-Pages/functions/man.fish \ No newline at end of file
diff --git a/fish/functions/notes.fish b/fish/functions/notes.fish
new file mode 100644
index 0000000..0c0acb0
--- /dev/null
+++ b/fish/functions/notes.fish
@@ -0,0 +1,4 @@
+function notes --wraps='cd /home/lemon/Documents/Notes' --description 'alias notes cd /home/lemon/Documents/Notes'
+ cd /home/lemon/Documents/Notes $argv
+
+end
diff --git a/fish/functions/tprojects.fish b/fish/functions/tprojects.fish
new file mode 100644
index 0000000..8e8d4a8
--- /dev/null
+++ b/fish/functions/tprojects.fish
@@ -0,0 +1,4 @@
+function tprojects --wraps='task rc.list.all.projects=1 projects' --description 'alias tprojects task rc.list.all.projects=1 projects'
+ task rc.list.all.projects=1 projects $argv
+
+end
diff --git a/gitconfig b/gitconfig
index f144110..313f4d4 100644
--- a/gitconfig
+++ b/gitconfig
@@ -1,5 +1,5 @@
[user]
- email = matt@matthewlemon.com
+ email = y@yulqen.org
name = Matthew Lemon
[core]
excludesfile = /home/lemon/.gitignore_global
diff --git a/lynx/lynx b/lynx/lynx
index 7c350de..7c350de 100755..100644
--- a/lynx/lynx
+++ b/lynx/lynx
diff --git a/mutt/view_attachment.sh b/mutt/view_attachment.sh
index f391399..f391399 100755..100644
--- a/mutt/view_attachment.sh
+++ b/mutt/view_attachment.sh
diff --git a/mutt2022/view_attachment.sh b/mutt2022/view_attachment.sh
index 1ff52ea..1ff52ea 100755..100644
--- a/mutt2022/view_attachment.sh
+++ b/mutt2022/view_attachment.sh
diff --git a/screenlayout/desktop_layout_debian.sh b/screenlayout/desktop_layout_debian.sh
index 51d22f6..51d22f6 100755..100644
--- a/screenlayout/desktop_layout_debian.sh
+++ b/screenlayout/desktop_layout_debian.sh
diff --git a/screenlayout/desktop_layout_debian_all_landscape.sh b/screenlayout/desktop_layout_debian_all_landscape.sh
index cd42bdd..cd42bdd 100755..100644
--- a/screenlayout/desktop_layout_debian_all_landscape.sh
+++ b/screenlayout/desktop_layout_debian_all_landscape.sh
diff --git a/screenlayout/left_portrait_right_land.sh b/screenlayout/left_portrait_right_land.sh
index 95cfedb..95cfedb 100755..100644
--- a/screenlayout/left_portrait_right_land.sh
+++ b/screenlayout/left_portrait_right_land.sh
diff --git a/scripts/wireless_fix.sh b/scripts/wireless_fix.sh
index 7c6e32a..7c6e32a 100755..100644
--- a/scripts/wireless_fix.sh
+++ b/scripts/wireless_fix.sh
diff --git a/taskrc b/taskrc
index 755d1ae..8acc958 100644
--- a/taskrc
+++ b/taskrc
@@ -46,43 +46,54 @@ weekstart=Monday
#include /usr/share/taskwarrior/dark-red-256.theme
#include /usr/share/taskwarrior/dark-green-256.theme
#include /usr/share/taskwarrior/dark-blue-256.theme
+#include /usr/share/doc/task/rc/dark-blue-256.theme
#include /usr/share/taskwarrior/dark-violets-256.theme
#include /usr/share/taskwarrior/dark-yellow-green.theme
#include /usr/share/taskwarrior/dark-gray-256.theme
+#include /usr/share/doc/task/rc/no-color.theme
#include /usr/share/taskwarrior/dark-gray-blue-256.theme
#include /usr/share/taskwarrior/solarized-dark-256.theme
-include /usr/local/share/doc/taskwarrior/rc/solarized-light-256.theme
+#include /usr/share/doc/task/rc/solarized-light-256.theme
#include /usr/local/share/doc/taskwarrior/rc/no-color.theme
#include /home/lemon/.task/solarized-16.theme
#include /home/lemon/.task/solarized-dark-256.theme
#
# colour
-color.burndown.done=black on green
-color.burndown.pending=black on rgb510
-color.burndown.started=black on yellow
-color.calendar.due.today=on red
-color.calendar.overdue=bold red
-color.calendar.today=blue
-color.calendar.due=cyan
-color.blocked=underline grey10 on grey3
-color.blocking=color5
-color.due=
-color.tagged=
-color.tag.waiting=blue
-color.tag.next=cyan
color=on
+#color.burndown.done=black on green
+#color.burndown.pending=black on rgb510
+#color.burndown.started=black on yellow
+#color.calendar.due.today=on
+#color.calendar.overdue=bold red
+#color.calendar.today=color11 on blue
+#color.calendar.due=cyan
+#color.blocked=underline gray10 on gray3
+#color.blocking=color5
+#color.due.today=black on yellow
+## color.tagged=
+#color.active=black on rgb510
+#color.tag.waiting=green
+#color.tag.next=cyan
color.project.Inbox=black on cyan
+#color.project.w.admin=gray10
+#color.project.w.training=gray10
+#color.project.h.admin=gray12
+#color.project.h.comp=color11
color.alternate=on rgb253
+color.tag.killlist=rgb104 on black
+color.uda.priority.H=rgb504
# Task server - essential config!
taskd.certificate=\/home\/lemon\/.task\/Matthew_Lemon.cert.pem
taskd.key=\/home\/lemon\/.task\/Matthew_Lemon.key.pem
taskd.ca=\/home\/lemon\/.task\/ca.cert.pem
-taskd.server=16693433.xyz:53589
+taskd.server=taskd.banded-neon.ts.net:53589
+#taskd.server=192.168.1.13:53589
#taskd.trust=ignore hostname
#taskd.credentials=Public\/matt lemon\/65ed83f1-a2ec-48d2-ad74-9625cc58b030
#taskd.credentials=Public\/Matthew Lemon\/bb8f1075-3435-452a-ad98-a5da868abbaf
-taskd.credentials=Public\/Matthew Lemon\/51f50856-8333-445e-9c81-273df1ff148a
+#taskd.credentials=Public\/Matthew Lemon\/51f50856-8333-445e-9c81-273df1ff148a
+taskd.credentials=Public\/Matthew Lemon\/f6bfd2de-cf46-4461-9552-ecc9404d6968
# Tasksh report stuff
uda.reviewed.type=date
@@ -107,14 +118,12 @@ urgency.user.tag.bug.coefficient=+1.5
urgency.user.tag.reference.coefficient=-3.2
urgency.user.tag.idea.coefficient=-3.0
urgency.user.project.h.chore.coefficient=-3.0
-urgency.user.project.h.admin.coefficient=-0.5
urgency.user.project.h.buy.coefficient=-4.0
urgency.user.project.h.diy.coefficient=-5.0
+urgency.user.project.h.ideas.coefficient=-2.0
urgency.user.project=-0.0
urgency.user.tag.link.coefficient=-5.0
-urgency.user.tag.idea.coefficient=-5.0
-urgency.user.tag.home.coefficient=+1.8
-urgency.user.tag.waiting.coefficient=-2.0
+#urgency.user.tag.waiting.coefficient=-2.0
# UDA for bash script (inspection_planning.sh)
uda.wb.type=date
uda.wb.label=Week Beginning
@@ -122,13 +131,13 @@ uda.wb.label=Week Beginning
urgency.user.tag.killlist.coefficient=-5.1
# F*ck annotations having any effect on urgency!
-urgency.annotations.coefficient=0
+#urgency.annotations.coefficient=0
# Changing coefficients
#urgency.annotations.coefficient=0.5
urgency.tags.coefficient=0
-urgency.blocking.coefficient=+2.0
-urgency.due.coefficient=1.1
+#urgency.blocking.coefficient=+2.0
+#urgency.due.coefficient=1.1
#urgency.project.coefficient=1
#urgency.age.coefficient=1
@@ -138,12 +147,10 @@ urgency.due.coefficient=1.1
# Colours
#color.project.code.dbasik=green
#color.tag.next=black on bright yellow
-color.tag.killlist=rgb104 on black
#color.due.today=red on yellow
#color.overdue=bold red
-##color.active=bold yellow
#color.calendar.weekend=bold
-#color.scheduled=bold magenta
+color.scheduled=yellow
#color.tag.dft=white on rgb100
#color.tag.prep=rgb150 on rgb020
color.alternate=
@@ -182,17 +189,20 @@ recurrence=on
recurrence.limit=1
# Context
-context.work=project:w
+#context.work=project:w
context.work.write=project:Inbox
context.work.read=(project:w or project:Inbox)
-context.home=project:h
+#context.home=project:h
context.home.write=project:Inbox
context.home.read=(project:h or project:Inbox)
-# context.code=project:code
+context.code.read=project:h.comp.code
+context.code.write=project:Inbox
+#context.code=project:h.comp.code
# context.work=-code +dft
# context.nowork=-dft
-context.nocode=project.not:code
+context.nocode=project.not:h.comp.code
+context.nosurge=project.not:h.comp.code.surge
# context.home=(project.not:code) -dft
@@ -239,7 +249,8 @@ report.all.sort=entry-
# Next/default
report.next.description="Next"
report.next.columns=id,start.age,entry.age,depends,priority,project,tags,recur,scheduled.formatted,due.relative,until.remaining,description.truncated_count,urgency
-report.next.filter=status:pending limit:page -idea -killlist project.not:h.buy
+report.next.filter=status:pending project.not:w.smart.ded -killlist limit:page
+#report.next.filter=status:pending project.not:w.smart.ded -killlist limit:page
# mlscheduled
report.ml_scheduled.description='Modified list of scheduled tasks'
diff --git a/tmux.conf b/tmux.conf
index c46cc46..d7d4c6f 100644
--- a/tmux.conf
+++ b/tmux.conf
@@ -3,7 +3,7 @@
unbind C-b
# set shell
-#set -g default-shell '/bin/ksh'
+set -g default-shell '/usr/local/bin/fish'
# command sequence for nested tmux sessions
bind-key a send-prefix
diff --git a/vim/UltiSnips/markdown.snippets b/vim/UltiSnips/markdown.snippets
new file mode 100644
index 0000000..f20bf95
--- /dev/null
+++ b/vim/UltiSnips/markdown.snippets
@@ -0,0 +1,3 @@
+snippet swowdev "Test snippet"
+- @~SWOWdev (`date +"%c"`): $0
+endsnippet
diff --git a/vim/autoload/plug.vim b/vim/autoload/plug.vim
index 46416b8..71486bc 100644
--- a/vim/autoload/plug.vim
+++ b/vim/autoload/plug.vim
@@ -22,7 +22,7 @@
" Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
"
" " On-demand loading
-" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
+" Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' }
" Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
"
" " Using a non-default branch
@@ -352,7 +352,7 @@ function! plug#end()
endif
let lod = { 'ft': {}, 'map': {}, 'cmd': {} }
- if exists('g:did_load_filetypes')
+ if get(g:, 'did_load_filetypes', 0)
filetype off
endif
for name in g:plugs_order
@@ -391,6 +391,9 @@ function! plug#end()
if !empty(types)
augroup filetypedetect
call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim')
+ if has('nvim-0.5.0')
+ call s:source(s:rtp(plug), 'ftdetect/**/*.lua', 'after/ftdetect/**/*.lua')
+ endif
augroup END
endif
for type in types
@@ -438,6 +441,9 @@ endfunction
function! s:load_plugin(spec)
call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim')
+ if has('nvim-0.5.0')
+ call s:source(s:rtp(a:spec), 'plugin/**/*.lua', 'after/plugin/**/*.lua')
+ endif
endfunction
function! s:reload_plugins()
@@ -655,6 +661,9 @@ function! s:lod(names, types, ...)
let rtp = s:rtp(g:plugs[name])
for dir in a:types
call s:source(rtp, dir.'/**/*.vim')
+ if has('nvim-0.5.0') " see neovim#14686
+ call s:source(rtp, dir.'/**/*.lua')
+ endif
endfor
if a:0
if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2))
@@ -1031,6 +1040,11 @@ function! s:is_updated(dir)
endfunction
function! s:do(pull, force, todo)
+ if has('nvim')
+ " Reset &rtp to invalidate Neovim cache of loaded Lua modules
+ " See https://github.com/junegunn/vim-plug/pull/1157#issuecomment-1809226110
+ let &rtp = &rtp
+ endif
for [name, spec] in items(a:todo)
if !isdirectory(spec.dir)
continue
@@ -2621,26 +2635,34 @@ function! s:preview_commit()
let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}')
if empty(sha)
- return
+ let name = matchstr(getline('.'), '^- \zs[^:]*\ze:$')
+ if empty(name)
+ return
+ endif
+ let title = 'HEAD@{1}..'
+ let command = 'git diff --no-color HEAD@{1}'
+ else
+ let title = sha
+ let command = 'git show --no-color --pretty=medium '.sha
+ let name = s:find_name(line('.'))
endif
- let name = s:find_name(line('.'))
if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir)
return
endif
if exists('g:plug_pwindow') && !s:is_preview_window_open()
execute g:plug_pwindow
- execute 'e' sha
+ execute 'e' title
else
- execute 'pedit' sha
+ execute 'pedit' title
wincmd P
endif
- setlocal previewwindow filetype=git buftype=nofile nobuflisted modifiable
+ setlocal previewwindow filetype=git buftype=nofile bufhidden=wipe nobuflisted modifiable
let batchfile = ''
try
let [sh, shellcmdflag, shrd] = s:chsh(1)
- let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha
+ let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && '.command
if s:is_win
let [batchfile, cmd] = s:batchfile(cmd)
endif
diff --git a/vim/colors/blackboard.vim b/vim/colors/blackboard.vim
new file mode 100644
index 0000000..2ac839d
--- /dev/null
+++ b/vim/colors/blackboard.vim
@@ -0,0 +1,99 @@
+" Vim color scheme
+"
+" Name: blackboard.vim
+" Maintainer: Ben Wyrosdick <ben.wyrosdick@gmail.com>
+" Last Change: 20 August 2009
+" License: public domain
+" Version: 1.4
+
+set background=dark
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+
+let g:colors_name = "blackboard"
+
+" Colours in use
+" --------------
+" #FF5600 bright orange
+" #FFDE00 yolk yellow
+" #D8FA3C lemon yellow
+" #61CE3C green
+" #84A7C1 light blue
+" #AEAEAE medium grey
+
+if has("gui_running")
+ "GUI Colors
+ highlight Normal guifg=White guibg=#0B1022
+ highlight Cursor guifg=Black guibg=Yellow
+ highlight CursorLine guibg=#191E2F
+ highlight LineNr guibg=#323232 guifg=#888888
+ highlight Folded guifg=#1d2652 guibg=#070a15
+ highlight Pmenu guibg=#84A7C1
+ highlight Visual guibg=#283A76
+
+ "General Colors
+ highlight Comment guifg=#AEAEAE
+ highlight Constant guifg=#D8FA3C
+ highlight Keyword guifg=#FFDE00
+ highlight String guifg=#61CE3C
+ highlight Type guifg=#84A7C1
+ highlight Identifier guifg=#61CE3C gui=NONE
+ highlight Function guifg=#FF5600 gui=NONE
+ highlight clear Search
+ highlight Search guibg=#1C3B79
+ highlight PreProc guifg=#FF5600
+
+ " StatusLine
+ highlight StatusLine guifg=#000000 guibg=#ffffaf gui=italic
+ highlight StatusLineNC guifg=#000000 guibg=#ffffff gui=NONE
+
+ "Invisible character colors
+ highlight NonText guifg=#4a4a59
+ highlight SpecialKey guifg=#4a4a59
+
+ "HTML Colors
+ highlight link htmlTag Type
+ highlight link htmlEndTag htmlTag
+ highlight link htmlTagName htmlTag
+
+ "Ruby Colors
+ highlight link rubyClass Keyword
+ highlight link rubyDefine Keyword
+ highlight link rubyConstant Type
+ highlight link rubySymbol Constant
+ highlight link rubyStringDelimiter rubyString
+ highlight link rubyInclude Keyword
+ highlight link rubyAttribute Keyword
+ highlight link rubyInstanceVariable Normal
+
+ "Rails Colors
+ highlight link railsMethod Type
+
+ "Sass colors
+ highlight link sassMixin Keyword
+ highlight link sassMixing Constant
+
+ "Outliner colors
+ highlight OL1 guifg=#FF5600
+ highlight OL2 guifg=#61CE3C
+ highlight OL3 guifg=#84A7C1
+ highlight OL4 guifg=#D8FA3C
+ highlight BT1 guifg=#AEAEAE
+ highlight link BT2 BT1
+ highlight link BT3 BT1
+ highlight link BT4 BT1
+
+ "Markdown colors
+ highlight markdownCode guifg=#61CE3C guibg=#070a15
+ highlight link markdownCodeBlock markdownCode
+
+ "Git colors
+ highlight gitcommitSelectedFile guifg=#61CE3C
+ highlight gitcommitDiscardedFile guifg=#C23621
+ highlight gitcommitWarning guifg=#C23621
+ highlight gitcommitBranch guifg=#FFDE00
+ highlight gitcommitHeader guifg=#84A7C1
+
+end
diff --git a/vim/colors/codedark.vim b/vim/colors/codedark.vim
new file mode 100644
index 0000000..7215a8d
--- /dev/null
+++ b/vim/colors/codedark.vim
@@ -0,0 +1,656 @@
+" Vim Code Dark (color scheme)
+" https://github.com/tomasiser/vim-code-dark
+
+scriptencoding utf-8
+
+set background=dark
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+let g:colors_name="codedark"
+
+" Highlighting function (inspiration from https://github.com/chriskempson/base16-vim)
+if &t_Co >= 256
+ let g:codedark_term256=1
+elseif !exists("g:codedark_term256")
+ let g:codedark_term256=0
+endif
+fun! <sid>hi(group, fg, bg, attr, sp)
+ if !empty(a:fg)
+ exec "hi " . a:group . " guifg=" . a:fg.gui . " ctermfg=" . (g:codedark_term256 ? a:fg.cterm256 : a:fg.cterm)
+ endif
+ if !empty(a:bg)
+ exec "hi " . a:group . " guibg=" . a:bg.gui . " ctermbg=" . (g:codedark_term256 ? a:bg.cterm256 : a:bg.cterm)
+ endif
+ if a:attr != ""
+ exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
+ endif
+ if !empty(a:sp)
+ exec "hi " . a:group . " guisp=" . a:sp.gui
+ endif
+endfun
+" Choose old or new name for Treesitter groups depending on Neovim version
+fun! <sid>hiTS(g_new, g_old, fg, bg, attr, sp)
+ call <sid>hi(has("nvim-0.8.0") ? a:g_new : a:g_old, a:fg, a:bg, a:attr, a:sp)
+endfun
+
+fun! <sid>hiTSlink(g_new, g_old, link)
+ exec "hi! link " . (has("nvim-0.8.0") ? a:g_new : a:g_old) . " " . a:link
+endfun
+
+" ------------------
+" Color definitions:
+" ------------------
+
+" Terminal colors (base16):
+let s:cterm00 = "00"
+let s:cterm03 = "08"
+let s:cterm05 = "07"
+let s:cterm07 = "15"
+let s:cterm08 = "01"
+let s:cterm0A = "03"
+let s:cterm0B = "02"
+let s:cterm0C = "06"
+let s:cterm0D = "04"
+let s:cterm0E = "05"
+if exists('base16colorspace') && base16colorspace == "256"
+ let s:cterm01 = "18"
+ let s:cterm02 = "19"
+ let s:cterm04 = "20"
+ let s:cterm06 = "21"
+ let s:cterm09 = "16"
+ let s:cterm0F = "17"
+else
+ let s:cterm01 = "00"
+ let s:cterm02 = "08"
+ let s:cterm04 = "07"
+ let s:cterm06 = "07"
+ let s:cterm09 = "06"
+ let s:cterm0F = "03"
+endif
+
+" General appearance colors:
+" (some of them may be unused)
+
+" Transparent background
+if !exists("g:codedark_transparent")
+ let g:codedark_transparent=0
+endif
+
+if !exists("g:codedark_modern")
+ let g:codedark_modern=0
+endif
+
+let s:cdNone = {'gui': 'NONE', 'cterm': 'NONE', 'cterm256': 'NONE'}
+let s:cdFront = {'gui': '#D4D4D4', 'cterm': s:cterm05, 'cterm256': '188'}
+let s:cdBack = {'gui': '#1E1E1E', 'cterm': s:cterm00, 'cterm256': '234'}
+if g:codedark_modern | let s:cdBack = {'gui': '#1f1f1f', 'cterm': 'NONE', 'cterm256': '234'} | endif
+if g:codedark_transparent | let s:cdBack = {'gui': 'NONE', 'cterm': 'NONE', 'cterm256': 'NONE'} | endif
+
+let s:cdTabCurrent = {'gui': '#1E1E1E', 'cterm': s:cterm00, 'cterm256': '234'}
+if g:codedark_modern | let s:cdTabCurrent = {'gui': '#1f1f1f', 'cterm': s:cterm00, 'cterm256': '234'} | endif
+let s:cdTabOther = {'gui': '#2D2D2D', 'cterm': s:cterm01, 'cterm256': '236'}
+if g:codedark_modern | let s:cdTabOther = {'gui': '#181818', 'cterm': s:cterm01, 'cterm256': '236'} | endif
+let s:cdTabOutside = {'gui': '#252526', 'cterm': s:cterm01, 'cterm256': '235'}
+if g:codedark_modern | let s:cdTabOutside = {'gui': '#181818', 'cterm': s:cterm01, 'cterm256': '236'} | endif
+
+let s:cdLeftDark = {'gui': '#252526', 'cterm': s:cterm01, 'cterm256': '235'}
+let s:cdLeftMid = {'gui': '#373737', 'cterm': s:cterm03, 'cterm256': '237'}
+if g:codedark_modern | let s:cdLeftMid = {'gui': '#181818', 'cterm': 'NONE', 'cterm256': '237'} | endif
+let s:cdLeftLight = {'gui': '#3F3F46', 'cterm': s:cterm03, 'cterm256': '238'}
+
+let s:cdPopupFront = {'gui': '#BBBBBB', 'cterm': s:cterm06, 'cterm256': '250'}
+let s:cdPopupBack = {'gui': '#2D2D30', 'cterm': s:cterm01, 'cterm256': '236'}
+let s:cdPopupHighlightBlue = {'gui': '#073655', 'cterm': s:cterm0D, 'cterm256': '24'}
+let s:cdPopupHighlightGray = {'gui': '#3D3D40', 'cterm': s:cterm03, 'cterm256': '237'}
+
+let s:cdSplitLight = {'gui': '#898989', 'cterm': s:cterm04, 'cterm256': '245'}
+let s:cdSplitDark = {'gui': '#444444', 'cterm': s:cterm03, 'cterm256': '238'}
+let s:cdSplitThumb = {'gui': '#424242', 'cterm': s:cterm04, 'cterm256': '238'}
+
+let s:cdCursorDarkDark = {'gui': '#222222', 'cterm': s:cterm01, 'cterm256': '235'}
+let s:cdCursorDark = {'gui': '#51504F', 'cterm': s:cterm03, 'cterm256': '239'}
+let s:cdCursorLight = {'gui': '#AEAFAD', 'cterm': s:cterm04, 'cterm256': '145'}
+let s:cdSelection = {'gui': '#264F78', 'cterm': s:cterm03, 'cterm256': '24'}
+let s:cdLineNumber = {'gui': '#5A5A5A', 'cterm': s:cterm04, 'cterm256': '240'}
+
+let s:cdDiffRedDark = {'gui': '#4B1818', 'cterm': s:cterm08, 'cterm256': '52'}
+if g:codedark_modern | let s:cdDiffRedDark = {'gui': '#da3633', 'cterm': 'NONE', 'cterm256': '52'} | endif
+let s:cdDiffRedLight = {'gui': '#6F1313', 'cterm': s:cterm08, 'cterm256': '52'}
+let s:cdDiffRedLightLight = {'gui': '#FB0101', 'cterm': s:cterm08, 'cterm256': '09'}
+let s:cdDiffGreenDark = {'gui': '#373D29', 'cterm': s:cterm0B, 'cterm256': '237'}
+if g:codedark_modern | let s:cdDiffGreenDark = {'gui': '#238636', 'cterm': 'NONE', 'cterm256': '237'} | endif
+let s:cdDiffGreenLight = {'gui': '#4B5632', 'cterm': s:cterm09, 'cterm256': '58'}
+let s:cdDiffBlueLight = {'gui': '#87d7ff', 'cterm': s:cterm0C, 'cterm256': '117'}
+let s:cdDiffBlue = {'gui': '#005f87', 'cterm': s:cterm0D, 'cterm256': '24'}
+
+let s:cdSearchCurrent = {'gui': '#4B5632', 'cterm': s:cterm09, 'cterm256': '58'}
+if g:codedark_modern | let s:cdSearchCurrent = {'gui': '#9e6a03', 'cterm': s:cterm09, 'cterm256': '58'} | endif
+let s:cdSearch = {'gui': '#264F78', 'cterm': s:cterm03, 'cterm256': '24'}
+
+" Syntax colors:
+
+if !exists("g:codedark_conservative")
+ let g:codedark_conservative=0
+endif
+
+" Italicized comments
+if !exists("g:codedark_italics")
+ let g:codedark_italics=0
+endif
+
+let s:cdGray = {'gui': '#808080', 'cterm': s:cterm04, 'cterm256': '08'}
+let s:cdViolet = {'gui': '#646695', 'cterm': s:cterm04, 'cterm256': '60'}
+let s:cdBlue = {'gui': '#569CD6', 'cterm': s:cterm0D, 'cterm256': '75'}
+let s:cdDarkBlue = {'gui': '#223E55', 'cterm': s:cterm0D, 'cterm256': '73'}
+let s:cdLightBlue = {'gui': '#9CDCFE', 'cterm': s:cterm0C, 'cterm256': '117'}
+if g:codedark_conservative | let s:cdLightBlue = s:cdFront | endif
+let s:cdGreen = {'gui': '#6A9955', 'cterm': s:cterm0B, 'cterm256': '65'}
+let s:cdBlueGreen = {'gui': '#4EC9B0', 'cterm': s:cterm0F, 'cterm256': '43'}
+let s:cdLightGreen = {'gui': '#B5CEA8', 'cterm': s:cterm09, 'cterm256': '151'}
+let s:cdRed = {'gui': '#F44747', 'cterm': s:cterm08, 'cterm256': '203'}
+if g:codedark_modern | let s:cdRed = {'gui': '#f85149', 'cterm': s:cterm08, 'cterm256': '203'} | endif
+let s:cdOrange = {'gui': '#CE9178', 'cterm': s:cterm0F, 'cterm256': '173'}
+let s:cdLightRed = {'gui': '#D16969', 'cterm': s:cterm08, 'cterm256': '167'}
+if g:codedark_conservative | let s:cdLightRed = s:cdOrange | endif
+let s:cdYellowOrange = {'gui': '#D7BA7D', 'cterm': s:cterm0A, 'cterm256': '179'}
+let s:cdYellow = {'gui': '#DCDCAA', 'cterm': s:cterm0A, 'cterm256': '187'}
+if g:codedark_conservative | let s:cdYellow = s:cdFront | endif
+let s:cdPink = {'gui': '#C586C0', 'cterm': s:cterm0E, 'cterm256': '176'}
+if g:codedark_conservative | let s:cdPink = s:cdBlue | endif
+let s:cdSilver = {'gui': '#C0C0C0', 'cterm': s:cterm05, 'cterm256': '7'}
+
+" UI (built-in)
+" <sid>hi(GROUP, FOREGROUND, BACKGROUND, ATTRIBUTE, SPECIAL)
+call <sid>hi('Normal', s:cdFront, s:cdBack, 'none', {})
+call <sid>hi('ColorColumn', {}, s:cdCursorDarkDark, 'none', {})
+call <sid>hi('Cursor', s:cdCursorDark, s:cdCursorLight, 'none', {})
+call <sid>hi('CursorLine', {}, s:cdCursorDarkDark, 'none', {})
+hi! link CursorColumn CursorLine
+call <sid>hi('Directory', s:cdBlue, s:cdNone, 'none', {})
+call <sid>hi('DiffAdd', s:cdFront, s:cdDiffGreenLight, 'none', {})
+call <sid>hi('DiffChange', s:cdFront, s:cdDiffBlue, 'none', {})
+call <sid>hi('DiffDelete', s:cdFront, s:cdDiffRedLight, 'none', {})
+call <sid>hi('DiffText', s:cdBack, s:cdDiffBlueLight, 'none', {})
+call <sid>hi('EndOfBuffer', s:cdLineNumber, s:cdBack, 'none', {})
+call <sid>hi('ErrorMsg', s:cdRed, s:cdBack, 'none', {})
+call <sid>hi('VertSplit', s:cdSplitDark, s:cdBack, 'none', {})
+call <sid>hi('Folded', s:cdLeftLight, s:cdLeftDark, 'underline', {})
+call <sid>hi('FoldColumn', s:cdLineNumber, s:cdBack, 'none', {})
+call <sid>hi('SignColumn', {}, s:cdBack, 'none', {})
+call <sid>hi('IncSearch', s:cdNone, s:cdSearchCurrent, 'none', {})
+call <sid>hi('LineNr', s:cdLineNumber, s:cdBack, 'none', {})
+call <sid>hi('CursorLineNr', s:cdPopupFront, s:cdBack, 'none', {})
+call <sid>hi('MatchParen', s:cdNone, s:cdCursorDark, 'none', {})
+call <sid>hi('ModeMsg', s:cdFront, s:cdLeftDark, 'none', {})
+hi! link MoreMsg ModeMsg
+call <sid>hi('NonText', s:cdLineNumber, s:cdNone, 'none', {})
+call <sid>hi('Pmenu', s:cdPopupFront, s:cdPopupBack, 'none', {})
+call <sid>hi('PmenuSel', s:cdPopupFront, s:cdPopupHighlightBlue, 'none', {})
+call <sid>hi('PmenuSbar', {}, s:cdPopupHighlightGray, 'none', {})
+call <sid>hi('PmenuThumb', {}, s:cdPopupFront, 'none', {})
+call <sid>hi('Question', s:cdBlue, s:cdBack, 'none', {})
+call <sid>hi('Search', s:cdNone, s:cdSearch, 'none', {})
+call <sid>hi('SpecialKey', s:cdBlue, s:cdNone, 'none', {})
+call <sid>hi('StatusLine', s:cdFront, s:cdLeftMid, 'none', {})
+call <sid>hi('StatusLineNC', s:cdFront, s:cdLeftDark, 'none', {})
+call <sid>hi('TabLine', s:cdFront, s:cdTabOther, 'none', {})
+call <sid>hi('TabLineFill', s:cdFront, s:cdTabOutside, 'none', {})
+call <sid>hi('TabLineSel', s:cdFront, s:cdTabCurrent, 'none', {})
+call <sid>hi('Title', s:cdNone, s:cdNone, 'bold', {})
+call <sid>hi('Visual', s:cdNone, s:cdSelection, 'none', {})
+hi! link VisualNOS Visual
+call <sid>hi('WarningMsg', s:cdOrange, s:cdBack, 'none', {})
+call <sid>hi('WildMenu', s:cdNone, s:cdSelection, 'none', {})
+call <sid>hi('netrwMarkFile', s:cdFront, s:cdSelection, 'none', {})
+
+" Legacy groups for official git.vim and diff.vim syntax
+hi! link diffAdded DiffAdd
+hi! link diffChanged DiffChange
+hi! link diffRemoved DiffDelete
+
+if g:codedark_italics | call <sid>hi('Comment', s:cdGreen, {}, 'italic', {}) | else | call <sid>hi('Comment', s:cdGreen, {}, 'none', {}) | endif
+
+" SYNTAX HIGHLIGHT (built-in)
+call <sid>hi('Constant', s:cdBlue, {}, 'none', {})
+call <sid>hi('String', s:cdOrange, {}, 'none', {})
+call <sid>hi('Character', s:cdOrange, {}, 'none', {})
+call <sid>hi('Number', s:cdLightGreen, {}, 'none', {})
+call <sid>hi('Boolean', s:cdBlue, {}, 'none', {})
+hi! link Float Number
+call <sid>hi('Identifier', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('Function', s:cdYellow, {}, 'none', {})
+call <sid>hi('Statement', s:cdPink, {}, 'none', {})
+call <sid>hi('Conditional', s:cdPink, {}, 'none', {})
+call <sid>hi('Repeat', s:cdPink, {}, 'none', {})
+call <sid>hi('Label', s:cdPink, {}, 'none', {})
+call <sid>hi('Operator', s:cdFront, {}, 'none', {})
+call <sid>hi('Keyword', s:cdPink, {}, 'none', {})
+call <sid>hi('Exception', s:cdPink, {}, 'none', {})
+call <sid>hi('PreProc', s:cdPink, {}, 'none', {})
+call <sid>hi('Include', s:cdPink, {}, 'none', {})
+call <sid>hi('Define', s:cdPink, {}, 'none', {})
+call <sid>hi('Macro', s:cdPink, {}, 'none', {})
+call <sid>hi('PreCondit', s:cdPink, {}, 'none', {})
+call <sid>hi('Type', s:cdBlue, {}, 'none', {})
+call <sid>hi('StorageClass', s:cdBlue, {}, 'none', {})
+call <sid>hi('Structure', s:cdBlue, {}, 'none', {})
+call <sid>hi('Typedef', s:cdBlue, {}, 'none', {})
+call <sid>hi('Special', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('SpecialChar', s:cdFront, {}, 'none', {})
+call <sid>hi('Tag', s:cdFront, {}, 'none', {})
+call <sid>hi('Delimiter', s:cdFront, {}, 'none', {})
+if g:codedark_italics | call <sid>hi('SpecialComment', s:cdGreen, {}, 'italic', {}) | else | call <sid>hi('SpecialComment', s:cdGreen, {}, 'none', {}) | endif
+call <sid>hi('Debug', s:cdFront, {}, 'none', {})
+call <sid>hi('Underlined', s:cdNone, {}, 'underline', {})
+call <sid>hi("Conceal", s:cdFront, s:cdBack, 'none', {})
+call <sid>hi('Ignore', s:cdBack, {}, 'none', {})
+call <sid>hi('Error', s:cdRed, s:cdBack, 'undercurl', s:cdRed)
+call <sid>hi('Todo', s:cdNone, s:cdLeftMid, 'none', {})
+call <sid>hi('SpellBad', s:cdRed, s:cdBack, 'undercurl', s:cdRed)
+call <sid>hi('SpellCap', s:cdRed, s:cdBack, 'undercurl', s:cdRed)
+call <sid>hi('SpellRare', s:cdRed, s:cdBack, 'undercurl', s:cdRed)
+call <sid>hi('SpellLocal', s:cdRed, s:cdBack, 'undercurl', s:cdRed)
+
+" NEOVIM
+" Make neovim specific groups load only on Neovim
+if has("nvim")
+ " nvim-treesitter/nvim-treesitter (github)
+ call <sid>hiTSlink('@error', 'TSError', 'ErrorMsg')
+ call <sid>hiTSlink('@punctuation.delimiter', 'TSPunctDelimiter', 'Delimiter')
+ call <sid>hiTSlink('@punctuation.bracket', 'TSPunctBracket', 'Delimiter')
+ call <sid>hiTSlink('@punctuation.special', 'TSPunctSpecial', 'Delimiter')
+ " Constant
+ call <sid>hiTS('@constant', 'TSConstant', s:cdYellow, {}, 'none', {})
+ call <sid>hiTSlink('@constant.builtin', 'TSConstBuiltin', 'Constant')
+ call <sid>hiTS('@constant.macro', 'TSConstMacro', s:cdBlueGreen, {}, 'none', {})
+ call <sid>hiTSlink('@string', 'TSString', 'String')
+ call <sid>hiTSlink('@string.regex', 'TSStringRegex', 'String')
+ call <sid>hiTS('@string.escape', 'TSStringEscape', s:cdYellowOrange, {}, 'none', {})
+ call <sid>hiTSlink('@character', 'TSCharacter', 'Character')
+ call <sid>hiTSlink('@number', 'TSNumber', 'Number')
+ call <sid>hiTS('@boolean', 'TSBoolean', s:cdBlue, {}, 'none', {})
+ call <sid>hiTSlink('@float', 'TSFloat', 'Float')
+ call <sid>hiTS('@annotation', 'TSAnnotation', s:cdYellow, {}, 'none', {})
+ call <sid>hiTS('@attribute', 'TSAttribute', s:cdBlueGreen, {}, 'none', {})
+ call <sid>hiTS('@namespace', 'TSNamespace', s:cdBlueGreen, {}, 'none', {})
+ " Functions
+ call <sid>hiTSlink('@function.builtin', 'TSFuncBuiltin', 'Function')
+ call <sid>hiTSlink('@function', 'TSFunction','Function')
+ call <sid>hiTSlink('@function.macro', 'TSFuncMacro','Function')
+ call <sid>hiTS('@parameter', 'TSParameter', s:cdLightBlue, {}, 'none', {})
+ call <sid>hiTS('@parameter.reference', 'TSParameterReference', s:cdLightBlue, {}, 'none', {})
+ call <sid>hiTS('@method', 'TSMethod', s:cdYellow, {}, 'none', {})
+ call <sid>hiTS('@field', 'TSField', s:cdLightBlue, {}, 'none', {})
+ call <sid>hiTS('@property', 'TSProperty', s:cdLightBlue, {}, 'none', {})
+ call <sid>hiTS('@constructor', 'TSConstructor', s:cdBlueGreen, {}, 'none', {})
+ " Keywords
+ call <sid>hiTSlink('@conditional', 'TSConditional', 'Conditional')
+ call <sid>hiTSlink('@repeat', 'TSRepeat', 'Repeat')
+ call <sid>hiTS('@label', 'TSLabel', s:cdLightBlue, {}, 'none', {})
+ call <sid>hiTS('@keyword', 'TSKeyword', s:cdBlue, {}, 'none', {})
+ call <sid>hiTS('@keyword.function', 'TSKeywordFunction', s:cdBlue, {}, 'none', {})
+ call <sid>hiTS('@keyword.operator', 'TSKeywordOperator', s:cdBlue, {}, 'none', {})
+ call <sid>hiTS('@operator', 'TSOperator', s:cdFront, {}, 'none', {})
+ call <sid>hiTS('@exception', 'TSException', s:cdPink, {}, 'none', {})
+ call <sid>hiTS('@type', 'TSType', s:cdBlueGreen, {}, 'none', {})
+ call <sid>hiTSlink('@type.builtin', 'TSTypeBuiltin', 'Type')
+ call <sid>hi('TSStructure', s:cdLightBlue, {}, 'none', {})
+ call <sid>hiTSlink('@include', 'TSInclude', 'Include')
+ " Variable
+ call <sid>hiTS('@variable', 'TSVariable', s:cdLightBlue, {}, 'none', {})
+ call <sid>hiTS('@variable.builtin', 'TSVariableBuiltin', s:cdLightBlue, {}, 'none', {})
+ " Text
+ call <sid>hiTS('@text', 'TSText', s:cdFront, s:cdNone, 'bold', {})
+ call <sid>hiTS('@text.strong', 'TSStrong', s:cdFront, s:cdNone, 'bold', {})
+ call <sid>hiTS('@text.emphasis', 'TSEmphasis', s:cdYellowOrange, s:cdNone, 'italic', {})
+ call <sid>hiTSlink('@text.underline', 'TSUnderline', 'Underlined')
+ call <sid>hiTS('@text.title', 'TSTitle', s:cdBlue, {}, 'bold', {})
+ call <sid>hiTS('@text.literal', 'TSLiteral', s:cdOrange, {}, 'none', {})
+ call <sid>hiTS('@text.uri', 'TSURI', s:cdOrange, {}, 'none', {})
+ " Tags
+ call <sid>hiTS('@tag', 'TSTag', s:cdBlue, {}, 'none', {})
+ call <sid>hiTS('@tag.delimiter', 'TSTagDelimiter', s:cdGray, {}, 'none', {})
+
+ " hrsh7th/nvim-cmp (github)
+ call <sid>hi('CmpItemAbbrDeprecated', s:cdGray, {}, 'none', {})
+ call <sid>hi('CmpItemAbbrMatch', s:cdBlue, {}, 'none', {})
+ hi! link CmpItemAbbrMatchFuzzy CmpItemAbbrMatch
+ call <sid>hi('CmpItemKindVariable', s:cdLightBlue, {}, 'none', {})
+ call <sid>hi('CmpItemKindInterface', s:cdLightBlue, {}, 'none', {})
+ call <sid>hi('CmpItemKindText', s:cdLightBlue, {}, 'none', {})
+ call <sid>hi('CmpItemKindFunction', s:cdPink, {}, 'none', {})
+ call <sid>hi('CmpItemKindMethod ', s:cdPink, {}, 'none', {})
+ call <sid>hi('CmpItemKindKeyword', s:cdFront, {}, 'none', {})
+ call <sid>hi('CmpItemKindProperty', s:cdFront, {}, 'none', {})
+ call <sid>hi('CmpItemKindUnit', s:cdFront, {}, 'none', {})
+endif
+
+" MARKDOWN (built-in)
+call <sid>hi('markdownH1', s:cdBlue, {}, 'bold', {})
+hi! link markdownH2 markdownH1
+hi! link markdownH3 markdownH1
+hi! link markdownH4 markdownH1
+hi! link markdownH5 markdownH1
+hi! link markdownH6 markdownH1
+call <sid>hi('markdownHeadingDelimiter', s:cdBlue, {}, 'none', {})
+call <sid>hi('markdownBold', s:cdBlue, {}, 'bold', {})
+call <sid>hi('markdownRule', s:cdBlue, {}, 'bold', {})
+call <sid>hi('markdownCode', s:cdOrange, {}, 'none', {})
+hi! link markdownCodeDelimiter markdownCode
+call <sid>hi('markdownFootnote', s:cdOrange, {}, 'none', {})
+hi! link markdownFootnoteDefinition markdownFootnote
+call <sid>hi('markdownUrl', s:cdLightBlue, {}, 'underline', {})
+call <sid>hi('markdownLinkText', s:cdOrange, {}, 'none', {})
+call <sid>hi('markdownEscape', s:cdYellowOrange, {}, 'none', {})
+
+" ASCIIDOC (built-in)
+call <sid>hi("asciidocAttributeEntry", s:cdYellowOrange, {}, 'none', {})
+call <sid>hi("asciidocAttributeList", s:cdPink, {}, 'none', {})
+call <sid>hi("asciidocAttributeRef", s:cdYellowOrange, {}, 'none', {})
+call <sid>hi("asciidocHLabel", s:cdBlue, {}, 'bold', {})
+call <sid>hi("asciidocListingBlock", s:cdOrange, {}, 'none', {})
+call <sid>hi("asciidocMacroAttributes", s:cdYellowOrange, {}, 'none', {})
+call <sid>hi("asciidocOneLineTitle", s:cdBlue, {}, 'bold', {})
+call <sid>hi("asciidocPassthroughBlock", s:cdBlue, {}, 'none', {})
+call <sid>hi("asciidocQuotedMonospaced", s:cdOrange, {}, 'none', {})
+call <sid>hi("asciidocTriplePlusPassthrough", s:cdYellow, {}, 'none', {})
+call <sid>hi("asciidocMacro", s:cdPink, {}, 'none', {})
+call <sid>hi("asciidocAdmonition", s:cdOrange, {}, 'none', {})
+call <sid>hi("asciidocQuotedEmphasized", s:cdBlue, {}, 'italic', {})
+call <sid>hi("asciidocQuotedEmphasized2", s:cdBlue, {}, 'italic', {})
+call <sid>hi("asciidocQuotedEmphasizedItalic", s:cdBlue, {}, 'italic', {})
+hi! link asciidocBackslash Keyword
+hi! link asciidocQuotedBold markdownBold
+hi! link asciidocQuotedMonospaced2 asciidocQuotedMonospaced
+hi! link asciidocQuotedUnconstrainedBold asciidocQuotedBold
+hi! link asciidocQuotedUnconstrainedEmphasized asciidocQuotedEmphasized
+hi! link asciidocURL markdownUrl
+
+" JSON (built-in)
+call <sid>hi('jsonKeyword', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsonEscape', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('jsonNull', s:cdBlue, {}, 'none', {})
+call <sid>hi('jsonBoolean', s:cdBlue, {}, 'none', {})
+
+" HTML (built-in)
+call <sid>hi('htmlTag', s:cdGray, {}, 'none', {})
+call <sid>hi('htmlEndTag', s:cdGray, {}, 'none', {})
+call <sid>hi('htmlTagName', s:cdBlue, {}, 'none', {})
+hi! link htmlSpecialTagName htmlTagName
+call <sid>hi('htmlArg', s:cdLightBlue, {}, 'none', {})
+
+" PHP (built-in)
+call <sid>hi('phpClass', s:cdBlueGreen, {}, 'none', {})
+hi! link phpUseClass phpClass
+hi! link phpStaticClasses phpClass
+call <sid>hi('phpMethod', s:cdYellow, {}, 'none', {})
+call <sid>hi('phpFunction', s:cdYellow, {}, 'none', {})
+call <sid>hi('phpInclude', s:cdBlue, {}, 'none', {})
+call <sid>hi('phpRegion', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('phpMethodsVar', s:cdLightBlue, {}, 'none', {})
+
+" CSS (built-in)
+call <sid>hi('cssBraces', s:cdFront, {}, 'none', {})
+call <sid>hi('cssInclude', s:cdPink, {}, 'none', {})
+call <sid>hi('cssTagName', s:cdBlue, {}, 'none', {})
+call <sid>hi('cssClassName', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('cssPseudoClass', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('cssPseudoClassId', s:cdOrange, {}, 'none', {})
+call <sid>hi('cssPseudoClassLang', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('cssIdentifier', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('cssProp', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('cssDefinition', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('cssAttr', s:cdOrange, {}, 'none', {})
+call <sid>hi('cssAttrRegion', s:cdOrange, {}, 'none', {})
+call <sid>hi('cssColor', s:cdOrange, {}, 'none', {})
+call <sid>hi('cssFunction', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('cssFunctionName', s:cdYellow, {}, 'none', {})
+call <sid>hi('cssVendor', s:cdOrange, {}, 'none', {})
+call <sid>hi('cssValueNumber', s:cdOrange, {}, 'none', {})
+call <sid>hi('cssValueLength', s:cdLightGreen, {}, 'none', {})
+call <sid>hi('cssUnitDecorators', s:cdLightGreen, {}, 'none', {})
+call <sid>hi('cssStyle', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('cssImportant', s:cdBlue, {}, 'none', {})
+call <sid>hi('cssSelectorOp', s:cdFront, {}, 'none', {})
+call <sid>hi('cssKeyFrameProp2', s:cdLightGreen, {}, 'none', {})
+
+" JavaScript:
+call <sid>hi('jsVariableDef', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsFuncArgs', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsFuncBlock', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsRegexpString', s:cdLightRed, {}, 'none', {})
+call <sid>hi('jsThis', s:cdBlue, {}, 'none', {})
+call <sid>hi('jsOperatorKeyword', s:cdBlue, {}, 'none', {})
+call <sid>hi('jsDestructuringBlock', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsObjectKey', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsGlobalObjects', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('jsModuleKeyword', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsClassDefinition', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('jsClassKeyword', s:cdBlue, {}, 'none', {})
+call <sid>hi('jsExtendsKeyword', s:cdBlue, {}, 'none', {})
+call <sid>hi('jsExportDefault', s:cdPink, {}, 'none', {})
+call <sid>hi('jsFuncCall', s:cdYellow, {}, 'none', {})
+call <sid>hi('jsObjectValue', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsParen', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsObjectProp', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsIfElseBlock', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsParenIfElse', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsSpreadOperator', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('jsSpreadExpression', s:cdLightBlue, {}, 'none', {})
+
+" Vue:
+call <sid>hi('VueComponentName', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('VueValue', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('VueBrace', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('VueExpression', s:cdYellow, {}, 'none', {})
+call <sid>hi('VueTag', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('VueKey', s:cdPink, {}, 'none', {})
+
+" Typescript:
+call <sid>hi('typescriptLabel', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptTry', s:cdPink, {}, 'none', {})
+call <sid>hi('typescriptExceptions', s:cdPink, {}, 'none', {})
+call <sid>hi('typescriptBraces', s:cdFront, {}, 'none', {})
+call <sid>hi('typescriptEndColons', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptParens', s:cdFront, {}, 'none', {})
+call <sid>hi('typescriptDocTags', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptDocComment', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptLogicSymbols', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptImport', s:cdPink, {}, 'none', {})
+call <sid>hi('typescriptBOM', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptVariableDeclaration', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptVariable', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptExport', s:cdPink, {}, 'none', {})
+call <sid>hi('typescriptAliasDeclaration', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptAliasKeyword', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptClassName', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptAccessibilityModifier', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptOperator', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptArrowFunc', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptMethodAccessor', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptMember', s:cdYellow, {}, 'none', {})
+call <sid>hi('typescriptTypeReference', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptDefault', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptTemplateSB', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('typescriptArrowFuncArg', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptParamImpl', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptFuncComma', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptCastKeyword', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptCall', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptCase', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptReserved', s:cdPink, {}, 'none', {})
+call <sid>hi('typescriptDefault', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptDecorator', s:cdYellow, {}, 'none', {})
+call <sid>hi('typescriptPredefinedType', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptClassHeritage', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptClassExtends', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptClassKeyword', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptBlock', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptDOMDocProp', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptTemplateSubstitution', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptClassBlock', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptFuncCallArg', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptIndexExpr', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptConditionalParen', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptArray', s:cdYellow, {}, 'none', {})
+call <sid>hi('typescriptES6SetProp', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptObjectLiteral', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptTypeParameter', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptEnumKeyword', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptEnum', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptLoopParen', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptParenExp', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptModule', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptAmbientDeclaration', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptModule', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptFuncTypeArrow', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptInterfaceHeritage', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptInterfaceName', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptInterfaceKeyword', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptInterfaceExtends', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptGlobal', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('typescriptAsyncFuncKeyword', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptFuncKeyword', s:cdBlue, {}, 'none', {})
+call <sid>hi('typescriptGlobalMethod', s:cdYellow, {}, 'none', {})
+call <sid>hi('typescriptPromiseMethod', s:cdYellow, {}, 'none', {})
+call <sid>hi('typescriptIdentifierName', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('typescriptCacheMethod', s:cdYellow, {}, 'none', {})
+
+" XML:
+call <sid>hi('xmlTag', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('xmlTagName', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('xmlEndTag', s:cdBlueGreen, {}, 'none', {})
+
+" Ruby:
+call <sid>hi('rubyClassNameTag', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('rubyClassName', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('rubyModuleName', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('rubyConstant', s:cdBlueGreen, {}, 'none', {})
+
+" Golang:
+call <sid>hi('goPackage', s:cdBlue, {}, 'none', {})
+call <sid>hi('goImport', s:cdBlue, {}, 'none', {})
+call <sid>hi('goVar', s:cdBlue, {}, 'none', {})
+call <sid>hi('goConst', s:cdBlue, {}, 'none', {})
+call <sid>hi('goStatement', s:cdPink, {}, 'none', {})
+call <sid>hi('goType', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('goSignedInts', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('goUnsignedInts', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('goFloats', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('goComplexes', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('goBuiltins', s:cdYellow, {}, 'none', {})
+call <sid>hi('goBoolean', s:cdBlue, {}, 'none', {})
+call <sid>hi('goPredefinedIdentifiers', s:cdBlue, {}, 'none', {})
+call <sid>hi('goTodo', s:cdGreen, {}, 'none', {})
+call <sid>hi('goDeclaration', s:cdBlue, {}, 'none', {})
+call <sid>hi('goDeclType', s:cdBlue, {}, 'none', {})
+call <sid>hi('goTypeDecl', s:cdBlue, {}, 'none', {})
+call <sid>hi('goTypeName', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('goVarAssign', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('goVarDefs', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('goReceiver', s:cdFront, {}, 'none', {})
+call <sid>hi('goReceiverType', s:cdFront, {}, 'none', {})
+call <sid>hi('goFunctionCall', s:cdYellow, {}, 'none', {})
+call <sid>hi('goMethodCall', s:cdYellow, {}, 'none', {})
+call <sid>hi('goSingleDecl', s:cdLightBlue, {}, 'none', {})
+
+" Python:
+call <sid>hi('pythonStatement', s:cdBlue, {}, 'none', {})
+call <sid>hi('pythonOperator', s:cdBlue, {}, 'none', {})
+call <sid>hi('pythonException', s:cdPink, {}, 'none', {})
+call <sid>hi('pythonExClass', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('pythonBuiltinObj', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('pythonBuiltinType', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('pythonBoolean', s:cdBlue, {}, 'none', {})
+call <sid>hi('pythonNone', s:cdBlue, {}, 'none', {})
+call <sid>hi('pythonTodo', s:cdBlue, {}, 'none', {})
+call <sid>hi('pythonClassVar', s:cdBlue, {}, 'none', {})
+call <sid>hi('pythonClassDef', s:cdBlueGreen, {}, 'none', {})
+
+" TeX:
+call <sid>hi('texStatement', s:cdBlue, {}, 'none', {})
+call <sid>hi('texBeginEnd', s:cdYellow, {}, 'none', {})
+call <sid>hi('texBeginEndName', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('texOption', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('texBeginEndModifier', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('texDocType', s:cdPink, {}, 'none', {})
+call <sid>hi('texDocTypeArgs', s:cdLightBlue, {}, 'none', {})
+
+" GIT (built-in)
+call <sid>hi('gitcommitHeader', s:cdGray, {}, 'none', {})
+call <sid>hi('gitcommitOnBranch', s:cdGray, {}, 'none', {})
+call <sid>hi('gitcommitBranch', s:cdPink, {}, 'none', {})
+call <sid>hi('gitcommitComment', s:cdGray, {}, 'none', {})
+call <sid>hi('gitcommitSelectedType', s:cdGreen, {}, 'none', {})
+hi! link gitcommitSelectedFile gitcommitSelectedType
+call <sid>hi('gitcommitDiscardedType', s:cdRed, {}, 'none', {})
+hi! link gitcommitDiscardedFile gitcommitDiscardedType
+hi! link gitcommitOverflow gitcommitDiscardedType
+call <sid>hi('gitcommitSummary', s:cdPink, {}, 'none', {})
+call <sid>hi('gitcommitBlank', s:cdPink, {}, 'none', {})
+
+" Lua:
+call <sid>hi('luaFuncCall', s:cdYellow, {}, 'none', {})
+call <sid>hi('luaFuncArgName', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('luaFuncKeyword', s:cdPink, {}, 'none', {})
+call <sid>hi('luaLocal', s:cdPink, {}, 'none', {})
+call <sid>hi('luaBuiltIn', s:cdBlue, {}, 'none', {})
+
+" SH:
+call <sid>hi('shDeref', s:cdLightBlue, {}, 'none', {})
+call <sid>hi('shVariable', s:cdLightBlue, {}, 'none', {})
+
+" SQL:
+call <sid>hi('sqlKeyword', s:cdPink, {}, 'none', {})
+call <sid>hi('sqlFunction', s:cdYellowOrange, {}, 'none', {})
+call <sid>hi('sqlOperator', s:cdPink, {}, 'none', {})
+
+" YAML:
+call <sid>hi('yamlKey', s:cdBlue, {}, 'none', {})
+call <sid>hi('yamlConstant', s:cdBlue, {}, 'none', {})
+
+" C++:
+call <sid>hi('CTagsClass', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('CTagsStructure', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('CTagsNamespace', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('CTagsGlobalVariable', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('CTagsDefinedName ', s:cdBlue, {}, 'none', {})
+highlight def link CTagsFunction Function
+highlight def link CTagsMember Identifier
+
+" C++ color_coded
+call <sid>hi('StructDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('UnionDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('ClassDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TypeRef', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TypedefDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TypeAliasDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('EnumDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TemplateTypeParameter', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TypeAliasTemplateDecl', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('ClassTemplate', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('ClassTemplatePartialSpecialization', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('FunctionTemplate', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TemplateRef', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('TemplateTemplateParameter', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('UsingDeclaration', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('MemberRef', s:cdLightBlue, {}, 'italic', {})
+call <sid>hi('MemberRefExpr', s:cdYellow, {}, 'italic', {})
+call <sid>hi('Namespace', s:cdSilver, {}, 'none', {})
+call <sid>hi('NamespaceRef', s:cdSilver, {}, 'none', {})
+call <sid>hi('NamespaceAlias', s:cdSilver, {}, 'none', {})
+
+" C++ lsp-cxx-highlight
+call <sid>hi('LspCxxHlSymClass', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('LspCxxHlSymStruct', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('LspCxxHlSymEnum', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('LspCxxHlSymTypeAlias', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('LspCxxHlSymTypeParameter', s:cdBlueGreen, {}, 'none', {})
+call <sid>hi('LspCxxHlSymConcept', s:cdBlueGreen, {}, 'italic', {})
+call <sid>hi('LspCxxHlSymNamespace', s:cdSilver, {}, 'none', {})
+
+" Coc Explorer:
+call <sid>hi('CocHighlightText', {}, s:cdSelection, 'none', {})
+call <sid>hi('CocExplorerIndentLine', s:cdCursorDark, {}, 'none', {})
diff --git a/vim/colors/distinguished.vim b/vim/colors/distinguished.vim
new file mode 100644
index 0000000..30934e5
--- /dev/null
+++ b/vim/colors/distinguished.vim
@@ -0,0 +1,179 @@
+" Author: Kim Silkebækken <kim.silkebaekken+vim@gmail.com>
+" Source repository: https://github.com/Lokaltog/vim-distinguished
+
+" Initialization {{{
+ set background=dark
+
+ hi clear
+ if exists('syntax_on')
+ syntax reset
+ endif
+
+ let g:colors_name = 'distinguished'
+
+ if ! has('gui_running')
+ if &t_Co != 256
+ echoe 'The ' . g:colors_name . ' color scheme requires gvim or a 256-color terminal'
+
+ finish
+ endif
+ endif
+" }}}
+" Color dictionary parser {{{
+ function! s:ColorDictParser(color_dict)
+ for [group, group_colors] in items(a:color_dict)
+ exec 'hi ' . group
+ \ . ' ctermfg=' . (group_colors[0] == '' ? 'NONE' : group_colors[0])
+ \ . ' ctermbg=' . (group_colors[1] == '' ? 'NONE' : group_colors[1])
+ \ . ' cterm=' . (group_colors[2] == '' ? 'NONE' : group_colors[2])
+ \
+ \ . ' guifg=' . (group_colors[3] == '' ? 'NONE' : '#' . group_colors[3])
+ \ . ' guibg=' . (group_colors[4] == '' ? 'NONE' : '#' . group_colors[4])
+ \ . ' gui=' . (group_colors[5] == '' ? 'NONE' : group_colors[5])
+ endfor
+ endfunction
+" }}}
+
+" | Highlight group | CTFG | CTBG | CTAttributes | || | GUIFG | GUIBG | GUIAttributes |
+" |--------------------------------|-------|-------|-----------------| || |---------|----------|-----------------|
+call s:ColorDictParser({
+ \ 'Normal' : [ 231, 16, '', 'ffffff', '000000', '']
+ \ , 'Visual' : [ 240, 253, '', '585858', 'dadada', '']
+ \
+ \ , 'Cursor' : [ '', '', '', 'ffffff', 'dd4010', '']
+ \ , 'lCursor' : [ '', '', '', 'ffffff', '89b6e2', '']
+ \
+ \ , 'CursorLine' : [ 16, 231, '', '', '3a3a3a', '']
+ \ , 'CursorColumn' : [ 231, 237, '', 'ffffff', '3a3a3a', '']
+ \
+ \ , 'Folded' : [ 249, 234, '', 'b2b2b2', '1c1c1c', '']
+ \ , 'FoldColumn' : [ 243, 234, '', '767676', '1c1c1c', '']
+ \ , 'SignColumn' : [ 231, 233, 'bold', 'ffffff', '121212', 'bold']
+ \ , 'ColorColumn' : [ '', 233, '', '', '262626', '']
+ \
+ \ , 'StatusLine' : [ 231, 236, 'bold', 'ffffff', '303030', 'bold']
+ \ , 'StatusLineNC' : [ 244, 232, '', '808080', '080808', '']
+ \
+ \ , 'LineNr' : [ 243, 235, '', '767676', '262626', '']
+ \ , 'VertSplit' : [ 240, '', '', '585858', '1c1c1c', '']
+ \
+ \ , 'WildMenu' : [ 234, 231, '', '1c1c1c', 'ffffff', '']
+ \ , 'Directory' : [ 143, '', 'bold', 'afaf5f', '', 'bold']
+ \ , 'Underlined' : [ 130, '', '', 'af5f00', '', '']
+ \
+ \ , 'Question' : [ 74, '', 'bold', '5fafd7', '', 'bold']
+ \ , 'MoreMsg' : [ 214, '', 'bold', 'ffaf00', '', 'bold']
+ \ , 'WarningMsg' : [ 202, '', 'bold', 'ff5f00', '', 'bold']
+ \ , 'ErrorMsg' : [ 196, '', 'bold', 'ff0000', '', 'bold']
+ \
+ \ , 'Comment' : [ 243, 233, '', '767676', '121212', '']
+ \ , 'vimCommentTitleLeader' : [ 250, 233, '', 'bcbcbc', '121212', '']
+ \ , 'vimCommentTitle' : [ 250, 233, '', 'bcbcbc', '121212', '']
+ \ , 'vimCommentString' : [ 245, 233, '', '8a8a8a', '121212', '']
+ \
+ \ , 'TabLine' : [ 231, 238, '', 'ffffff', '444444', '']
+ \ , 'TabLineSel' : [ 255, '', 'bold', 'eeeeee', '', 'bold']
+ \ , 'TabLineFill' : [ 240, 238, '', '585858', '444444', '']
+ \ , 'TabLineNumber' : [ 160, 238, 'bold', 'd70000', '444444', 'bold']
+ \ , 'TabLineClose' : [ 245, 238, 'bold', '8a8a8a', '444444', 'bold']
+ \
+ \ , 'SpellCap' : [ 231, 31, 'bold', 'ffffff', '0087af', 'bold']
+ \
+ \ , 'SpecialKey' : [ 239, '', '', '4e4e4e', '', '']
+ \ , 'NonText' : [ 88, '', '', '870000', '', '']
+ \ , 'MatchParen' : [ 231, 25, 'bold', 'ffffff', '005faf', 'bold']
+ \
+ \ , 'Constant' : [ 137, '', 'bold', 'af875f', '', 'bold']
+ \ , 'Special' : [ 150, '', '', 'afd787', '', '']
+ \ , 'Identifier' : [ 66, '', 'bold', '5f8787', '', 'bold']
+ \ , 'Statement' : [ 186, '', 'bold', 'd7d787', '', 'bold']
+ \ , 'PreProc' : [ 247, '', '', '9e9e9e', '', '']
+ \ , 'Type' : [ 67, '', 'bold', '5f87af', '', 'bold']
+ \ , 'String' : [ 143, '', '', 'afaf5f', '', '']
+ \ , 'Number' : [ 173, '', '', 'd7875f', '', '']
+ \ , 'Define' : [ 173, '', '', 'd7875f', '', '']
+ \ , 'Error' : [ 208, 124, '', 'ff8700', 'af0000', '']
+ \ , 'Function' : [ 179, '', '', 'd7af5f', '', '']
+ \ , 'Include' : [ 173, '', '', 'd7875f', '', '']
+ \ , 'PreCondit' : [ 173, '', '', 'd7875f', '', '']
+ \ , 'Keyword' : [ 173, '', '', 'd7875f', '', '']
+ \ , 'Search' : [ 231, 131, '', '000000', 'ffff5f', 'underline,bold']
+ \ , 'Title' : [ 231, '', '', 'ffffff', '', '']
+ \ , 'Delimiter' : [ 246, '', '', '949494', '', '']
+ \ , 'StorageClass' : [ 187, '', '', 'd7d7af', '', '']
+ \
+ \ , 'TODO' : [ 228, 94, 'bold', 'ffff87', '875f00', 'bold']
+ \
+ \ , 'SyntasticWarning' : [ 220, 94, '', 'ffff87', '875f00', 'bold']
+ \ , 'SyntasticError' : [ 202, 52, '', 'ffff87', '875f00', 'bold']
+ \
+ \ , 'Pmenu' : [ 248, 240, '', 'a8a8a8', '585858', '']
+ \ , 'PmenuSel' : [ 253, 245, '', 'dadada', '8a8a8a', '']
+ \ , 'PmenuSbar' : [ 253, 248, '', 'dadada', 'a8a8a8', '']
+ \
+ \ , 'phpEOL' : [ 245, '', '', 'dadada', '', '']
+ \ , 'phpStringDelim' : [ 94, '', '', '875f00', '', '']
+ \ , 'phpDelimiter' : [ 160, '', '', 'd70000', '', '']
+ \ , 'phpFunctions' : [ 221, '', 'bold', 'ffd75f', '', 'bold']
+ \ , 'phpBoolean' : [ 172, '', 'bold', 'd78700', '', 'bold']
+ \ , 'phpOperator' : [ 215, '', '', 'ffaf5f', '', '']
+ \ , 'phpMemberSelector' : [ 138, '', 'bold', 'af8787', '', 'bold']
+ \ , 'phpParent' : [ 227, '', '', 'ffff5f', '', '']
+ \
+ \ , 'PHPClassTag' : [ 253, '', '', 'dadada', '', '']
+ \ , 'PHPInterfaceTag' : [ 253, '', '', 'dadada', '', '']
+ \ , 'PHPFunctionTag' : [ 222, '', 'bold', 'ffd787', '', 'bold']
+ \
+ \ , 'pythonDocString' : [ 240, 233, '', '585858', '121212', '']
+ \ , 'pythonDocStringTitle' : [ 245, 233, '', 'dadada', '121212', '']
+ \ , 'pythonRun' : [ 65, '', '', '5f875f', '', '']
+ \ , 'pythonBuiltinObj' : [ 67, '', 'bold', '5f87af', '', 'bold']
+ \ , 'pythonSelf' : [ 250, '', 'bold', 'bcbcbc', '', 'bold']
+ \ , 'pythonFunction' : [ 179, '', 'bold', 'd7af5f', '', 'bold']
+ \ , 'pythonClass' : [ 221, '', 'bold', 'ffd75f', '', 'bold']
+ \ , 'pythonExClass' : [ 130, '', '', 'af5f00', '', '']
+ \ , 'pythonException' : [ 130, '', 'bold', 'af5f00', '', 'bold']
+ \ , 'pythonOperator' : [ 186, '', '', 'd7d787', '', '']
+ \ , 'pythonPreCondit' : [ 152, '', 'bold', 'afd7d7', '', 'bold']
+ \ , 'pythonDottedName' : [ 166, '', '', 'd75f00', '', '']
+ \ , 'pythonDecorator' : [ 124, '', 'bold', 'af0000', '', 'bold']
+ \
+ \ , 'PythonInterfaceTag' : [ 109, '', '', '87afaf', '', '']
+ \ , 'PythonClassTag' : [ 221, '', '', 'ffd75f', '', '']
+ \ , 'PythonFunctionTag' : [ 109, '', '', '87afaf', '', '']
+ \ , 'PythonVariableTag' : [ 253, '', '', 'dadada', '', '']
+ \ , 'PythonMemberTag' : [ 145, '', '', 'afafaf', '', '']
+ \
+ \ , 'CTagsImport' : [ 109, '', '', '87afaf', '', '']
+ \ , 'CTagsClass' : [ 221, '', '', 'ffd75f', '', '']
+ \ , 'CTagsFunction' : [ 109, '', '', '87afaf', '', '']
+ \ , 'CTagsGlobalVariable' : [ 253, '', '', 'dadada', '', '']
+ \ , 'CTagsMember' : [ 145, '', '', 'afafaf', '', '']
+ \
+ \ , 'xmlTag' : [ 149, '', 'bold', 'afd75f', '', 'bold']
+ \ , 'xmlTagName' : [ 250, '', '', 'bcbcbc', '', '']
+ \ , 'xmlEndTag' : [ 209, '', 'bold', 'ff875f', '', 'bold']
+ \
+ \ , 'cssImportant' : [ 166, '', 'bold', 'd75f00', '', 'bold']
+ \
+ \ , 'DiffAdd' : [ 112, 22, '', '87d700', '005f00', '']
+ \ , 'DiffChange' : [ 220, 94, '', 'ffd700', '875f00', '']
+ \ , 'DiffDelete' : [ 160, '', '', 'd70000', '', '']
+ \ , 'DiffText' : [ 220, 94, 'reverse,bold', 'ffd700', '875f00', 'reverse,bold']
+ \
+ \ , 'diffLine' : [ 68, '', 'bold', '5f87d7', '', 'bold']
+ \ , 'diffFile' : [ 242, '', '', '6c6c6c', '', '']
+ \ , 'diffNewFile' : [ 242, '', '', '6c6c6c', '', '']
+\ })
+
+hi link htmlTag xmlTag
+hi link htmlTagName xmlTagName
+hi link htmlEndTag xmlEndTag
+
+hi link phpCommentTitle vimCommentTitle
+hi link phpDocTags vimCommentString
+hi link phpDocParam vimCommentTitle
+
+hi link diffAdded DiffAdd
+hi link diffChanged DiffChange
+hi link diffRemoved DiffDelete
diff --git a/vim/colors/grb256.vim b/vim/colors/grb256.vim
new file mode 100644
index 0000000..10c57c0
--- /dev/null
+++ b/vim/colors/grb256.vim
@@ -0,0 +1,32 @@
+" Based on
+runtime colors/ir_black.vim
+
+let g:colors_name = "grb256"
+
+hi pythonSpaceError ctermbg=red guibg=red
+
+hi Comment ctermfg=darkgray
+
+hi StatusLine ctermbg=darkgrey ctermfg=white
+hi StatusLineNC ctermbg=black ctermfg=lightgrey
+hi VertSplit ctermbg=black ctermfg=lightgrey
+hi LineNr ctermfg=darkgray
+hi CursorLine guifg=NONE guibg=#121212 gui=NONE ctermfg=NONE ctermbg=234
+hi Function guifg=#FFD2A7 guibg=NONE gui=NONE ctermfg=yellow ctermbg=NONE cterm=NONE
+hi Visual guifg=NONE guibg=#262D51 gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE
+
+hi Error guifg=NONE guibg=NONE gui=undercurl ctermfg=16 ctermbg=red cterm=NONE guisp=#FF6C60 " undercurl color
+hi ErrorMsg guifg=white guibg=#FF6C60 gui=BOLD ctermfg=16 ctermbg=red cterm=NONE
+hi WarningMsg guifg=white guibg=#FF6C60 gui=BOLD ctermfg=16 ctermbg=red cterm=NONE
+hi SpellBad guifg=white guibg=#FF6C60 gui=BOLD ctermfg=16 ctermbg=160 cterm=NONE
+
+" ir_black doesn't highlight operators for some reason
+hi Operator guifg=#6699CC guibg=NONE gui=NONE ctermfg=lightblue ctermbg=NONE cterm=NONE
+
+highlight DiffAdd term=reverse cterm=bold ctermbg=lightgreen ctermfg=16
+highlight DiffChange term=reverse cterm=bold ctermbg=lightblue ctermfg=16
+highlight DiffText term=reverse cterm=bold ctermbg=lightgray ctermfg=16
+highlight DiffDelete term=reverse cterm=bold ctermbg=lightred ctermfg=16
+
+highlight PmenuSel ctermfg=16 ctermbg=156
+
diff --git a/vim/colors/gruber-darker.vim b/vim/colors/gruber-darker.vim
new file mode 100644
index 0000000..1bd9d87
--- /dev/null
+++ b/vim/colors/gruber-darker.vim
@@ -0,0 +1,228 @@
+" GruberDarker Theme for Vim
+"
+" Adapted from an Emacs theme:
+" https://github.com/rexim/gruber-darker-theme
+"
+" Colorscheme template: https://github.com/mhartington/oceanic-next/blob/master/colors/OceanicNext.vim
+" --------------------------------------------
+
+" {{{ Setup
+ set background=dark
+ hi clear
+ if exists("syntax_on")
+ syntax reset
+ endif
+ let g:colors_name="GruberDarker"
+" }}}
+" {{{ Italics
+ let g:gruber_terminal_italic = get(g:, 'gruber_terminal_italic', 0)
+ let s:italic = ""
+ if g:gruber_terminal_italic == 1
+ let s:italic = "italic"
+ endif
+"}}}
+" {{{ Bold
+ let g:gruber_terminal_bold = get(g:, 'gruber_terminal_bold', 0)
+ let s:bold = ""
+ if g:gruber_terminal_bold == 1
+ let s:bold = "bold"
+ endif
+"}}}
+" {{{ Colors
+ let s:gruberFG=['#e4e4ef', '253']
+ let s:gruberFG1=['#f4f4ff', '254']
+ let s:gruberFG2=['#f5f5ff', '240']
+ let s:gruberFG3=['#65737e', '243']
+ let s:gruberWhite=['#ffffff', '15']
+ let s:gruberBlack=['#000000', '0']
+ let s:gruberBG=['#181818', '233']
+ let s:gruberBG1=['#282828', '235']
+ let s:gruberBG2=['#453d41', '238']
+ let s:gruberLightRed=['#c73c3f', '203']
+ let s:gruberRed=['#f43841', '160']
+ let s:gruberNiagara=['#96a6c8', '147']
+ let s:gruberQuartz=['#95a99f', '108']
+ let s:gruberGreen=['#73c936', '70']
+ let s:gruberMain=['#ffdd33', '220']
+ let s:gruberBrown=['#cc8c3c', '172']
+ let s:gruberPurple=['#9e95c7', '98']
+ let s:gruberLightBlue=['#0087d7', '32']
+ let s:gruberBlue=['#0000d7', '20']
+ let s:gruberGold=['#d7af00', '178']
+ let s:none=['NONE', 'NONE']
+
+" {{{ Highlight function
+function! <sid>hi(group, fg, bg, attr, attrsp)
+ " fg, bg, attr, attrsp
+ if !empty(a:fg)
+ exec "hi " . a:group . " guifg=" . a:fg[0]
+ exec "hi " . a:group . " ctermfg=" . a:fg[1]
+ endif
+ if !empty(a:bg)
+ exec "hi " . a:group . " guibg=" . a:bg[0]
+ exec "hi " . a:group . " ctermbg=" . a:bg[1]
+ endif
+ if a:attr != ""
+ exec "hi " . a:group . " gui=" . a:attr
+ exec "hi " . a:group . " cterm=" . a:attr
+ endif
+ if !empty(a:attrsp)
+ exec "hi " . a:group . " guisp=" . a:attrsp[0]
+ endif
+endfunction
+" }}}
+" {{{ call <sid>:hi(group, fg, bg, gui, guisp)
+call <sid>hi('Bold', '', '', 'bold', '')
+call <sid>hi('Debug', s:gruberFG2, '', '', '')
+call <sid>hi('Directory', s:gruberLightBlue, '', '', '')
+call <sid>hi('ErrorMsg', s:gruberWhite, s:gruberRed, '', '')
+call <sid>hi('Exception', s:gruberBrown, '', '', '')
+call <sid>hi('FoldColumn', s:gruberBrown, s:gruberFG2, '', '')
+call <sid>hi('Folded', s:gruberBrown, s:gruberFG2, s:italic, '')
+call <sid>hi('IncSearch', s:gruberBlack, s:gruberFG2, 'NONE', '')
+call <sid>hi('Italic', '', '', s:italic, '')
+
+call <sid>hi('Macro', s:gruberFG, '', '', '')
+call <sid>hi('MatchParen', s:gruberBG2, s:gruberMain, '', '')
+call <sid>hi('ModeMsg', s:gruberFG2, '', '', '')
+call <sid>hi('MoreMsg', s:gruberFG2, '', '', '')
+call <sid>hi('Question', s:gruberNiagara, '', '', '')
+call <sid>hi('Search', s:gruberBlack, s:gruberMain, '', '')
+call <sid>hi('SpecialKey', s:gruberFG2, '', '', '')
+call <sid>hi('TooLong', s:gruberFG2, '', '', '')
+call <sid>hi('Underlined', s:gruberPurple, '', '', '')
+call <sid>hi('Visual', '', s:gruberBG2, '', '')
+call <sid>hi('VisualNOS', s:gruberRed, '', '', '')
+call <sid>hi('WarningMsg', s:gruberRed, '', '', '')
+call <sid>hi('WildMenu', s:gruberBlack, s:gruberMain, '', '')
+call <sid>hi('Title', s:gruberQuartz, '', '', '')
+call <sid>hi('Conceal', s:gruberFG, s:gruberBG, '', '')
+call <sid>hi('Cursor', s:gruberBG, s:gruberFG, '', '')
+call <sid>hi('NonText', s:gruberFG2, '', '', '')
+call <sid>hi('Normal', s:gruberFG, s:gruberBG, '', '')
+call <sid>hi('EndOfBuffer', s:gruberFG, s:gruberBG, '', '')
+call <sid>hi('LineNr', s:gruberFG, s:gruberBG, '', '')
+call <sid>hi('SignColumn', s:none, s:none, '', '')
+call <sid>hi('VertSplit', s:gruberFG2, s:gruberBG1, '', '')
+call <sid>hi('ColorColumn', '', s:gruberBG2, '', '')
+call <sid>hi('CursorColumn', '', s:gruberBG2, '', '')
+call <sid>hi('CursorLine', '', s:gruberBG2, 'NONE', '')
+call <sid>hi('CursorLineNr', s:gruberMain, s:gruberBG, '', '')
+call <sid>hi('PMenu', s:gruberFG, s:gruberBG1, '', '')
+call <sid>hi('PMenuSel', s:gruberFG, s:gruberBG2, '', '')
+call <sid>hi('PmenuSbar', '', s:gruberBG, '', '')
+call <sid>hi('PmenuThumb', '', s:gruberBG, '', '')
+call <sid>hi('helpExample', s:gruberMain, '', '', '')
+call <sid>hi('helpCommand', s:gruberMain, '', '', '')
+
+" Standard syntax highlighting
+call <sid>hi('Boolean', s:gruberQuartz, '', '', '')
+call <sid>hi('Character', s:gruberGreen, '', '', '')
+call <sid>hi('Comment', s:gruberBrown, '', s:italic, '')
+call <sid>hi('Conditional', s:gruberMain, '', '', '')
+call <sid>hi('Constant', s:gruberQuartz, '', '', '')
+call <sid>hi('Define', s:gruberMain, '', '', '')
+call <sid>hi('Delimiter', s:gruberFG, '', '', '')
+call <sid>hi('Float', s:gruberQuartz, '', '', '')
+call <sid>hi('Function', s:gruberNiagara, '', '', '')
+call <sid>hi('Identifier', s:gruberNiagara, '', '', '')
+call <sid>hi('Include', s:gruberMain, '', '', '')
+call <sid>hi('Keyword', s:gruberMain, '', '', '')
+call <sid>hi('Label', s:gruberFG, '', '', '')
+call <sid>hi('Number', s:gruberQuartz, '', '', '')
+call <sid>hi('Operator', s:gruberFG, '', '', '')
+call <sid>hi('PreProc', s:gruberFG1, '', '', '')
+call <sid>hi('Repeat', s:gruberMain, '', '', '')
+call <sid>hi('Special', s:gruberMain, '', '', '')
+call <sid>hi('SpecialChar', s:gruberMain, '', '', '')
+call <sid>hi('Statement', s:gruberMain, '', '', '')
+call <sid>hi('StorageClass', s:gruberMain, '', '', '')
+call <sid>hi('String', s:gruberGreen, '', '', '')
+call <sid>hi('Structure', s:gruberMain, '', '', '')
+call <sid>hi('Todo', s:gruberBG, s:gruberMain, '', '')
+call <sid>hi('Type', s:gruberQuartz, '', '', '')
+call <sid>hi('Typedef', s:gruberQuartz, '', '', '')
+
+call <sid>hi('SpellBad', '', '', 'undercurl', '')
+call <sid>hi('SpellLocal', '', '', 'undercurl', '')
+call <sid>hi('SpellCap', '', '', 'undercurl', '')
+call <sid>hi('SpellRare', '', '', 'undercurl', '')
+
+" Haskell Highlighting
+call <sid>hi('hsTypeDef', s:gruberMain, '', '', '')
+call <sid>hi('hsStructure', s:gruberMain, '', '', '')
+call <sid>hi('hsStatement', s:gruberMain, '', '', '')
+call <sid>hi('hsconditional', s:gruberMain, '', '', '')
+call <sid>hi('hsconditional', s:gruberMain, '', '', '')
+call <sid>hi('hsconditional', s:gruberMain, '', '', '')
+
+" Java Highlighting
+" TODO Fix function definitions
+call <sid>hi('javaConstant', s:gruberQuartz, '', '', '')
+call <sid>hi('javaConditional', s:gruberMain, '', '', '')
+call <sid>hi('javaOperator', s:gruberMain, '', '', '')
+call <sid>hi('javaExceptions', s:gruberMain, '', '', '')
+call <sid>hi('javaAssert', s:gruberMain, '', '', '')
+call <sid>hi('javaClassDecl', s:gruberMain, '', '', '')
+call <sid>hi('javaBraces', s:gruberFG, '', '', '')
+call <sid>hi('javaLangObject', s:gruberFG, '', '', '')
+call <sid>hi('javaType', s:gruberQuartz, '', '', '')
+
+" Python Highlighting
+call <sid>hi('pythonRepeat', s:gruberMain, '', '', '')
+call <sid>hi('pythonOperator', s:gruberMain, '', '', '')
+call <sid>hi('pythonException', s:gruberMain, '', '', '')
+
+
+call <sid>hi('markdownCode', s:gruberGreen, '', '', '')
+call <sid>hi('markdownCodeBlock', s:gruberGreen, '', '', '')
+call <sid>hi('markdownHeadingDelimiter', s:gruberNiagara, '', '', '')
+call <sid>hi('markdownItalic', s:gruberPurple, '', s:italic, '')
+call <sid>hi('markdownBold', s:gruberMain, '', s:bold, '')
+call <sid>hi('markdownCodeDelimiter', s:gruberBrown, '', s:italic, '')
+call <sid>hi('markdownError', s:gruberFG, s:gruberBG1, '', '')
+
+call <sid>hi('ALEErrorSign', s:gruberRed, s:gruberBG2, s:bold, '')
+call <sid>hi('ALEWarningSign', s:gruberMain, s:gruberBG2, s:bold, '')
+call <sid>hi('ALEInfoSign', s:gruberGreen, s:gruberBG2, s:bold, '')
+
+call <sid>hi('NERDTreeExecFile', s:gruberFG, '', '', '')
+call <sid>hi('NERDTreeDirSlash', s:gruberNiagara, '', '', '')
+call <sid>hi('NERDTreeOpenable', s:gruberNiagara, '', '', '')
+call <sid>hi('NERDTreeFile', '', s:none, '', '')
+call <sid>hi('NERDTreeFlags', s:gruberNiagara, '', '', '')
+
+call <sid>hi('vimfilerLeaf', s:gruberFG, '', '', '')
+call <sid>hi('vimfilerNormalFile', s:gruberFG, s:gruberBG1, '', '')
+call <sid>hi('vimfilerOpenedFile', s:gruberNiagara, '', '', '')
+call <sid>hi('vimfilerClosedFile', s:gruberNiagara, '', '', '')
+
+" }}}
+
+let g:terminal_color_0=s:gruberBG1[0]
+let g:terminal_color_8=s:gruberBG1[0]
+
+let g:terminal_color_1=s:gruberLightRed[0]
+let g:terminal_color_9=s:gruberLightRed[0]
+
+let g:terminal_color_2=s:gruberGreen[0]
+let g:terminal_color_10=s:gruberGreen[0]
+
+let g:terminal_color_3=s:gruberMain[0]
+let g:terminal_color_11=s:gruberMain[0]
+
+let g:terminal_color_4=s:gruberNiagara[0]
+let g:terminal_color_12=s:gruberNiagara[0]
+
+let g:terminal_color_5=s:gruberPurple[0]
+let g:terminal_color_13=s:gruberPurple[0]
+
+let g:terminal_color_6=s:gruberNiagara[0]
+let g:terminal_color_14=s:gruberNiagara[0]
+
+let g:terminal_color_7=s:gruberFG[0]
+let g:terminal_color_15=s:gruberFG[0]
+
+let g:terminal_color_background=s:gruberBG1[0]
+let g:terminal_color_foreground=s:gruberWhite[0]
+
diff --git a/vim/colors/hemisu.vim b/vim/colors/hemisu.vim
new file mode 100644
index 0000000..95d39e2
--- /dev/null
+++ b/vim/colors/hemisu.vim
@@ -0,0 +1,229 @@
+" hemisu.vim - Vim color scheme
+" ----------------------------------------------------------
+" Author: Noah Frederick (http://noahfrederick.com/)
+" Version: 3.4
+" License: Creative Commons Attribution-NonCommercial
+" 3.0 Unported License (see README.md)
+" ----------------------------------------------------------
+
+" Setup ----------------------------------------------------{{{
+" Reset syntax highlighting
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+
+" Declare theme name
+let g:colors_name = "hemisu"
+
+"}}}
+" The Colors -----------------------------------------------{{{
+" Define reusable colors
+let s:black = { "gui": "#080D14", "cterm": "16" }
+let s:white = { "gui": "#FFFFFF", "cterm": "231" }
+let s:almostWhite = { "gui": "#FFDABD", "cterm": "255" }
+let s:almostBlack = { "gui": "#111111", "cterm": "233" }
+let s:middleDarkGrey = { "gui": "#777777", "cterm": "241" }
+let s:middleLightGrey = { "gui": "#999999", "cterm": "246" }
+let s:lightGrey = { "gui": "#BBBBBB", "cterm": "249" }
+let s:darkGrey = { "gui": "#444444", "cterm": "238" }
+
+let s:darkPink = { "gui": "#63001C", "cterm": "88" }
+let s:middleDarkPink = { "gui": "#FF0055", "cterm": "197" }
+let s:middleLightPink = { "gui": "#D65E76", "cterm": "167" }
+let s:lightPink = { "gui": "#FFAFAF", "cterm": "217" }
+
+let s:darkBlue = { "gui": "#005F87", "cterm": "24" }
+let s:middleDarkBlue = { "gui": "#538192", "cterm": "24" }
+let s:middleLightBlue = { "gui": "#9FD3E6", "cterm": "116" }
+let s:lightBlue = { "gui": "#CBE4EE", "cterm": "195" }
+let s:verylightBlue = { "gui": "#D7F9FC", "cterm": "195" }
+let s:lightCyan = { "gui": "#84D9A5", "cterm": "195" }
+let s:lightPurple = { "gui": "#8CFAF1", "cterm": "195" }
+
+let s:darkGreen = { "gui": "#5F5F00", "cterm": "58" }
+let s:middleDarkGreen = { "gui": "#739200", "cterm": "64" }
+let s:middleLightGreen = { "gui": "#C78C52", "cterm": "149" }
+let s:lightGreen = { "gui": "#EAEB88", "cterm": "157" }
+let s:intenseGreen = { "gui": "#52EB66", "cterm": "157" }
+
+let s:darkGold = { "gui": "#C2B85B", "cterm": "149" }
+
+let s:darkTan = { "gui": "#503D15", "cterm": "52" }
+let s:lightTan = { "gui": "#ECE1C8", "cterm": "230" }
+
+" Assign to semantic categories based on background color
+if &background == "dark"
+ " Dark theme
+ let s:bg = s:black
+ let s:norm = s:almostWhite
+ let s:comment = s:middleDarkGrey
+ let s:dimmed = s:middleLightGrey
+ let s:subtle = s:darkGrey
+ let s:faint = s:almostBlack
+ let s:accent1 = s:middleLightBlue
+ let s:accent2 = s:darkGold
+ let s:accent3 = s:lightCyan
+ let s:accent4 = s:lightTan
+ let s:accent5 = s:verylightBlue
+ let s:accent6 = s:middleLightGreen
+ let s:normRed = s:middleLightPink
+ let s:normGreen = s:middleLightGreen
+ let s:normBlue = s:middleLightBlue
+ let s:faintRed = s:darkPink
+ let s:faintGreen = s:darkGreen
+ let s:faintBlue = s:darkBlue
+else
+ " Light theme
+ let s:bg = s:white
+ let s:norm = s:almostBlack
+ let s:comment = s:middleLightGrey
+ let s:dimmed = s:middleDarkGrey
+ let s:subtle = s:lightGrey
+ let s:faint = s:almostWhite
+ let s:accent1 = s:middleDarkBlue
+ let s:accent2 = s:middleDarkGreen
+ let s:accent3 = s:middleDarkPink
+ let s:accent4 = s:darkTan
+ let s:normRed = s:middleDarkPink
+ let s:normGreen = s:middleDarkGreen
+ let s:normBlue = s:middleDarkBlue
+ let s:faintRed = s:lightPink
+ let s:faintGreen = s:lightGreen
+ let s:faintBlue = s:lightBlue
+endif
+
+"}}}
+" Utility Function -----------------------------------------{{{
+function! s:h(group, style)
+ execute "highlight" a:group
+ \ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE")
+ \ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE")
+ \ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE")
+ \ "gui=" (has_key(a:style, "gui") ? a:style.gui : "NONE")
+ \ "ctermfg=" (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE")
+ \ "ctermbg=" (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE")
+ \ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE")
+endfunction
+
+"}}}
+" Highlights - Vim >= 7 ------------------------------------{{{
+if version >= 700
+ call s:h("CursorLine", { "bg": s:faint })
+ call s:h("MatchParen", { "fg": s:accent1, "bg": s:faint, "gui": "bold" })
+ call s:h("Pmenu", { "bg": s:faint })
+ call s:h("PmenuThumb", { "bg": s:norm })
+ call s:h("PmenuSBar", { "bg": s:subtle })
+ call s:h("PmenuSel", { "bg": s:faintBlue })
+ call s:h("ColorColumn", { "bg": s:faintRed })
+ call s:h("SpellBad", { "sp": s:normRed, "gui": "undercurl" })
+ call s:h("SpellCap", { "sp": s:accent1, "gui": "undercurl" })
+ call s:h("SpellRare", { "sp": s:normGreen, "gui": "undercurl" })
+ call s:h("SpellLocal", { "sp": s:accent4, "gui": "undercurl" })
+ hi! link CursorColumn CursorLine
+
+ " Use background for cterm Spell*, which does not support undercurl
+ execute "hi! SpellBad ctermbg=" s:faintRed.cterm
+ execute "hi! SpellCap ctermbg=" s:faintBlue.cterm
+ execute "hi! SpellRare ctermbg=" s:faintGreen.cterm
+ execute "hi! SpellLocal ctermbg=" s:faint.cterm
+endif
+
+"}}}
+" Highlights - UI ------------------------------------------{{{
+call s:h("Normal", { "fg": s:norm, "bg": s:bg })
+call s:h("NonText", { "fg": s:subtle })
+call s:h("Cursor", { "fg": s:bg, "bg": s:accent3 })
+call s:h("Visual", { "bg": s:faintBlue })
+call s:h("IncSearch", { "bg": s:faintBlue })
+call s:h("Search", { "bg": s:faintGreen })
+call s:h("StatusLine", { "fg": s:norm, "bg": s:faint, "gui": "bold", "cterm": "bold" })
+call s:h("StatusLineNC", { "fg": s:dimmed, "bg": s:faint })
+call s:h("SignColumn", { "fg": s:norm })
+call s:h("VertSplit", { "fg": s:subtle, "bg": s:faint })
+call s:h("TabLine", { "fg": s:dimmed, "bg": s:faint })
+call s:h("TabLineSel", { "gui": "bold", "cterm": "bold" })
+call s:h("Folded", { "fg": s:comment, "bg": s:faint })
+call s:h("Directory", { "fg": s:accent1 })
+call s:h("Title", { "fg": s:accent4, "gui": "bold", "cterm": "bold" })
+call s:h("ErrorMsg", { "bg": s:faintRed })
+call s:h("DiffAdd", { "bg": s:faintGreen })
+call s:h("DiffChange", { "bg": s:faintRed })
+call s:h("DiffDelete", { "fg": s:normRed, "bg": s:faintRed })
+call s:h("DiffText", { "bg": s:faintRed, "gui": "bold", "cterm": "bold" })
+call s:h("User1", { "fg": s:bg, "bg": s:normGreen })
+call s:h("User2", { "fg": s:bg, "bg": s:normRed })
+call s:h("User3", { "fg": s:bg, "bg": s:normBlue })
+hi! link WildMenu IncSearch
+hi! link FoldColumn SignColumn
+hi! link WarningMsg ErrorMsg
+hi! link MoreMsg Title
+hi! link Question MoreMsg
+hi! link ModeMsg MoreMsg
+hi! link TabLineFill StatusLineNC
+hi! link LineNr NonText
+hi! link SpecialKey NonText
+
+"}}}
+" Highlights - Generic Syntax ------------------------------{{{
+call s:h("Delimiter", { "fg": s:dimmed })
+call s:h("Comment", { "fg": s:dimmed, "gui": "italic" })
+call s:h("Underlined", { "fg": s:accent1, "gui": "underline", "cterm": "underline" })
+call s:h("Type", { "fg": s:accent3 })
+call s:h("String", { "fg": s:accent2 })
+call s:h("Constant", { "fg": s:accent6 })
+call s:h("Statement", { "fg": s:accent5 })
+"call s:h("Number", { "fg": s:lightPurple})
+call s:h("Identifier", { "fg": s:norm})
+" call s:h("@lsp.mod.declaration", { "fg": s:lightGreen})
+" call s:h("@lsp.mod.class", { "fg": s:accent3})
+" call s:h("@lsp.typemod.variable.globalScope", { "fg": s:accent6})
+" call s:h("@lsp.type.namespace", { "fg": s:norm})
+call s:h("Keyword", { "fg": s:accent5 })
+call s:h("Todo", { "fg": s:normRed, "gui": "bold", "cterm": "bold" })
+
+hi! link StorageClass Keyword
+hi! link Number Normal
+hi! link Special Constant
+hi! link PreProc Constant
+hi! link Error ErrorMsg
+
+"}}}
+" Highlights - HTML ----------------------------------------{{{
+hi! link htmlLink Underlined
+hi! link htmlTag Type
+hi! link htmlEndTag htmlTag
+
+"}}}
+" Highlights - CSS -----------------------------------------{{{
+hi! link cssBraces Delimiter
+hi! link cssSelectorOp cssBraces
+hi! link cssClassName Normal
+
+"}}}
+" Highlights - Markdown ------------------------------------{{{
+hi! link mkdListItem mkdDelimiter
+
+"}}}
+" Highlights - Shell ---------------------------------------{{{
+hi! link shOperator Delimiter
+hi! link shCaseBar Delimiter
+
+"}}}
+" Highlights - JavaScript ----------------------------------{{{
+hi! link javaScriptValue Constant
+hi! link javaScriptNull Constant
+hi! link javaScriptBraces Normal
+
+"}}}
+" Highlights - Help ----------------------------------------{{{
+hi! link helpExample String
+hi! link helpHeadline Title
+hi! link helpSectionDelim Comment
+hi! link helpHyperTextEntry Statement
+hi! link helpHyperTextJump Underlined
+hi! link helpURL Underlined
+
+"}}}
+
+" vim: fdm=marker:sw=2:sts=2:et
diff --git a/vim/colors/hipster.vim b/vim/colors/hipster.vim
new file mode 100644
index 0000000..973aeb1
--- /dev/null
+++ b/vim/colors/hipster.vim
@@ -0,0 +1,102 @@
+" --- hipster ---
+" Author: Conner McDaniel (connermcd.com)
+if version > 580
+ hi clear
+ if exists("syntax_on")
+ syntax reset
+ endif
+endif
+
+let g:colors_name = "hipster"
+set t_Co=256
+set background=dark
+
+" Vim >= 7.0 specific colors
+if version >= 700
+hi CursorLine guifg=NONE guibg=#32322f guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE
+hi CursorLineNr guifg=#8a8a8a guibg=#32322f guisp=NONE gui=NONE ctermfg=245 ctermbg=236 cterm=NONE
+hi MatchParen guifg=#eae788 guibg=#857b6f guisp=NONE gui=bold ctermfg=228 ctermbg=101 cterm=bold
+hi PMenu guifg=#dddddd guibg=#423d35 guisp=#423d35 gui=NONE ctermfg=253 ctermbg=238 cterm=NONE
+hi PMenuSbar guifg=NONE guibg=#848688 guisp=#848688 gui=NONE ctermfg=NONE ctermbg=102 cterm=NONE
+hi PMenuSel guifg=#ffd700 guibg=#706070 guisp=#706070 gui=bold ctermfg=220 ctermbg=242 cterm=bold
+hi PMenuThumb guifg=NONE guibg=#a4a5a8 guisp=#a4a5a8 gui=NONE ctermfg=NONE ctermbg=248 cterm=NONE
+endif
+
+" General colors
+hi Normal guifg=#f9f8ff guibg=#000000 guisp=NONE gui=NONE ctermfg=15 ctermbg=NONE cterm=NONE
+hi Cursor guifg=NONE guibg=#cd6f5c guisp=#cd6f5c gui=NONE ctermfg=NONE ctermbg=173 cterm=NONE
+hi Visual guifg=#c3c6ca guibg=#554d4b guisp=NONE gui=NONE ctermfg=251 ctermbg=239 cterm=NONE
+hi Visualnos guifg=#c3c6ca guibg=#303030 guisp=NONE gui=NONE ctermfg=251 ctermbg=236 cterm=NONE
+hi Search guifg=#000000 guibg=#8dabcd guisp=#8dabcd gui=NONE ctermfg=NONE ctermbg=110 cterm=NONE
+hi Folded guifg=#857b6f guibg=#000000 guisp=NONE gui=NONE ctermfg=241 ctermbg=233 cterm=NONE
+hi StatusLineNC guifg=NONE guibg=#262626 guisp=#262626 gui=NONE ctermfg=NONE ctermbg=235 cterm=NONE
+hi VertSplit guifg=#444444 guibg=#444444 guisp=NONE gui=NONE ctermfg=238 ctermbg=238 cterm=NONE
+" hi StatusLineNC guifg=#857b6f guibg=#444444 guisp=NONE gui=NONE ctermfg=241 ctermbg=238 cterm=NONE
+hi LineNr guifg=#595959 guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE
+hi SpecialKey guifg=#87beeb guibg=NONE guisp=NONE gui=NONE ctermfg=117 ctermbg=NONE cterm=NONE
+hi WarningMsg guifg=#bd4848 guibg=#f9f8ff guisp=#f9f8ff gui=bold ctermfg=131 ctermbg=15 cterm=bold
+hi ErrorMsg guifg=#bd5353 guibg=NONE guisp=NONE gui=NONE ctermfg=131 ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#ffff00 guibg=NONE guisp=NONE gui=NONE ctermfg=11 ctermbg=NONE cterm=NONE
+
+" Diff highlighting
+hi DiffAdd guifg=NONE guibg=#301430 guisp=#3c664e gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE
+hi DiffDelete guifg=#ad3838 guibg=#301430 guisp=#301430 gui=NONE ctermfg=131 ctermbg=236 cterm=NONE
+hi DiffChange guifg=NONE guibg=#7e8c2d guisp=#331833 gui=NONE ctermfg=NONE ctermbg=238 cterm=NONE
+
+" Syntax highlighting
+hi Keyword guifg=#d6d69a guibg=NONE guisp=NONE gui=NONE ctermfg=186 ctermbg=NONE cterm=NONE
+hi Function guifg=#bf9b76 guibg=NONE guisp=NONE gui=NONE ctermfg=137 ctermbg=NONE cterm=NONE
+hi Constant guifg=#44807d guibg=NONE guisp=NONE gui=NONE ctermfg=66 ctermbg=NONE cterm=NONE
+hi Number guifg=#386175 guibg=NONE guisp=NONE gui=NONE ctermfg=66 ctermbg=NONE cterm=NONE
+hi PreProc guifg=#ad5234 guibg=NONE guisp=NONE gui=NONE ctermfg=131 ctermbg=NONE cterm=NONE
+hi Statement guifg=#418db3 guibg=NONE guisp=NONE gui=NONE ctermfg=67 ctermbg=NONE cterm=NONE
+hi Identifier guifg=#5f875f guibg=NONE guisp=NONE gui=NONE ctermfg=65 ctermbg=NONE cterm=NONE
+hi Type guifg=#babaa2 guibg=NONE guisp=NONE gui=NONE ctermfg=144 ctermbg=NONE cterm=NONE
+hi Special guifg=#7a490d guibg=NONE guisp=NONE gui=NONE ctermfg=3 ctermbg=NONE cterm=NONE
+hi String guifg=#7e8c2d guibg=NONE guisp=NONE gui=NONE ctermfg=100 ctermbg=NONE cterm=NONE
+hi Comment guifg=#576157 guibg=NONE guisp=NONE gui=NONE ctermfg=241 ctermbg=NONE cterm=NONE
+hi Todo guifg=#a1481e guibg=NONE guisp=NONE gui=NONE ctermfg=130 ctermbg=NONE cterm=NONE
+
+" Linking
+hi! link FoldColumn Folded
+hi! link CursorColumn CursorLine
+hi! link Search CursorLine
+hi! link NonText LineNr
+hi! link DiffText DiffChange
+hi! link SpellBad ErrorMsg
+hi! link SpellCap ErrorMsg
+hi! link Error ErrorMsg
+hi! link Question MoreMsg
+hi! link htmlBold Special
+hi! link htmlItalic Number
+hi! link Title Function
+
+" Unhighlighted:
+" CursorIM
+" CursorColumn
+" DiffText
+" Directory
+" FoldColumn
+" IncSearch
+" Menu
+" ModeMsg
+" MoreMsg
+" NonText
+" PmenuSbar
+" PmenuThumb
+" Question
+" Scrollbar
+" SignColumn
+" SpellBad
+" SpellLocal
+" SpellRare
+" TabLine
+" TabLineFill
+" TabLineSel
+" Tooltip
+" User1
+" User9
+" WildMenu
+" Links
+
+" vim: ts=3:sw=3:et
diff --git a/vim/plugged/vim-go b/vim/plugged/vim-go
-Subproject 11752f23743ac55ffa8b0662ae480ebfb0dc855
+Subproject 14eedf6135cf4253b0ed48a0b53d6834a40da1c
diff --git a/vim/vimrc b/vim/vimrc
index 55450dc..cab8076 100644
--- a/vim/vimrc
+++ b/vim/vimrc
@@ -1,261 +1,219 @@
-"Fark all from https://jamesdixon.dev/posts/a-minimal-vimrc/
+" Setup {{{
set nocompatible
-
-if filereadable(expand('$VIMRUNTIME/defaults.vim'))
- unlet! g:skip_defaults_vim
- source $VIMRUNTIME/defaults.vim
-endif
-"
-"
-" leader
+filetype indent on
+filetype plugin on
+" syntax on
+runtime macros/matchit.vim "allows jumping between brackets with % in normal mode
+" }}}
+" Leaders {{{
let maplocalleader = "\\"
let mapleader = ","
-
-" encryption method when using :X
-set cm=blowfish2
-
-" Source this file again.
-noremap <silent> <localleader>rc :source ~/.vim/vimrc<CR>
-"
-" Underline the current line, based on its length.
-noremap <silent> <leader>ul mmyypVr-<Esc>`m
-"
-" Show the 'list' characters.
-noremap <silent> <leader>ls :set list!<CR>
-"
-" Remove double- or single-quotes, or graves wrapped around a string.
-noremap <silent> <leader>rdq mmF"xf"x`m
-noremap <silent> <leader>rsq mmF'xf'x`m
-noremap <silent> <leader>rg mmF`xf`x`m
-
-" Jump up or down by 10 lines.
-noremap <silent> J 10j
-noremap <silent> K 10k
-
-
+nnoremap <silent> <leader>idate :.!date +"\%F"<CR>Ea<space>
+nnoremap <leader>q :call TaskWarriorAddCurrentLine()<CR>
+" nnoremap <C-h> :tabprevious<cr>
+" nnoremap <C-l> :tabnext<cr>
+" switch between tabs....
+nnoremap <tab> gt
+" pandoc command to generate weekly plan page in Firefox (or not, if we just
+" wish to refresh)
+nnoremap <leader>w :!pandoc /home/lemon/Documents/Notes/MOD/Projects/weekly_planning.md --css /home/lemon/.local/share/pandoc/templates/mystyles.css -s -o /tmp/toss.html; firefox /tmp/toss.html &<cr>
+nnoremap <leader>W :!pandoc /home/lemon/Documents/Notes/MOD/Projects/weekly_planning.md --css /home/lemon/.local/share/pandoc/templates/mystyles.css -s -o /tmp/toss.html<cr>
+" Open vimrc
+nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e $HOME/.vim/vimrc<cr>
" Place timestamps, be it date (YYYY-MM-DD) or time (HH:MM:SS).
if (exists("*strftime"))
noremap <silent> <leader>date "=strftime("%F")<CR>p9h
noremap <silent> <leader>time "=strftime("%X")<CR>p7h
endif
-"
-" Execute the current line with BASH.
-noremap <silent> <leader>rl :.w !bash<CR>
-" Run the current file with PERL, Python, BASH, or a Bourne Shell derivative.
-noremap <silent> <leader>rpl :!clear; perl %<CR>
-noremap <silent> <leader>rpy :!clear; python %<CR>
-noremap <silent> <leader>rb :!clear; bash %<CR>
-noremap <silent> <leader>rs :!clear; sh %<CR>
-
-" Disable arrow keys for normal mode.
-noremap <up> <Nop>
-noremap <down> <Nop>
-noremap <left> <Nop>
-noremap <right> <Nop>
-
-" Disable arrow keys for insert mode.
-inoremap <up> <Nop>
-inoremap <down> <Nop>
-inoremap <left> <Nop>
-inoremap <right> <Nop>
-
-" Disable arrow keys for visual mode.
-vnoremap <up> <Nop>
-vnoremap <down> <Nop>
-vnoremap <left> <Nop>
-vnoremap <right> <Nop>
-
-" Disable arrow keys for command mode.
-cnoremap <up> <Nop>
-cnoremap <down> <Nop>
-cnoremap <left> <Nop>
-cnoremap <right> <Nop>
-
-" this needs to be here when using vim native package manager:
-" https://github.com/dracula/vim/issues/161
-"packadd! dracula | colorscheme dracula
-
-" ignore wrapping. you can move to the visual start of end of a line with `g0`
-" and `g$`, respectively.
-noremap j gj
-noremap k gk
-"
-
-" These do strange things to centering of text, etc.
-"set sidescrolloff=999
-"set scrolloff=999
-
-set shell=/bin/sh
-set hi=500
-set novisualbell
-set nonumber "show line numbers
-set wildmenu "enable a menu that shows tab completion options in the status bar
-set wildchar=<TAB>
-set showmatch "highlights matching brackets on cursor hover
-set ruler "show cursor position in status bar
-set showcmd "shows the normal mode command before it gets executed
+" Place timestamps, be it date (YYYY-MM-DD) or time (HH:MM:SS).
+if (exists("*strftime"))
+ noremap <silent> <leader>date "=strftime("%F")<CR>p9h
+ noremap <silent> <leader>time "=strftime("%X")<CR>p7h
+endif
+" Generate ctags for current working directory
+nnoremap <leader>tt :silent !ctags -R . <CR>:redraw!<CR>
+" notes stuff - from https://www.edwinwenink.xyz/posts/43-notes_tagging/
+" Go to index of notes and set working directory to my notes
+nnoremap <leader>ni :e $NOTES_DIR/index.md<CR>:cd $NOTES_DIR<CR>
+" related to https://oleksii.shmalko.com/2014/using-vim-as-c-cpp-ide/
+" to enable putting a config file in the proejct directory
+" clear search highlights
+nnoremap <leader><space> :noh<cr>:call clearmatches()<cr>
+nnoremap <leader><C-p> :<C-u>FZF!<CR>
+nnoremap <C-p>p :Files<CR>
+nnoremap <C-p>g :GitFiles<CR>
+nnoremap <leader>o :Tags<CR>
+nnoremap <leader>h :History<CR>
+nnoremap <silent> <leader>0 :Files<CR>
+nnoremap <silent> <leader>; :BLines<CR>
+nnoremap <silent> <leader>l :Lines<CR>
+nnoremap <silent> <leader>o :BTags<CR>
+nnoremap <C-p>b :Buffers<CR>
+nnoremap <silent> <leader>? :History:<CR>
+nnoremap <silent> <leader>/ :execute 'Ag ' . input('Ag/')<CR>
+nnoremap <silent> <leader>ft :Filetypes<CR>
+nnoremap <silent> <leader>CC :Commands<CR>
+" Open quickfix list in a right vertical split (good for Ngrep results)
+command! Vlist botright vertical copen | vertical resize 50
+nnoremap <leader>v : Vlist<CR>
+" }}}
+" Options {{{
+set clipboard=unnamed,unnamedplus " just past in with out needing "*
+set autoread
+set backspace=indent,eol,start
+set exrc
+set cuc
+set secure
+set scrolloff=1
+set history=799
set encoding=utf-8
-set fileformats=unix,dos,mac
-set nohlsearch "highlights searches
-set incsearch "incremental search (searches character by character)
-set ignorecase "ignores the case of a search
-set smartcase "only ignores case if there are no capital letters in search (only works after ignorecase has been set)
-set tabstop=4 "the amount of spaces that vim will equate to a tab character
-set softtabstop=4 "like tabstop, but for editing operations (insert mode)
-set splitbelow " split horiz below
+set wrap
+set wrapmargin=0
+set wildignore=**/__pycache*/**
+set wildoptions=pum
+set wildmenu
+set wildchar=<TAB>
+set showmatch
+set ruler
+set showcmd
+set nohlsearch
+set incsearch
+set ignorecase
+set smartindent
+set smartcase
+set tabstop=4
+set softtabstop=4
+set shiftwidth=4
+set splitbelow
set noswapfile
-set splitright " split new to the right when doing vertical
-set shiftwidth=4 "used for autoindent and << and >> operators in normal mode
-set autoindent "copies indent from current line to the next line
-set expandtab "tabs will expand to whitespace characters
-set esckeys "allows function keys to be recognized in Insert mode
-set ttimeoutlen=20 "timeout for a key code mapping
-set timeoutlen=1000 "time(ms) to wait for key mappings
+set nobackup
+set splitright
+set autoindent
+set expandtab
set hidden
-set t_Co=256
-"set t_Co=0 - switches off all colours
set path+=**
+" set relativenumber
+" set number
set more
+set signcolumn=number
set colorcolumn=0
set equalalways
set showmode
-set nobackup
-set listchars=tab:»→,trail:␣
-set grepprg=/usr/local/bin/ag
-
-" i don't bother with folding, but it's here if i need it.
+set nolist
+set listchars=tab:»-,trail:␣,leadmultispace:---+,eol:\\U000021b5
+set shortmess+=c
+set tags+=./tags
+set background=light
+set completeopt=menuone,longest
+" }}}
+" Function to allow adding a line of text to taskwarrior {{{
+function! TaskWarriorAddCurrentLine()
+ let current_line = getline('.')
+ silent execute ":!task add " . shellescape(current_line)
+ redraw!
+ echo "Task added: " . current_line
+ delete
+endfunction
+" }}}
+" Folding {{{
if has('folding')
- set foldmethod=marker
- set foldmarker=#\ {{{,#\ }}}
+ set foldmethod=marker " default
+ " set foldmethod=syntax
+" set foldmarker=#\ {{{,#\ }}}
set viewoptions=folds,options,cursor,unix,slash
endif
-
-" from https://www.reddit.com/r/vim/comments/f5gi2g/vim_notetaking_automatic_link_creation_between/
-" copies a link from file from previous buffer for pasting into
-" next buffer with "ap
-function! s:copy_filename_as_mdlink()
- let fname=expand("%")
- let @a="[" . fname . "](./" . fname. ")"
-endfunction
-autocmd BufLeave * call s:copy_filename_as_mdlink()
-
-" vim-plug
-call plug#begin('~/.vim/plugged')
+" disable folding by default with vim-markdown
+let g:vim_markdown_folding_disabled = 1
+" }}}
+" Remaps {{{
+let @x = 'o- [ ] '
+noremap <silent> J 10j
+noremap <silent> K 10k
+" macro to go to end of sentence and add a line break (for
+" one-line-per-sentence vimming...)
+let @s = ")i\<BS>\<CR>\<Esc>"
+" remap :W to :w - :W was previous Windows in fzf
+command! W w
+" Open Fern with Ctrl-N
+nnoremap <C-n> :Fern -drawer .<CR> <C-w>l
+" }}}
+" Plugins {{{
+call plug#begin()
+"Plug 'vim-scripts/AutoComplPop'
+Plug 'lambdalisue/fern.vim',
+Plug 'altercation/vim-colors-solarized',
+Plug 'tpope/vim-rails',
+Plug 'vim-ruby/vim-ruby',
+Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
+Plug 'junegunn/fzf.vim'
+Plug 'ayu-theme/ayu-vim'
+Plug 'airblade/vim-tailwind'
+Plug 'vim-perl/vim-perl', { 'for': 'perl', 'do': 'make clean carp dancer highlight-all-pragmas moose test-more try-tiny' }
Plug 'morhetz/gruvbox'
+Plug 'eemed/sitruuna.vim'
+" Plug 'sheerun/vim-polyglot'
+Plug 'preservim/vim-markdown'
+Plug 'mhinz/vim-signify'
+Plug 'vim-test/vim-test'
Plug 'ledger/vim-ledger'
-"Plug 'prabirshrestha/vim-lsp'
-Plug 'ledger/vim-ledger'
-Plug 'alok/notational-fzf-vim'
-Plug 'sheerun/vim-polyglot'
-"Plug 'neoclide/coc.nvim', {'branch': 'release'}
-Plug 'tpope/vim-commentary'
-Plug 'godlygeek/tabular'
-Plug 'davidhalter/jedi'
+Plug 'fatih/vim-go', {'do': ':GoUpdateBinaries' }
Plug 'tpope/vim-dispatch'
-Plug 'tpope/vim-fugitive'
-Plug 'tpope/vim-sensible'
-Plug 'tpope/vim-unimpaired'
Plug 'tpope/vim-surround'
-Plug 'dense-analysis/ale'
-Plug 'vim-test/vim-test'
-Plug 'jlanzarotta/bufexplorer'
-Plug 'preservim/nerdtree'
-Plug 'mhinz/vim-signify'
-Plug 'mattn/emmet-vim'
-Plug 'junegunn/fzf'
-Plug 'altercation/vim-colors-solarized'
-Plug 'junegunn/fzf.vim'
-Plug 'SirVer/Ultisnips'
+Plug 'tpope/vim-commentary'
+Plug 'tpope/vim-unimpaired'
+Plug 'tpope/vim-fugitive'
+Plug 'SirVer/UltiSnips'
Plug 'honza/vim-snippets'
-Plug 'pangloss/vim-javascript'
-Plug 'fatih/vim-go', { 'tag': '*' }
-Plug 'powerman/vim-plugin-AnsiEsc'
-"Plug 'majutsushi/tagbar'
+Plug 'dense-analysis/ale'
call plug#end()
-
-" vim-test
-
-" use vim-dispatch to run tests in the quickfix window
-" from Modern Vim Ch.4
-" the mappings below are from vim-test
-" https://github.com/vim-test/vim-test
-" dispatch opens send test output to quickfix window
-" let test#strategy = "vimterminal"
-let test#strategy = "basic"
-let test#python#runner = "pytest"
-let test#vim#term_position = "topleft 10"
-" let test#python#pytest#options = '-vvv --tb=short'
-let test#python#pytest#options = '--tb=short'
-let test#go#runner = 'gotest'
-"let test#go#gotest#options = '-v'
-" To run mypy using vim-dispath -with Dispatch
-autocmd FileType python let b:dispatch = 'mypy --ignore-missing-imports'
-
-" notational-fzf-vim
-let g:nv_search_paths = ['~/Notes', '~/Notes/Archive']
-
-" jedo-vim
-let g:jedi#goto_command = "<leader>d"
-let g:jedi#goto_assignments_command = "<leader>g"
-let g:jedi#goto_stubs_command = "<leader>s"
-let g:jedi#goto_definitions_command = ""
-let g:jedi#documentation_command = "K"
-let g:jedi#usages_command = "<leader>n"
-let g:jedi#completions_command = "<C-Space>"
-let g:jedi#rename_command = "<leader>r"
-
-" test
-nmap <silent> t<C-n> :TestNearest<CR>
-nmap <silent> t<C-f> :TestFile<CR>
-nmap <silent> t<C-s> :TestSuite<CR>
-"nmap <silent> t<C-l> :TestLast<CR>
-nmap <silent> <S-F10> :TestLast<CR>
-nmap <silent> t<C-g> :TestVisit<CR>
-
-" CoC extensions
-"let g:coc_global_extensions = ['coc-tsserver', 'coc-pyright', 'coc-html']
+" }}}
+" vim-tailwind {{{
+function! s:is_tailwind()
+ return !empty(findfile('tailwind.config.js', '.;')) ||
+ \ !empty(findfile('theme/static_src/tailwind.config.js', '.;'))
+endfunction
-" Coc Use `[g` and `]g` to navigate diagnostics
-" Coc Use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
-" nmap <silent> [g <Plug>(coc-diagnostic-prev)
-" nmap <silent> ]g <Plug>(coc-diagnostic-next)
+nmap <silent> <buffer> gk <Plug>(tailwind-lookup)
-" " CoC GoTo code navigation.
-" nmap <silent> gd <Plug>(coc-definition)
-" nmap <silent> gy <Plug>(coc-type-definition)
-" nmap <silent> gi <Plug>(coc-implementation)
-"
-" ALE ale config
+autocmd BufEnter *.html,*.slim if s:is_tailwind() |
+ \ setlocal omnifunc=tailwind#Complete |
+ \ endif
+" }}}
+" ALE {{{
+let g:ale_enabled = 1
+let g:ale_set_balloons = 0
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
-let g:ale_sign_error = '✘'
-let g:ale_sign_warning = '⚠'
-let g:ale_lint_on_text_changed = 'never'
-
-
+let g:ale_sign_error = '!'
+let g:ale_sign_warning = '?'
+let g:ale_lint_on_text_changed = 1
let g:ale_hover_cursor = 1
-let g:ale_enabled = 1
+let g:ale_virtualtext_cursor = 'disabled'
let g:ale_sign_column_always = 1
let g:ale_open_list = 0
let g:ale_set_highlights = 1
let g:ale_set_signs = 1
let g:ale_set_loclist = 1
-let g:ale_set_quickfix = 0
+let g:ale_set_quickfix = 1
let g:ale_echo_cursor = 1
-let g:ale_echo_msg_error_str = 'Error'
-let g:ale_echo_msg_format = '%linter% - %code: %%s'
-let g:ale_loclist_msg_format = '%linter% - %code: %%s'
-let g:ale_echo_msg_warning_str = 'Warning'
-let g:ale_linters = {'python': ['flake8', 'mypy'],
+let g:ale_echo_msg_error_str = 'ALE Error'
+let g:ale_echo_msg_format = 'ALE: %linter% - %code: %%s'
+let g:ale_loclist_msg_format = 'ALE: %linter% - %code: %%s'
+let g:ale_echo_msg_warning_str = 'ALE Warning'
+let g:ale_linters = {'python': ['pyright', 'flake8', 'mypy'],
\ 'ocaml': ['merlin'],
-\ 'cpp': ['clang'],
+\ 'javascript': ['eslint'],
+\ 'cpp': ['clangd'],
\ 'yaml': ['yamllint'],
-\ 'c': ['clang'],
+\ 'c': ['clangd'],
\ 'go': ['gopls', 'golint', 'gofmt'],
\}
let g:ale_fixers = {
-\ 'python': ['isort', 'yapf', 'black'],
-\ 'go': ['gofmt'],
+\ 'python': ['autoimport', 'isort', 'yapf', 'black'],
+\ 'javascript': ['eslint'],
+\ 'go': ['gofmt', 'goimports', 'gopls'],
+\ 'cpp': ['clang-format'],
+\ 'c': ['clang-format'],
\ 'rust': ['rustfmt']
\ }
let g:ale_python_mypy_ignore_invalid_syntax = 1
@@ -264,99 +222,54 @@ let g:ale_python_mypy_options = '--config-file mypy.ini'
" let g:ale_sign_error = '>>'
let g:ale_fix_on_save = 1
let g:ale_linters_explicit = 0
-nmap <silent> gr <Plug>(coc-references)
-
-" Use K to show documentation in preview window.
-"nnoremap <silent> K :call <SID>show_documentation()<CR>
-
-" function! s:show_documentation()
-" if (index(['vim','help'], &filetype) >= 0)
-" execute 'h '.expand('<cword>')
-" elseif (coc#rpc#ready())
-" call CocActionAsync('doHover')
-" else
-" execute '!' . &keywordprg . " " . expand('<cword>')
-" endif
-" endfunction
-"
-"" Quick Editing vimrc
-nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e $MYVIMRC<cr>
-
-" Highlight the symbol and its references when holding the cursor.
-" autocmd CursorHold * silent call CocActionAsync('highlight')
-
-" clear search highlights
-nnoremap <leader><space> :noh<cr>:call clearmatches()<cr>
-
-" previews in netrw
-let g:netrw_preview = 1
-
-" journal stuff
-autocmd BufNewFile,BufReadPost *.md map <leader>jj <Esc>:r! date +" - \%H:\%M: "<ENTER>kJA<Esc>$<space><Esc>
-autocmd BufNewFile,BufReadPost *.md map <leader>jd <Esc>:r! date +"(\%Y-\%m-\%dT\%H:\%M)"<ENTER>i<backspace><space><Esc>
-
-" switch off Coc with Markdown
-autocmd FileType markdown let b:coc_suggest_disable = 1
-
-syntax on "turn syntax highlighting on
-filetype plugin indent on "load plugin and indent files associated a detected filetype
-runtime macros/matchit.vim "allows jumping between brackets with % in normal mode
-
-" Go stuff
-let g:go_highlight_fields = 1
-let g:go_highlight_functions = 1
-let g:go_highlight_function_calls = 1
-let g:go_highlight_extra_types = 1
-let g:go_highlight_operators = 1
-let g:go_doc_keywordprg_enabled = 1
-let g:go_list_height = 0
-let g:go_highlight_operators = 1
-let g:go_highlight_function_parameters = 1
-let g:go_doc_max_height = 50
-let g:go_doc_popup_window = 1
-let g:go_list_height = 10
-
-
-" vim-go debugger window settings
-let g:go_debug_windows = {
- \ 'vars': 'leftabove 40vnew',
- \ 'stack': 'leftabove 20new',
- \ 'goroutines': 'botright 10new',
- \ 'out': 'botright 5new',
-\ }
-
-" vim-go and gopls
-let g:go_def_mode='gopls'
-let g:go_info_mode='gopls'
-let g:go_play_browser_command = 'firefox %URL% &'
-let g:go_test_show_name = 1
-let g:go_auto_type_info = 1
-let test#go#runner = 'gotest'
-let g:go_term_mode = "split"
-let g:go_term_height = 50
-let g:go_highlight_fields = 1
-let g:go_highlight_functions = 1
+let g:ale_completion_enabled = 0
+set omnifunc=ale#completion#OmniFunc
+" }}}
+" :grep use ripgrep {{{
+if executable('rg')
+ set grepprg=rg\ --color=never\ --vimgrep
+endif
-"autocmd FileType go nmap <leader>r :w<CR>:split <bar> terminal go run %<CR>
-autocmd FileType go nmap <leader>R :GoRun<CR>
-" highlights the variable in the file for you..
-"let g:go_auto_sameids = 1
-" auto import...
-let g:go_fmt_command = "goimports"
-" automatic type info on cursor
-let g:go_auto_type_info = 1
-let g:go_snippet_engine = "ultisnips"
-au Filetype go nmap <leader>ga <Plug>(go-alternate-edit)
-au Filetype go nmap <leader>gah <Plug>(go-alternate-split)
-au Filetype go nmap <leader>gav <Plug>(go-alternate-vertical)
-au FileType go nmap <F8> :GoTestFunc -short<cr>
-au FileType go nmap <F10> :GoTest -short<cr>
-au FileType go nmap <F9> :DlvToggleBreakpoint<CR>
-au FileType go nmap <S-F9> :DlvTest<CR>
-au FileType go nmap <F11> :DlvDebug<CR>
-au FileType go nmap <S-F5> :GoRename<CR>
+" and search with ripgrep
+command! -bang -nargs=* Rg
+ \ call fzf#vim#grep(
+ \ 'rg --column --line-number --no-heading --color=always --ignore-case '.shellescape(<q-args>), 1,
+ \ <bang>0 ? fzf#vim#with_preview('up:60%')
+ \ : fzf#vim#with_preview('right:50%:hidden', '?'),
+ \ <bang>0)
-" FZF
+nnoremap <C-p>a :Rg
+" }}}
+" 'Notes Grep' with ripgrep (see grepprg) {{{
+" -i case insensitive
+" -g glob pattern
+" ! to not immediately open first search result
+"command! -nargs=1 Ngrep :silent grep! "<args>" -i -g '*.md' $NOTES_DIR | execute ':redraw!'
+command! -nargs=1 Ngrep vimgrep "<args>" $NOTES_DIR/**/*.md
+nnoremap <leader>nn :Ngrep
+" }}}
+" vim-test {{{
+nmap <silent> tn :TestNearest<CR>
+nmap <silent> tf :TestFile<CR>
+nmap <silent> ts :TestSuite<CR>
+nmap <silent> tl :TestLast<CR>
+nmap <silent> <leader>tv :TestVisit<CR>
+let test#strategy = "basic"
+let test#python#pytest#options = '-q -s'
+let test#python#runner = 'pytest'
+let test#vimterminal#term_position = "belowright"
+" }}}
+" Titbits {{{
+" " Increment an ordered (numbered) list with <leader><cr>
+" inoremap <leader><cr> <esc>yyp<C-a>
+" " sudo write
+" command! S :w !sudo tee %
+
+"nnoremap <Tab> %
+nnoremap <C-@> :call system("wl-copy", @")<CR>
+xnoremap <silent> <C-@> :w !wl-copy<CR><CR>
+" }}}
+" FZF {{{
" This is the default extra key bindings
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
@@ -384,110 +297,107 @@ let g:fzf_colors =
" (https://github.com/zenbro/dotfiles/blob/master/.nvimrc#L151-L187)
let g:fzf_nvim_statusline = 0 " disable statusline overwriting
-" command history is :History:
nnoremap <C-s> :GFiles!<CR>
- nnoremap <leader><C-p> :<C-u>FZF!<CR>
- nnoremap <leader>t :Files<CR>
- nnoremap <leader>o :Tags<CR>
- nnoremap <leader>h :History<CR>
- nnoremap <silent> <leader>0 :Files<CR>
- nnoremap <silent> <leader>; :BLines<CR>
- nnoremap <silent> <leader>l :Lines<CR>
- nnoremap <silent> <leader>o :BTags<CR>
- nnoremap <silent> <leader>bu :Buffers<CR>
- nnoremap <silent> <leader>? :History:<CR>
- nnoremap <silent> <leader>/ :execute 'Ag ' . input('Ag/')<CR>
- nnoremap <silent> <leader>P :call SearchWordWithAg()<CR>
- vnoremap <silent> <leader>P :call SearchVisualSelectionWithAg()<CR>
- nnoremap <silent> <leader>ft :Filetypes<CR>
- nnoremap <silent> <leader>CC :Commands<CR>
imap <C-x><C-f> <plug>(fzf-complete-file-ag)
imap <C-x><C-l> <plug>(fzf-complete-line)
-
-" Search with ripgrep
-command! -bang -nargs=* Rg
- \ call fzf#vim#grep(
- \ 'rg --column --line-number --no-heading --color=always --ignore-case '.shellescape(<q-args>), 1,
- \ <bang>0 ? fzf#vim#with_preview('up:60%')
- \ : fzf#vim#with_preview('right:50%:hidden', '?'),
- \ <bang>0)
-
-nnoremap <C-p>a :Rg
-
-"" Quick Editing vimrc
-nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e $MYVIMRC<cr>
-
-" dracula (must be set before colorscheme)
-"let g:dracula_colorterm = 0
-"let g:dracula_bold = 1
-"let g:dracula_italic = 0 " this has to be set to 0 to avoid lots of erroneous highlighting (https://github.com/dracula/vim/issues/219)
-"let g:dracula_underline = 1
-
-
-" Colorscheme
-
-" this stuff from https://github.com/morhetz/gruvbox/wiki/Terminal-specific
-"Use e 24-bit (true-color) mode in Vim/Neovim when outside tmux.
+" }}}
+" Colorscheme {{{
+" This is imported from the old ephemera.vim file which has now been removed
+"
+" I got the following from gruvbox docs
+"Use 24-bit (true-color) mode in Vim/Neovim when outside tmux.
"If you're using tmux version 2.2 or later, you can remove the outermost $TMUX check and use tmux's 24-bit color support
"(see < http://sunaku.github.io/tmux-24bit-color.html#usage > for more information.)
-if (empty($TMUX))
- if (has("nvim"))
- "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 >
- let $NVIM_TUI_ENABLE_TRUE_COLOR=1
- endif
- "For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 >
- "Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd >
- " < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 >
- if (has("termguicolors"))
- set termguicolors
- endif
+if (has("nvim"))
+"For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 >
+ let $NVIM_TUI_ENABLE_TRUE_COLOR=1
+endif
+"For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 >
+"Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd >
+" < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 >
+if (has("termguicolors"))
+ set termguicolors
endif
-syntax enable
-let g:solarized_termcolors=256
-
-let g:gruvbox_termcolors=256
-let g:gruvbox_contrast_dark='hard'
-let g:gruvbox_contrast_light='hard'
-let g:gruvbox_hls_cursor='orange'
-let g:gruvbox_sign_column='bg0'
-let g:gruvbox_number_column='bg0'
-let g:gruvbox_invert_signs='0'
-let g:gruvbox_improved_strings='0'
-set background=dark
-colorscheme industry
-"colorscheme delek
-"
-" manual highlights
-" highlight Visual ctermfg=black ctermbg=LightMagenta
-" highlight SignColumn ctermbg=black ctermfg=white
-" highlight Comment ctermfg=DarkGray
-" highlight DiffAdd term=bold ctermfg=yellow ctermbg=black
-" highlight DiffDelete term=bold ctermfg=red ctermbg=black
-" highlight DiffChange term=bold ctermfg=black ctermbg=DarkGreen
-
-
-map <F7> :if exists("g:syntax_on") <Bar>
-\ syntax off <Bar>
-\ else <Bar>
-\ syntax enable <Bar>
-\ endif <CR>
-
-augroup general
- autocmd!
- "keep equal proportions when windows resized
- autocmd VimResized * wincmd =
- "save cursor position in a file
- autocmd BufReadPost * if line("'\"") > 1 && line("'\"")
- \ <= line("$") | exe "normal! g'\"" | endif
+"ayu theme
+" let ayucolor="light" " for light version of theme
+" let ayucolor="mirage" " for mirage version of theme
+let ayucolor="dark" " for dark version of theme
+
+"colorscheme gruber-darker
+let g:gruvbox_contrast_dark = "hard"
+let g:gruvbox_italicize_strings = 1
+let g:gruvbox_improved_strings = 1
+let g:gruvbox_improved_warnings = 1
+let g:gruvbox_invert_indent_guides = 1
+let g:gruvbox_invert_signs = 1
+"colorscheme evening
+"colorscheme sitruuna
+"colorscheme ayu
+colorscheme solarized
+"colorscheme gruvbox
+" }}}
+" GPG files {{{
+" from https://vim.fandom.com/wiki/Edit_gpg_encrypted_files
+" Don't save backups of *.gpg files
+set backupskip+=*.gpg
+" To avoid that parts of the file is saved to .viminfo when yanking or
+" deleting, empty the 'viminfo' option.
+set viminfo=
+
+augroup encrypted
+ au!
+ " Disable swap files, and set binary file format before reading the file
+ autocmd BufReadPre,FileReadPre *.gpg
+ \ setlocal noswapfile bin
+ " Decrypt the contents after reading the file, reset binary file format
+ " and run any BufReadPost autocmds matching the file name without the .gpg
+ " extension
+ autocmd BufReadPost,FileReadPost *.gpg
+ \ execute "'[,']!gpg --decrypt --default-recipient-self" |
+ \ setlocal nobin |
+ \ execute "doautocmd BufReadPost " . expand("%:r")
+ " Set binary file format and encrypt the contents before writing the file
+ autocmd BufWritePre,FileWritePre *.gpg
+ \ setlocal bin |
+ \ '[,']!gpg --encrypt --default-recipient-self
+ " After writing the file, do an :undo to revert the encryption in the
+ " buffer, and reset binary file format
+ autocmd BufWritePost,FileWritePost *.gpg
+ \ silent u |
+ \ setlocal nobin
augroup END
-
-augroup languages
+" }}}
+" Golang {{{
+augroup golang
autocmd!
- autocmd BufNewFile,BufRead *.bash set syntax=sh
- autocmd FileType python xnoremap <leader>r <esc>:'<,'>:w !python3<CR>
- autocmd FileType go set noexpandtab
- autocmd FileType html :syntax sync fromstart
- autocmd FileType html,javascript,css,json,yaml,sh
- \ setlocal ts=2 sts=2 sw=2 expandtab
-augroup ENDj
+ autocmd FileType go
+ \ set tabstop=8 |
+ \ set softtabstop=8 |
+ \ set shiftwidth=8
+augroup END
+" }}}
+" GitFZF {{{
+" from https://git.sr.ht/~sircmpwn/dotfiles/tree/master/item/.vimrc
+function! GitFZF()
+ let path = trim(system('cd '.shellescape(expand('%:p:h')).' && git rev-parse --show-toplevel'))
+ exe 'FZF ' . path
+endfunction
+command! GitFZF call GitFZF()
+nnoremap <leader><C-f> :GitFZF<CR>
+" }}}
+" Switching off colours {{{
+"syntax off
+" hi Visual term=reverse ctermbg=7 ctermfg=black guifg=black guibg=LightPink
+" hi SpellBad term=reverse ctermbg=224 gui=undercurl guisp=Red guibg=Red
+" hi SpellCap term=reverse ctermbg=224 gui=undercurl guisp=Red guibg=Red
+" hi SpellRare term=reverse ctermbg=224 gui=undercurl guisp=Red guibg=Blue
+" hi Search term=reverse ctermbg=11 guifg=black guibg=Green
+"}}}
+" Turn spelling on for text files {{{
+" from - https://dmerej.info/blog/post/syntax-highlighting-is-useless/
+augroup textfiles
+ autocmd!
+ autocmd filetype markdown setlocal spell spelllang=en
+augroup end
+" }}}
diff --git a/xsession b/xsession
index bf653a5..4f86a08 100644..100755
--- a/xsession
+++ b/xsession
@@ -8,9 +8,9 @@ xwallpaper --center $HOME/Picures/Wallpapers/openbsd_wallpaper1.jpg &
. ~/.profile
xset -b
-export GPG_TTY="$(tty)"
-export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
-gpgconf --launch gpg-agent
+#export GPG_TTY="$(tty)"
+#export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+#gpgconf --launch gpg-agent
#PS1='$PWD# '
#export LSCOLORS=fxexcxdxbxegedabagacad
@@ -26,4 +26,5 @@ xinput set-prop "/dev/wsmouse" "WS Pointer Wheel Emulation Axes" 6 7 4 5
xsetroot - solid dimgray
#exec fvwm
-exec i3
+#exec i3
+exec ratpoison