diff options
author | Santo Cariotti <santo@dcariotti.me> | 2024-12-11 20:46:32 +0100 |
---|---|---|
committer | Santo Cariotti <santo@dcariotti.me> | 2024-12-11 20:47:59 +0100 |
commit | f22f1723c01b56da14ae1de3491a78af1bc4c464 (patch) | |
tree | 030411c811d3474c4b322eca29d1bf8e96b7511f /private_dot_config | |
parent | d8713792f93473fe14e01d151529fb6ef139448f (diff) |
Dot files with `chezmoi`
Diffstat (limited to 'private_dot_config')
27 files changed, 4892 insertions, 0 deletions
diff --git a/private_dot_config/atuin/config.toml b/private_dot_config/atuin/config.toml new file mode 100644 index 0000000..b84151a --- /dev/null +++ b/private_dot_config/atuin/config.toml @@ -0,0 +1,92 @@ +## where to store your database, default is your system data directory +## linux/mac: ~/.local/share/atuin/history.db +## windows: %USERPROFILE%/.local/share/atuin/history.db +# db_path = "~/.history.db" + +## where to store your encryption key, default is your system data directory +## linux/mac: ~/.local/share/atuin/key +## windows: %USERPROFILE%/.local/share/atuin/key +# key_path = "~/.key" + +## where to store your auth session token, default is your system data directory +## linux/mac: ~/.local/share/atuin/session +## windows: %USERPROFILE%/.local/share/atuin/session +# session_path = "~/.session" + +## date format used, either "us" or "uk" +# dialect = "us" + +## enable or disable automatic sync +# auto_sync = true + +## enable or disable automatic update checks +# update_check = true + +## address of the sync server +# sync_address = "https://api.atuin.sh" + +## how often to sync history. note that this is only triggered when a command +## is ran, so sync intervals may well be longer +## set it to 0 to sync after every command +# sync_frequency = "1h" + +## which search mode to use +## possible values: prefix, fulltext, fuzzy, skim +# search_mode = "fuzzy" + +## which filter mode to use +## possible values: global, host, session, directory +# filter_mode = "global" + +## which filter mode to use when atuin is invoked from a shell up-key binding +## the accepted values are identical to those of "filter_mode" +## leave unspecified to use same mode set in "filter_mode" +# filter_mode_shell_up_key_binding = "global" + +## which style to use +## possible values: auto, full, compact +# style = "auto" + +## the maximum number of lines the interface should take up +## set it to 0 to always go full screen +# inline_height = 0 + +## enable or disable showing a preview of the selected command +## useful when the command is longer than the terminal width and is cut off +# show_preview = false + +## what to do when the escape key is pressed when searching +## possible values: return-original, return-query +# exit_mode = "return-original" + +## possible values: emacs, subl +# word_jump_mode = "emacs" + +## characters that count as a part of a word +# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + +## number of context lines to show when scrolling by pages +# scroll_context_lines = 1 + +## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts +## alt-0 .. alt-9 +# ctrl_n_shortcuts = false + +## prevent commands matching any of these regexes from being written to history. +## Note that these regular expressions are unanchored, i.e. if they don't start +## with ^ or end with $, they'll match anywhere in the command. +## For details on the supported regular expression syntax, see +## https://docs.rs/regex/latest/regex/#syntax +# history_filter = [ +# "^secret-cmd", +# "^innocuous-cmd .*--secret=.+" +# ] + +## prevent commands run with cwd matching any of these regexes from being written +## to history. Note that these regular expressions are unanchored, i.e. if they don't +## start with ^ or end with $, they'll match anywhere in CWD. +## For details on the supported regular expression syntax, see +## https://docs.rs/regex/latest/regex/#syntax +# cwd_filter = [ +# "^/very/secret/area" +# ] diff --git a/private_dot_config/gh/config.yml b/private_dot_config/gh/config.yml new file mode 100644 index 0000000..aaec3a0 --- /dev/null +++ b/private_dot_config/gh/config.yml @@ -0,0 +1,12 @@ +# What protocol to use when performing git operations. Supported values: ssh, https +git_protocol: https +# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment. +editor: nvim +# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled +prompt: enabled +# A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager. +pager: +# Aliases allow you to create nicknames for gh commands +aliases: + co: pr checkout +version: "1" diff --git a/private_dot_config/i3/config b/private_dot_config/i3/config new file mode 100644 index 0000000..bd31c31 --- /dev/null +++ b/private_dot_config/i3/config @@ -0,0 +1,174 @@ +# Default modkey +set $mod Mod4 + +font pango:Fantasque Sans Mono 11 + +# Start a terminal +bindsym $mod+Return exec alacritty --config-file ~/.alacrittyi3.yml + +# Kill focused window +bindsym $mod+Shift+q kill + +# Move between windows +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + +# Alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# Move focused window +bindsym $mod+Shift+h move left +bindsym $mod+Shift+j move down +bindsym $mod+Shift+k move up +bindsym $mod+Shift+l move right + +# Alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# Split in horizontal orientation +bindsym $mod+Mod1+v split h + +# Split in vertical orientation +bindsym $mod+Mod1+h split v + +# Enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# Change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# Toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# Change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# Focus the parent container +bindsym $mod+a focus parent + +# Open d-menu +# bindsym $mod+d exec dmenu_run +bindsym $mod+d exec "rofi -show combi -combi-modi window,drun -matching normal -drun-match-fields name,exec" + +set $ws1 "1" +set $ws2 "2" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + +# switch to workspace +bindsym $mod+1 workspace number $ws1 +bindsym $mod+2 workspace number $ws2 +bindsym $mod+3 workspace number $ws3 +bindsym $mod+4 workspace number $ws4 +bindsym $mod+5 workspace number $ws5 +bindsym $mod+6 workspace number $ws6 +bindsym $mod+7 workspace number $ws7 +bindsym $mod+8 workspace number $ws8 +bindsym $mod+9 workspace number $ws9 +bindsym $mod+0 workspace number $ws10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $ws1 +bindsym $mod+Shift+2 move container to workspace number $ws2 +bindsym $mod+Shift+3 move container to workspace number $ws3 +bindsym $mod+Shift+4 move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+6 move container to workspace number $ws6 +bindsym $mod+Shift+7 move container to workspace number $ws7 +bindsym $mod+Shift+8 move container to workspace number $ws8 +bindsym $mod+Shift+9 move container to workspace number $ws9 +bindsym $mod+Shift+0 move container to workspace number $ws10 + + +# Volume +set $sink `pactl list short sinks | grep RUNNING | cut -f1` +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume $sink +5% +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume $sink -5% +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute $sink toggle + +bindsym XF86MonBrightnessUp exec light -A 1 # increase screen brightness +bindsym XF86MonBrightnessDown exec light -U 1 # decrease screen brightness + +# Screenshots +set $screenshot-name `date +%d%m%Y-%H%M%S.png` +bindsym Print exec "mate-screenshot -i" +bindsym Shift+Print exec --no-startup-id mate-screenshot -a + +# Reload the configuration file +bindsym $mod+Shift+c reload + +# Restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart + +# Resize window (you can also use the mouse for that) +mode "resize" +{ + # Resize with the arrow keys + bindsym Left resize grow width 1 px or 1 ppt + bindsym Down resize shrink height 1 px or 1 ppt + bindsym Up resize grow height 1 px or 1 ppt + bindsym Right resize shrink width 1 px or 1 ppt + + # Back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+r mode "resize" + +# set primary gruvbox colorscheme colors +set $bg #282828 +set $red #cc241d +set $green #98971a +set $yellow #d79921 +set $blue #458588 +set $purple #b16286 +set $aqua #689d68 +set $gray #a89984 +set $darkgray #1d2021 +set $white #fbf1c7 + +# Start i3blocks to display a workspace bar +bar { + font pango: DejaVuSansMono Nerd Font 9 + i3bar_command i3bar + position bottom + strip_workspace_numbers yes + tray_output nonprimary + status_command i3blocks + + colors { + # bar background color + background $bg + # text color used for blocks that do not have a color specified. + statusline #fafafa + # workspaces section + # border backgr. text + focused_workspace $aqua $aqua $darkgray + inactive_workspace $darkgray $darkgray $yellow + active_workspace $darkgray $darkgray $yellow + urgent_workspace $red $red $bg + } +} + +client.focused $darkgray $aqua #000000 $yellow $darkgray +client.focused_inactive $darkgray $darkgray $yellow $purple $darkgray +client.unfocused $darkgray $darkgray $yellow $purple $darkgray +client.urgent $darkgray $red $white $red $red + diff --git a/private_dot_config/i3blocks/config b/private_dot_config/i3blocks/config new file mode 100644 index 0000000..d099c7c --- /dev/null +++ b/private_dot_config/i3blocks/config @@ -0,0 +1,44 @@ +command=/usr/share/i3blocks/$BLOCK_NAME +separator_block_width=15 + +[weather] +command=curl -Ss 'https://wttr.in/Catania?0&T&Q' | cut -c 16- | head -2 | xargs echo +interval=3600 +color=#A4C2F4 + +[cputemp] +command=sensors | grep edge | cut -d '+' -f 2 | cut -d ' ' -f 1 +interval=10 +label=🌡️ + +[memory] +label=MEM +separator=false +interval=30 + +[disk] +label=DISK +interval=30 + +[cpu_usage] +label=CPU +interval=10 +min_width=CPU: 100.00% + +[wifi] +command=iwgetid -r | tr '\n' ' ' && grep $(iwgetid -m | awk '{ printf "%s", $1 }') /proc/net/wireless | awk '{ printf "%i%\n", int($3 * 100 / 70) }';exit 0 instance=wlp2s0 +interval=5 +label= + +[battery] +command=i3_battery.sh +interval=10 + +[volume] +command=pulsemixer --get-volume | cut -d " " -f 1; exit 0 +interval=1 +label= + +[time] +command=date +interval=1 diff --git a/private_dot_config/i3blocks/i3_battery.sh b/private_dot_config/i3blocks/i3_battery.sh new file mode 100644 index 0000000..97ea493 --- /dev/null +++ b/private_dot_config/i3blocks/i3_battery.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +BAT=$(acpi -b | grep -E -o '[0-9][0-9]?%') +CHECK_CHARGING=$(acpi -b | grep -E -o 'Charging') + +# Full and short texts +echo "Battery: $BAT" +echo "BAT: $BAT" + +if [ "$CHECK_CHARGING" != "" ]; then + echo "#1abc9c" + exit 0 +fi +# Set urgent flag below 5% or use orange below 20% +[ ${BAT%?} -le 5 ] && exit 33 +[ ${BAT%?} -le 35 ] && echo "#d35400" + +exit 0 diff --git a/private_dot_config/iamb/config.toml b/private_dot_config/iamb/config.toml new file mode 100644 index 0000000..0999ca5 --- /dev/null +++ b/private_dot_config/iamb/config.toml @@ -0,0 +1,14 @@ +default_profile = "deb" + +[profiles.deb] +user_id = "@santo:matrix.debian.social" +url = "https://matrix.debian.social" +rooms = [] + +[macros.normal] +"gc" = ":chats<Enter>" +"v" = "<C-w>m" +"ZZ" = "<Esc>:q<Enter>" + +[settings.notifications] +enabled = true diff --git a/private_dot_config/nvim/after/ftdetect/antlr4.vim b/private_dot_config/nvim/after/ftdetect/antlr4.vim new file mode 100644 index 0000000..d4d39a1 --- /dev/null +++ b/private_dot_config/nvim/after/ftdetect/antlr4.vim @@ -0,0 +1 @@ +autocmd BufEnter,BufNewFile *.g4 setf antlr4 diff --git a/private_dot_config/nvim/after/ftdetect/jolie.vim b/private_dot_config/nvim/after/ftdetect/jolie.vim new file mode 100644 index 0000000..efa43f7 --- /dev/null +++ b/private_dot_config/nvim/after/ftdetect/jolie.vim @@ -0,0 +1 @@ +au BufRead,BufNewFile *.ol,*.iol set filetype=jolie diff --git a/private_dot_config/nvim/after/ftdetect/prr.vim b/private_dot_config/nvim/after/ftdetect/prr.vim new file mode 100644 index 0000000..15a474c --- /dev/null +++ b/private_dot_config/nvim/after/ftdetect/prr.vim @@ -0,0 +1 @@ +au BufNewFile,BufRead *.prr set filetype=prr diff --git a/private_dot_config/nvim/after/ftplugin/dockerfile.vim b/private_dot_config/nvim/after/ftplugin/dockerfile.vim new file mode 100644 index 0000000..b388056 --- /dev/null +++ b/private_dot_config/nvim/after/ftplugin/dockerfile.vim @@ -0,0 +1 @@ +let g:indentLine_enabled = 0 diff --git a/private_dot_config/nvim/after/ftplugin/json.vim b/private_dot_config/nvim/after/ftplugin/json.vim new file mode 100644 index 0000000..b388056 --- /dev/null +++ b/private_dot_config/nvim/after/ftplugin/json.vim @@ -0,0 +1 @@ +let g:indentLine_enabled = 0 diff --git a/private_dot_config/nvim/after/ftplugin/markdown.vim b/private_dot_config/nvim/after/ftplugin/markdown.vim new file mode 100644 index 0000000..b388056 --- /dev/null +++ b/private_dot_config/nvim/after/ftplugin/markdown.vim @@ -0,0 +1 @@ +let g:indentLine_enabled = 0 diff --git a/private_dot_config/nvim/after/syntax/antlr4.vim b/private_dot_config/nvim/after/syntax/antlr4.vim new file mode 100644 index 0000000..8f6c412 --- /dev/null +++ b/private_dot_config/nvim/after/syntax/antlr4.vim @@ -0,0 +1,93 @@ +if exists('b:current_syntax') + finish +endif + +command -nargs=* HiLink highlight link <args> + +syntax match antlr4EventId +[a-zA-Z_][a-zA-Z0-9_]*+ contained +syntax match antlr4ParName +\<[a-z][a-zA-Z0-9_]*\>+ containedin=antlr4RHS +syntax match antlr4LexName +\<[A-Z][a-zA-Z0-9_]*\>+ containedin=antlr4RHS +syntax match antlr4Assign /[a-zA-Z]\++\?=/ containedin=antlr4RHS + +if exists('g:antlr4_highlight_punctuation') + syntax match antlr4Punctuation +[\-():;]+ +endif + +syntax include @included syntax/java.vim + +syntax region antlr4RHS start=+:+ end=+;+ extend + +syntax region antlr4Embed start=+{+ end=+}?\?+ contains=@included,antlr4Variable keepend + \ containedin=antlr4RHS +syntax region antlr4Embed start=+\[+ end=+\]+ contains=@included,antlr4Variable keepend + + +syntax match antlr4Repeat +[+*]+ containedin=antlr4RHS +syntax match antlr4Condition +?+ containedin=antlr4RHS +syntax match antlr4Option "|" containedin=antlr4RHS + +" Use specifically containedin=javaParenT so it will be highlighted inside +" parens +syntax match antlr4Variable contained +\$[a-zA-Z_][a-zA-Z0-9_]*+ containedin=javaParenT + +syntax match antlr4Keyword /@\(\(parser\|lexer\)::\)\?\(header\|members\)/ +syntax match antlr4Keyword /@after/ + +syntax match antlr4Escape +\\[nrvt]+ +syntax match antlr4Escape +\\u[0-9a-fA-F]\{4}+ +syntax match antlr4Escape +\\u{[0-9a-fA-F]\{4}}+ +syntax match antlr4Escape +\\p{.\{-}}+ + +syntax match antlr4SetEscape +\\-+ containedin=antlr4RHS + +syntax keyword antlr4Keyword grammar +syntax keyword antlr4Keyword lexer parser options +syntax keyword antlr4Keyword fragment tokens +syntax keyword antlr4Keyword returns locals throws catch finally mode options + +syntax keyword antlr4Import import + +syntax keyword antlr4Operation skip more popMode mode pushMode type channel + \ containedin=antlr4RHS + +syntax region antlr4Set start=+\[+ end=+\]+ contained + \ contains=antlr4Escape,antlr4SetEscape containedin=antlr4RHS +syntax region antlr4Attr start="<" end=">" + \ containedin=antlr4RHS +syntax region antlr4String start=+'+ end=+'+ containedin=antlr4RHS contains=antlr4Escape + +syntax region antlr4Comment start=+/\*+ end=+\*/+ + \ containedin=antlr4RHS +syntax region antlr4Comment start=+//+ end=+$+ + \ containedin=antlr4RHS + +syntax region antlr4Event start=+#+ end=+$+ + \ containedin=antlr4RHS contains=antlr4EventId + +HiLink antlr4Comment Comment +HiLink antlr4Keyword KeyWord +HiLink antlr4ParName Type +HiLink antlr4LexName Macro +HiLink antlr4Attr Special +HiLink antlr4Assign Statement +HiLink antlr4Set Character +HiLink antlr4String String + +if exists('g:antlr4_highlight_punctuation') + HiLink antlr4Punctuation Operator +endif + +HiLink antlr4Repeat Repeat +HiLink antlr4Condition Conditional +HiLink antlr4Option Delimiter +HiLink antlr4Import PreProc +HiLink antlr4Escape Special +HiLink antlr4SetEscape antlr4Escape +HiLink antlr4Operation Function +HiLink antlr4EventId Function +HiLink antlr4Annotation KeyWord +HiLink antlr4Variable Special + +delcommand HiLink + +let b:current_syntax = 'antlr4' diff --git a/private_dot_config/nvim/after/syntax/jolie.vim b/private_dot_config/nvim/after/syntax/jolie.vim new file mode 100644 index 0000000..c7b3a21 --- /dev/null +++ b/private_dot_config/nvim/after/syntax/jolie.vim @@ -0,0 +1,59 @@ +if exists("b:current_syntax") + finish +endif + +syn keyword jolieBoolean true false +syn keyword jolieDefinitionTypes inputPort outputPort interface type define service +syn keyword jolieKeyword location Location protocol Protocol interfaces Interfaces aggregates Aggregates redirects Redirects class Jolie JavaScript Java OneWay oneWay RequestResponse requestResponse execution +syn keyword jolieOtherKeyword constants cH instanceof execution comp concurrent nullProcess single sequential main foreign java init cset is_defined embed embedded extender courier forward install undef include synchronized throws throw from import as +syn keyword jolieConditional if else +syn keyword jolieRepeat while for foreach until in +syn keyword jolieException throw +syn keyword jolieStatement forward scope provide +syn keyword jolieType void bool int string long double any raw +syn keyword jolieKeywordModifiers csets global +syn match jolieOperators "(<<|&&|\|\||+|-|/|*|=|==|++|-|+=|-=|*=|/=|!|%=|%)" + +syn match jolieSpecialChar contained "\\." + +syn region jolieString start=+"+ end=+"+ contains=jolieSpecialChar + +syn match jolieNumber "\<\d\+\>" + +syn match jolieMethodInvocation "\<\(\w\+\)@\(\w\+\)\>" contains=jolieMethodName,jolieClassName + +syn match jolieMethodName "\w\+@"me=e-1 contained +syn match jolieClassName "@\w\+\>"ms=s+1 contained + +syn match jolieMethodName2 "\(\w\+\)(" + +syn keyword jolieTodo contained TODO FIXME +syn region jolieComment start="/\*" end="\*/" contains=jolieTodo +syn match jolieLineComment "//.*" + +let b:current_syntax = "jolie" + +hi def link jolieBoolean Boolean +hi def link jolieComment Comment +hi def link jolieLineComment Comment +hi def link jolieDefinitionTypes Keyword +hi def link jolieKeyword Keyword +hi def link jolieOtherKeyword Keyword + +hi def link jolieOperators Operator + +hi def link jolieConditional Conditional +hi def link jolieRepeat Repeat +hi def link jolieException Exception +hi def link jolieStatement Statement +hi def link jolieType Type + +hi def link jolieKeywordModifiers StorageClass + +hi def link jolieString String + +hi def link jolieNumber Number + +hi def link jolieMethodName Function +hi def link jolieClassName Type +hi def link jolieMethodName2 Function diff --git a/private_dot_config/nvim/after/syntax/prr.vim b/private_dot_config/nvim/after/syntax/prr.vim new file mode 100644 index 0000000..43a0557 --- /dev/null +++ b/private_dot_config/nvim/after/syntax/prr.vim @@ -0,0 +1,22 @@ +" Vim syntax file +" Language: prr +" Maintainer: Daniel Xu <dxu@dxuuu.xyz> +" Last Change: 2022 Mar 25 +" Credits: Bram Moolenaar <Bram@vim.org> +" +" This version is copied and edited from diff.vim + +" Check whether an earlier file has defined a syntax already +if exists("b:current_syntax") + finish +endif + +syn match diffAdded "^> +.*" +syn match diffRemoved "^> -.*" + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet +hi def link diffAdded Type +hi def link diffRemoved Statement + +let b:current_syntax = "prr" diff --git a/private_dot_config/nvim/colors/gruvbox.vim.old b/private_dot_config/nvim/colors/gruvbox.vim.old new file mode 100644 index 0000000..66246fb --- /dev/null +++ b/private_dot_config/nvim/colors/gruvbox.vim.old @@ -0,0 +1,1418 @@ +" ----------------------------------------------------------------------------- +" File: gruvbox.vim +" Description: Retro groove color scheme for Vim +" Author: morhetz <morhetz@gmail.com> +" Source: https://github.com/morhetz/gruvbox +" Last Modified: 12 Aug 2017 +" ----------------------------------------------------------------------------- + +" Supporting code ------------------------------------------------------------- +" Initialisation: {{{ + +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name='gruvbox' + +if !(has('termguicolors') && &termguicolors) && !has('gui_running') && &t_Co != 256 + finish +endif + +" }}} +" Global Settings: {{{ + +if !exists('g:gruvbox_bold') + let g:gruvbox_bold=1 +endif +if !exists('g:gruvbox_italic') + if has('gui_running') || $TERM_ITALICS == 'true' + let g:gruvbox_italic=1 + else + let g:gruvbox_italic=0 + endif +endif +if !exists('g:gruvbox_undercurl') + let g:gruvbox_undercurl=1 +endif +if !exists('g:gruvbox_underline') + let g:gruvbox_underline=1 +endif +if !exists('g:gruvbox_inverse') + let g:gruvbox_inverse=1 +endif + +if !exists('g:gruvbox_guisp_fallback') || index(['fg', 'bg'], g:gruvbox_guisp_fallback) == -1 + let g:gruvbox_guisp_fallback='NONE' +endif + +if !exists('g:gruvbox_improved_strings') + let g:gruvbox_improved_strings=0 +endif + +if !exists('g:gruvbox_improved_warnings') + let g:gruvbox_improved_warnings=0 +endif + +if !exists('g:gruvbox_termcolors') + let g:gruvbox_termcolors=256 +endif + +if !exists('g:gruvbox_invert_indent_guides') + let g:gruvbox_invert_indent_guides=0 +endif + +if exists('g:gruvbox_contrast') + echo 'g:gruvbox_contrast is deprecated; use g:gruvbox_contrast_light and g:gruvbox_contrast_dark instead' +endif + +if !exists('g:gruvbox_contrast_dark') + let g:gruvbox_contrast_dark='medium' +endif + +if !exists('g:gruvbox_contrast_light') + let g:gruvbox_contrast_light='medium' +endif + +let s:is_dark=(&background == 'dark') + +" }}} +" Palette: {{{ + +" setup palette dictionary +let s:gb = {} + +" fill it with absolute colors +let s:gb.dark0_hard = ['#1d2021', 234] " 29-32-33 +let s:gb.dark0 = ['#282828', 235] " 40-40-40 +let s:gb.dark0_soft = ['#32302f', 236] " 50-48-47 +let s:gb.dark1 = ['#3c3836', 237] " 60-56-54 +let s:gb.dark2 = ['#504945', 239] " 80-73-69 +let s:gb.dark3 = ['#665c54', 241] " 102-92-84 +let s:gb.dark4 = ['#7c6f64', 243] " 124-111-100 +let s:gb.dark4_256 = ['#7c6f64', 243] " 124-111-100 + +let s:gb.gray_245 = ['#928374', 245] " 146-131-116 +let s:gb.gray_244 = ['#928374', 244] " 146-131-116 + +let s:gb.light0_hard = ['#f9f5d7', 230] " 249-245-215 +let s:gb.light0 = ['#fbf1c7', 229] " 253-244-193 +let s:gb.light0_soft = ['#f2e5bc', 228] " 242-229-188 +let s:gb.light1 = ['#ebdbb2', 223] " 235-219-178 +let s:gb.light2 = ['#d5c4a1', 250] " 213-196-161 +let s:gb.light3 = ['#bdae93', 248] " 189-174-147 +let s:gb.light4 = ['#a89984', 246] " 168-153-132 +let s:gb.light4_256 = ['#a89984', 246] " 168-153-132 + +let s:gb.bright_red = ['#fb4934', 167] " 251-73-52 +let s:gb.bright_green = ['#b8bb26', 142] " 184-187-38 +let s:gb.bright_yellow = ['#fabd2f', 214] " 250-189-47 +let s:gb.bright_blue = ['#83a598', 109] " 131-165-152 +let s:gb.bright_purple = ['#d3869b', 175] " 211-134-155 +let s:gb.bright_aqua = ['#8ec07c', 108] " 142-192-124 +let s:gb.bright_orange = ['#fe8019', 208] " 254-128-25 + +let s:gb.neutral_red = ['#cc241d', 124] " 204-36-29 +let s:gb.neutral_green = ['#98971a', 106] " 152-151-26 +let s:gb.neutral_yellow = ['#d79921', 172] " 215-153-33 +let s:gb.neutral_blue = ['#458588', 66] " 69-133-136 +let s:gb.neutral_purple = ['#b16286', 132] " 177-98-134 +let s:gb.neutral_aqua = ['#689d6a', 72] " 104-157-106 +let s:gb.neutral_orange = ['#d65d0e', 166] " 214-93-14 + +let s:gb.faded_red = ['#9d0006', 88] " 157-0-6 +let s:gb.faded_green = ['#79740e', 100] " 121-116-14 +let s:gb.faded_yellow = ['#b57614', 136] " 181-118-20 +let s:gb.faded_blue = ['#076678', 24] " 7-102-120 +let s:gb.faded_purple = ['#8f3f71', 96] " 143-63-113 +let s:gb.faded_aqua = ['#427b58', 66] " 66-123-88 +let s:gb.faded_orange = ['#af3a03', 130] " 175-58-3 + +" }}} +" Setup Emphasis: {{{ + +let s:bold = 'bold,' +if g:gruvbox_bold == 0 + let s:bold = '' +endif + +let s:italic = 'italic,' +if g:gruvbox_italic == 0 + let s:italic = '' +endif + +let s:underline = 'underline,' +if g:gruvbox_underline == 0 + let s:underline = '' +endif + +let s:undercurl = 'undercurl,' +if g:gruvbox_undercurl == 0 + let s:undercurl = '' +endif + +let s:inverse = 'inverse,' +if g:gruvbox_inverse == 0 + let s:inverse = '' +endif + +" }}} +" Setup Colors: {{{ + +let s:vim_bg = ['bg', 'bg'] +let s:vim_fg = ['fg', 'fg'] +let s:none = ['NONE', 'NONE'] + +" determine relative colors +if s:is_dark + let s:bg0 = s:gb.dark0 + if g:gruvbox_contrast_dark == 'soft' + let s:bg0 = s:gb.dark0_soft + elseif g:gruvbox_contrast_dark == 'hard' + let s:bg0 = s:gb.dark0_hard + endif + + let s:bg1 = s:gb.dark1 + let s:bg2 = s:gb.dark2 + let s:bg3 = s:gb.dark3 + let s:bg4 = s:gb.dark4 + + let s:gray = s:gb.gray_245 + + let s:fg0 = s:gb.light0 + let s:fg1 = s:gb.light1 + let s:fg2 = s:gb.light2 + let s:fg3 = s:gb.light3 + let s:fg4 = s:gb.light4 + + let s:fg4_256 = s:gb.light4_256 + + let s:red = s:gb.bright_red + let s:green = s:gb.bright_green + let s:yellow = s:gb.bright_yellow + let s:blue = s:gb.bright_blue + let s:purple = s:gb.bright_purple + let s:aqua = s:gb.bright_aqua + let s:orange = s:gb.bright_orange +else + let s:bg0 = s:gb.light0 + if g:gruvbox_contrast_light == 'soft' + let s:bg0 = s:gb.light0_soft + elseif g:gruvbox_contrast_light == 'hard' + let s:bg0 = s:gb.light0_hard + endif + + let s:bg1 = s:gb.light1 + let s:bg2 = s:gb.light2 + let s:bg3 = s:gb.light3 + let s:bg4 = s:gb.light4 + + let s:gray = s:gb.gray_244 + + let s:fg0 = s:gb.dark0 + let s:fg1 = s:gb.dark1 + let s:fg2 = s:gb.dark2 + let s:fg3 = s:gb.dark3 + let s:fg4 = s:gb.dark4 + + let s:fg4_256 = s:gb.dark4_256 + + let s:red = s:gb.faded_red + let s:green = s:gb.faded_green + let s:yellow = s:gb.faded_yellow + let s:blue = s:gb.faded_blue + let s:purple = s:gb.faded_purple + let s:aqua = s:gb.faded_aqua + let s:orange = s:gb.faded_orange +endif + +" reset to 16 colors fallback +if g:gruvbox_termcolors == 16 + let s:bg0[1] = 0 + let s:fg4[1] = 7 + let s:gray[1] = 8 + let s:red[1] = 9 + let s:green[1] = 10 + let s:yellow[1] = 11 + let s:blue[1] = 12 + let s:purple[1] = 13 + let s:aqua[1] = 14 + let s:fg1[1] = 15 +endif + +" save current relative colors back to palette dictionary +let s:gb.bg0 = s:bg0 +let s:gb.bg1 = s:bg1 +let s:gb.bg2 = s:bg2 +let s:gb.bg3 = s:bg3 +let s:gb.bg4 = s:bg4 + +let s:gb.gray = s:gray + +let s:gb.fg0 = s:fg0 +let s:gb.fg1 = s:fg1 +let s:gb.fg2 = s:fg2 +let s:gb.fg3 = s:fg3 +let s:gb.fg4 = s:fg4 + +let s:gb.fg4_256 = s:fg4_256 + +let s:gb.red = s:red +let s:gb.green = s:green +let s:gb.yellow = s:yellow +let s:gb.blue = s:blue +let s:gb.purple = s:purple +let s:gb.aqua = s:aqua +let s:gb.orange = s:orange + +" }}} +" Setup Terminal Colors For Neovim: {{{ + +if has('nvim') + let g:terminal_color_0 = s:bg0[0] + let g:terminal_color_8 = s:gray[0] + + let g:terminal_color_1 = s:gb.neutral_red[0] + let g:terminal_color_9 = s:red[0] + + let g:terminal_color_2 = s:gb.neutral_green[0] + let g:terminal_color_10 = s:green[0] + + let g:terminal_color_3 = s:gb.neutral_yellow[0] + let g:terminal_color_11 = s:yellow[0] + + let g:terminal_color_4 = s:gb.neutral_blue[0] + let g:terminal_color_12 = s:blue[0] + + let g:terminal_color_5 = s:gb.neutral_purple[0] + let g:terminal_color_13 = s:purple[0] + + let g:terminal_color_6 = s:gb.neutral_aqua[0] + let g:terminal_color_14 = s:aqua[0] + + let g:terminal_color_7 = s:fg4[0] + let g:terminal_color_15 = s:fg1[0] +endif + +" }}} +" Overload Setting: {{{ + +let s:hls_cursor = s:orange +if exists('g:gruvbox_hls_cursor') + let s:hls_cursor = get(s:gb, g:gruvbox_hls_cursor) +endif + +let s:number_column = s:none +if exists('g:gruvbox_number_column') + let s:number_column = get(s:gb, g:gruvbox_number_column) +endif + +let s:sign_column = s:bg1 + +if exists('g:gitgutter_override_sign_column_highlight') && + \ g:gitgutter_override_sign_column_highlight == 1 + let s:sign_column = s:number_column +else + let g:gitgutter_override_sign_column_highlight = 0 + + if exists('g:gruvbox_sign_column') + let s:sign_column = get(s:gb, g:gruvbox_sign_column) + endif +endif + +let s:color_column = s:bg1 +if exists('g:gruvbox_color_column') + let s:color_column = get(s:gb, g:gruvbox_color_column) +endif + +let s:vert_split = s:bg0 +if exists('g:gruvbox_vert_split') + let s:vert_split = get(s:gb, g:gruvbox_vert_split) +endif + +let s:invert_signs = '' +if exists('g:gruvbox_invert_signs') + if g:gruvbox_invert_signs == 1 + let s:invert_signs = s:inverse + endif +endif + +let s:invert_selection = s:inverse +if exists('g:gruvbox_invert_selection') + if g:gruvbox_invert_selection == 0 + let s:invert_selection = '' + endif +endif + +let s:invert_tabline = '' +if exists('g:gruvbox_invert_tabline') + if g:gruvbox_invert_tabline == 1 + let s:invert_tabline = s:inverse + endif +endif + +let s:italicize_comments = s:italic +if exists('g:gruvbox_italicize_comments') + if g:gruvbox_italicize_comments == 0 + let s:italicize_comments = '' + endif +endif + +let s:italicize_strings = '' +if exists('g:gruvbox_italicize_strings') + if g:gruvbox_italicize_strings == 1 + let s:italicize_strings = s:italic + endif +endif + +" }}} +" Highlighting Function: {{{ + +function! s:HL(group, fg, ...) + " Arguments: group, guifg, guibg, gui, guisp + + " foreground + let fg = a:fg + + " background + if a:0 >= 1 + let bg = a:1 + else + let bg = s:none + endif + + " emphasis + if a:0 >= 2 && strlen(a:2) + let emstr = a:2 + else + let emstr = 'NONE,' + endif + + " special fallback + if a:0 >= 3 + if g:gruvbox_guisp_fallback != 'NONE' + let fg = a:3 + endif + + " bg fallback mode should invert higlighting + if g:gruvbox_guisp_fallback == 'bg' + let emstr .= 'inverse,' + endif + endif + + let histring = [ 'hi', a:group, + \ 'guifg=' . fg[0], 'ctermfg=' . fg[1], + \ 'guibg=' . bg[0], 'ctermbg=' . bg[1], + \ 'gui=' . emstr[:-2], 'cterm=' . emstr[:-2] + \ ] + + " special + if a:0 >= 3 + call add(histring, 'guisp=' . a:3[0]) + endif + + execute join(histring, ' ') +endfunction + +" }}} +" Gruvbox Hi Groups: {{{ + +" memoize common hi groups +call s:HL('GruvboxFg0', s:fg0) +call s:HL('GruvboxFg1', s:fg1) +call s:HL('GruvboxFg2', s:fg2) +call s:HL('GruvboxFg3', s:fg3) +call s:HL('GruvboxFg4', s:fg4) +call s:HL('GruvboxGray', s:gray) +call s:HL('GruvboxBg0', s:bg0) +call s:HL('GruvboxBg1', s:bg1) +call s:HL('GruvboxBg2', s:bg2) +call s:HL('GruvboxBg3', s:bg3) +call s:HL('GruvboxBg4', s:bg4) + +call s:HL('GruvboxRed', s:red) +call s:HL('GruvboxRedBold', s:red, s:none, s:bold) +call s:HL('GruvboxGreen', s:green) +call s:HL('GruvboxGreenBold', s:green, s:none, s:bold) +call s:HL('GruvboxYellow', s:yellow) +call s:HL('GruvboxYellowBold', s:yellow, s:none, s:bold) +call s:HL('GruvboxBlue', s:blue) +call s:HL('GruvboxBlueBold', s:blue, s:none, s:bold) +call s:HL('GruvboxPurple', s:purple) +call s:HL('GruvboxPurpleBold', s:purple, s:none, s:bold) +call s:HL('GruvboxAqua', s:aqua) +call s:HL('GruvboxAquaBold', s:aqua, s:none, s:bold) +call s:HL('GruvboxOrange', s:orange) +call s:HL('GruvboxOrangeBold', s:orange, s:none, s:bold) + +call s:HL('GruvboxRedSign', s:red, s:sign_column, s:invert_signs) +call s:HL('GruvboxGreenSign', s:green, s:sign_column, s:invert_signs) +call s:HL('GruvboxYellowSign', s:yellow, s:sign_column, s:invert_signs) +call s:HL('GruvboxBlueSign', s:blue, s:sign_column, s:invert_signs) +call s:HL('GruvboxPurpleSign', s:purple, s:sign_column, s:invert_signs) +call s:HL('GruvboxAquaSign', s:aqua, s:sign_column, s:invert_signs) +call s:HL('GruvboxOrangeSign', s:orange, s:sign_column, s:invert_signs) + +" }}} + +" Vanilla colorscheme --------------------------------------------------------- +" General UI: {{{ + +" Normal text +call s:HL('Normal', s:fg1, s:bg0) + +" Correct background (see issue #7): +" --- Problem with changing between dark and light on 256 color terminal +" --- https://github.com/morhetz/gruvbox/issues/7 +if s:is_dark + set background=dark +else + set background=light +endif + +if version >= 700 + " Screen line that the cursor is + call s:HL('CursorLine', s:none, s:bg1) + " Screen column that the cursor is + hi! link CursorColumn CursorLine + + " Tab pages line filler + call s:HL('TabLineFill', s:bg4, s:bg1, s:invert_tabline) + " Active tab page label + call s:HL('TabLineSel', s:green, s:bg1, s:invert_tabline) + " Not active tab page label + hi! link TabLine TabLineFill + + " Match paired bracket under the cursor + call s:HL('MatchParen', s:none, s:bg3, s:bold) +endif + +if version >= 703 + " Highlighted screen columns + call s:HL('ColorColumn', s:none, s:color_column) + + " Concealed element: \lambda → λ + call s:HL('Conceal', s:blue, s:none) + + " Line number of CursorLine + call s:HL('CursorLineNr', s:yellow, s:bg1) +endif + +hi! link NonText GruvboxBg2 +hi! link SpecialKey GruvboxBg2 + +call s:HL('Visual', s:none, s:bg3, s:invert_selection) +hi! link VisualNOS Visual + +call s:HL('Search', s:yellow, s:bg0, s:inverse) +call s:HL('IncSearch', s:hls_cursor, s:bg0, s:inverse) + +call s:HL('Underlined', s:blue, s:none, s:underline) + +call s:HL('StatusLine', s:bg2, s:fg1, s:inverse) +call s:HL('StatusLineNC', s:bg1, s:fg4, s:inverse) + +" The column separating vertically split windows +call s:HL('VertSplit', s:bg3, s:vert_split) + +" Current match in wildmenu completion +call s:HL('WildMenu', s:blue, s:bg2, s:bold) + +" Directory names, special names in listing +hi! link Directory GruvboxGreenBold + +" Titles for output from :set all, :autocmd, etc. +hi! link Title GruvboxGreenBold + +" Error messages on the command line +call s:HL('ErrorMsg', s:bg0, s:red, s:bold) +" More prompt: -- More -- +hi! link MoreMsg GruvboxYellowBold +" Current mode message: -- INSERT -- +hi! link ModeMsg GruvboxYellowBold +" 'Press enter' prompt and yes/no questions +hi! link Question GruvboxOrangeBold +" Warning messages +hi! link WarningMsg GruvboxRedBold + +" }}} +" Gutter: {{{ + +" Line number for :number and :# commands +call s:HL('LineNr', s:bg4, s:number_column) + +" Column where signs are displayed +call s:HL('SignColumn', s:none, s:sign_column) + +" Line used for closed folds +call s:HL('Folded', s:gray, s:bg1, s:italic) +" Column where folds are displayed +call s:HL('FoldColumn', s:gray, s:bg1) + +" }}} +" Cursor: {{{ + +" Character under cursor +call s:HL('Cursor', s:none, s:none, s:inverse) +" Visual mode cursor, selection +hi! link vCursor Cursor +" Input moder cursor +hi! link iCursor Cursor +" Language mapping cursor +hi! link lCursor Cursor + +" }}} +" Syntax Highlighting: {{{ + +if g:gruvbox_improved_strings == 0 + hi! link Special GruvboxOrange +else + call s:HL('Special', s:orange, s:bg1, s:italicize_strings) +endif + +call s:HL('Comment', s:gray, s:none, s:italicize_comments) +call s:HL('Todo', s:vim_fg, s:vim_bg, s:bold . s:italic) +call s:HL('Error', s:red, s:vim_bg, s:bold . s:inverse) + +" Generic statement +hi! link Statement GruvboxRed +" if, then, else, endif, swicth, etc. +hi! link Conditional GruvboxRed +" for, do, while, etc. +hi! link Repeat GruvboxRed +" case, default, etc. +hi! link Label GruvboxRed +" try, catch, throw +hi! link Exception GruvboxRed +" sizeof, "+", "*", etc. +hi! link Operator Normal +" Any other keyword +hi! link Keyword GruvboxRed + +" Variable name +hi! link Identifier GruvboxBlue +" Function name +hi! link Function GruvboxGreenBold + +" Generic preprocessor +hi! link PreProc GruvboxAqua +" Preprocessor #include +hi! link Include GruvboxAqua +" Preprocessor #define +hi! link Define GruvboxAqua +" Same as Define +hi! link Macro GruvboxAqua +" Preprocessor #if, #else, #endif, etc. +hi! link PreCondit GruvboxAqua + +" Generic constant +hi! link Constant GruvboxPurple +" Character constant: 'c', '/n' +hi! link Character GruvboxPurple +" String constant: "this is a string" +if g:gruvbox_improved_strings == 0 + call s:HL('String', s:green, s:none, s:italicize_strings) +else + call s:HL('String', s:fg1, s:bg1, s:italicize_strings) +endif +" Boolean constant: TRUE, false +hi! link Boolean GruvboxPurple +" Number constant: 234, 0xff +hi! link Number GruvboxPurple +" Floating point constant: 2.3e10 +hi! link Float GruvboxPurple + +" Generic type +hi! link Type GruvboxYellow +" static, register, volatile, etc +hi! link StorageClass GruvboxOrange +" struct, union, enum, etc. +hi! link Structure GruvboxAqua +" typedef +hi! link Typedef GruvboxYellow + +" }}} +" Completion Menu: {{{ + +if version >= 700 + " Popup menu: normal item + call s:HL('Pmenu', s:fg1, s:bg2) + " Popup menu: selected item + call s:HL('PmenuSel', s:bg2, s:blue, s:bold) + " Popup menu: scrollbar + call s:HL('PmenuSbar', s:none, s:bg2) + " Popup menu: scrollbar thumb + call s:HL('PmenuThumb', s:none, s:bg4) +endif + +" }}} +" Diffs: {{{ + +call s:HL('DiffDelete', s:red, s:bg0, s:inverse) +call s:HL('DiffAdd', s:green, s:bg0, s:inverse) +"call s:HL('DiffChange', s:bg0, s:blue) +"call s:HL('DiffText', s:bg0, s:yellow) + +" Alternative setting +call s:HL('DiffChange', s:aqua, s:bg0, s:inverse) +call s:HL('DiffText', s:yellow, s:bg0, s:inverse) + +" }}} +" Spelling: {{{ + +if has("spell") + " Not capitalised word, or compile warnings + if g:gruvbox_improved_warnings == 0 + call s:HL('SpellCap', s:none, s:none, s:undercurl, s:red) + else + call s:HL('SpellCap', s:green, s:none, s:bold . s:italic) + endif + " Not recognized word + call s:HL('SpellBad', s:none, s:none, s:undercurl, s:blue) + " Wrong spelling for selected region + call s:HL('SpellLocal', s:none, s:none, s:undercurl, s:aqua) + " Rare word + call s:HL('SpellRare', s:none, s:none, s:undercurl, s:purple) +endif + +" }}} + +" Plugin specific ------------------------------------------------------------- +" EasyMotion: {{{ + +hi! link EasyMotionTarget Search +hi! link EasyMotionShade Comment + +" }}} +" Sneak: {{{ + +hi! link Sneak Search +hi! link SneakLabel Search + +" }}} +" Indent Guides: {{{ + +if !exists('g:indent_guides_auto_colors') + let g:indent_guides_auto_colors = 0 +endif + +if g:indent_guides_auto_colors == 0 + if g:gruvbox_invert_indent_guides == 0 + call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2) + call s:HL('IndentGuidesEven', s:vim_bg, s:bg1) + else + call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2, s:inverse) + call s:HL('IndentGuidesEven', s:vim_bg, s:bg3, s:inverse) + endif +endif + +" }}} +" IndentLine: {{{ + +if !exists('g:indentLine_color_term') + let g:indentLine_color_term = s:bg2[1] +endif +if !exists('g:indentLine_color_gui') + let g:indentLine_color_gui = s:bg2[0] +endif + +" }}} +" Rainbow Parentheses: {{{ + +if !exists('g:rbpt_colorpairs') + let g:rbpt_colorpairs = + \ [ + \ ['blue', '#458588'], ['magenta', '#b16286'], + \ ['red', '#cc241d'], ['166', '#d65d0e'] + \ ] +endif + +let g:rainbow_guifgs = [ '#d65d0e', '#cc241d', '#b16286', '#458588' ] +let g:rainbow_ctermfgs = [ '166', 'red', 'magenta', 'blue' ] + +if !exists('g:rainbow_conf') + let g:rainbow_conf = {} +endif +if !has_key(g:rainbow_conf, 'guifgs') + let g:rainbow_conf['guifgs'] = g:rainbow_guifgs +endif +if !has_key(g:rainbow_conf, 'ctermfgs') + let g:rainbow_conf['ctermfgs'] = g:rainbow_ctermfgs +endif + +let g:niji_dark_colours = g:rbpt_colorpairs +let g:niji_light_colours = g:rbpt_colorpairs + +"}}} +" GitGutter: {{{ + +hi! link GitGutterAdd GruvboxGreenSign +hi! link GitGutterChange GruvboxAquaSign +hi! link GitGutterDelete GruvboxRedSign +hi! link GitGutterChangeDelete GruvboxAquaSign + +" }}} +" GitCommit: "{{{ + +hi! link gitcommitSelectedFile GruvboxGreen +hi! link gitcommitDiscardedFile GruvboxRed + +" }}} +" Signify: {{{ + +hi! link SignifySignAdd GruvboxGreenSign +hi! link SignifySignChange GruvboxAquaSign +hi! link SignifySignDelete GruvboxRedSign + +" }}} +" Syntastic: {{{ + +call s:HL('SyntasticError', s:none, s:none, s:undercurl, s:red) +call s:HL('SyntasticWarning', s:none, s:none, s:undercurl, s:yellow) + +hi! link SyntasticErrorSign GruvboxRedSign +hi! link SyntasticWarningSign GruvboxYellowSign + +" }}} +" Signature: {{{ +hi! link SignatureMarkText GruvboxBlueSign +hi! link SignatureMarkerText GruvboxPurpleSign + +" }}} +" ShowMarks: {{{ + +hi! link ShowMarksHLl GruvboxBlueSign +hi! link ShowMarksHLu GruvboxBlueSign +hi! link ShowMarksHLo GruvboxBlueSign +hi! link ShowMarksHLm GruvboxBlueSign + +" }}} +" CtrlP: {{{ + +hi! link CtrlPMatch GruvboxYellow +hi! link CtrlPNoEntries GruvboxRed +hi! link CtrlPPrtBase GruvboxBg2 +hi! link CtrlPPrtCursor GruvboxBlue +hi! link CtrlPLinePre GruvboxBg2 + +call s:HL('CtrlPMode1', s:blue, s:bg2, s:bold) +call s:HL('CtrlPMode2', s:bg0, s:blue, s:bold) +call s:HL('CtrlPStats', s:fg4, s:bg2, s:bold) + +" }}} +" Startify: {{{ + +hi! link StartifyBracket GruvboxFg3 +hi! link StartifyFile GruvboxFg1 +hi! link StartifyNumber GruvboxBlue +hi! link StartifyPath GruvboxGray +hi! link StartifySlash GruvboxGray +hi! link StartifySection GruvboxYellow +hi! link StartifySpecial GruvboxBg2 +hi! link StartifyHeader GruvboxOrange +hi! link StartifyFooter GruvboxBg2 + +" }}} +" Vimshell: {{{ + +let g:vimshell_escape_colors = [ + \ s:bg4[0], s:red[0], s:green[0], s:yellow[0], + \ s:blue[0], s:purple[0], s:aqua[0], s:fg4[0], + \ s:bg0[0], s:red[0], s:green[0], s:orange[0], + \ s:blue[0], s:purple[0], s:aqua[0], s:fg0[0] + \ ] + +" }}} +" BufTabLine: {{{ + +call s:HL('BufTabLineCurrent', s:bg0, s:fg4) +call s:HL('BufTabLineActive', s:fg4, s:bg2) +call s:HL('BufTabLineHidden', s:bg4, s:bg1) +call s:HL('BufTabLineFill', s:bg0, s:bg0) + +" }}} +" Asynchronous Lint Engine: {{{ + +call s:HL('ALEError', s:none, s:none, s:undercurl, s:red) +call s:HL('ALEWarning', s:none, s:none, s:undercurl, s:yellow) +call s:HL('ALEInfo', s:none, s:none, s:undercurl, s:blue) + +hi! link ALEErrorSign GruvboxRedSign +hi! link ALEWarningSign GruvboxYellowSign +hi! link ALEInfoSign GruvboxBlueSign + +" }}} +" Dirvish: {{{ + +hi! link DirvishPathTail GruvboxAqua +hi! link DirvishArg GruvboxYellow + +" }}} +" Netrw: {{{ + +hi! link netrwDir GruvboxAqua +hi! link netrwClassify GruvboxAqua +hi! link netrwLink GruvboxGray +hi! link netrwSymLink GruvboxFg1 +hi! link netrwExe GruvboxYellow +hi! link netrwComment GruvboxGray +hi! link netrwList GruvboxBlue +hi! link netrwHelpCmd GruvboxAqua +hi! link netrwCmdSep GruvboxFg3 +hi! link netrwVersion GruvboxGreen + +" }}} +" NERDTree: {{{ + +hi! link NERDTreeDir GruvboxAqua +hi! link NERDTreeDirSlash GruvboxAqua + +hi! link NERDTreeOpenable GruvboxOrange +hi! link NERDTreeClosable GruvboxOrange + +hi! link NERDTreeFile GruvboxFg1 +hi! link NERDTreeExecFile GruvboxYellow + +hi! link NERDTreeUp GruvboxGray +hi! link NERDTreeCWD GruvboxGreen +hi! link NERDTreeHelp GruvboxFg1 + +hi! link NERDTreeToggleOn GruvboxGreen +hi! link NERDTreeToggleOff GruvboxRed + +" }}} +" Vim Multiple Cursors: {{{ + +call s:HL('multiple_cursors_cursor', s:none, s:none, s:inverse) +call s:HL('multiple_cursors_visual', s:none, s:bg2) + +" }}} +" coc.nvim: {{{ + +hi! link CocErrorSign GruvboxRedSign +hi! link CocWarningSign GruvboxOrangeSign +hi! link CocInfoSign GruvboxYellowSign +hi! link CocHintSign GruvboxBlueSign +hi! link CocErrorFloat GruvboxRed +hi! link CocWarningFloat GruvboxOrange +hi! link CocInfoFloat GruvboxYellow +hi! link CocHintFloat GruvboxBlue +hi! link CocDiagnosticsError GruvboxRed +hi! link CocDiagnosticsWarning GruvboxOrange +hi! link CocDiagnosticsInfo GruvboxYellow +hi! link CocDiagnosticsHint GruvboxBlue + +hi! link CocSelectedText GruvboxRed +hi! link CocCodeLens GruvboxGray + +call s:HL('CocErrorHighlight', s:none, s:none, s:undercurl, s:red) +call s:HL('CocWarningHighlight', s:none, s:none, s:undercurl, s:orange) +call s:HL('CocInfoHighlight', s:none, s:none, s:undercurl, s:yellow) +call s:HL('CocHintHighlight', s:none, s:none, s:undercurl, s:blue) + +" }}} + +" Filetype specific ----------------------------------------------------------- +" Diff: {{{ + +hi! link diffAdded GruvboxGreen +hi! link diffRemoved GruvboxRed +hi! link diffChanged GruvboxAqua + +hi! link diffFile GruvboxOrange +hi! link diffNewFile GruvboxYellow + +hi! link diffLine GruvboxBlue + +" }}} +" Html: {{{ + +hi! link htmlTag GruvboxBlue +hi! link htmlEndTag GruvboxBlue + +hi! link htmlTagName GruvboxAquaBold +hi! link htmlArg GruvboxAqua + +hi! link htmlScriptTag GruvboxPurple +hi! link htmlTagN GruvboxFg1 +hi! link htmlSpecialTagName GruvboxAquaBold + +call s:HL('htmlLink', s:fg4, s:none, s:underline) + +hi! link htmlSpecialChar GruvboxOrange + +call s:HL('htmlBold', s:vim_fg, s:vim_bg, s:bold) +call s:HL('htmlBoldUnderline', s:vim_fg, s:vim_bg, s:bold . s:underline) +call s:HL('htmlBoldItalic', s:vim_fg, s:vim_bg, s:bold . s:italic) +call s:HL('htmlBoldUnderlineItalic', s:vim_fg, s:vim_bg, s:bold . s:underline . s:italic) + +call s:HL('htmlUnderline', s:vim_fg, s:vim_bg, s:underline) +call s:HL('htmlUnderlineItalic', s:vim_fg, s:vim_bg, s:underline . s:italic) +call s:HL('htmlItalic', s:vim_fg, s:vim_bg, s:italic) + +" }}} +" Xml: {{{ + +hi! link xmlTag GruvboxBlue +hi! link xmlEndTag GruvboxBlue +hi! link xmlTagName GruvboxBlue +hi! link xmlEqual GruvboxBlue +hi! link docbkKeyword GruvboxAquaBold + +hi! link xmlDocTypeDecl GruvboxGray +hi! link xmlDocTypeKeyword GruvboxPurple +hi! link xmlCdataStart GruvboxGray +hi! link xmlCdataCdata GruvboxPurple +hi! link dtdFunction GruvboxGray +hi! link dtdTagName GruvboxPurple + +hi! link xmlAttrib GruvboxAqua +hi! link xmlProcessingDelim GruvboxGray +hi! link dtdParamEntityPunct GruvboxGray +hi! link dtdParamEntityDPunct GruvboxGray +hi! link xmlAttribPunct GruvboxGray + +hi! link xmlEntity GruvboxOrange +hi! link xmlEntityPunct GruvboxOrange +" }}} +" Vim: {{{ + +call s:HL('vimCommentTitle', s:fg4_256, s:none, s:bold . s:italicize_comments) + +hi! link vimNotation GruvboxOrange +hi! link vimBracket GruvboxOrange +hi! link vimMapModKey GruvboxOrange +hi! link vimFuncSID GruvboxFg3 +hi! link vimSetSep GruvboxFg3 +hi! link vimSep GruvboxFg3 +hi! link vimContinue GruvboxFg3 + +" }}} +" Clojure: {{{ + +hi! link clojureKeyword GruvboxBlue +hi! link clojureCond GruvboxOrange +hi! link clojureSpecial GruvboxOrange +hi! link clojureDefine GruvboxOrange + +hi! link clojureFunc GruvboxYellow +hi! link clojureRepeat GruvboxYellow +hi! link clojureCharacter GruvboxAqua +hi! link clojureStringEscape GruvboxAqua +hi! link clojureException GruvboxRed + +hi! link clojureRegexp GruvboxAqua +hi! link clojureRegexpEscape GruvboxAqua +call s:HL('clojureRegexpCharClass', s:fg3, s:none, s:bold) +hi! link clojureRegexpMod clojureRegexpCharClass +hi! link clojureRegexpQuantifier clojureRegexpCharClass + +hi! link clojureParen GruvboxFg3 +hi! link clojureAnonArg GruvboxYellow +hi! link clojureVariable GruvboxBlue +hi! link clojureMacro GruvboxOrange + +hi! link clojureMeta GruvboxYellow +hi! link clojureDeref GruvboxYellow +hi! link clojureQuote GruvboxYellow +hi! link clojureUnquote GruvboxYellow + +" }}} +" C: {{{ + +hi! link cOperator GruvboxPurple +hi! link cStructure GruvboxOrange + +" }}} +" Python: {{{ + +hi! link pythonBuiltin GruvboxOrange +hi! link pythonBuiltinObj GruvboxOrange +hi! link pythonBuiltinFunc GruvboxOrange +hi! link pythonFunction GruvboxAqua +hi! link pythonDecorator GruvboxRed +hi! link pythonInclude GruvboxBlue +hi! link pythonImport GruvboxBlue +hi! link pythonRun GruvboxBlue +hi! link pythonCoding GruvboxBlue +hi! link pythonOperator GruvboxRed +hi! link pythonException GruvboxRed +hi! link pythonExceptions GruvboxPurple +hi! link pythonBoolean GruvboxPurple +hi! link pythonDot GruvboxFg3 +hi! link pythonConditional GruvboxRed +hi! link pythonRepeat GruvboxRed +hi! link pythonDottedName GruvboxGreenBold + +" }}} +" CSS: {{{ + +hi! link cssBraces GruvboxBlue +hi! link cssFunctionName GruvboxYellow +hi! link cssIdentifier GruvboxOrange +hi! link cssClassName GruvboxGreen +hi! link cssColor GruvboxBlue +hi! link cssSelectorOp GruvboxBlue +hi! link cssSelectorOp2 GruvboxBlue +hi! link cssImportant GruvboxGreen +hi! link cssVendor GruvboxFg1 + +hi! link cssTextProp GruvboxAqua +hi! link cssAnimationProp GruvboxAqua +hi! link cssUIProp GruvboxYellow +hi! link cssTransformProp GruvboxAqua +hi! link cssTransitionProp GruvboxAqua +hi! link cssPrintProp GruvboxAqua +hi! link cssPositioningProp GruvboxYellow +hi! link cssBoxProp GruvboxAqua +hi! link cssFontDescriptorProp GruvboxAqua +hi! link cssFlexibleBoxProp GruvboxAqua +hi! link cssBorderOutlineProp GruvboxAqua +hi! link cssBackgroundProp GruvboxAqua +hi! link cssMarginProp GruvboxAqua +hi! link cssListProp GruvboxAqua +hi! link cssTableProp GruvboxAqua +hi! link cssFontProp GruvboxAqua +hi! link cssPaddingProp GruvboxAqua +hi! link cssDimensionProp GruvboxAqua +hi! link cssRenderProp GruvboxAqua +hi! link cssColorProp GruvboxAqua +hi! link cssGeneratedContentProp GruvboxAqua + +" }}} +" JavaScript: {{{ + +hi! link javaScriptBraces GruvboxFg1 +hi! link javaScriptFunction GruvboxAqua +hi! link javaScriptIdentifier GruvboxRed +hi! link javaScriptMember GruvboxBlue +hi! link javaScriptNumber GruvboxPurple +hi! link javaScriptNull GruvboxPurple +hi! link javaScriptParens GruvboxFg3 + +" }}} +" YAJS: {{{ + +hi! link javascriptImport GruvboxAqua +hi! link javascriptExport GruvboxAqua +hi! link javascriptClassKeyword GruvboxAqua +hi! link javascriptClassExtends GruvboxAqua +hi! link javascriptDefault GruvboxAqua + +hi! link javascriptClassName GruvboxYellow +hi! link javascriptClassSuperName GruvboxYellow +hi! link javascriptGlobal GruvboxYellow + +hi! link javascriptEndColons GruvboxFg1 +hi! link javascriptFuncArg GruvboxFg1 +hi! link javascriptGlobalMethod GruvboxFg1 +hi! link javascriptNodeGlobal GruvboxFg1 +hi! link javascriptBOMWindowProp GruvboxFg1 +hi! link javascriptArrayMethod GruvboxFg1 +hi! link javascriptArrayStaticMethod GruvboxFg1 +hi! link javascriptCacheMethod GruvboxFg1 +hi! link javascriptDateMethod GruvboxFg1 +hi! link javascriptMathStaticMethod GruvboxFg1 + +" hi! link javascriptProp GruvboxFg1 +hi! link javascriptURLUtilsProp GruvboxFg1 +hi! link javascriptBOMNavigatorProp GruvboxFg1 +hi! link javascriptDOMDocMethod GruvboxFg1 +hi! link javascriptDOMDocProp GruvboxFg1 +hi! link javascriptBOMLocationMethod GruvboxFg1 +hi! link javascriptBOMWindowMethod GruvboxFg1 +hi! link javascriptStringMethod GruvboxFg1 + +hi! link javascriptVariable GruvboxOrange +" hi! link javascriptVariable GruvboxRed +" hi! link javascriptIdentifier GruvboxOrange +" hi! link javascriptClassSuper GruvboxOrange +hi! link javascriptIdentifier GruvboxOrange +hi! link javascriptClassSuper GruvboxOrange + +" hi! link javascriptFuncKeyword GruvboxOrange +" hi! link javascriptAsyncFunc GruvboxOrange +hi! link javascriptFuncKeyword GruvboxAqua +hi! link javascriptAsyncFunc GruvboxAqua +hi! link javascriptClassStatic GruvboxOrange + +hi! link javascriptOperator GruvboxRed +hi! link javascriptForOperator GruvboxRed +hi! link javascriptYield GruvboxRed +hi! link javascriptExceptions GruvboxRed +hi! link javascriptMessage GruvboxRed + +hi! link javascriptTemplateSB GruvboxAqua +hi! link javascriptTemplateSubstitution GruvboxFg1 + +" hi! link javascriptLabel GruvboxBlue +" hi! link javascriptObjectLabel GruvboxBlue +" hi! link javascriptPropertyName GruvboxBlue +hi! link javascriptLabel GruvboxFg1 +hi! link javascriptObjectLabel GruvboxFg1 +hi! link javascriptPropertyName GruvboxFg1 + +hi! link javascriptLogicSymbols GruvboxFg1 +hi! link javascriptArrowFunc GruvboxYellow + +hi! link javascriptDocParamName GruvboxFg4 +hi! link javascriptDocTags GruvboxFg4 +hi! link javascriptDocNotation GruvboxFg4 +hi! link javascriptDocParamType GruvboxFg4 +hi! link javascriptDocNamedParamType GruvboxFg4 + +hi! link javascriptBrackets GruvboxFg1 +hi! link javascriptDOMElemAttrs GruvboxFg1 +hi! link javascriptDOMEventMethod GruvboxFg1 +hi! link javascriptDOMNodeMethod GruvboxFg1 +hi! link javascriptDOMStorageMethod GruvboxFg1 +hi! link javascriptHeadersMethod GruvboxFg1 + +hi! link javascriptAsyncFuncKeyword GruvboxRed +hi! link javascriptAwaitFuncKeyword GruvboxRed + +" }}} +" PanglossJS: {{{ + +hi! link jsClassKeyword GruvboxAqua +hi! link jsExtendsKeyword GruvboxAqua +hi! link jsExportDefault GruvboxAqua +hi! link jsTemplateBraces GruvboxAqua +hi! link jsGlobalNodeObjects GruvboxFg1 +hi! link jsGlobalObjects GruvboxFg1 +hi! link jsFunction GruvboxAqua +hi! link jsFuncParens GruvboxFg3 +hi! link jsParens GruvboxFg3 +hi! link jsNull GruvboxPurple +hi! link jsUndefined GruvboxPurple +hi! link jsClassDefinition GruvboxYellow + +" }}} +" TypeScript: {{{ + +hi! link typeScriptReserved GruvboxAqua +hi! link typeScriptLabel GruvboxAqua +hi! link typeScriptFuncKeyword GruvboxAqua +hi! link typeScriptIdentifier GruvboxOrange +hi! link typeScriptBraces GruvboxFg1 +hi! link typeScriptEndColons GruvboxFg1 +hi! link typeScriptDOMObjects GruvboxFg1 +hi! link typeScriptAjaxMethods GruvboxFg1 +hi! link typeScriptLogicSymbols GruvboxFg1 +hi! link typeScriptDocSeeTag Comment +hi! link typeScriptDocParam Comment +hi! link typeScriptDocTags vimCommentTitle +hi! link typeScriptGlobalObjects GruvboxFg1 +hi! link typeScriptParens GruvboxFg3 +hi! link typeScriptOpSymbols GruvboxFg3 +hi! link typeScriptHtmlElemProperties GruvboxFg1 +hi! link typeScriptNull GruvboxPurple +hi! link typeScriptInterpolationDelimiter GruvboxAqua + +" }}} +" PureScript: {{{ + +hi! link purescriptModuleKeyword GruvboxAqua +hi! link purescriptModuleName GruvboxFg1 +hi! link purescriptWhere GruvboxAqua +hi! link purescriptDelimiter GruvboxFg4 +hi! link purescriptType GruvboxFg1 +hi! link purescriptImportKeyword GruvboxAqua +hi! link purescriptHidingKeyword GruvboxAqua +hi! link purescriptAsKeyword GruvboxAqua +hi! link purescriptStructure GruvboxAqua +hi! link purescriptOperator GruvboxBlue + +hi! link purescriptTypeVar GruvboxFg1 +hi! link purescriptConstructor GruvboxFg1 +hi! link purescriptFunction GruvboxFg1 +hi! link purescriptConditional GruvboxOrange +hi! link purescriptBacktick GruvboxOrange + +" }}} +" CoffeeScript: {{{ + +hi! link coffeeExtendedOp GruvboxFg3 +hi! link coffeeSpecialOp GruvboxFg3 +hi! link coffeeCurly GruvboxOrange +hi! link coffeeParen GruvboxFg3 +hi! link coffeeBracket GruvboxOrange + +" }}} +" Ruby: {{{ + +hi! link rubyStringDelimiter GruvboxGreen +hi! link rubyInterpolationDelimiter GruvboxAqua + +" }}} +" ObjectiveC: {{{ + +hi! link objcTypeModifier GruvboxRed +hi! link objcDirective GruvboxBlue + +" }}} +" Go: {{{ + +hi! link goDirective GruvboxAqua +hi! link goConstants GruvboxPurple +hi! link goDeclaration GruvboxRed +hi! link goDeclType GruvboxBlue +hi! link goBuiltins GruvboxOrange + +" }}} +" Lua: {{{ + +hi! link luaIn GruvboxRed +hi! link luaFunction GruvboxAqua +hi! link luaTable GruvboxOrange + +" }}} +" MoonScript: {{{ + +hi! link moonSpecialOp GruvboxFg3 +hi! link moonExtendedOp GruvboxFg3 +hi! link moonFunction GruvboxFg3 +hi! link moonObject GruvboxYellow + +" }}} +" Java: {{{ + +hi! link javaAnnotation GruvboxBlue +hi! link javaDocTags GruvboxAqua +hi! link javaCommentTitle vimCommentTitle +hi! link javaParen GruvboxFg3 +hi! link javaParen1 GruvboxFg3 +hi! link javaParen2 GruvboxFg3 +hi! link javaParen3 GruvboxFg3 +hi! link javaParen4 GruvboxFg3 +hi! link javaParen5 GruvboxFg3 +hi! link javaOperator GruvboxOrange + +hi! link javaVarArg GruvboxGreen + +" }}} +" Elixir: {{{ + +hi! link elixirDocString Comment + +hi! link elixirStringDelimiter GruvboxGreen +hi! link elixirInterpolationDelimiter GruvboxAqua + +hi! link elixirModuleDeclaration GruvboxYellow + +" }}} +" Scala: {{{ + +" NB: scala vim syntax file is kinda horrible +hi! link scalaNameDefinition GruvboxFg1 +hi! link scalaCaseFollowing GruvboxFg1 +hi! link scalaCapitalWord GruvboxFg1 +hi! link scalaTypeExtension GruvboxFg1 + +hi! link scalaKeyword GruvboxRed +hi! link scalaKeywordModifier GruvboxRed + +hi! link scalaSpecial GruvboxAqua +hi! link scalaOperator GruvboxFg1 + +hi! link scalaTypeDeclaration GruvboxYellow +hi! link scalaTypeTypePostDeclaration GruvboxYellow + +hi! link scalaInstanceDeclaration GruvboxFg1 +hi! link scalaInterpolation GruvboxAqua + +" }}} +" Markdown: {{{ + +call s:HL('markdownItalic', s:fg3, s:none, s:italic) + +hi! link markdownH1 GruvboxGreenBold +hi! link markdownH2 GruvboxGreenBold +hi! link markdownH3 GruvboxYellowBold +hi! link markdownH4 GruvboxYellowBold +hi! link markdownH5 GruvboxYellow +hi! link markdownH6 GruvboxYellow + +hi! link markdownCode GruvboxAqua +hi! link markdownCodeBlock GruvboxAqua +hi! link markdownCodeDelimiter GruvboxAqua + +hi! link markdownBlockquote GruvboxGray +hi! link markdownListMarker GruvboxGray +hi! link markdownOrderedListMarker GruvboxGray +hi! link markdownRule GruvboxGray +hi! link markdownHeadingRule GruvboxGray + +hi! link markdownUrlDelimiter GruvboxFg3 +hi! link markdownLinkDelimiter GruvboxFg3 +hi! link markdownLinkTextDelimiter GruvboxFg3 + +hi! link markdownHeadingDelimiter GruvboxOrange +hi! link markdownUrl GruvboxPurple +hi! link markdownUrlTitleDelimiter GruvboxGreen + +call s:HL('markdownLinkText', s:gray, s:none, s:underline) +hi! link markdownIdDeclaration markdownLinkText + +" }}} +" Haskell: {{{ + +" hi! link haskellType GruvboxYellow +" hi! link haskellOperators GruvboxOrange +" hi! link haskellConditional GruvboxAqua +" hi! link haskellLet GruvboxOrange +" +hi! link haskellType GruvboxFg1 +hi! link haskellIdentifier GruvboxFg1 +hi! link haskellSeparator GruvboxFg1 +hi! link haskellDelimiter GruvboxFg4 +hi! link haskellOperators GruvboxBlue +" +hi! link haskellBacktick GruvboxOrange +hi! link haskellStatement GruvboxOrange +hi! link haskellConditional GruvboxOrange + +hi! link haskellLet GruvboxAqua +hi! link haskellDefault GruvboxAqua +hi! link haskellWhere GruvboxAqua +hi! link haskellBottom GruvboxAqua +hi! link haskellBlockKeywords GruvboxAqua +hi! link haskellImportKeywords GruvboxAqua +hi! link haskellDeclKeyword GruvboxAqua +hi! link haskellDeriving GruvboxAqua +hi! link haskellAssocType GruvboxAqua + +hi! link haskellNumber GruvboxPurple +hi! link haskellPragma GruvboxPurple + +hi! link haskellString GruvboxGreen +hi! link haskellChar GruvboxGreen + +" }}} +" Json: {{{ + +hi! link jsonKeyword GruvboxGreen +hi! link jsonQuote GruvboxGreen +hi! link jsonBraces GruvboxFg1 +hi! link jsonString GruvboxFg1 + +" }}} + + +" Functions ------------------------------------------------------------------- +" Search Highlighting Cursor {{{ + +function! GruvboxHlsShowCursor() + call s:HL('Cursor', s:bg0, s:hls_cursor) +endfunction + +function! GruvboxHlsHideCursor() + call s:HL('Cursor', s:none, s:none, s:inverse) +endfunction + +" }}} + +" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker: diff --git a/private_dot_config/nvim/colors/miramare.vim b/private_dot_config/nvim/colors/miramare.vim new file mode 100644 index 0000000..9fef3a7 --- /dev/null +++ b/private_dot_config/nvim/colors/miramare.vim @@ -0,0 +1,1753 @@ +" ----------------------------------------------------------------------------- +" Name: Miramare +" Description: Comfortable & Pleasant Color Scheme for Vim +" Author: Francisco Bach <franciscobach@gmail.com> +" Website: https://github.com/franbach/miramare +" License: MIT +" ----------------------------------------------------------------------------- + +" Initialization: {{{ +highlight clear +if exists('syntax_on') + syntax reset +endif +set background=dark + +let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 2 + +let g:colors_name = 'miramare' +" }}} +" Configuration: {{{ +let s:configuration = {} +let s:configuration.palette = get(g:, 'miramare_palette', 'soft') +let s:configuration.transparent_background = get(g:, 'miramare_transparent_background', 0) +let s:configuration.disable_italic_comment = get(g:, 'miramare_disable_italic_comment', 0) +let s:configuration.enable_italic = get(g:, 'miramare_enable_italic', 0) +let s:configuration.cursor = get(g:, 'miramare_cursor', 'auto') +let s:configuration.current_word = get(g:, 'miramare_current_word', get(g:, 'miramare_transparent_background', 0) == 0 ? 'grey background' : 'bold') +" }}} +" Palette: {{{ +let s:palette = { + \ 'bg0': ['#2A2426', '235', 'Black'], + \ 'bg1': ['#242021', '236', 'DarkGrey'], + \ 'bg2': ['#242021', '237', 'DarkGrey'], + \ 'bg3': ['#242021', '238', 'DarkGrey'], + \ 'bg4': ['#242021', '239', 'Grey'], + \ 'bg_red': ['#392f32', '52', 'DarkRed'], + \ 'bg_green': ['#333b2f', '22', 'DarkGreen'], + \ 'bg_blue': ['#203a41', '17', 'DarkBlue'], + \ 'fg': ['#e6d6ac', '223', 'White'], + \ 'red': ['#e68183', '167', 'Red'], + \ 'orange': ['#fabd2f', '208', 'Red'], + \ 'yellow': ['#d9bb80', '214', 'Yellow'], + \ 'green': ['#a7c080', '142', 'Green'], + \ 'cyan': ['#87c095', '108', 'Cyan'], + \ 'blue': ['#89beba', '109', 'Blue'], + \ 'purple': ['#d3a0bc', '175', 'Magenta'], + \ 'grey': ['#444444', '245', 'LightGrey'], + \ 'none': ['NONE', 'NONE', 'NONE'] + \ } +" }}} +" Function: {{{ +" call s:HL(group, foreground, background) +" call s:HL(group, foreground, background, gui, guisp) +" +" E.g.: +" call s:HL('Normal', s:palette.fg, s:palette.bg0) + +if (has('termguicolors') && &termguicolors) || has('gui_running') " guifg guibg gui cterm guisp + function! s:HL(group, fg, bg, ...) + let hl_string = [ + \ 'highlight', a:group, + \ 'guifg=' . a:fg[0], + \ 'guibg=' . a:bg[0], + \ ] + if a:0 >= 1 + if a:1 ==# 'undercurl' + call add(hl_string, 'gui=undercurl') + call add(hl_string, 'cterm=underline') + else + call add(hl_string, 'gui=' . a:1) + call add(hl_string, 'cterm=' . a:1) + endif + else + call add(hl_string, 'gui=NONE') + call add(hl_string, 'cterm=NONE') + endif + if a:0 >= 2 + call add(hl_string, 'guisp=' . a:2[0]) + endif + execute join(hl_string, ' ') + endfunction +elseif s:t_Co >= 256 " ctermfg ctermbg cterm + function! s:HL(group, fg, bg, ...) + let hl_string = [ + \ 'highlight', a:group, + \ 'ctermfg=' . a:fg[1], + \ 'ctermbg=' . a:bg[1], + \ ] + if a:0 >= 1 + if a:1 ==# 'undercurl' + call add(hl_string, 'cterm=underline') + else + call add(hl_string, 'cterm=' . a:1) + endif + else + call add(hl_string, 'cterm=NONE') + endif + execute join(hl_string, ' ') + endfunction +else " ctermfg ctermbg cterm + function! s:HL(group, fg, bg, ...) + let hl_string = [ + \ 'highlight', a:group, + \ 'ctermfg=' . a:fg[2], + \ 'ctermbg=' . a:bg[2], + \ ] + if a:0 >= 1 + if a:1 ==# 'undercurl' + call add(hl_string, 'cterm=underline') + else + call add(hl_string, 'cterm=' . a:1) + endif + else + call add(hl_string, 'cterm=NONE') + endif + execute join(hl_string, ' ') + endfunction +endif +" }}} + +" Common Highlight Groups: {{{ +" UI: {{{ +if s:configuration.transparent_background + call s:HL('Normal', s:palette.fg, s:palette.none) + call s:HL('Terminal', s:palette.fg, s:palette.none) + call s:HL('EndOfBuffer', s:palette.bg0, s:palette.none) + call s:HL('FoldColumn', s:palette.grey, s:palette.none) + call s:HL('Folded', s:palette.grey, s:palette.none) + call s:HL('SignColumn', s:palette.fg, s:palette.none) +else + call s:HL('Normal', s:palette.fg, s:palette.bg0) + call s:HL('Terminal', s:palette.fg, s:palette.bg0) + call s:HL('EndOfBuffer', s:palette.bg0, s:palette.bg0) + call s:HL('FoldColumn', s:palette.grey, s:palette.bg1) + call s:HL('Folded', s:palette.grey, s:palette.bg1) + call s:HL('SignColumn', s:palette.fg, s:palette.bg1) +endif +call s:HL('ColorColumn', s:palette.none, s:palette.bg1) +call s:HL('Conceal', s:palette.grey, s:palette.none) +if s:configuration.cursor ==# 'auto' + call s:HL('Cursor', s:palette.none, s:palette.none, 'reverse') + call s:HL('lCursor', s:palette.none, s:palette.none, 'reverse') +elseif s:configuration.cursor ==# 'red' + call s:HL('Cursor', s:palette.bg0, s:palette.red) + call s:HL('lCursor', s:palette.bg0, s:palette.red) +elseif s:configuration.cursor ==# 'green' + call s:HL('Cursor', s:palette.bg0, s:palette.green) + call s:HL('lCursor', s:palette.bg0, s:palette.green) +elseif s:configuration.cursor ==# 'blue' + call s:HL('Cursor', s:palette.bg0, s:palette.blue) + call s:HL('lCursor', s:palette.bg0, s:palette.blue) +elseif s:configuration.cursor ==# 'purple' + call s:HL('Cursor', s:palette.bg0, s:palette.purple) + call s:HL('lCursor', s:palette.bg0, s:palette.purple) +endif +call s:HL('CursorColumn', s:palette.none, s:palette.bg1) +call s:HL('CursorLine', s:palette.none, s:palette.bg1) +call s:HL('LineNr', s:palette.grey, s:palette.none) +if &relativenumber == 1 && &cursorline == 0 + call s:HL('CursorLineNr', s:palette.yellow, s:palette.none) +else + call s:HL('CursorLineNr', s:palette.yellow, s:palette.none) +endif +call s:HL('DiffAdd', s:palette.none, s:palette.bg_green) +call s:HL('DiffChange', s:palette.none, s:palette.bg_blue) +call s:HL('DiffDelete', s:palette.none, s:palette.bg_red) +call s:HL('DiffText', s:palette.none, s:palette.bg0, 'reverse') +call s:HL('Directory', s:palette.green, s:palette.none) +call s:HL('ErrorMsg', s:palette.red, s:palette.none, 'bold,underline') +call s:HL('WarningMsg', s:palette.yellow, s:palette.none, 'bold') +call s:HL('ModeMsg', s:palette.fg, s:palette.none, 'bold') +call s:HL('MoreMsg', s:palette.blue, s:palette.none, 'bold') +call s:HL('IncSearch', s:palette.none, s:palette.none, 'reverse') +call s:HL('Search', s:palette.none, s:palette.bg3) +call s:HL('MatchParen', s:palette.none, s:palette.bg4) +call s:HL('NonText', s:palette.grey, s:palette.none) +call s:HL('Pmenu', s:palette.fg, s:palette.bg2) +call s:HL('PmenuSbar', s:palette.none, s:palette.bg2) +call s:HL('PmenuThumb', s:palette.none, s:palette.grey) +call s:HL('PmenuSel', s:palette.bg0, s:palette.fg) +call s:HL('WildMenu', s:palette.bg0, s:palette.fg) +call s:HL('Question', s:palette.yellow, s:palette.none) +call s:HL('SpellBad', s:palette.red, s:palette.none, 'undercurl', s:palette.red) +call s:HL('SpellCap', s:palette.yellow, s:palette.none, 'undercurl', s:palette.yellow) +call s:HL('SpellLocal', s:palette.blue, s:palette.none, 'undercurl', s:palette.blue) +call s:HL('SpellRare', s:palette.purple, s:palette.none, 'undercurl', s:palette.purple) +call s:HL('StatusLine', s:palette.fg, s:palette.bg3) +call s:HL('StatusLineTerm', s:palette.fg, s:palette.bg3) +call s:HL('StatusLineNC', s:palette.grey, s:palette.bg1) +call s:HL('StatusLineTermNC', s:palette.grey, s:palette.bg1) +call s:HL('TabLine', s:palette.fg, s:palette.bg4) +call s:HL('TabLineFill', s:palette.grey, s:palette.bg1) +call s:HL('TabLineSel', s:palette.bg0, s:palette.green) +call s:HL('VertSplit', s:palette.bg4, s:palette.none) +call s:HL('Visual', s:palette.none, s:palette.bg3) +call s:HL('VisualNOS', s:palette.none, s:palette.bg3, 'underline') +call s:HL('CursorIM', s:palette.none, s:palette.fg) +call s:HL('ToolbarLine', s:palette.none, s:palette.grey) +call s:HL('ToolbarButton', s:palette.fg, s:palette.bg0, 'bold') +call s:HL('QuickFixLine', s:palette.blue, s:palette.bg1) +call s:HL('Debug', s:palette.yellow, s:palette.none) +" }}} +" Syntax: {{{ +call s:HL('Boolean', s:palette.purple, s:palette.none) +call s:HL('Number', s:palette.purple, s:palette.none) +call s:HL('Float', s:palette.purple, s:palette.none) +if s:configuration.enable_italic + call s:HL('PreProc', s:palette.purple, s:palette.none, 'italic') + call s:HL('PreCondit', s:palette.purple, s:palette.none, 'italic') + call s:HL('Include', s:palette.purple, s:palette.none, 'italic') + call s:HL('Define', s:palette.purple, s:palette.none, 'italic') + call s:HL('Conditional', s:palette.red, s:palette.none, 'bold,italic') + call s:HL('Repeat', s:palette.red, s:palette.none, 'italic') + call s:HL('Keyword', s:palette.red, s:palette.none, 'italic') + call s:HL('Typedef', s:palette.red, s:palette.none, 'italic') + call s:HL('Exception', s:palette.red, s:palette.none, 'italic') + call s:HL('Statement', s:palette.red, s:palette.none, 'italic') +else + call s:HL('PreProc', s:palette.purple, s:palette.none) + call s:HL('PreCondit', s:palette.purple, s:palette.none) + call s:HL('Include', s:palette.purple, s:palette.none) + call s:HL('Define', s:palette.purple, s:palette.none) + call s:HL('Conditional', s:palette.red, s:palette.none) + call s:HL('Repeat', s:palette.red, s:palette.none) + call s:HL('Keyword', s:palette.red, s:palette.none) + call s:HL('Typedef', s:palette.red, s:palette.none) + call s:HL('Exception', s:palette.red, s:palette.none) + call s:HL('Statement', s:palette.red, s:palette.none) +endif +call s:HL('Error', s:palette.red, s:palette.none) +call s:HL('StorageClass', s:palette.orange, s:palette.none, 'bold') +call s:HL('Tag', s:palette.orange, s:palette.none) +call s:HL('Label', s:palette.orange, s:palette.none) +call s:HL('Structure', s:palette.orange, s:palette.none) +call s:HL('Operator', s:palette.orange, s:palette.none) +call s:HL('Title', s:palette.orange, s:palette.none, 'bold') +call s:HL('Special', s:palette.yellow, s:palette.none) +call s:HL('SpecialChar', s:palette.yellow, s:palette.none) +call s:HL('Type', s:palette.yellow, s:palette.none, 'bold') +call s:HL('Function', s:palette.green, s:palette.none, 'bold') +call s:HL('String', s:palette.green, s:palette.none) +call s:HL('Character', s:palette.green, s:palette.none) +call s:HL('Constant', s:palette.cyan, s:palette.none, 'bold') +call s:HL('Macro', s:palette.cyan, s:palette.none) +call s:HL('Identifier', s:palette.blue, s:palette.none) +call s:HL('SpecialKey', s:palette.blue, s:palette.none) +if s:configuration.disable_italic_comment + call s:HL('Comment', s:palette.grey, s:palette.none) + call s:HL('SpecialComment', s:palette.grey, s:palette.none) + call s:HL('Todo', s:palette.purple, s:palette.none) +else + call s:HL('Comment', s:palette.grey, s:palette.none, 'italic') + call s:HL('SpecialComment', s:palette.grey, s:palette.none, 'italic') + call s:HL('Todo', s:palette.purple, s:palette.none, 'italic') +endif +call s:HL('Delimiter', s:palette.fg, s:palette.none) +call s:HL('Ignore', s:palette.grey, s:palette.none) +call s:HL('Underlined', s:palette.none, s:palette.none, 'underline') +" }}} +" Predefined Highlight Groups: {{{ +call s:HL('Fg', s:palette.fg, s:palette.none) +call s:HL('Grey', s:palette.grey, s:palette.none) +call s:HL('Yellow', s:palette.yellow, s:palette.none) +call s:HL('Blue', s:palette.blue, s:palette.none) +if s:configuration.enable_italic + call s:HL('RedItalic', s:palette.red, s:palette.none, 'italic') + call s:HL('OrangeItalic', s:palette.orange, s:palette.none, 'italic') + call s:HL('PurpleItalic', s:palette.purple, s:palette.none, 'italic') +else + call s:HL('RedItalic', s:palette.red, s:palette.none) + call s:HL('OrangeItalic', s:palette.orange, s:palette.none) + call s:HL('PurpleItalic', s:palette.purple, s:palette.none) +endif +call s:HL('Red', s:palette.red, s:palette.none) +call s:HL('Orange', s:palette.orange, s:palette.none) +call s:HL('Purple', s:palette.purple, s:palette.none) +call s:HL('Green', s:palette.green, s:palette.none) +call s:HL('Cyan', s:palette.cyan, s:palette.none) +if s:configuration.transparent_background + call s:HL('RedSign', s:palette.red, s:palette.none) + call s:HL('OrangeSign', s:palette.orange, s:palette.none) + call s:HL('YellowSign', s:palette.yellow, s:palette.none) + call s:HL('GreenSign', s:palette.green, s:palette.none) + call s:HL('CyanSign', s:palette.cyan, s:palette.none) + call s:HL('BlueSign', s:palette.blue, s:palette.none) + call s:HL('PurpleSign', s:palette.purple, s:palette.none) +else + call s:HL('RedSign', s:palette.red, s:palette.bg1) + call s:HL('OrangeSign', s:palette.orange, s:palette.bg1) + call s:HL('YellowSign', s:palette.yellow, s:palette.bg1) + call s:HL('GreenSign', s:palette.green, s:palette.bg1) + call s:HL('CyanSign', s:palette.cyan, s:palette.bg1) + call s:HL('BlueSign', s:palette.blue, s:palette.bg1) + call s:HL('PurpleSign', s:palette.purple, s:palette.bg1) +endif +" }}} +" }}} +" Extended File Types: {{{ +" Markdown: {{{ +" builtin: {{{ +call s:HL('markdownH1', s:palette.red, s:palette.none, 'bold') +call s:HL('markdownH2', s:palette.orange, s:palette.none, 'bold') +call s:HL('markdownH3', s:palette.yellow, s:palette.none, 'bold') +call s:HL('markdownH4', s:palette.green, s:palette.none, 'bold') +call s:HL('markdownH5', s:palette.blue, s:palette.none, 'bold') +call s:HL('markdownH6', s:palette.purple, s:palette.none, 'bold') +call s:HL('markdownUrl', s:palette.blue, s:palette.none, 'underline') +call s:HL('markdownItalic', s:palette.none, s:palette.none, 'italic') +call s:HL('markdownBold', s:palette.none, s:palette.none, 'bold') +call s:HL('markdownItalicDelimiter', s:palette.grey, s:palette.none, 'italic') +highlight! link markdownCode Green +highlight! link markdownCodeBlock Cyan +highlight! link markdownCodeDelimiter Cyan +highlight! link markdownBlockquote Grey +highlight! link markdownListMarker Red +highlight! link markdownOrderedListMarker Red +highlight! link markdownRule Purple +highlight! link markdownHeadingRule Grey +highlight! link markdownUrlDelimiter Grey +highlight! link markdownLinkDelimiter Grey +highlight! link markdownLinkTextDelimiter Grey +highlight! link markdownHeadingDelimiter Grey +highlight! link markdownLinkText Purple +highlight! link markdownUrlTitleDelimiter Green +highlight! link markdownIdDeclaration markdownLinkText +highlight! link markdownBoldDelimiter Grey +highlight! link markdownId Yellow +" }}} +" vim-markdown: https://github.com/gabrielelana/vim-markdown{{{ +call s:HL('mkdURL', s:palette.blue, s:palette.none, 'underline') +call s:HL('mkdInlineURL', s:palette.purple, s:palette.none, 'underline') +call s:HL('mkdItalic', s:palette.grey, s:palette.none, 'italic') +highlight! link mkdCodeDelimiter Cyan +highlight! link mkdBold Grey +highlight! link mkdLink Purple +highlight! link mkdHeading Grey +highlight! link mkdListItem Red +highlight! link mkdRule Purple +highlight! link mkdDelimiter Grey +highlight! link mkdId Yellow +" }}} +" }}} +" ReStructuredText: {{{ +" builtin: https://github.com/marshallward/vim-restructuredtext{{{ +call s:HL('rstStandaloneHyperlink', s:palette.purple, s:palette.none, 'underline') +highlight! link rstSubstitutionReference Blue +highlight! link rstInterpretedTextOrHyperlinkReference Cyan +highlight! link rstTableLines Grey +" }}} +" }}} +" LaTex: {{{ +" builtin: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX{{{ +highlight! link texStatement Green +highlight! link texOnlyMath Grey +highlight! link texDefName Yellow +highlight! link texNewCmd Orange +highlight! link texCmdName Blue +highlight! link texBeginEnd Red +highlight! link texBeginEndName Blue +highlight! link texDocType Purple +highlight! link texDocTypeArgs Orange +" }}} +" }}} +" Html: {{{ +" builtin: https://notabug.org/jorgesumle/vim-html-syntax{{{ +call s:HL('htmlH1', s:palette.red, s:palette.none, 'bold') +call s:HL('htmlH2', s:palette.orange, s:palette.none, 'bold') +call s:HL('htmlH3', s:palette.yellow, s:palette.none, 'bold') +call s:HL('htmlH4', s:palette.green, s:palette.none, 'bold') +call s:HL('htmlH5', s:palette.blue, s:palette.none, 'bold') +call s:HL('htmlH6', s:palette.purple, s:palette.none, 'bold') +call s:HL('htmlLink', s:palette.none, s:palette.none, 'underline') +call s:HL('htmlBold', s:palette.none, s:palette.none, 'bold') +call s:HL('htmlBoldUnderline', s:palette.none, s:palette.none, 'bold,underline') +call s:HL('htmlBoldItalic', s:palette.none, s:palette.none, 'bold,italic') +call s:HL('htmlBoldUnderlineItalic', s:palette.none, s:palette.none, 'bold,underline,italic') +call s:HL('htmlUnderline', s:palette.none, s:palette.none, 'underline') +call s:HL('htmlUnderlineItalic', s:palette.none, s:palette.none, 'underline,italic') +call s:HL('htmlItalic', s:palette.none, s:palette.none, 'italic') +highlight! link htmlTag Green +highlight! link htmlEndTag Blue +highlight! link htmlTagN OrangeItalic +highlight! link htmlTagName OrangeItalic +highlight! link htmlArg Cyan +highlight! link htmlScriptTag Purple +highlight! link htmlSpecialTagName RedItalic +" }}} +" }}} +" Xml: {{{ +" builtin: https://github.com/chrisbra/vim-xml-ftplugin{{{ +highlight! link xmlTag Green +highlight! link xmlEndTag Blue +highlight! link xmlTagName OrangeItalic +highlight! link xmlEqual Orange +highlight! link xmlAttrib Cyan +highlight! link xmlEntity Red +highlight! link xmlEntityPunct Red +highlight! link xmlDocTypeDecl Grey +highlight! link xmlDocTypeKeyword PurpleItalic +highlight! link xmlCdataStart Grey +highlight! link xmlCdataCdata Purple +" }}} +" }}} +" CSS: {{{ +" builtin: https://github.com/JulesWang/css.vim{{{ +highlight! link cssAttrComma Fg +highlight! link cssBraces Fg +highlight! link cssTagName PurpleItalic +highlight! link cssClassNameDot Red +highlight! link cssClassName RedItalic +highlight! link cssFunctionName Yellow +highlight! link cssAttr Orange +highlight! link cssProp Cyan +highlight! link cssCommonAttr Yellow +highlight! link cssPseudoClassId Blue +highlight! link cssPseudoClassFn Green +highlight! link cssPseudoClass Purple +highlight! link cssImportant RedItalic +highlight! link cssSelectorOp Orange +highlight! link cssSelectorOp2 Orange +highlight! link cssColor Green +highlight! link cssAttributeSelector Cyan +highlight! link cssUnitDecorators Orange +highlight! link cssValueLength Green +highlight! link cssValueInteger Green +highlight! link cssValueNumber Green +highlight! link cssValueAngle Green +highlight! link cssValueTime Green +highlight! link cssValueFrequency Green +highlight! link cssVendor Grey +highlight! link cssNoise Grey +" }}} +" }}} +" SASS: {{{ +" builtin: {{{ +highlight! link sassProperty Cyan +highlight! link sassAmpersand Orange +highlight! link sassClass RedItalic +highlight! link sassClassChar Red +highlight! link sassMixing PurpleItalic +highlight! link sassMixinName Orange +highlight! link sassCssAttribute Yellow +highlight! link sassInterpolationDelimiter Green +highlight! link sassFunction Yellow +highlight! link sassControl RedItalic +highlight! link sassFor RedItalic +highlight! link sassFunctionName Green +" }}} +" scss-syntax: https://github.com/cakebaker/scss-syntax.vim{{{ +highlight! link scssMixinName Yellow +highlight! link scssSelectorChar Red +highlight! link scssSelectorName RedItalic +highlight! link scssInterpolationDelimiter Green +highlight! link scssVariableValue Green +highlight! link scssNull Purple +highlight! link scssBoolean Purple +highlight! link scssVariableAssignment Grey +highlight! link scssForKeyword PurpleItalic +highlight! link scssAttribute Orange +highlight! link scssFunctionName Yellow +" }}} +" }}} +" LESS: {{{ +" vim-less: https://github.com/groenewege/vim-less{{{ +highlight! link lessMixinChar Grey +highlight! link lessClass RedItalic +highlight! link lessVariable Blue +highlight! link lessAmpersandChar Orange +highlight! link lessFunction Yellow +" }}} +" }}} +" JavaScript: {{{ +" builtin: http://www.fleiner.com/vim/syntax/javascript.vim{{{ +highlight! link javaScriptNull Cyan +highlight! link javaScriptIdentifier Orange +highlight! link javaScriptParens Fg +highlight! link javaScriptBraces Fg +highlight! link javaScriptGlobal Purple +highlight! link javaScriptMessage Yellow +highlight! link javaScriptFunction RedItalic +highlight! link javaScriptOperator Orange +highlight! link javaScriptMember Cyan +" }}} +" vim-javascript: https://github.com/pangloss/vim-javascript{{{ +highlight! link jsThis Purple +highlight! link jsUndefined Cyan +highlight! link jsNull Cyan +highlight! link jsNan Cyan +highlight! link jsSuper Purple +highlight! link jsPrototype Purple +highlight! link jsFunction RedItalic +highlight! link jsGlobalNodeObjects PurpleItalic +highlight! link jsGlobalObjects Yellow +highlight! link jsArrowFunction Purple +highlight! link jsArrowFuncArgs Blue +highlight! link jsFuncArgs Blue +highlight! link jsObjectProp Cyan +highlight! link jsVariableDef Blue +highlight! link jsObjectKey Cyan +highlight! link jsParen Blue +highlight! link jsParenIfElse Blue +highlight! link jsParenRepeat Blue +highlight! link jsParenSwitch Blue +highlight! link jsParenCatch Blue +highlight! link jsBracket Blue +highlight! link jsBlockLabel Cyan +highlight! link jsFunctionKey Green +highlight! link jsClassDefinition Yellow +highlight! link jsDot Grey +highlight! link jsDestructuringBlock Blue +highlight! link jsSpreadExpression Purple +highlight! link jsSpreadOperator Green +highlight! link jsModuleKeyword Yellow +highlight! link jsObjectValue Blue +highlight! link jsTemplateExpression Yellow +highlight! link jsTemplateBraces Yellow +highlight! link jsClassMethodType Orange +" }}} +" yajs: https://github.com/othree/yajs.vim{{{ +highlight! link javascriptEndColons Fg +highlight! link javascriptOpSymbol Orange +highlight! link javascriptOpSymbols Orange +highlight! link javascriptIdentifierName Blue +highlight! link javascriptVariable Orange +highlight! link javascriptObjectLabel Cyan +highlight! link javascriptObjectLabelColon Grey +highlight! link javascriptPropertyNameString Cyan +highlight! link javascriptFuncArg Blue +highlight! link javascriptIdentifier Purple +highlight! link javascriptArrowFunc Purple +highlight! link javascriptTemplate Yellow +highlight! link javascriptTemplateSubstitution Yellow +highlight! link javascriptTemplateSB Yellow +highlight! link javascriptNodeGlobal PurpleItalic +highlight! link javascriptDocTags PurpleItalic +highlight! link javascriptDocNotation Purple +highlight! link javascriptClassSuper Purple +highlight! link javascriptClassName Yellow +highlight! link javascriptClassSuperName Yellow +highlight! link javascriptBrackets Fg +highlight! link javascriptBraces Fg +highlight! link javascriptLabel Purple +highlight! link javascriptDotNotation Grey +highlight! link javascriptGlobalArrayDot Grey +highlight! link javascriptGlobalBigIntDot Grey +highlight! link javascriptGlobalDateDot Grey +highlight! link javascriptGlobalJSONDot Grey +highlight! link javascriptGlobalMathDot Grey +highlight! link javascriptGlobalNumberDot Grey +highlight! link javascriptGlobalObjectDot Grey +highlight! link javascriptGlobalPromiseDot Grey +highlight! link javascriptGlobalRegExpDot Grey +highlight! link javascriptGlobalStringDot Grey +highlight! link javascriptGlobalSymbolDot Grey +highlight! link javascriptGlobalURLDot Grey +highlight! link javascriptMethod Green +highlight! link javascriptMethodName Green +highlight! link javascriptObjectMethodName Green +highlight! link javascriptGlobalMethod Green +highlight! link javascriptDOMStorageMethod Green +highlight! link javascriptFileMethod Green +highlight! link javascriptFileReaderMethod Green +highlight! link javascriptFileListMethod Green +highlight! link javascriptBlobMethod Green +highlight! link javascriptURLStaticMethod Green +highlight! link javascriptNumberStaticMethod Green +highlight! link javascriptNumberMethod Green +highlight! link javascriptDOMNodeMethod Green +highlight! link javascriptES6BigIntStaticMethod Green +highlight! link javascriptBOMWindowMethod Green +highlight! link javascriptHeadersMethod Green +highlight! link javascriptRequestMethod Green +highlight! link javascriptResponseMethod Green +highlight! link javascriptES6SetMethod Green +highlight! link javascriptReflectMethod Green +highlight! link javascriptPaymentMethod Green +highlight! link javascriptPaymentResponseMethod Green +highlight! link javascriptTypedArrayStaticMethod Green +highlight! link javascriptGeolocationMethod Green +highlight! link javascriptES6MapMethod Green +highlight! link javascriptServiceWorkerMethod Green +highlight! link javascriptCacheMethod Green +highlight! link javascriptFunctionMethod Green +highlight! link javascriptXHRMethod Green +highlight! link javascriptBOMNavigatorMethod Green +highlight! link javascriptServiceWorkerMethod Green +highlight! link javascriptDOMEventTargetMethod Green +highlight! link javascriptDOMEventMethod Green +highlight! link javascriptIntlMethod Green +highlight! link javascriptDOMDocMethod Green +highlight! link javascriptStringStaticMethod Green +highlight! link javascriptStringMethod Green +highlight! link javascriptSymbolStaticMethod Green +highlight! link javascriptRegExpMethod Green +highlight! link javascriptObjectStaticMethod Green +highlight! link javascriptObjectMethod Green +highlight! link javascriptBOMLocationMethod Green +highlight! link javascriptJSONStaticMethod Green +highlight! link javascriptGeneratorMethod Green +highlight! link javascriptEncodingMethod Green +highlight! link javascriptPromiseStaticMethod Green +highlight! link javascriptPromiseMethod Green +highlight! link javascriptBOMHistoryMethod Green +highlight! link javascriptDOMFormMethod Green +highlight! link javascriptClipboardMethod Green +highlight! link javascriptTypedArrayStaticMethod Green +highlight! link javascriptBroadcastMethod Green +highlight! link javascriptDateStaticMethod Green +highlight! link javascriptDateMethod Green +highlight! link javascriptConsoleMethod Green +highlight! link javascriptArrayStaticMethod Green +highlight! link javascriptArrayMethod Green +highlight! link javascriptMathStaticMethod Green +highlight! link javascriptSubtleCryptoMethod Green +highlight! link javascriptCryptoMethod Green +highlight! link javascriptProp Cyan +highlight! link javascriptBOMWindowProp Cyan +highlight! link javascriptDOMStorageProp Cyan +highlight! link javascriptFileReaderProp Cyan +highlight! link javascriptURLUtilsProp Cyan +highlight! link javascriptNumberStaticProp Cyan +highlight! link javascriptDOMNodeProp Cyan +highlight! link javascriptRequestProp Cyan +highlight! link javascriptResponseProp Cyan +highlight! link javascriptES6SetProp Cyan +highlight! link javascriptPaymentProp Cyan +highlight! link javascriptPaymentResponseProp Cyan +highlight! link javascriptPaymentAddressProp Cyan +highlight! link javascriptPaymentShippingOptionProp Cyan +highlight! link javascriptTypedArrayStaticProp Cyan +highlight! link javascriptServiceWorkerProp Cyan +highlight! link javascriptES6MapProp Cyan +highlight! link javascriptRegExpStaticProp Cyan +highlight! link javascriptRegExpProp Cyan +highlight! link javascriptXHRProp Cyan +highlight! link javascriptBOMNavigatorProp Green +highlight! link javascriptDOMEventProp Cyan +highlight! link javascriptBOMNetworkProp Cyan +highlight! link javascriptDOMDocProp Cyan +highlight! link javascriptSymbolStaticProp Cyan +highlight! link javascriptSymbolProp Cyan +highlight! link javascriptBOMLocationProp Cyan +highlight! link javascriptEncodingProp Cyan +highlight! link javascriptCryptoProp Cyan +highlight! link javascriptBOMHistoryProp Cyan +highlight! link javascriptDOMFormProp Cyan +highlight! link javascriptDataViewProp Cyan +highlight! link javascriptBroadcastProp Cyan +highlight! link javascriptMathStaticProp Cyan +" }}} +" }}} +" JavaScript React: {{{ +" vim-jsx-pretty: https://github.com/maxmellon/vim-jsx-pretty{{{ +highlight! link jsxTagName OrangeItalic +highlight! link jsxOpenPunct Green +highlight! link jsxClosePunct Blue +highlight! link jsxEscapeJs Blue +highlight! link jsxAttrib Cyan +" }}} +" }}} +" TypeScript: {{{ +" vim-typescript: https://github.com/leafgarland/typescript-vim{{{ +highlight! link typescriptSource PurpleItalic +highlight! link typescriptMessage Yellow +highlight! link typescriptGlobalObjects Cyan +highlight! link typescriptInterpolation Yellow +highlight! link typescriptInterpolationDelimiter Yellow +highlight! link typescriptBraces Fg +highlight! link typescriptParens Fg +" }}} +" yats: https:github.com/HerringtonDarkholme/yats.vim{{{ +highlight! link typescriptMethodAccessor OrangeItalic +highlight! link typescriptVariable Orange +highlight! link typescriptVariableDeclaration Blue +highlight! link typescriptTypeReference Yellow +highlight! link typescriptBraces Fg +highlight! link typescriptEnumKeyword RedItalic +highlight! link typescriptEnum Yellow +highlight! link typescriptIdentifierName Cyan +highlight! link typescriptProp Cyan +highlight! link typescriptCall Blue +highlight! link typescriptInterfaceName Yellow +highlight! link typescriptEndColons Fg +highlight! link typescriptMember Cyan +highlight! link typescriptMemberOptionality Orange +highlight! link typescriptObjectLabel Cyan +highlight! link typescriptArrowFunc Purple +highlight! link typescriptAbstract Orange +highlight! link typescriptObjectColon Grey +highlight! link typescriptTypeAnnotation Grey +highlight! link typescriptAssign Orange +highlight! link typescriptBinaryOp Orange +highlight! link typescriptUnaryOp Orange +highlight! link typescriptFuncComma Fg +highlight! link typescriptClassName Yellow +highlight! link typescriptClassHeritage Yellow +highlight! link typescriptInterfaceHeritage Yellow +highlight! link typescriptIdentifier Purple +highlight! link typescriptGlobal Purple +highlight! link typescriptOperator RedItalic +highlight! link typescriptNodeGlobal PurpleItalic +highlight! link typescriptExport PurpleItalic +highlight! link typescriptDefaultParam Orange +highlight! link typescriptImport PurpleItalic +highlight! link typescriptTypeParameter Yellow +highlight! link typescriptReadonlyModifier Orange +highlight! link typescriptAccessibilityModifier Orange +highlight! link typescriptAmbientDeclaration RedItalic +highlight! link typescriptTemplateSubstitution Yellow +highlight! link typescriptTemplateSB Yellow +highlight! link typescriptExceptions RedItalic +highlight! link typescriptCastKeyword RedItalic +highlight! link typescriptOptionalMark Orange +highlight! link typescriptNull Cyan +highlight! link typescriptMappedIn RedItalic +highlight! link typescriptFuncTypeArrow Purple +highlight! link typescriptTernaryOp Orange +highlight! link typescriptParenExp Blue +highlight! link typescriptIndexExpr Blue +highlight! link typescriptDotNotation Grey +highlight! link typescriptGlobalNumberDot Grey +highlight! link typescriptGlobalStringDot Grey +highlight! link typescriptGlobalArrayDot Grey +highlight! link typescriptGlobalObjectDot Grey +highlight! link typescriptGlobalSymbolDot Grey +highlight! link typescriptGlobalMathDot Grey +highlight! link typescriptGlobalDateDot Grey +highlight! link typescriptGlobalJSONDot Grey +highlight! link typescriptGlobalRegExpDot Grey +highlight! link typescriptGlobalPromiseDot Grey +highlight! link typescriptGlobalURLDot Grey +highlight! link typescriptGlobalMethod Green +highlight! link typescriptDOMStorageMethod Green +highlight! link typescriptFileMethod Green +highlight! link typescriptFileReaderMethod Green +highlight! link typescriptFileListMethod Green +highlight! link typescriptBlobMethod Green +highlight! link typescriptURLStaticMethod Green +highlight! link typescriptNumberStaticMethod Green +highlight! link typescriptNumberMethod Green +highlight! link typescriptDOMNodeMethod Green +highlight! link typescriptPaymentMethod Green +highlight! link typescriptPaymentResponseMethod Green +highlight! link typescriptHeadersMethod Green +highlight! link typescriptRequestMethod Green +highlight! link typescriptResponseMethod Green +highlight! link typescriptES6SetMethod Green +highlight! link typescriptReflectMethod Green +highlight! link typescriptBOMWindowMethod Green +highlight! link typescriptGeolocationMethod Green +highlight! link typescriptServiceWorkerMethod Green +highlight! link typescriptCacheMethod Green +highlight! link typescriptES6MapMethod Green +highlight! link typescriptFunctionMethod Green +highlight! link typescriptRegExpMethod Green +highlight! link typescriptXHRMethod Green +highlight! link typescriptBOMNavigatorMethod Green +highlight! link typescriptServiceWorkerMethod Green +highlight! link typescriptIntlMethod Green +highlight! link typescriptDOMEventTargetMethod Green +highlight! link typescriptDOMEventMethod Green +highlight! link typescriptDOMDocMethod Green +highlight! link typescriptStringStaticMethod Green +highlight! link typescriptStringMethod Green +highlight! link typescriptSymbolStaticMethod Green +highlight! link typescriptObjectStaticMethod Green +highlight! link typescriptObjectMethod Green +highlight! link typescriptJSONStaticMethod Green +highlight! link typescriptEncodingMethod Green +highlight! link typescriptBOMLocationMethod Green +highlight! link typescriptPromiseStaticMethod Green +highlight! link typescriptPromiseMethod Green +highlight! link typescriptSubtleCryptoMethod Green +highlight! link typescriptCryptoMethod Green +highlight! link typescriptBOMHistoryMethod Green +highlight! link typescriptDOMFormMethod Green +highlight! link typescriptConsoleMethod Green +highlight! link typescriptDateStaticMethod Green +highlight! link typescriptDateMethod Green +highlight! link typescriptArrayStaticMethod Green +highlight! link typescriptArrayMethod Green +highlight! link typescriptMathStaticMethod Green +highlight! link typescriptStringProperty Cyan +highlight! link typescriptDOMStorageProp Cyan +highlight! link typescriptFileReaderProp Cyan +highlight! link typescriptURLUtilsProp Cyan +highlight! link typescriptNumberStaticProp Cyan +highlight! link typescriptDOMNodeProp Cyan +highlight! link typescriptBOMWindowProp Cyan +highlight! link typescriptRequestProp Cyan +highlight! link typescriptResponseProp Cyan +highlight! link typescriptPaymentProp Cyan +highlight! link typescriptPaymentResponseProp Cyan +highlight! link typescriptPaymentAddressProp Cyan +highlight! link typescriptPaymentShippingOptionProp Cyan +highlight! link typescriptES6SetProp Cyan +highlight! link typescriptServiceWorkerProp Cyan +highlight! link typescriptES6MapProp Cyan +highlight! link typescriptRegExpStaticProp Cyan +highlight! link typescriptRegExpProp Cyan +highlight! link typescriptBOMNavigatorProp Green +highlight! link typescriptXHRProp Cyan +highlight! link typescriptDOMEventProp Cyan +highlight! link typescriptDOMDocProp Cyan +highlight! link typescriptBOMNetworkProp Cyan +highlight! link typescriptSymbolStaticProp Cyan +highlight! link typescriptEncodingProp Cyan +highlight! link typescriptBOMLocationProp Cyan +highlight! link typescriptCryptoProp Cyan +highlight! link typescriptDOMFormProp Cyan +highlight! link typescriptBOMHistoryProp Cyan +highlight! link typescriptMathStaticProp Cyan +" }}} +" }}} +" Dart: {{{ +" dart-lang: https://github.com/dart-lang/dart-vim-plugin{{{ +highlight! link dartCoreClasses Cyan +highlight! link dartTypeName Cyan +highlight! link dartInterpolation Blue +highlight! link dartTypeDef RedItalic +highlight! link dartClassDecl RedItalic +highlight! link dartLibrary PurpleItalic +highlight! link dartMetadata Blue +" }}} +" }}} +" CoffeeScript: {{{ +" vim-coffee-script: https://github.com/kchmck/vim-coffee-script{{{ +highlight! link coffeeExtendedOp Orange +highlight! link coffeeSpecialOp Fg +highlight! link coffeeDotAccess Grey +highlight! link coffeeCurly Fg +highlight! link coffeeParen Fg +highlight! link coffeeBracket Fg +highlight! link coffeeParens Blue +highlight! link coffeeBrackets Blue +highlight! link coffeeCurlies Blue +highlight! link coffeeOperator RedItalic +highlight! link coffeeStatement Orange +highlight! link coffeeSpecialIdent Purple +highlight! link coffeeObject Purple +highlight! link coffeeObjAssign Cyan +" }}} +" }}} +" PureScript: {{{ +" purescript-vim: https://github.com/purescript-contrib/purescript-vim{{{ +highlight! link purescriptModuleKeyword PurpleItalic +highlight! link purescriptModule Cyan +highlight! link purescriptModuleParams Blue +highlight! link purescriptAsKeyword OrangeItalic +highlight! link purescriptHidingKeyword OrangeItalic +highlight! link purescriptWhere OrangeItalic +highlight! link purescriptIdentifier Blue +highlight! link purescriptFunction Yellow +highlight! link purescriptType Cyan +" }}} +" }}} +" C/C++: {{{ +" vim-cpp-enhanced-highlight: https://github.com/octol/vim-cpp-enhanced-highlight{{{ +highlight! link cppSTLnamespace Purple +highlight! link cppSTLtype Yellow +highlight! link cppAccess PurpleItalic +highlight! link cppStructure RedItalic +highlight! link cppSTLios Cyan +highlight! link cppSTLiterator PurpleItalic +highlight! link cppSTLexception Purple +" }}} +" vim-cpp-modern: https://github.com/bfrg/vim-cpp-modern{{{ +highlight! link cppSTLVariable Cyan +" }}} +" }}} +" ObjectiveC: {{{ +" builtin: {{{ +highlight! link objcModuleImport PurpleItalic +highlight! link objcException RedItalic +highlight! link objcProtocolList Cyan +highlight! link objcObjDef PurpleItalic +highlight! link objcDirective RedItalic +highlight! link objcPropertyAttribute Orange +highlight! link objcHiddenArgument Cyan +" }}} +" }}} +" C#: {{{ +" builtin: https://github.com/nickspoons/vim-cs{{{ +highlight! link csUnspecifiedStatement PurpleItalic +highlight! link csStorage RedItalic +highlight! link csClass RedItalic +highlight! link csNewType Cyan +highlight! link csContextualStatement PurpleItalic +highlight! link csInterpolationDelimiter Yellow +highlight! link csInterpolation Yellow +highlight! link csEndColon Fg +" }}} +" }}} +" Python: {{{ +" builtin: {{{ +highlight! link pythonBuiltin Yellow +highlight! link pythonExceptions Purple +highlight! link pythonDecoratorName Blue +" }}} +" python-syntax: https://github.com/vim-python/python-syntax{{{ +highlight! link pythonExClass Purple +highlight! link pythonBuiltinType Yellow +highlight! link pythonBuiltinObj Blue +highlight! link pythonDottedName PurpleItalic +highlight! link pythonBuiltinFunc Green +highlight! link pythonFunction Cyan +highlight! link pythonDecorator Orange +highlight! link pythonInclude Include +highlight! link pythonImport PreProc +highlight! link pythonRun Blue +highlight! link pythonCoding Grey +highlight! link pythonOperator Orange +highlight! link pythonConditional RedItalic +highlight! link pythonRepeat RedItalic +highlight! link pythonException RedItalic +highlight! link pythonNone Cyan +highlight! link pythonDot Grey +" }}} +" }}} +" Lua: {{{ +" builtin: {{{ +highlight! link luaFunc Green +highlight! link luaFunction Cyan +highlight! link luaTable Fg +highlight! link luaIn RedItalic +" }}} +" vim-lua: https://github.com/tbastos/vim-lua{{{ +highlight! link luaFuncCall Green +highlight! link luaLocal Orange +highlight! link luaSpecialValue Green +highlight! link luaBraces Fg +highlight! link luaBuiltIn Purple +highlight! link luaNoise Grey +highlight! link luaLabel Purple +highlight! link luaFuncTable Yellow +highlight! link luaFuncArgName Blue +highlight! link luaEllipsis Orange +highlight! link luaDocTag Green +" }}} +" }}} +" Moonscript: {{{ +" moonscript-vim: https://github.com/leafo/moonscript-vim{{{ +highlight! link moonInterpDelim Yellow +highlight! link moonInterp Blue +highlight! link moonFunction Green +highlight! link moonLuaFunc Cyan +highlight! link moonSpecialVar Purple +highlight! link moonObject Yellow +highlight! link moonDotAccess Grey +" }}} +" }}} +" Java: {{{ +" builtin: {{{ +highlight! link javaClassDecl RedItalic +highlight! link javaMethodDecl RedItalic +highlight! link javaVarArg Green +highlight! link javaAnnotation Blue +highlight! link javaUserLabel Purple +highlight! link javaTypedef Cyan +highlight! link javaParen Fg +highlight! link javaParen1 Fg +highlight! link javaParen2 Fg +highlight! link javaParen3 Fg +highlight! link javaParen4 Fg +highlight! link javaParen5 Fg +" }}} +" }}} +" Kotlin: {{{ +" kotlin-vim: https://github.com/udalov/kotlin-vim{{{ +highlight! link ktSimpleInterpolation Yellow +highlight! link ktComplexInterpolation Yellow +highlight! link ktComplexInterpolationBrace Yellow +highlight! link ktStructure RedItalic +highlight! link ktKeyword Cyan +" }}} +" }}} +" Scala: {{{ +" builtin: https://github.com/derekwyatt/vim-scala{{{ +highlight! link scalaNameDefinition Cyan +highlight! link scalaInterpolationBoundary Yellow +highlight! link scalaInterpolation Blue +highlight! link scalaTypeOperator Orange +highlight! link scalaOperator Orange +highlight! link scalaKeywordModifier Orange +" }}} +" }}} +" Go: {{{ +" builtin: https://github.com/google/vim-ft-go{{{ +highlight! link goDirective PurpleItalic +highlight! link goConstants Cyan +highlight! link goDeclType OrangeItalic +" }}} +" polyglot: {{{ +highlight! link goPackage PurpleItalic +highlight! link goImport PurpleItalic +highlight! link goVarArgs Blue +highlight! link goBuiltins Green +highlight! link goPredefinedIdentifiers Cyan +highlight! link goVar Orange +" }}} +" }}} +" Rust: {{{ +" builtin: https://github.com/rust-lang/rust.vim{{{ +highlight! link rustStructure Orange +highlight! link rustIdentifier Purple +highlight! link rustModPath Orange +highlight! link rustModPathSep Grey +highlight! link rustSelf Blue +highlight! link rustSuper Blue +highlight! link rustDeriveTrait PurpleItalic +highlight! link rustEnumVariant Purple +highlight! link rustMacroVariable Blue +highlight! link rustAssert Cyan +highlight! link rustPanic Cyan +highlight! link rustPubScopeCrate PurpleItalic +" }}} +" }}} +" Swift: {{{ +" swift.vim: https://github.com/keith/swift.vim{{{ +highlight! link swiftInterpolatedWrapper Yellow +highlight! link swiftInterpolatedString Blue +highlight! link swiftProperty Cyan +highlight! link swiftTypeDeclaration Orange +highlight! link swiftClosureArgument Purple +" }}} +" }}} +" PHP: {{{ +" builtin: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD{{{ +highlight! link phpVarSelector Blue +highlight! link phpDefine OrangeItalic +highlight! link phpStructure RedItalic +highlight! link phpSpecialFunction Green +highlight! link phpInterpSimpleCurly Yellow +highlight! link phpComparison Orange +highlight! link phpMethodsVar Cyan +highlight! link phpMemberSelector Green +" }}} +" php.vim: https://github.com/StanAngeloff/php.vim{{{ +highlight! link phpParent Fg +highlight! link phpNowDoc Green +highlight! link phpFunction Green +highlight! link phpMethod Green +highlight! link phpClass Orange +highlight! link phpSuperglobals Purple +" }}} +" }}} +" Ruby: {{{ +" builtin: https://github.com/vim-ruby/vim-ruby{{{ +highlight! link rubyKeywordAsMethod Green +highlight! link rubyInterpolation Yellow +highlight! link rubyInterpolationDelimiter Yellow +highlight! link rubyStringDelimiter Green +highlight! link rubyBlockParameterList Blue +highlight! link rubyDefine RedItalic +highlight! link rubyModuleName Purple +highlight! link rubyAccess Orange +highlight! link rubyAttribute Yellow +highlight! link rubyMacro RedItalic +" }}} +" }}} +" Haskell: {{{ +" haskell-vim: https://github.com/neovimhaskell/haskell-vim{{{ +highlight! link haskellBrackets Blue +highlight! link haskellIdentifier Yellow +highlight! link haskellAssocType Cyan +highlight! link haskellQuotedType Cyan +highlight! link haskellType Cyan +highlight! link haskellDeclKeyword RedItalic +highlight! link haskellWhere RedItalic +highlight! link haskellDeriving PurpleItalic +highlight! link haskellForeignKeywords PurpleItalic +" }}} +" }}} +" Perl: {{{ +" builtin: https://github.com/vim-perl/vim-perl{{{ +highlight! link perlStatementPackage PurpleItalic +highlight! link perlStatementInclude PurpleItalic +highlight! link perlStatementStorage Orange +highlight! link perlStatementList Orange +highlight! link perlMatchStartEnd Orange +highlight! link perlVarSimpleMemberName Cyan +highlight! link perlVarSimpleMember Fg +highlight! link perlMethod Green +highlight! link podVerbatimLine Green +highlight! link podCmdText Yellow +" }}} +" }}} +" OCaml: {{{ +" builtin: https://github.com/rgrinberg/vim-ocaml{{{ +highlight! link ocamlArrow Orange +highlight! link ocamlEqual Orange +highlight! link ocamlOperator Orange +highlight! link ocamlKeyChar Orange +highlight! link ocamlModPath Green +highlight! link ocamlFullMod Green +highlight! link ocamlModule Purple +highlight! link ocamlConstructor Cyan +highlight! link ocamlFuncWith Yellow +highlight! link ocamlWith Yellow +highlight! link ocamlModParam Fg +highlight! link ocamlModParam1 Fg +highlight! link ocamlAnyVar Blue +highlight! link ocamlPpxEncl Orange +highlight! link ocamlPpxIdentifier Blue +highlight! link ocamlSigEncl Orange +highlight! link ocamlStructEncl Cyan +highlight! link ocamlModParam1 Blue +" }}} +" }}} +" Erlang: {{{ +" builtin: https://github.com/vim-erlang/vim-erlang-runtime{{{ +highlight! link erlangAtom Cyan +highlight! link erlangLocalFuncRef Green +highlight! link erlangLocalFuncCall Green +highlight! link erlangGlobalFuncRef Green +highlight! link erlangGlobalFuncCall Green +highlight! link erlangAttribute PurpleItalic +highlight! link erlangPipe Orange +" }}} +" }}} +" Elixir: {{{ +" vim-elixir: https://github.com/elixir-editors/vim-elixir{{{ +highlight! link elixirStringDelimiter Green +highlight! link elixirKeyword Orange +highlight! link elixirInterpolation Yellow +highlight! link elixirInterpolationDelimiter Yellow +highlight! link elixirSelf Purple +highlight! link elixirPseudoVariable Purple +highlight! link elixirModuleDefine PurpleItalic +highlight! link elixirBlockDefinition RedItalic +highlight! link elixirDefine RedItalic +highlight! link elixirPrivateDefine RedItalic +highlight! link elixirGuard RedItalic +highlight! link elixirPrivateGuard RedItalic +highlight! link elixirProtocolDefine RedItalic +highlight! link elixirImplDefine RedItalic +highlight! link elixirRecordDefine RedItalic +highlight! link elixirPrivateRecordDefine RedItalic +highlight! link elixirMacroDefine RedItalic +highlight! link elixirPrivateMacroDefine RedItalic +highlight! link elixirDelegateDefine RedItalic +highlight! link elixirOverridableDefine RedItalic +highlight! link elixirExceptionDefine RedItalic +highlight! link elixirCallbackDefine RedItalic +highlight! link elixirStructDefine RedItalic +highlight! link elixirExUnitMacro RedItalic +" }}} +" }}} +" Common Lisp: {{{ +" builtin: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP{{{ +highlight! link lispAtomMark Green +highlight! link lispKey Cyan +highlight! link lispFunc OrangeItalic +" }}} +" }}} +" Clojure: {{{ +" builtin: https://github.com/guns/vim-clojure-static{{{ +highlight! link clojureMacro PurpleItalic +highlight! link clojureFunc Cyan +highlight! link clojureConstant Yellow +highlight! link clojureSpecial RedItalic +highlight! link clojureDefine RedItalic +highlight! link clojureKeyword Orange +highlight! link clojureVariable Blue +highlight! link clojureMeta Yellow +highlight! link clojureDeref Yellow +" }}} +" }}} +" Shell: {{{ +" builtin: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH{{{ +highlight! link shRange Fg +highlight! link shTestOpr Orange +highlight! link shOption Cyan +highlight! link bashStatement Orange +highlight! link shOperator Orange +highlight! link shQuote Green +highlight! link shSet Orange +highlight! link shSetList Blue +highlight! link shSnglCase Orange +highlight! link shVariable Blue +highlight! link shVarAssign Orange +highlight! link shCmdSubRegion Green +highlight! link shCommandSub Orange +highlight! link shFunctionOne Green +highlight! link shFunctionKey RedItalic +" }}} +" }}} +" Zsh: {{{ +" builtin: https://github.com/chrisbra/vim-zsh{{{ +highlight! link zshOptStart PurpleItalic +highlight! link zshOption Blue +highlight! link zshSubst Yellow +highlight! link zshFunction Green +highlight! link zshDeref Blue +highlight! link zshTypes Orange +highlight! link zshVariableDef Blue +" }}} +" }}} +" Fish: {{{ +" vim-fish: https://github.com/georgewitteman/vim-fish{{{ +highlight! link fishStatement Orange +highlight! link fishLabel RedItalic +highlight! link fishCommandSub Yellow +" }}} +" }}} +" PowerShell: {{{ +" vim-ps1: https://github.com/PProvost/vim-ps1{{{ +highlight! link ps1FunctionInvocation Cyan +highlight! link ps1FunctionDeclaration Cyan +highlight! link ps1InterpolationDelimiter Yellow +highlight! link ps1BuiltIn Yellow +" }}} +" }}} +" VimL: {{{ +highlight! link vimLet Orange +highlight! link vimFunction Green +highlight! link vimIsCommand Fg +highlight! link vimUserFunc Green +highlight! link vimFuncName Green +highlight! link vimMap PurpleItalic +highlight! link vimNotation Cyan +highlight! link vimMapLhs Green +highlight! link vimMapRhs Green +highlight! link vimSetEqual Yellow +highlight! link vimSetSep Fg +highlight! link vimOption Cyan +highlight! link vimUserAttrbKey Yellow +highlight! link vimUserAttrb Green +highlight! link vimAutoCmdSfxList Cyan +highlight! link vimSynType Orange +highlight! link vimHiBang Orange +highlight! link vimSet Yellow +highlight! link vimSetSep Grey +" }}} +" Makefile: {{{ +highlight! link makeIdent Cyan +highlight! link makeSpecTarget Yellow +highlight! link makeTarget Blue +highlight! link makeCommands Orange +" }}} +" CMake: {{{ +highlight! link cmakeCommand Orange +highlight! link cmakeKWconfigure_package_config_file Yellow +highlight! link cmakeKWwrite_basic_package_version_file Yellow +highlight! link cmakeKWExternalProject Cyan +highlight! link cmakeKWadd_compile_definitions Cyan +highlight! link cmakeKWadd_compile_options Cyan +highlight! link cmakeKWadd_custom_command Cyan +highlight! link cmakeKWadd_custom_target Cyan +highlight! link cmakeKWadd_definitions Cyan +highlight! link cmakeKWadd_dependencies Cyan +highlight! link cmakeKWadd_executable Cyan +highlight! link cmakeKWadd_library Cyan +highlight! link cmakeKWadd_link_options Cyan +highlight! link cmakeKWadd_subdirectory Cyan +highlight! link cmakeKWadd_test Cyan +highlight! link cmakeKWbuild_command Cyan +highlight! link cmakeKWcmake_host_system_information Cyan +highlight! link cmakeKWcmake_minimum_required Cyan +highlight! link cmakeKWcmake_parse_arguments Cyan +highlight! link cmakeKWcmake_policy Cyan +highlight! link cmakeKWconfigure_file Cyan +highlight! link cmakeKWcreate_test_sourcelist Cyan +highlight! link cmakeKWctest_build Cyan +highlight! link cmakeKWctest_configure Cyan +highlight! link cmakeKWctest_coverage Cyan +highlight! link cmakeKWctest_memcheck Cyan +highlight! link cmakeKWctest_run_script Cyan +highlight! link cmakeKWctest_start Cyan +highlight! link cmakeKWctest_submit Cyan +highlight! link cmakeKWctest_test Cyan +highlight! link cmakeKWctest_update Cyan +highlight! link cmakeKWctest_upload Cyan +highlight! link cmakeKWdefine_property Cyan +highlight! link cmakeKWdoxygen_add_docs Cyan +highlight! link cmakeKWenable_language Cyan +highlight! link cmakeKWenable_testing Cyan +highlight! link cmakeKWexec_program Cyan +highlight! link cmakeKWexecute_process Cyan +highlight! link cmakeKWexport Cyan +highlight! link cmakeKWexport_library_dependencies Cyan +highlight! link cmakeKWfile Cyan +highlight! link cmakeKWfind_file Cyan +highlight! link cmakeKWfind_library Cyan +highlight! link cmakeKWfind_package Cyan +highlight! link cmakeKWfind_path Cyan +highlight! link cmakeKWfind_program Cyan +highlight! link cmakeKWfltk_wrap_ui Cyan +highlight! link cmakeKWforeach Cyan +highlight! link cmakeKWfunction Cyan +highlight! link cmakeKWget_cmake_property Cyan +highlight! link cmakeKWget_directory_property Cyan +highlight! link cmakeKWget_filename_component Cyan +highlight! link cmakeKWget_property Cyan +highlight! link cmakeKWget_source_file_property Cyan +highlight! link cmakeKWget_target_property Cyan +highlight! link cmakeKWget_test_property Cyan +highlight! link cmakeKWif Cyan +highlight! link cmakeKWinclude Cyan +highlight! link cmakeKWinclude_directories Cyan +highlight! link cmakeKWinclude_external_msproject Cyan +highlight! link cmakeKWinclude_guard Cyan +highlight! link cmakeKWinstall Cyan +highlight! link cmakeKWinstall_files Cyan +highlight! link cmakeKWinstall_programs Cyan +highlight! link cmakeKWinstall_targets Cyan +highlight! link cmakeKWlink_directories Cyan +highlight! link cmakeKWlist Cyan +highlight! link cmakeKWload_cache Cyan +highlight! link cmakeKWload_command Cyan +highlight! link cmakeKWmacro Cyan +highlight! link cmakeKWmark_as_advanced Cyan +highlight! link cmakeKWmath Cyan +highlight! link cmakeKWmessage Cyan +highlight! link cmakeKWoption Cyan +highlight! link cmakeKWproject Cyan +highlight! link cmakeKWqt_wrap_cpp Cyan +highlight! link cmakeKWqt_wrap_ui Cyan +highlight! link cmakeKWremove Cyan +highlight! link cmakeKWseparate_arguments Cyan +highlight! link cmakeKWset Cyan +highlight! link cmakeKWset_directory_properties Cyan +highlight! link cmakeKWset_property Cyan +highlight! link cmakeKWset_source_files_properties Cyan +highlight! link cmakeKWset_target_properties Cyan +highlight! link cmakeKWset_tests_properties Cyan +highlight! link cmakeKWsource_group Cyan +highlight! link cmakeKWstring Cyan +highlight! link cmakeKWsubdirs Cyan +highlight! link cmakeKWtarget_compile_definitions Cyan +highlight! link cmakeKWtarget_compile_features Cyan +highlight! link cmakeKWtarget_compile_options Cyan +highlight! link cmakeKWtarget_include_directories Cyan +highlight! link cmakeKWtarget_link_directories Cyan +highlight! link cmakeKWtarget_link_libraries Cyan +highlight! link cmakeKWtarget_link_options Cyan +highlight! link cmakeKWtarget_precompile_headers Cyan +highlight! link cmakeKWtarget_sources Cyan +highlight! link cmakeKWtry_compile Cyan +highlight! link cmakeKWtry_run Cyan +highlight! link cmakeKWunset Cyan +highlight! link cmakeKWuse_mangled_mesa Cyan +highlight! link cmakeKWvariable_requires Cyan +highlight! link cmakeKWvariable_watch Cyan +highlight! link cmakeKWwrite_file Cyan +" }}} +" Json: {{{ +highlight! link jsonKeyword Orange +highlight! link jsonQuote Grey +highlight! link jsonBraces Fg +" }}} +" Yaml: {{{ +highlight! link yamlKey Orange +highlight! link yamlConstant Purple +" }}} +" Toml: {{{ +call s:HL('tomlTable', s:palette.purple, s:palette.none, 'bold') +highlight! link tomlKey Orange +highlight! link tomlBoolean Cyan +highlight! link tomlTableArray tomlTable +" }}} +" Diff: {{{ +highlight! link diffAdded Green +highlight! link diffRemoved Red +highlight! link diffChanged Blue +highlight! link diffOldFile Yellow +highlight! link diffNewFile Orange +highlight! link diffFile Cyan +highlight! link diffLine Grey +highlight! link diffIndexLine Purple +" }}} +" Help: {{{ +call s:HL('helpNote', s:palette.purple, s:palette.none, 'bold') +call s:HL('helpHeadline', s:palette.red, s:palette.none, 'bold') +call s:HL('helpHeader', s:palette.orange, s:palette.none, 'bold') +call s:HL('helpURL', s:palette.green, s:palette.none, 'underline') +call s:HL('helpHyperTextEntry', s:palette.yellow, s:palette.none, 'bold') +highlight! link helpHyperTextJump Yellow +highlight! link helpCommand Cyan +highlight! link helpExample Green +highlight! link helpSpecial Blue +highlight! link helpSectionDelim Grey +" }}} +" }}} +" Plugins: {{{ +" junegunn/vim-plug{{{ +call s:HL('plug1', s:palette.orange, s:palette.none, 'bold') +call s:HL('plugNumber', s:palette.yellow, s:palette.none, 'bold') +highlight! link plug2 Green +highlight! link plugBracket Grey +highlight! link plugName Cyan +highlight! link plugDash Orange +highlight! link plugError Red +highlight! link plugNotLoaded Grey +highlight! link plugRelDate Grey +highlight! link plugH2 Orange +highlight! link plugMessage Orange +highlight! link plugStar Red +highlight! link plugUpdate Blue +highlight! link plugDeleted Grey +highlight! link plugEdge Yellow +highlight! link plugSha Green +" }}} +" neoclide/coc.nvim{{{ +call s:HL('CocHoverRange', s:palette.none, s:palette.none, 'bold,underline') +if s:configuration.current_word ==# 'bold' + call s:HL('CocHighlightText', s:palette.none, s:palette.none, 'bold') +elseif s:configuration.current_word ==# 'underline' + call s:HL('CocHighlightText', s:palette.none, s:palette.none, 'underline') +elseif s:configuration.current_word ==# 'italic' + call s:HL('CocHighlightText', s:palette.none, s:palette.none, 'italic') +elseif s:configuration.current_word ==# 'grey background' + call s:HL('CocHighlightText', s:palette.none, s:palette.bg2) +endif +highlight! link CocErrorSign RedSign +highlight! link CocWarningSign YellowSign +highlight! link CocInfoSign BlueSign +highlight! link CocHintSign CyanSign +highlight! link CocErrorHighlight ALEError +highlight! link CocWarningHighlight ALEWarning +highlight! link CocInfoHighlight ALEInfo +highlight! link CocWarningVirtualText Grey +highlight! link CocErrorVirtualText Grey +highlight! link CocInfoVirtualText Grey +highlight! link CocHintVirtualText Grey +highlight! link CocCodeLens Grey +highlight! link HighlightedyankRegion Visual +highlight! link CocGitAddedSign GreenSign +highlight! link CocGitChangeRemovedSign PurpleSign +highlight! link CocGitChangedSign BlueSign +highlight! link CocGitRemovedSign RedSign +highlight! link CocGitTopRemovedSign RedSign +highlight! link CocExplorerBufferRoot Orange +highlight! link CocExplorerBufferExpandIcon Cyan +highlight! link CocExplorerBufferBufnr Purple +highlight! link CocExplorerBufferModified Red +highlight! link CocExplorerBufferBufname Grey +highlight! link CocExplorerBufferFullpath Grey +highlight! link CocExplorerFileRoot Orange +highlight! link CocExplorerFileExpandIcon Cyan +highlight! link CocExplorerFileFullpath Grey +highlight! link CocExplorerFileDirectory Green +highlight! link CocExplorerFileGitStage Purple +highlight! link CocExplorerFileGitUnstage Yellow +highlight! link CocExplorerFileSize Blue +highlight! link CocExplorerTimeAccessed Cyan +highlight! link CocExplorerTimeCreated Cyan +highlight! link CocExplorerTimeModified Cyan +" }}} +" dense-analysis/ale{{{ +call s:HL('ALEError', s:palette.none, s:palette.none, 'undercurl', s:palette.red) +call s:HL('ALEWarning', s:palette.none, s:palette.none, 'undercurl', s:palette.yellow) +call s:HL('ALEInfo', s:palette.none, s:palette.none, 'undercurl', s:palette.blue) +highlight! link ALEErrorSign RedSign +highlight! link ALEWarningSign YellowSign +highlight! link ALEInfoSign BlueSign +highlight! link ALEVirtualTextError Grey +highlight! link ALEVirtualTextWarning Grey +highlight! link ALEVirtualTextInfo Grey +highlight! link ALEVirtualTextStyleError Grey +highlight! link ALEVirtualTextStyleWarning Grey +" }}} +" neomake/neomake{{{ +highlight! link NeomakeError ALEError +highlight! link NeomakeErrorSign RedSign +highlight! link NeomakeWarning ALEWarning +highlight! link NeomakeWarningSign YellowSign +highlight! link NeomakeInfo ALEInfo +highlight! link NeomakeInfoSign BlueSign +highlight! link NeomakeMessage Cyan +highlight! link NeomakeMessageSign CyanSign +highlight! link NeomakeVirtualtextError Grey +highlight! link NeomakeVirtualtextWarning Grey +highlight! link NeomakeVirtualtextInfo Grey +highlight! link NeomakeVirtualtextMessag Grey +" }}} +" vim-syntastic/syntastic{{{ +highlight! link SyntasticError ALEError +highlight! link SyntasticWarning ALEWarning +highlight! link SyntasticErrorSign RedSign +highlight! link SyntasticWarningSign YellowSign +" }}} +" Yggdroot/LeaderF{{{ +call s:HL('Lf_hl_match', s:palette.green, s:palette.none, 'bold') +call s:HL('Lf_hl_match0', s:palette.green, s:palette.none, 'bold') +call s:HL('Lf_hl_match1', s:palette.cyan, s:palette.none, 'bold') +call s:HL('Lf_hl_match2', s:palette.blue, s:palette.none, 'bold') +call s:HL('Lf_hl_match3', s:palette.purple, s:palette.none, 'bold') +call s:HL('Lf_hl_match4', s:palette.orange, s:palette.none, 'bold') +call s:HL('Lf_hl_matchRefine', s:palette.red, s:palette.none, 'bold') +highlight! link Lf_hl_cursorline Fg +highlight! link Lf_hl_selection DiffAdd +highlight! link Lf_hl_rgHighlight Visual +highlight! link Lf_hl_gtagsHighlight Visual +" }}} +" junegunn/fzf.vim{{{ +let g:fzf_colors = { + \ 'fg': ['fg', 'Normal'], + \ 'bg': ['bg', 'Normal'], + \ 'hl': ['fg', 'Green'], + \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], + \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], + \ 'hl+': ['fg', 'Cyan'], + \ 'info': ['fg', 'Cyan'], + \ 'prompt': ['fg', 'Orange'], + \ 'pointer': ['fg', 'Blue'], + \ 'marker': ['fg', 'Yellow'], + \ 'spinner': ['fg', 'Yellow'], + \ 'header': ['fg', 'Grey'] + \ } +" }}} +" Shougo/denite.nvim{{{ +call s:HL('deniteMatchedChar', s:palette.green, s:palette.none, 'bold') +call s:HL('deniteMatchedRange', s:palette.green, s:palette.none, 'bold,underline') +call s:HL('deniteInput', s:palette.green, s:palette.bg3, 'bold') +call s:HL('deniteStatusLineNumber', s:palette.purple, s:palette.bg3) +call s:HL('deniteStatusLinePath', s:palette.fg, s:palette.bg3) +highlight! link deniteSelectedLin Green +" }}} +" kien/ctrlp.vim{{{ +call s:HL('CtrlPMatch', s:palette.green, s:palette.none, 'bold') +call s:HL('CtrlPPrtBase', s:palette.bg3, s:palette.none) +call s:HL('CtrlPLinePre', s:palette.bg3, s:palette.none) +call s:HL('CtrlPMode1', s:palette.blue, s:palette.bg3, 'bold') +call s:HL('CtrlPMode2', s:palette.bg0, s:palette.blue, 'bold') +call s:HL('CtrlPStats', s:palette.grey, s:palette.bg3, 'bold') +highlight! link CtrlPNoEntries Red +highlight! link CtrlPPrtCursor Blue +" }}} +" majutsushi/tagbar{{{ +highlight! link TagbarFoldIcon Green +highlight! link TagbarSignature Green +highlight! link TagbarKind Red +highlight! link TagbarScope Orange +highlight! link TagbarNestedKind Cyan +highlight! link TagbarVisibilityPrivate Red +highlight! link TagbarVisibilityPublic Blue +" }}} +" liuchengxu/vista.vim{{{ +highlight! link VistaBracket Grey +highlight! link VistaChildrenNr Orange +highlight! link VistaScope Red +highlight! link VistaTag Green +highlight! link VistaPrefix Grey +highlight! link VistaColon Green +highlight! link VistaIcon Purple +highlight! link VistaLineNr Fg +" }}} +" airblade/vim-gitgutter{{{ +highlight! link GitGutterAdd GreenSign +highlight! link GitGutterChange BlueSign +highlight! link GitGutterDelete RedSign +highlight! link GitGutterChangeDelete PurpleSign +" }}} +" mhinz/vim-signify{{{ +highlight! link SignifySignAdd GreenSign +highlight! link SignifySignChange BlueSign +highlight! link SignifySignDelete RedSign +highlight! link SignifySignChangeDelete PurpleSign +" }}} +" scrooloose/nerdtree{{{ +highlight! link NERDTreeDir Green +highlight! link NERDTreeDirSlash Cyan +highlight! link NERDTreeOpenable Orange +highlight! link NERDTreeClosable Orange +highlight! link NERDTreeFile Fg +highlight! link NERDTreeExecFile Yellow +highlight! link NERDTreeUp Grey +highlight! link NERDTreeCWD Cyan +highlight! link NERDTreeHelp LightGrey +highlight! link NERDTreeToggleOn Green +highlight! link NERDTreeToggleOff Red +highlight! link NERDTreeFlags Orange +highlight! link NERDTreeLinkFile Grey +highlight! link NERDTreeLinkTarget Green +" }}} +" justinmk/vim-dirvish{{{ +highlight! link DirvishPathTail Cyan +highlight! link DirvishArg Yellow +" }}} +" vim.org/netrw {{{ +" https://www.vim.org/scripts/script.php?script_id=1075 +highlight! link netrwDir Green +highlight! link netrwClassify Green +highlight! link netrwLink Grey +highlight! link netrwSymLink Fg +highlight! link netrwExe Yellow +highlight! link netrwComment Grey +highlight! link netrwList Cyan +highlight! link netrwHelpCmd Blue +highlight! link netrwCmdSep Grey +highlight! link netrwVersion Orange +" }}} +" andymass/vim-matchup{{{ +call s:HL('MatchParenCur', s:palette.none, s:palette.none, 'bold') +call s:HL('MatchWord', s:palette.none, s:palette.none, 'underline') +call s:HL('MatchWordCur', s:palette.none, s:palette.none, 'underline') +" }}} +" easymotion/vim-easymotion {{{ +highlight! link EasyMotionTarget Search +highlight! link EasyMotionShade Comment +" }}} +" justinmk/vim-sneak {{{ +highlight! link Sneak Cursor +highlight! link SneakLabel Cursor +highlight! link SneakScope DiffChange +" }}} +" terryma/vim-multiple-cursors{{{ +highlight! link multiple_cursors_cursor Cursor +highlight! link multiple_cursors_visual Visual +" }}} +" mg979/vim-visual-multi{{{ +let g:VM_Mono_hl = 'Cursor' +let g:VM_Extend_hl = 'Visual' +let g:VM_Cursor_hl = 'Cursor' +let g:VM_Insert_hl = 'Cursor' +" }}} +" dominikduda/vim_current_word{{{ +highlight! link CurrentWord CocHighlightText +highlight! link CurrentWordTwins CocHighlightText +" }}} +" RRethy/vim-illuminate{{{ +highlight! link illuminatedWord CocHighlightText +" }}} +" itchyny/vim-cursorword{{{ +highlight! link CursorWord0 CocHighlightText +highlight! link CursorWord1 CocHighlightText +" }}} +" nathanaelkane/vim-indent-guides{{{ +if get(g:, 'indent_guides_auto_colors', 1) == 0 + call s:HL('IndentGuidesOdd', s:palette.bg0, s:palette.bg1) + call s:HL('IndentGuidesEven', s:palette.bg0, s:palette.bg2) +endif +" }}} +" luochen1990/rainbow{{{ +if !exists('g:rbpt_colorpairs') + let g:rbpt_colorpairs = [['blue', s:palette.blue[0]], ['magenta', s:palette.purple[0]], + \ ['red', s:palette.red[0]], ['166', s:palette.orange[0]]] +endif + +let g:rainbow_guifgs = [ s:palette.orange[0], s:palette.red[0], s:palette.purple[0], s:palette.blue[0] ] +let g:rainbow_ctermfgs = [ '166', 'red', 'magenta', 'blue' ] + +if !exists('g:rainbow_conf') + let g:rainbow_conf = {} +endif +if !has_key(g:rainbow_conf, 'guifgs') + let g:rainbow_conf['guifgs'] = g:rainbow_guifgs +endif +if !has_key(g:rainbow_conf, 'ctermfgs') + let g:rainbow_conf['ctermfgs'] = g:rainbow_ctermfgs +endif + +let g:niji_dark_colours = g:rbpt_colorpairs +let g:niji_light_colours = g:rbpt_colorpairs +" }}} +" kshenoy/vim-signature {{{ +highlight! link SignatureMarkText BlueSign +highlight! link SignatureMarkerText PurpleSign +" }}} +" mhinz/vim-startify{{{ +highlight! link StartifyBracket Grey +highlight! link StartifyFile Fg +highlight! link StartifyNumber Red +highlight! link StartifyPath Green +highlight! link StartifySlash Green +highlight! link StartifySection Blue +highlight! link StartifyHeader Orange +highlight! link StartifySpecial Grey +highlight! link StartifyFooter Grey +" }}} +" ap/vim-buftabline{{{ +highlight! link BufTabLineCurrent TabLineSel +highlight! link BufTabLineActive TabLine +highlight! link BufTabLineHidden TabLineFill +highlight! link BufTabLineFill TabLineFill +" }}} +" liuchengxu/vim-which-key{{{ +highlight! link WhichKey Red +highlight! link WhichKeySeperator Green +highlight! link WhichKeyGroup Yellow +highlight! link WhichKeyDesc Blue +highlight! link WhichKeyFloating SignColumn +" }}} +" skywind3000/quickmenu.vim{{{ +highlight! link QuickmenuOption Green +highlight! link QuickmenuNumber Red +highlight! link QuickmenuBracket Grey +highlight! link QuickmenuHelp Green +highlight! link QuickmenuSpecial Purple +highlight! link QuickmenuHeader Orange +" }}} +" mbbill/undotree{{{ +call s:HL('UndotreeSavedBig', s:palette.purple, s:palette.none, 'bold') +highlight! link UndotreeNode Orange +highlight! link UndotreeNodeCurrent Red +highlight! link UndotreeSeq Green +highlight! link UndotreeNext Blue +highlight! link UndotreeTimeStamp Grey +highlight! link UndotreeHead Yellow +highlight! link UndotreeBranch Yellow +highlight! link UndotreeCurrent Cyan +highlight! link UndotreeSavedSmall Purple +" }}} +" unblevable/quick-scope {{{ +call s:HL('QuickScopePrimary', s:palette.cyan, s:palette.none, 'underline') +call s:HL('QuickScopeSecondary', s:palette.blue, s:palette.none, 'underline') +" }}} +" APZelos/blamer.nvim {{{ +highlight! link Blamer Grey +" }}} +" }}} +" Terminal: {{{ +if (has('termguicolors') && &termguicolors) || has('gui_running') + " Definition + let s:terminal = { + \ 'black': s:palette.fg, + \ 'red': s:palette.red, + \ 'yellow': s:palette.yellow, + \ 'green': s:palette.green, + \ 'cyan': s:palette.cyan, + \ 'blue': s:palette.blue, + \ 'purple': s:palette.purple, + \ 'white': s:palette.grey + \ } + " Implementation: {{{ + if !has('nvim') + let g:terminal_ansi_colors = [s:terminal.black[0], s:terminal.red[0], s:terminal.green[0], s:terminal.yellow[0], + \ s:terminal.blue[0], s:terminal.purple[0], s:terminal.cyan[0], s:terminal.white[0], s:terminal.black[0], s:terminal.red[0], + \ s:terminal.green[0], s:terminal.yellow[0], s:terminal.blue[0], s:terminal.purple[0], s:terminal.cyan[0], s:terminal.white[0]] + else + let g:terminal_color_0 = s:terminal.black[0] + let g:terminal_color_1 = s:terminal.red[0] + let g:terminal_color_2 = s:terminal.green[0] + let g:terminal_color_3 = s:terminal.yellow[0] + let g:terminal_color_4 = s:terminal.blue[0] + let g:terminal_color_5 = s:terminal.purple[0] + let g:terminal_color_6 = s:terminal.cyan[0] + let g:terminal_color_7 = s:terminal.white[0] + let g:terminal_color_8 = s:terminal.black[0] + let g:terminal_color_9 = s:terminal.red[0] + let g:terminal_color_10 = s:terminal.green[0] + let g:terminal_color_11 = s:terminal.yellow[0] + let g:terminal_color_12 = s:terminal.blue[0] + let g:terminal_color_13 = s:terminal.purple[0] + let g:terminal_color_14 = s:terminal.cyan[0] + let g:terminal_color_15 = s:terminal.white[0] + endif + " }}} +endif +" }}} + +" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker fmr={{{,}}}: diff --git a/private_dot_config/nvim/dot_netrwhist b/private_dot_config/nvim/dot_netrwhist new file mode 100644 index 0000000..987ad58 --- /dev/null +++ b/private_dot_config/nvim/dot_netrwhist @@ -0,0 +1,5 @@ +let g:netrw_dirhistmax =10 +let g:netrw_dirhistcnt =3 +let g:netrw_dirhist_3='/var/www/html/riflessi/img/base' +let g:netrw_dirhist_2='/var/www/html/riflessi/img' +let g:netrw_dirhist_1='/var/www/html/riflessi/img/base' diff --git a/private_dot_config/nvim/init.lua b/private_dot_config/nvim/init.lua new file mode 100644 index 0000000..6e88b1b --- /dev/null +++ b/private_dot_config/nvim/init.lua @@ -0,0 +1,216 @@ +-- Auto-reload Neovim configuration on save +vim.cmd [[ + augroup packer_user_config + autocmd! + autocmd BufWritePost init.lua source <afile> | PackerCompile + augroup end +]] + +require('packer').startup(function(use) + -- Packer can manage itself + use 'wbthomason/packer.nvim' + + -- use 'cespare/vim-toml' -- TOML syntax highlighting + use 'rust-lang/rust.vim' -- Rust language support + use 'nvim-lua/plenary.nvim' -- Lua utilities for plugins + use 'lewis6991/gitsigns.nvim' -- Git integration (show signs in gutter) + use 'kyazdani42/nvim-web-devicons'-- File icons + use 'mg979/vim-visual-multi' -- Multi-cursor support + use 'tpope/vim-fugitive' -- Git wrapper for commands like :Git + use 'ap/vim-css-color' -- Show color preview for CSS colors + -- use 'lukas-reineke/indent-blankline.nvim' -- Display vertical indentation lines + use 'google/vim-searchindex' -- Show search match count + use 'numToStr/Comment.nvim' -- Easily comment/uncomment lines + -- use 'togglebyte/togglerust' -- Rust debugging tools + -- use 'chriskempson/base16-vim' -- Base16 color schemes + use 'NLKNguyen/papercolor-theme' -- PaperColor theme + use 'nvim-telescope/telescope.nvim' -- Fuzzy finder + use 'neovim/nvim-lspconfig' -- LSP configuration for multiple languages + use 'hrsh7th/nvim-cmp' -- Autocompletion engine + use 'hrsh7th/cmp-nvim-lsp' -- LSP source for nvim-cmp + use 'saadparwaiz1/cmp_luasnip' -- Snippet completion for nvim-cmp + use 'L3MON4D3/LuaSnip' -- Snippet engine + use 'kyazdani42/nvim-tree.lua' -- File explorer + use 'ray-x/lsp_signature.nvim' -- Show function signatures as you type + use 'folke/todo-comments.nvim' -- Highlight and search TODO comments + use 'saecki/crates.nvim' -- Rust crate version management + use { + 'nvim-treesitter/nvim-treesitter', + run = ':TSUpdate' -- Update treesitter parsers + } + use 'folke/trouble.nvim' -- Diagnostics and references list + use 'folke/lsp-colors.nvim' -- Adds missing LSP diagnostics highlight groups + use 'sindrets/diffview.nvim' -- Git diff and history viewer + + use 'mfussenegger/nvim-dap' -- Debug Adapter Protocol client implementation + use 'leoluz/nvim-dap-go' -- Neovim DAP extension for Go + use 'nvim-neotest/nvim-nio' + use 'rcarriga/nvim-dap-ui' + + use 'koraa/proverif.vim' + + -- Automatically set up the configuration after cloning packer.nvim + if packer_bootstrap then + require('packer').sync() + end +end) + +-- General Neovim settings + +-- Configure completion options (menu, menuone, noselect) +vim.opt.completeopt = "menu,menuone,noselect" + +-- Enable system clipboard access +vim.opt.clipboard = "unnamedplus" + +-- Enable mouse support in all modes +vim.opt.mouse = "a" + +-- Enable command-line completion features +vim.opt.wildmenu = true +vim.opt.wildmode = { "longest", "list", "full" } + +-- Ignore certain file types when using wildmenu for file navigation +vim.opt.wildignore = "*.png,*.jpg,*.gif,*.swp,*.o,*.pyc,vendor" + +-- Show absolute line numbers +vim.opt.number = true + +-- Show relative line numbers +vim.opt.relativenumber = true + +-- Set text width to 80 characters +vim.opt.textwidth = 80 + +-- Highlight a column at 80 characters +vim.opt.colorcolumn = "80" + +-- Disable line wrapping +vim.opt.wrap = false + +-- Set tab width and shift width to 4 spaces +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 4 + +-- Use spaces instead of tabs +vim.opt.expandtab = true + +-- Automatically indent new lines to match the previous line +vim.opt.autoindent = true + +-- Automatically reload files if they are modified outside of Neovim +vim.opt.autoread = true + +-- Set UTF-8 as the default encoding +vim.opt.encoding = "UTF-8" + +-- Set the history size for command line and search +vim.opt.history = 1000 + +-- Highlight search matches +vim.opt.hlsearch = true + +-- Incrementally search while typing +vim.opt.incsearch = true + +-- Disable backup file creation +vim.opt.backup = false + +-- Set the status line to always be visible +vim.opt.laststatus = 2 + +-- Show invisible characters (e.g., tabs, spaces, etc.) +vim.opt.list = true + +-- Define characters for different invisible characters +vim.opt.listchars = { eol = '⏎', tab = '»·', trail = 'ˑ', nbsp = '⎵' } + +-- Use indent-based folding +vim.opt.foldmethod = "indent" + +-- Open vertical splits to the right of the current window +vim.opt.splitright = true + +-- Open horizontal splits below the current window +vim.opt.splitbelow = true + +-- Optimize screen redrawing for performance +vim.opt.lazyredraw = true + +-- Disable swapfile creation +vim.opt.swapfile = false + +-- Enable 24-bit RGB color in the terminal +vim.opt.termguicolors = true + +-- Set background to dark mode +vim.opt.background = "dark" + +-- Highlight the current line +vim.opt.cursorline = true + +-- **Highlight settings** +-- Set custom highlights for various UI components +vim.cmd('colorscheme PaperColor') +vim.cmd [[ + highlight Normal guibg=#000000 + highlight NonText guibg=#000000 + highlight LineNr guibg=#000000 + highlight CursorLine guibg=#000000 + highlight CursorLineNr guibg=#000000 guifg=Yellow + highlight StatusLine guibg=#000000 guifg=Yellow + highlight StatusLineNC guibg=#000000 guifg=Yellow + highlight SignColumn guibg=#000000 + highlight GitGutterChange guibg=#000000 + highlight GitGutterAdd guibg=#000000 + highlight GitGutterDelete guibg=#000000 +]] + +-- Keybindings +vim.g.mapleader = "," -- Set the leader key to "," +vim.api.nvim_set_keymap('n', 'j', 'gj', { noremap = true }) -- Move down visually wrapped lines +vim.api.nvim_set_keymap('n', 'k', 'gk', { noremap = true }) -- Move up visually wrapped lines + +---- Buffers +vim.api.nvim_set_keymap('n', ']b', ':bnext<CR>', { noremap = true, silent = true }) -- Move to the next buffer +vim.api.nvim_set_keymap('n', '[b', ':bprev<CR>', { noremap = true, silent = true }) -- Move to the previous buffer +vim.api.nvim_set_keymap('n', '<leader>b', '<cmd>Telescope buffers<CR>', { noremap = true, silent = true }) -- List and switch to buffers using Telescope + +---- Tabs +vim.api.nvim_set_keymap('n', 'tn', ':tabnew<CR>', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', ']t', ':tabn<CR>', { noremap = true, silent = true }) -- Move to the next tab +vim.api.nvim_set_keymap('n', '[t', ':tabp<CR>', { noremap = true, silent = true }) -- Move to the previous tab + +vim.api.nvim_set_keymap('n', '<leader>o', ':only<CR>', { noremap = true }) -- Close all other windows +vim.api.nvim_set_keymap('n', '<A-t>', ':NvimTreeToggle<CR>', { noremap = true }) -- Toggle NvimTree file explorer +vim.api.nvim_set_keymap('n', '<leader>pa', ':set paste<CR>', { noremap = true }) -- Enable paste mode +vim.api.nvim_set_keymap('n', '<leader>npa', ':set nopaste<CR>', { noremap = true }) -- Disable paste mode +vim.api.nvim_set_keymap('n', '<leader>cr', ':Cargo run<CR>', { noremap = true }) -- Run `cargo run` for Rust projects +vim.api.nvim_set_keymap('n', '<leader>xx', '<cmd>TroubleToggle<cr>', { noremap = true }) -- Toggle Trouble diagnostic window +vim.api.nvim_set_keymap('n', '<leader>ff', '<cmd>Telescope find_files<cr>', { noremap = true }) -- Find files with Telescope +vim.api.nvim_set_keymap('n', '<leader>fg', '<cmd>Telescope live_grep<cr>', { noremap = true }) -- Live grep with Telescope +vim.api.nvim_set_keymap('n', '<leader>fh', '<cmd>Telescope help_tags<cr>', { noremap = true }) -- Search help tags with Telescope +vim.api.nvim_set_keymap('n', '<C-i>', ':lua vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())<CR>', { noremap = true }) + +-- Custom command aliases for Diffview +vim.api.nvim_create_user_command('Do', 'DiffviewOpen', {}) +vim.api.nvim_create_user_command('Dc', 'DiffviewClose', {}) +vim.api.nvim_create_user_command('Dh', 'DiffviewFileHistory', {}) + + +-- Plugin configuration +require('nvim-tree').setup { actions = { open_file = { quit_on_open = true } } } +require('todo-comments').setup {} +require('crates').setup {} +require('nvim-treesitter.configs').setup { highlight = { enable = true } } +require('lsp-colors').setup {} +-- require("ibl").setup { indent = {char = "¦"} } +-- vim.cmd.highlight('clear @ibl.scope.underline.1') + +-- General settings +require('git') -- Load git-related settings +require('lsp_conf') -- Load LSP configuration +require('dap_conf') + +-- Set up language client for Go +vim.g.LanguageClient_serverCommands = { go = { 'gopls' } } diff --git a/private_dot_config/nvim/lua/dap_conf.lua b/private_dot_config/nvim/lua/dap_conf.lua new file mode 100644 index 0000000..b3cee89 --- /dev/null +++ b/private_dot_config/nvim/lua/dap_conf.lua @@ -0,0 +1,52 @@ +local dap, dapui = require('dap'), require('dapui') +local dapgo = require('dap-go') +dapui.setup() +dapgo.setup() +dap.listeners.before.attach.dapui_config = function() + dapui.open() +end +dap.listeners.before.launch.dapui_config = function() + dapui.open() +end + +dap.adapters.gdb = { + type = "executable", + command = "gdb", + args = { "--interpreter=dap", "--eval-command", "set print pretty on" } +} + +local configurations = {'c', 'cpp', 'rust'} + +for _, conf in ipairs(configurations) do + dap.configurations[conf] = { + { + name = "Launch", + type = "gdb", + request = "launch", + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + }, + } +end + +-- Include the next few lines until the comment only if you feel you need it +dap.listeners.before.event_terminated.dapui_config = function() + dapui.close() +end +dap.listeners.before.event_exited.dapui_config = function() + dapui.close() +end +-- Include everything after this + + +vim.keymap.set('n', '<F5>', function() require('dap').continue() end) +vim.keymap.set('n', '<F10>', function() require('dap').step_over() end) +vim.keymap.set('n', '<F11>', function() require('dap').step_into() end) +vim.keymap.set('n', '<F12>', function() require('dap').step_out() end) +vim.keymap.set('n', '<C-K>', function() require('dap').toggle_breakpoint() end) +vim.api.nvim_create_user_command('DapRepeat',function() require('dap').run_last() end, {}) +vim.api.nvim_create_user_command('DapOpen',function() dapui.open() end, {}) +vim.api.nvim_create_user_command('DapClose',function() dapui.close() end, {}) diff --git a/private_dot_config/nvim/lua/git.lua b/private_dot_config/nvim/lua/git.lua new file mode 100644 index 0000000..da6bbdd --- /dev/null +++ b/private_dot_config/nvim/lua/git.lua @@ -0,0 +1,65 @@ +require('gitsigns').setup { + signs = { + add = { text = '+' }, + change = { text = '~' }, + delete = { text = '-' }, + topdelete = { text = '-' }, + changedelete = { text = '~' }, + untracked = { text = '┆' }, + }, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = false, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + follow_files = true + }, + attach_to_untracked = true, + current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` + current_line_blame_opts = { + virt_text = true, + virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' + delay = 1000, + ignore_whitespace = false, + }, + current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>', + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, -- Disable if file is longer than this (in lines) + preview_config = { + -- Options passed to nvim_open_win + border = 'single', + style = 'minimal', + relative = 'cursor', + row = 0, + col = 1 + }, + on_attach = function(bufnr) + local gs = package.loaded.gitsigns + local function map(mode, l, r, opts) + opts = opts or {} + opts.buffer = bufnr + vim.keymap.set(mode, l, r, opts) + end + + map('n', ']c', function() + if vim.wo.diff then return ']c' end + vim.schedule(function() gs.next_hunk() end) + return '<Ignore>' + end, {expr=true}) + + map('n', '[c', function() + if vim.wo.diff then return '[c' end + vim.schedule(function() gs.prev_hunk() end) + return '<Ignore>' + end, {expr=true}) + + map('n', 'hs', gs.stage_hunk) + map('v', 'hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end) + map('n', 'hS', gs.stage_buffer) + map('n', 'hu', gs.undo_stage_hunk) + map('n', 'hp', gs.preview_hunk) + map('n', 'hB', gs.blame_line) + end +} diff --git a/private_dot_config/nvim/lua/lsp_conf.lua b/private_dot_config/nvim/lua/lsp_conf.lua new file mode 100644 index 0000000..a93dc5b --- /dev/null +++ b/private_dot_config/nvim/lua/lsp_conf.lua @@ -0,0 +1,114 @@ +local nvim_lsp = require('lspconfig') +local trouble = require("trouble") + +local capabilities = require("cmp_nvim_lsp").default_capabilities() + +-- Redefine LSP diagnostic signs +local signs = { Error = 'E', Warning = 'W', Hint = 'H', Information = 'I' } + +for type, icon in pairs(signs) do + local hl = 'DiagnosticSign' .. type + vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' }) +end + +local opts = { noremap=true, silent=true } + +-- Setup lsp_signature for function signature help +require "lsp_signature".setup() + +-- Common on_attach function to handle keymaps and settings for all LSPs +local common_on_attach = function(client, bufnr) + -- Key mappings + vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "ga", "<cmd>lua vim.lsp.buf.code_action()<CR>", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts) + -- Use vim.diagnostic.open_float for showing line diagnostics (replacing deprecated call) + vim.api.nvim_buf_set_keymap(bufnr, "n", "<space>e", "<cmd>lua vim.diagnostic.open_float()<CR>", opts) + vim.keymap.set('n', '<A-f>', '<cmd>lua vim.lsp.buf.format {async = true}<cr>', opts) + + -- Autoformat on save + vim.cmd("autocmd BufWritePre <buffer> lua vim.lsp.buf.format {async = true}") +end + +-- LSP servers setup +local servers = { + 'clangd', + 'gopls', + 'jdtls', + 'metals', + 'ocamllsp', + 'ruff_lsp', + 'rust_analyzer', +} + +capabilities.offsetEncoding = { "utf-16" } + +for _, lsp in ipairs(servers) do + nvim_lsp[lsp].setup { + capabilities = capabilities, + on_attach = common_on_attach, + flags = { + debounce_text_changes = 150, + } + } +end + +nvim_lsp.ts_ls.setup { + capabilities = capabilities, + on_attach = common_on_attach, + filetypes = { "typescript", "typescriptreact", "typescript.tsx" }, + cmd = { "typescript-language-server", "--stdio" } +} + +vim.lsp.inlay_hint.enable(true, { 0 }) + +-- Trouble setup +trouble.setup({ + use_diagnostic_signs = true, + auto_close = true, + auto_open = false +}) + +-- nvim-cmp setup for autocompletion +local luasnip = require 'luasnip' +local cmp = require 'cmp' +cmp.setup { + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + ['<C-d>'] = cmp.mapping.scroll_docs(-4), + ['<C-f>'] = cmp.mapping.scroll_docs(4), + ['<C-Space>'] = cmp.mapping.complete(), + ['<CR>'] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }, + ['<Tab>'] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { 'i', 's' }), + ['<S-Tab>'] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { 'i', 's' }), + }), + sources = { + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, +} diff --git a/private_dot_config/nvim/plugin/packer_compiled.lua b/private_dot_config/nvim/plugin/packer_compiled.lua new file mode 100644 index 0000000..37c8963 --- /dev/null +++ b/private_dot_config/nvim/plugin/packer_compiled.lua @@ -0,0 +1,244 @@ +-- Automatically generated packer.nvim plugin loader code + +if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return +end + +vim.api.nvim_command('packadd packer.nvim') + +local no_errors, error_msg = pcall(function() + +_G._packer = _G._packer or {} +_G._packer.inside_compile = true + +local time +local profile_info +local should_profile = false +if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end +else + time = function(chunk, start) end +end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end + if threshold then + table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)') + end + + _G._packer.profile_output = results +end + +time([[Luarocks path setup]], true) +local package_path_str = "/home/santo/.cache/nvim/packer_hererocks/2.1.1713484068/share/lua/5.1/?.lua;/home/santo/.cache/nvim/packer_hererocks/2.1.1713484068/share/lua/5.1/?/init.lua;/home/santo/.cache/nvim/packer_hererocks/2.1.1713484068/lib/luarocks/rocks-5.1/?.lua;/home/santo/.cache/nvim/packer_hererocks/2.1.1713484068/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/santo/.cache/nvim/packer_hererocks/2.1.1713484068/lib/lua/5.1/?.so" +if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str +end + +if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern +end + +time([[Luarocks path setup]], false) +time([[try_loadstring definition]], true) +local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s), name, _G.packer_plugins[name]) + if not success then + vim.schedule(function() + vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) + end) + end + return result +end + +time([[try_loadstring definition]], false) +time([[Defining packer_plugins]], true) +_G.packer_plugins = { + ["Comment.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/Comment.nvim", + url = "https://github.com/numToStr/Comment.nvim" + }, + LuaSnip = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/LuaSnip", + url = "https://github.com/L3MON4D3/LuaSnip" + }, + ["cmp-nvim-lsp"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", + url = "https://github.com/hrsh7th/cmp-nvim-lsp" + }, + cmp_luasnip = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/cmp_luasnip", + url = "https://github.com/saadparwaiz1/cmp_luasnip" + }, + ["crates.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/crates.nvim", + url = "https://github.com/saecki/crates.nvim" + }, + ["diffview.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/diffview.nvim", + url = "https://github.com/sindrets/diffview.nvim" + }, + ["gitsigns.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/gitsigns.nvim", + url = "https://github.com/lewis6991/gitsigns.nvim" + }, + ["lsp-colors.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/lsp-colors.nvim", + url = "https://github.com/folke/lsp-colors.nvim" + }, + ["lsp_signature.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/lsp_signature.nvim", + url = "https://github.com/ray-x/lsp_signature.nvim" + }, + ["nvim-cmp"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-cmp", + url = "https://github.com/hrsh7th/nvim-cmp" + }, + ["nvim-dap"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-dap", + url = "https://github.com/mfussenegger/nvim-dap" + }, + ["nvim-dap-go"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-dap-go", + url = "https://github.com/leoluz/nvim-dap-go" + }, + ["nvim-dap-ui"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-dap-ui", + url = "https://github.com/rcarriga/nvim-dap-ui" + }, + ["nvim-lspconfig"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", + url = "https://github.com/neovim/nvim-lspconfig" + }, + ["nvim-nio"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-nio", + url = "https://github.com/nvim-neotest/nvim-nio" + }, + ["nvim-tree.lua"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-tree.lua", + url = "https://github.com/kyazdani42/nvim-tree.lua" + }, + ["nvim-treesitter"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-treesitter", + url = "https://github.com/nvim-treesitter/nvim-treesitter" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/nvim-web-devicons", + url = "https://github.com/kyazdani42/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/packer.nvim", + url = "https://github.com/wbthomason/packer.nvim" + }, + ["papercolor-theme"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/papercolor-theme", + url = "https://github.com/NLKNguyen/papercolor-theme" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/plenary.nvim", + url = "https://github.com/nvim-lua/plenary.nvim" + }, + ["proverif.vim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/proverif.vim", + url = "https://github.com/koraa/proverif.vim" + }, + ["rust.vim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/rust.vim", + url = "https://github.com/rust-lang/rust.vim" + }, + ["telescope.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/telescope.nvim", + url = "https://github.com/nvim-telescope/telescope.nvim" + }, + ["todo-comments.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/todo-comments.nvim", + url = "https://github.com/folke/todo-comments.nvim" + }, + ["trouble.nvim"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/trouble.nvim", + url = "https://github.com/folke/trouble.nvim" + }, + ["vim-css-color"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/vim-css-color", + url = "https://github.com/ap/vim-css-color" + }, + ["vim-fugitive"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/vim-fugitive", + url = "https://github.com/tpope/vim-fugitive" + }, + ["vim-searchindex"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/vim-searchindex", + url = "https://github.com/google/vim-searchindex" + }, + ["vim-visual-multi"] = { + loaded = true, + path = "/home/santo/.local/share/nvim/site/pack/packer/start/vim-visual-multi", + url = "https://github.com/mg979/vim-visual-multi" + } +} + +time([[Defining packer_plugins]], false) + +_G._packer.inside_compile = false +if _G._packer.needs_bufread == true then + vim.cmd("doautocmd BufRead") +end +_G._packer.needs_bufread = false + +if should_profile then save_profiles() end + +end) + +if not no_errors then + error_msg = error_msg:gsub('"', '\\"') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') +end diff --git a/private_dot_config/redshift.conf b/private_dot_config/redshift.conf new file mode 100644 index 0000000..7d76847 --- /dev/null +++ b/private_dot_config/redshift.conf @@ -0,0 +1,21 @@ +[redshift] + +temp-day=5700 +temp-night=4500 + +fade=1 + +; Custom dawn/dusk intervals. +dawn-time=6:00-7:45 +dusk-time=20:00-21:00 + +gamma-day=1 +gamma-night=0.8 + +location-provider=manual + +adjustment-method=randr + +[manual] +lat=37.46 +lon=15.05 diff --git a/private_dot_config/rofi/config.rasi b/private_dot_config/rofi/config.rasi new file mode 100644 index 0000000..55fb62d --- /dev/null +++ b/private_dot_config/rofi/config.rasi @@ -0,0 +1,15 @@ +configuration { + modi: "run,combi"; + cycle: true; + show-icons: true; + matching: "glob"; + width: 40; + columns: 1; + location: 0; + padding: 50; + font: "UbuntuMono Mono 12"; + hide-scrollbar: true; + sidebar-mode: true; +} + +@theme "gruvbox-dark-hard" diff --git a/private_dot_config/starship.toml b/private_dot_config/starship.toml new file mode 100644 index 0000000..328ae61 --- /dev/null +++ b/private_dot_config/starship.toml @@ -0,0 +1,40 @@ +add_newline = false + +[character] +success_symbol = '[\$](bold green)' +error_symbol = '[\$](bold red)' + +[directory] +truncation_length = 4 +style = "cyan" + +[line_break] +disabled = true + +[custom.ssh_keys] +disabled = true +description = "SSH key count" +when = "ssh-add -l | grep -v -q 'no identities'" +command = "ssh-add -l | grep -v 'no identities' | wc -l" +format = "$symbol[$output]($style) " +shell = ["bash", "--noprofile", "--norc"] +symbol = "🔑" +style = "bold fg:green" + +[gcloud] +disabled = true + +[username] +style_user = 'fg:11 bold' +style_root = 'cyan bold' +format = '[$user]($style)' +disabled = false +show_always = true + +[hostname] +ssh_only = false +format = '[$ssh_symbol](bold blue)@[$hostname](bold red) ' +disabled = false + +[package] +disabled = true diff --git a/private_dot_config/zellij/config.kdl b/private_dot_config/zellij/config.kdl new file mode 100644 index 0000000..8c34541 --- /dev/null +++ b/private_dot_config/zellij/config.kdl @@ -0,0 +1,415 @@ +// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true" +ui { + pane_frames { + hide_session_name true + } +} + +keybinds { + normal { + // uncomment this and adjust key if using copy_on_select=false + // bind "Alt c" { Copy; } + } + locked { + bind "Ctrl g" { SwitchToMode "Normal"; } + } + resize { + bind "Ctrl n" { SwitchToMode "Normal"; } + bind "h" "Left" { Resize "Increase Left"; } + bind "j" "Down" { Resize "Increase Down"; } + bind "k" "Up" { Resize "Increase Up"; } + bind "l" "Right" { Resize "Increase Right"; } + bind "H" { Resize "Decrease Left"; } + bind "J" { Resize "Decrease Down"; } + bind "K" { Resize "Decrease Up"; } + bind "L" { Resize "Decrease Right"; } + bind "=" "+" { Resize "Increase"; } + bind "-" { Resize "Decrease"; } + } + pane { + bind "Ctrl p" { SwitchToMode "Normal"; } + bind "h" "Left" { MoveFocus "Left"; } + bind "l" "Right" { MoveFocus "Right"; } + bind "j" "Down" { MoveFocus "Down"; } + bind "k" "Up" { MoveFocus "Up"; } + bind "p" { SwitchFocus; } + bind "n" { NewPane; SwitchToMode "Normal"; } + bind "d" { NewPane "Down"; SwitchToMode "Normal"; } + bind "r" { NewPane "Right"; SwitchToMode "Normal"; } + bind "x" { CloseFocus; SwitchToMode "Normal"; } + bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; } + bind "z" { TogglePaneFrames; SwitchToMode "Normal"; } + bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; } + bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; } + bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;} + } + move { + bind "Ctrl h" { SwitchToMode "Normal"; } + bind "n" "Tab" { MovePane; } + bind "p" { MovePaneBackwards; } + bind "h" "Left" { MovePane "Left"; } + bind "j" "Down" { MovePane "Down"; } + bind "k" "Up" { MovePane "Up"; } + bind "l" "Right" { MovePane "Right"; } + } + tab { + bind "Ctrl t" { SwitchToMode "Normal"; } + bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; } + bind "h" "Left" "Up" "k" { GoToPreviousTab; } + bind "l" "Right" "Down" "j" { GoToNextTab; } + bind "n" { NewTab; SwitchToMode "Normal"; } + bind "x" { CloseTab; SwitchToMode "Normal"; } + bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; } + bind "b" { BreakPane; SwitchToMode "Normal"; } + bind "]" { BreakPaneRight; SwitchToMode "Normal"; } + bind "[" { BreakPaneLeft; SwitchToMode "Normal"; } + bind "1" { GoToTab 1; SwitchToMode "Normal"; } + bind "2" { GoToTab 2; SwitchToMode "Normal"; } + bind "3" { GoToTab 3; SwitchToMode "Normal"; } + bind "4" { GoToTab 4; SwitchToMode "Normal"; } + bind "5" { GoToTab 5; SwitchToMode "Normal"; } + bind "6" { GoToTab 6; SwitchToMode "Normal"; } + bind "7" { GoToTab 7; SwitchToMode "Normal"; } + bind "8" { GoToTab 8; SwitchToMode "Normal"; } + bind "9" { GoToTab 9; SwitchToMode "Normal"; } + bind "Tab" { ToggleTab; } + } + scroll { + bind "Ctrl s" { SwitchToMode "Normal"; } + bind "e" { EditScrollback; SwitchToMode "Normal"; } + bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; } + bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } + bind "j" "Down" { ScrollDown; } + bind "k" "Up" { ScrollUp; } + bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } + bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } + bind "d" { HalfPageScrollDown; } + bind "u" { HalfPageScrollUp; } + // uncomment this and adjust key if using copy_on_select=false + // bind "Alt c" { Copy; } + } + search { + bind "Ctrl s" { SwitchToMode "Normal"; } + bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } + bind "j" "Down" { ScrollDown; } + bind "k" "Up" { ScrollUp; } + bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } + bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } + bind "d" { HalfPageScrollDown; } + bind "u" { HalfPageScrollUp; } + bind "n" { Search "down"; } + bind "p" { Search "up"; } + bind "c" { SearchToggleOption "CaseSensitivity"; } + bind "w" { SearchToggleOption "Wrap"; } + bind "o" { SearchToggleOption "WholeWord"; } + } + entersearch { + bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; } + bind "Enter" { SwitchToMode "Search"; } + } + renametab { + bind "Ctrl c" { SwitchToMode "Normal"; } + bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; } + } + renamepane { + bind "Ctrl c" { SwitchToMode "Normal"; } + bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; } + } + session { + bind "Ctrl o" { SwitchToMode "Normal"; } + bind "Ctrl s" { SwitchToMode "Scroll"; } + bind "d" { Detach; } + bind "w" { + LaunchOrFocusPlugin "session-manager" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + bind "c" { + LaunchOrFocusPlugin "configuration" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + bind "p" { + LaunchOrFocusPlugin "plugin-manager" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + } + tmux { + bind "[" { SwitchToMode "Scroll"; } + bind "Ctrl b" { Write 2; SwitchToMode "Normal"; } + bind "\"" { NewPane "Down"; SwitchToMode "Normal"; } + bind "%" { NewPane "Right"; SwitchToMode "Normal"; } + bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; } + bind "c" { NewTab; SwitchToMode "Normal"; } + bind "," { SwitchToMode "RenameTab"; } + bind "p" { GoToPreviousTab; SwitchToMode "Normal"; } + bind "n" { GoToNextTab; SwitchToMode "Normal"; } + bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; } + bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; } + bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; } + bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; } + bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; } + bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; } + bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; } + bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; } + bind "o" { FocusNextPane; } + bind "d" { Detach; } + bind "Space" { NextSwapLayout; } + bind "x" { CloseFocus; SwitchToMode "Normal"; } + } + shared_except "locked" { + bind "Ctrl g" { SwitchToMode "Locked"; } + bind "Ctrl q" { Quit; } + bind "Alt f" { ToggleFloatingPanes; } + bind "Alt n" { NewPane; } + bind "Alt i" { MoveTab "Left"; } + bind "Alt o" { MoveTab "Right"; } + bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; } + bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; } + bind "Alt j" "Alt Down" { MoveFocus "Down"; } + bind "Alt k" "Alt Up" { MoveFocus "Up"; } + bind "Alt =" "Alt +" { Resize "Increase"; } + bind "Alt -" { Resize "Decrease"; } + bind "Alt [" { PreviousSwapLayout; } + bind "Alt ]" { NextSwapLayout; } + } + shared_except "normal" "locked" { + bind "Enter" "Esc" { SwitchToMode "Normal"; } + } + shared_except "pane" "locked" { + bind "Ctrl p" { SwitchToMode "Pane"; } + } + shared_except "resize" "locked" { + bind "Ctrl n" { SwitchToMode "Resize"; } + } + shared_except "scroll" "locked" { + bind "Ctrl s" { SwitchToMode "Scroll"; } + } + shared_except "session" "locked" { + bind "Ctrl o" { SwitchToMode "Session"; } + } + shared_except "tab" "locked" { + bind "Ctrl t" { SwitchToMode "Tab"; } + } + shared_except "move" "locked" { + bind "Ctrl h" { SwitchToMode "Move"; } + } + shared_except "tmux" "locked" { + bind "Ctrl b" { SwitchToMode "Tmux"; } + } +} + +// Plugin aliases - can be used to change the implementation of Zellij +// changing these requires a restart to take effect +plugins { + tab-bar location="zellij:tab-bar" + status-bar location="zellij:status-bar" + strider location="zellij:strider" + compact-bar location="zellij:compact-bar" + session-manager location="zellij:session-manager" + welcome-screen location="zellij:session-manager" { + welcome_screen true + } + filepicker location="zellij:strider" { + cwd "/" + } + configuration location="zellij:configuration" + plugin-manager location="zellij:plugin-manager" +} + +// Plugins to load in the background when a new session starts +load_plugins { + // "file:/path/to/my-plugin.wasm" + // "https://example.com/my-plugin.wasm" +} + +// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP +// eg. when terminal window with an active zellij session is closed +// (Requires restart) +// Options: +// - detach (Default) +// - quit +// +// on_force_close "quit" + +// Send a request for a simplified ui (without arrow fonts) to plugins +// Options: +// - true +// - false (Default) +// +simplified_ui true + +// Choose the path to the default shell that zellij will use for opening new panes +// Default: $SHELL +// +// default_shell "fish" + +// Choose the path to override cwd that zellij will use for opening new panes +// +// default_cwd "" + +// Toggle between having pane frames around the panes +// Options: +// - true (default) +// - false +// +pane_frames true + +// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible +// Options: +// - true (default) +// - false +// +// auto_layout true + +// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected +// (Requires restart) +// Options: +// - true (default) +// - false +// +// session_serialization false + +// Whether pane viewports are serialized along with the session, default is false +// (Requires restart) +// Options: +// - true +// - false (default) +// +// serialize_pane_viewport true + +// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0 +// defaults to the scrollback size. If this number is higher than the scrollback size, it will +// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true. +// (Requires restart) +// +// scrollback_lines_to_serialize 10000 + +// Define color themes for Zellij +// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes +// Once these themes are defined, one of them should to be selected in the "theme" section of this file +// +// themes { +// dracula { +// fg 248 248 242 +// bg 40 42 54 +// red 255 85 85 +// green 80 250 123 +// yellow 241 250 140 +// blue 98 114 164 +// magenta 255 121 198 +// orange 255 184 108 +// cyan 139 233 253 +// black 0 0 0 +// white 255 255 255 +// } +// } + +// Choose the theme that is specified in the themes section. +// Default: default +// +theme "default" + +// The name of the default layout to load on startup +// Default: "default" +// (Requires restart) +// +default_layout "compact" + +// Choose the mode that zellij uses when starting up. +// Default: normal +// +// default_mode "locked" + +// Toggle enabling the mouse mode. +// On certain configurations, or terminals this could +// potentially interfere with copying text. +// (Requires restart) +// Options: +// - true (default) +// - false +// +// mouse_mode false + +// Configure the scroll back buffer size +// This is the number of lines zellij stores for each pane in the scroll back +// buffer. Excess number of lines are discarded in a FIFO fashion. +// (Requires restart) +// Valid values: positive integers +// Default value: 10000 +// +// scroll_buffer_size 10000 + +// Provide a command to execute when copying text. The text will be piped to +// the stdin of the program to perform the copy. This can be used with +// terminal emulators which do not support the OSC 52 ANSI control sequence +// that will be used by default if this option is not set. +// Examples: +// +// copy_command "xclip -selection clipboard" // x11 +// copy_command "wl-copy" // wayland +// copy_command "pbcopy" // osx + +// Choose the destination for copied text +// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard. +// Does not apply when using copy_command. +// Options: +// - system (default) +// - primary +// +// copy_clipboard "primary" + +// Enable or disable automatic copy (and clear) of selection when releasing mouse +// Default: true +// +// copy_on_select false + +// Path to the default editor to use to edit pane scrollbuffer +// Default: $EDITOR or $VISUAL +// +// scrollback_editor "/usr/bin/vim" + +// When attaching to an existing session with other users, +// should the session be mirrored (true) +// or should each user have their own cursor (false) +// (Requires restart) +// Default: false +// +// mirror_session true + +// The folder in which Zellij will look for layouts +// (Requires restart) +// +// layout_dir "/path/to/my/layout_dir" + +// The folder in which Zellij will look for themes +// (Requires restart) +// +// theme_dir "/path/to/my/theme_dir" + +// Enable or disable the rendering of styled and colored underlines (undercurl). +// May need to be disabled for certain unsupported terminals +// (Requires restart) +// Default: true +// +// styled_underlines false + +// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know +// metadata info on this session) +// (Requires restart) +// Default: false +// +// disable_session_metadata true + +// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it) +// (Requires restart) +// Default: true (if the host terminal supports it) +// +// support_kitty_keyboard_protocol false |