The symlinked directory was being blocked by the gitignore on library/. I've removed that and added my entire library directory to version control.

This commit is contained in:
Shawn Anderson 2020-10-03 20:18:59 -07:00
parent 78ab5c5fa5
commit 6591f017ab
21 changed files with 13483 additions and 1 deletions

1
.gitignore vendored
View File

@ -2,7 +2,6 @@ fish_variables
NVIMS/
plugged/
dotfiles/.config/tmux/serious
library/
tags
node_modules
dotfiles/.config/tmux/resurrect/

View File

@ -0,0 +1,284 @@
" Vim syntax file
" Language: C Additions
" Maintainer: Mikhail Wolfson <mywolfson@gmail.com>
" URL: http://web.mit.edu/wolfsonm
" Last Change: 2010 Dec. 3
" Version: 0.4
"
" Changelog:
" 0.4 - updates and fixes to cDelimiter to fix break with foldmethod=syntax,
" entirely suggested and solved by Ivan Freitas
" <ivansichfreitas@gmail.com>
" 0.3 - updates and fixes to cUserFunctionPointer, thanks to
" Alexei <lxmzhv@gmail.com>
" 0.2 - change [] to operator
" 0.1 - initial upload, modification from vimscript#1201, Extended c.vim
" Common ANSI-standard functions
syn keyword cAnsiFunction MULU_ DIVU_ MODU_ MUL_ DIV_ MOD_
syn keyword cAnsiFunction main typeof
syn keyword cAnsiFunction open close read write lseek dup dup2
syn keyword cAnsiFunction fcntl ioctl
syn keyword cAnsiFunction wctrans towctrans towupper
syn keyword cAnsiFunction towlower wctype iswctype
syn keyword cAnsiFunction iswxdigit iswupper iswspace
syn keyword cAnsiFunction iswpunct iswprint iswlower
syn keyword cAnsiFunction iswgraph iswdigit iswcntrl
syn keyword cAnsiFunction iswalpha iswalnum wcsrtombs
syn keyword cAnsiFunction mbsrtowcs wcrtomb mbrtowc
syn keyword cAnsiFunction mbrlen mbsinit wctob
syn keyword cAnsiFunction btowc wcsfxtime wcsftime
syn keyword cAnsiFunction wmemset wmemmove wmemcpy
syn keyword cAnsiFunction wmemcmp wmemchr wcstok
syn keyword cAnsiFunction wcsstr wcsspn wcsrchr
syn keyword cAnsiFunction wcspbrk wcslen wcscspn
syn keyword cAnsiFunction wcschr wcsxfrm wcsncmp
syn keyword cAnsiFunction wcscoll wcscmp wcsncat
syn keyword cAnsiFunction wcscat wcsncpy wcscpy
syn keyword cAnsiFunction wcstoull wcstoul wcstoll
syn keyword cAnsiFunction wcstol wcstold wcstof
syn keyword cAnsiFunction wcstod ungetwc putwchar
syn keyword cAnsiFunction putwc getwchar getwc
syn keyword cAnsiFunction fwide fputws fputwc
syn keyword cAnsiFunction fgetws fgetwc wscanf
syn keyword cAnsiFunction wprintf vwscanf vwprintf
syn keyword cAnsiFunction vswscanf vswprintf vfwscanf
syn keyword cAnsiFunction vfwprintf swscanf swprintf
syn keyword cAnsiFunction fwscanf fwprintf zonetime
syn keyword cAnsiFunction strfxtime strftime localtime
syn keyword cAnsiFunction gmtime ctime asctime
syn keyword cAnsiFunction time mkxtime mktime
syn keyword cAnsiFunction difftime clock strlen
syn keyword cAnsiFunction strerror memset strtok
syn keyword cAnsiFunction strstr strspn strrchr
syn keyword cAnsiFunction strpbrk strcspn strchr
syn keyword cAnsiFunction memchr strxfrm strncmp
syn keyword cAnsiFunction strcoll strcmp memcmp
syn keyword cAnsiFunction strncat strcat strncpy
syn keyword cAnsiFunction strcpy memmove memcpy
syn keyword cAnsiFunction wcstombs mbstowcs wctomb
syn keyword cAnsiFunction mbtowc mblen lldiv
syn keyword cAnsiFunction ldiv div llabs
syn keyword cAnsiFunction labs abs qsort
syn keyword cAnsiFunction bsearch system getenv
syn keyword cAnsiFunction exit atexit abort
syn keyword cAnsiFunction realloc malloc free
syn keyword cAnsiFunction calloc srand rand
syn keyword cAnsiFunction strtoull strtoul strtoll
syn keyword cAnsiFunction strtol strtold strtof
syn keyword cAnsiFunction strtod atoll atol
syn keyword cAnsiFunction atoi atof perror
syn keyword cAnsiFunction ferror feof clearerr
syn keyword cAnsiFunction rewind ftell fsetpos
syn keyword cAnsiFunction fseek fgetpos fwrite
syn keyword cAnsiFunction fread ungetc puts
syn keyword cAnsiFunction putchar putc gets
syn keyword cAnsiFunction getchar getc fputs
syn keyword cAnsiFunction fputc fgets fgetc
syn keyword cAnsiFunction vsscanf vsprintf vsnprintf
syn keyword cAnsiFunction vscanf vprintf vfscanf
syn keyword cAnsiFunction vfprintf sscanf sprintf
syn keyword cAnsiFunction snprintf scanf printf
syn keyword cAnsiFunction fscanf fprintf setvbuf
syn keyword cAnsiFunction setbuf freopen fopen
syn keyword cAnsiFunction fflush fclose tmpnam
syn keyword cAnsiFunction tmpfile rename remove
syn keyword cAnsiFunction offsetof va_start va_end
syn keyword cAnsiFunction va_copy va_arg raise signal
syn keyword cAnsiFunction longjmp setjmp isunordered
syn keyword cAnsiFunction islessgreater islessequal isless
syn keyword cAnsiFunction isgreaterequal isgreater fmal
syn keyword cAnsiFunction fmaf fma fminl
syn keyword cAnsiFunction fminf fmin fmaxl
syn keyword cAnsiFunction fmaxf fmax fdiml
syn keyword cAnsiFunction fdimf fdim nextafterxl
syn keyword cAnsiFunction nextafterxf nextafterx nextafterl
syn keyword cAnsiFunction nextafterf nextafter nanl
syn keyword cAnsiFunction nanf nan copysignl
syn keyword cAnsiFunction copysignf copysign remquol
syn keyword cAnsiFunction remquof remquo remainderl
syn keyword cAnsiFunction remainderf remainder fmodl
syn keyword cAnsiFunction fmodf fmod truncl
syn keyword cAnsiFunction truncf trunc llroundl
syn keyword cAnsiFunction llroundf llround lroundl
syn keyword cAnsiFunction lroundf lround roundl
syn keyword cAnsiFunction roundf round llrintl
syn keyword cAnsiFunction llrintf llrint lrintl
syn keyword cAnsiFunction lrintf lrint rintl
syn keyword cAnsiFunction rintf rint nearbyintl
syn keyword cAnsiFunction nearbyintf nearbyint floorl
syn keyword cAnsiFunction floorf floor ceill
syn keyword cAnsiFunction ceilf ceil tgammal
syn keyword cAnsiFunction tgammaf tgamma lgammal
syn keyword cAnsiFunction lgammaf lgamma erfcl
syn keyword cAnsiFunction erfcf erfc erfl
syn keyword cAnsiFunction erff erf sqrtl
syn keyword cAnsiFunction sqrtf sqrt powl
syn keyword cAnsiFunction powf pow hypotl
syn keyword cAnsiFunction hypotf hypot fabsl
syn keyword cAnsiFunction fabsf fabs cbrtl
syn keyword cAnsiFunction cbrtf cbrt scalblnl
syn keyword cAnsiFunction scalblnf scalbln scalbnl
syn keyword cAnsiFunction scalbnf scalbn modfl
syn keyword cAnsiFunction modff modf logbl
syn keyword cAnsiFunction logbf logb log2l
syn keyword cAnsiFunction log2f log2 log1pl
syn keyword cAnsiFunction log1pf log1p log10l
syn keyword cAnsiFunction log10f log10 logl
syn keyword cAnsiFunction logf log ldexpl
syn keyword cAnsiFunction ldexpf ldexp ilogbl
syn keyword cAnsiFunction ilogbf ilogb frexpl
syn keyword cAnsiFunction frexpf frexp expm1l
syn keyword cAnsiFunction expm1f expm1 exp2l
syn keyword cAnsiFunction exp2f exp2 expl
syn keyword cAnsiFunction expf exp tanhl
syn keyword cAnsiFunction tanhf tanh sinhl
syn keyword cAnsiFunction sinhf sinh coshl
syn keyword cAnsiFunction coshf cosh atanhl
syn keyword cAnsiFunction atanhf atanh asinhl
syn keyword cAnsiFunction asinhf asinh acoshl
syn keyword cAnsiFunction acoshf acosh tanl
syn keyword cAnsiFunction tanf tan sinl
syn keyword cAnsiFunction sinf sin cosl
syn keyword cAnsiFunction cosf cos atan2l
syn keyword cAnsiFunction atan2f atan2 atanl
syn keyword cAnsiFunction atanf atan asinl
syn keyword cAnsiFunction asinf asin acosl
syn keyword cAnsiFunction acosf acos signbit
syn keyword cAnsiFunction isnormal isnan isinf
syn keyword cAnsiFunction isfinite fpclassify localeconv
syn keyword cAnsiFunction setlocale wcstoumax wcstoimax
syn keyword cAnsiFunction strtoumax strtoimax feupdateenv
syn keyword cAnsiFunction fesetenv feholdexcept fegetenv
syn keyword cAnsiFunction fesetround fegetround fetestexcept
syn keyword cAnsiFunction fesetexceptflag feraiseexcept fegetexceptflag
syn keyword cAnsiFunction feclearexcept toupper tolower
syn keyword cAnsiFunction isxdigit isupper isspace
syn keyword cAnsiFunction ispunct isprint islower
syn keyword cAnsiFunction isgraph isdigit iscntrl
syn keyword cAnsiFunction isalpha isalnum creall
syn keyword cAnsiFunction crealf creal cprojl
syn keyword cAnsiFunction cprojf cproj conjl
syn keyword cAnsiFunction conjf conj cimagl
syn keyword cAnsiFunction cimagf cimag cargl
syn keyword cAnsiFunction cargf carg csqrtl
syn keyword cAnsiFunction csqrtf csqrt cpowl
syn keyword cAnsiFunction cpowf cpow cabsl
syn keyword cAnsiFunction cabsf cabs clogl
syn keyword cAnsiFunction clogf clog cexpl
syn keyword cAnsiFunction cexpf cexp ctanhl
syn keyword cAnsiFunction ctanhf ctanh csinhl
syn keyword cAnsiFunction csinhf csinh ccoshl
syn keyword cAnsiFunction ccoshf ccosh catanhl
syn keyword cAnsiFunction catanhf catanh casinhl
syn keyword cAnsiFunction casinhf casinh cacoshl
syn keyword cAnsiFunction cacoshf cacosh ctanl
syn keyword cAnsiFunction ctanf ctan csinl
syn keyword cAnsiFunction csinf csin ccosl
syn keyword cAnsiFunction ccosf ccos catanl
syn keyword cAnsiFunction catanf catan casinl
syn keyword cAnsiFunction casinf casin cacosl
syn keyword cAnsiFunction cacosf cacos assert
syn keyword cAnsiFunction UINTMAX_C INTMAX_C UINT64_C
syn keyword cAnsiFunction UINT32_C UINT16_C UINT8_C
syn keyword cAnsiFunction INT64_C INT32_C INT16_C INT8_C
" Common ANSI-standard Names
syn keyword cAnsiName PRId8 PRIi16 PRIo32 PRIu64
syn keyword cAnsiName PRId16 PRIi32 PRIo64 PRIuLEAST8
syn keyword cAnsiName PRId32 PRIi64 PRIoLEAST8 PRIuLEAST16
syn keyword cAnsiName PRId64 PRIiLEAST8 PRIoLEAST16 PRIuLEAST32
syn keyword cAnsiName PRIdLEAST8 PRIiLEAST16 PRIoLEAST32 PRIuLEAST64
syn keyword cAnsiName PRIdLEAST16 PRIiLEAST32 PRIoLEAST64 PRIuFAST8
syn keyword cAnsiName PRIdLEAST32 PRIiLEAST64 PRIoFAST8 PRIuFAST16
syn keyword cAnsiName PRIdLEAST64 PRIiFAST8 PRIoFAST16 PRIuFAST32
syn keyword cAnsiName PRIdFAST8 PRIiFAST16 PRIoFAST32 PRIuFAST64
syn keyword cAnsiName PRIdFAST16 PRIiFAST32 PRIoFAST64 PRIuMAX
syn keyword cAnsiName PRIdFAST32 PRIiFAST64 PRIoMAX PRIuPTR
syn keyword cAnsiName PRIdFAST64 PRIiMAX PRIoPTR PRIx8
syn keyword cAnsiName PRIdMAX PRIiPTR PRIu8 PRIx16
syn keyword cAnsiName PRIdPTR PRIo8 PRIu16 PRIx32
syn keyword cAnsiName PRIi8 PRIo16 PRIu32 PRIx64
syn keyword cAnsiName PRIxLEAST8 SCNd8 SCNiFAST32 SCNuLEAST32
syn keyword cAnsiName PRIxLEAST16 SCNd16 SCNiFAST64 SCNuLEAST64
syn keyword cAnsiName PRIxLEAST32 SCNd32 SCNiMAX SCNuFAST8
syn keyword cAnsiName PRIxLEAST64 SCNd64 SCNiPTR SCNuFAST16
syn keyword cAnsiName PRIxFAST8 SCNdLEAST8 SCNo8 SCNuFAST32
syn keyword cAnsiName PRIxFAST16 SCNdLEAST16 SCNo16 SCNuFAST64
syn keyword cAnsiName PRIxFAST32 SCNdLEAST32 SCNo32 SCNuMAX
syn keyword cAnsiName PRIxFAST64 SCNdLEAST64 SCNo64 SCNuPTR
syn keyword cAnsiName PRIxMAX SCNdFAST8 SCNoLEAST8 SCNx8
syn keyword cAnsiName PRIxPTR SCNdFAST16 SCNoLEAST16 SCNx16
syn keyword cAnsiName PRIX8 SCNdFAST32 SCNoLEAST32 SCNx32
syn keyword cAnsiName PRIX16 SCNdFAST64 SCNoLEAST64 SCNx64
syn keyword cAnsiName PRIX32 SCNdMAX SCNoFAST8 SCNxLEAST8
syn keyword cAnsiName PRIX64 SCNdPTR SCNoFAST16 SCNxLEAST16
syn keyword cAnsiName PRIXLEAST8 SCNi8 SCNoFAST32 SCNxLEAST32
syn keyword cAnsiName PRIXLEAST16 SCNi16 SCNoFAST64 SCNxLEAST64
syn keyword cAnsiName PRIXLEAST32 SCNi32 SCNoMAX SCNxFAST8
syn keyword cAnsiName PRIXLEAST64 SCNi64 SCNoPTR SCNxFAST16
syn keyword cAnsiName PRIXFAST8 SCNiLEAST8 SCNu8 SCNxFAST32
syn keyword cAnsiName PRIXFAST16 SCNiLEAST16 SCNu16 SCNxFAST64
syn keyword cAnsiName PRIXFAST32 SCNiLEAST32 SCNu32 SCNxMAX
syn keyword cAnsiName PRIXFAST64 SCNiLEAST64 SCNu64 SCNxPTR
syn keyword cAnsiName PRIXMAX SCNiFAST8 SCNuLEAST8
syn keyword cAnsiName PRIXPTR SCNiFAST16 SCNuLEAST16
syn keyword cAnsiName errno environ
syn keyword cAnsiName STDC CX_LIMITED_RANGE
syn keyword cAnsiName STDC FENV_ACCESS
syn keyword cAnsiName STDC FP_CONTRACT
syn keyword cAnsiName AF_INET SOCK_STREAM INADDR_ANY AF_INET
syn keyword cAnsiName SOL_SOCKET SO_REUSEPORT SO_REUSEADDR
syn keyword cAnsiName SO_RCVTIMEO IPPROTO_TCP TCP_NODELAY
syn keyword cAnsiName SOCK_DGRAM POLLIN
syn keyword cAnsiName and bitor not_eq xor
syn keyword cAnsiName and_eq compl or xor_eq
syn keyword cAnsiName bitand not or_eq
hi def link cAnsiFunction cFunction
hi def link cAnsiName cIdentifier
" Operators
syn match cOperator "\(<<\|>>\|[-+*/%&^|<>!=]\)="
syn match cOperator "<<\|>>\|&&\|||\|++\|--\|->"
syn match cOperator "[.!~*&%<>^|=,+-]"
syn match cOperator "/[^/*=]"me=e-1
syn match cOperator "/$"
syn match cOperator "&&\|||"
syn match cOperator "[][]"
" Preprocs
syn keyword cDefined defined contained containedin=cDefine
hi def link cDefined cDefine
" Functions
syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine
syn match cUserFunctionPointer "(\s*\*\s*\h\w*\s*)\(\s\|\n\)*(" contains=cDelimiter,cOperator
hi def link cUserFunction cFunction
hi def link cUserFunctionPointer cFunction
" Delimiters
syn match cDelimiter "[();\\]"
" foldmethod=syntax fix, courtesy of Ivan Freitas
syn match cBraces display "[{}]"
" Booleans
syn keyword cBoolean true false TRUE FALSE
" Links
hi def link cFunction Function
hi def link cIdentifier Identifier
hi def link cDelimiter Delimiter
" foldmethod=syntax fix, courtesy of Ivan Freitas
hi def link cBraces Delimiter
hi def link cBoolean Boolean

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,562 @@
" Vim syntax file
" Language: Python
" Current Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
" Previous Maintainer: Neil Schemenauer <nas at python dot ca>
" URL: https://github.com/hdima/python-syntax
" Last Change: 2015-11-01
" Filenames: *.py
" Version: 3.6.0
"
" Based on python.vim (from Vim 6.1 distribution)
" by Neil Schemenauer <nas at python dot ca>
"
" Please use the following channels for reporting bugs, offering suggestions or
" feedback:
" - python.vim issue tracker: https://github.com/hdima/python-syntax/issues
" - Email: Dmitry Vasiliev (dima at hlabs.org)
" - Send a message or follow me for updates on Twitter: `@hdima
" <https://twitter.com/hdima>`__
"
" Contributors
" ============
"
" List of the contributors in alphabetical order:
"
" Andrea Riciputi
" Anton Butanaev
" Antony Lee
" Caleb Adamantine
" David Briscoe
" Elizabeth Myers
" Ihor Gorobets
" Jeroen Ruigrok van der Werven
" John Eikenberry
" Joongi Kim
" Marc Weber
" Pedro Algarvio
" Victor Salgado
" Will Gray
" Yuri Habrusiev
"
" Options
" =======
"
" :let OPTION_NAME = 1 Enable option
" :let OPTION_NAME = 0 Disable option
"
"
" Option to select Python version
" -------------------------------
"
" python_version_2 Enable highlighting for Python 2
" (Python 3 highlighting is enabled
" by default). Can also be set as
" a buffer (b:python_version_2)
" variable.
"
" You can also use the following local to buffer commands to switch
" between two highlighting modes:
"
" :Python2Syntax Switch to Python 2 highlighting
" mode
" :Python3Syntax Switch to Python 3 highlighting
" mode
"
" Option names used by the script
" -------------------------------
"
" python_highlight_builtins Highlight builtin functions and
" objects
" python_highlight_builtin_objs Highlight builtin objects only
" python_highlight_builtin_funcs Highlight builtin functions only
" python_highlight_exceptions Highlight standard exceptions
" python_highlight_string_formatting Highlight % string formatting
" python_highlight_string_format Highlight str.format syntax
" python_highlight_string_templates Highlight string.Template syntax
" python_highlight_indent_errors Highlight indentation errors
" python_highlight_space_errors Highlight trailing spaces
" python_highlight_doctests Highlight doc-tests
" python_print_as_function Highlight 'print' statement as
" function for Python 2
" python_highlight_file_headers_as_comments
" Highlight shebang and coding
" headers as comments
"
" python_highlight_all Enable all the options above
" NOTE: This option don't override
" any previously set options
"
" python_slow_sync Can be set to 0 for slow machines
"
" For version 5.x: Clear all syntax items
" For versions greater than 6.x: Quit when a syntax file was already loaded
"
" Commands
"
command! -buffer Python3Syntax let b:python_version_2 = 0 | let &syntax=&syntax
" Enable option if it's not defined
function! s:EnableByDefault(name)
if !exists(a:name)
let {a:name} = 1
endif
endfunction
" Check if option is enabled
function! s:Enabled(name)
return exists(a:name) && {a:name}
endfunction
" Is it Python 2 syntax?
function! s:Python2Syntax()
if exists("b:python_version_2")
return b:python_version_2
endif
return s:Enabled("g:python_version_2")
endfunction
"
" Default options
"
call s:EnableByDefault("g:python_slow_sync")
if s:Enabled("g:python_highlight_all")
call s:EnableByDefault("g:python_highlight_builtins")
if s:Enabled("g:python_highlight_builtins")
call s:EnableByDefault("g:python_highlight_builtin_objs")
call s:EnableByDefault("g:python_highlight_builtin_funcs")
endif
call s:EnableByDefault("g:python_highlight_exceptions")
call s:EnableByDefault("g:python_highlight_string_formatting")
call s:EnableByDefault("g:python_highlight_string_format")
call s:EnableByDefault("g:python_highlight_string_templates")
call s:EnableByDefault("g:python_highlight_indent_errors")
call s:EnableByDefault("g:python_highlight_space_errors")
call s:EnableByDefault("g:python_highlight_doctests")
call s:EnableByDefault("g:python_print_as_function")
endif
"
" Keywords
"
syn keyword pythonStatement break continue del
syn keyword pythonStatement exec return
syn keyword pythonStatement pass raise
syn keyword pythonStatement global assert
syn keyword pythonStatement lambda
syn keyword pythonStatement with
syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
syn keyword pythonRepeat for while
syn keyword pythonConditional if elif else
" The standard pyrex.vim unconditionally removes the pythonInclude group, so
" we provide a dummy group here to avoid crashing pyrex.vim.
syn keyword pythonInclude import
syn keyword pythonImport import
syn keyword pythonException try except finally
syn keyword pythonOperator and in is not or
syn match pythonStatement "\<yield\>" display
syn match pythonImport "\<from\>" display
if s:Python2Syntax()
if !s:Enabled("g:python_print_as_function")
syn keyword pythonStatement print
endif
syn keyword pythonImport as
syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" display contained
else
syn keyword pythonStatement as nonlocal None
syn match pythonStatement "\<yield\s\+from\>" display
syn keyword pythonBoolean True False
syn match pythonFunction "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
syn keyword pythonStatement await
syn match pythonStatement "\<async\s\+def\>" nextgroup=pythonFunction skipwhite
syn match pythonStatement "\<async\s\+with\>" display
syn match pythonStatement "\<async\s\+for\>" display
endif
"
" Decorators (new in Python 2.4)
"
syn match pythonDecorator "@" display nextgroup=pythonDottedName skipwhite
if s:Python2Syntax()
syn match pythonDottedName "[a-zA-Z_][a-zA-Z0-9_]*\%(\.[a-zA-Z_][a-zA-Z0-9_]*\)*" display contained
else
syn match pythonDottedName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\%(\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\)*" display contained
endif
syn match pythonDot "\." display containedin=pythonDottedName
"
" Comments
"
syn match pythonComment "#.*$" display contains=pythonTodo,@Spell
if !s:Enabled("g:python_highlight_file_headers_as_comments")
syn match pythonRun "\%^#!.*$"
syn match pythonCoding "\%^.*\%(\n.*\)\?#.*coding[:=]\s*[0-9A-Za-z-_.]\+.*$"
endif
syn keyword pythonTodo TODO FIXME XXX contained
"
" Errors
"
syn match pythonError "\<\d\+\D\+\>" display
syn match pythonError "[$?]" display
syn match pythonError "[&|]\{2,}" display
syn match pythonError "[=]\{3,}" display
" Mixing spaces and tabs also may be used for pretty formatting multiline
" statements
if s:Enabled("g:python_highlight_indent_errors")
syn match pythonIndentError "^\s*\%( \t\|\t \)\s*\S"me=e-1 display
endif
" Trailing space errors
if s:Enabled("g:python_highlight_space_errors")
syn match pythonSpaceError "\s\+$" display
endif
"
" Strings
"
if s:Python2Syntax()
" Python 2 strings
syn region pythonString start=+[bB]\='+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
syn region pythonString start=+[bB]\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
syn region pythonString start=+[bB]\="""+ end=+"""+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell
syn region pythonString start=+[bB]\='''+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
else
" Python 3 byte strings
syn region pythonBytes start=+[bB]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesError,pythonBytesContent,@Spell
syn region pythonBytes start=+[bB]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesError,pythonBytesContent,@Spell
syn region pythonBytes start=+[bB]"""+ end=+"""+ keepend contains=pythonBytesError,pythonBytesContent,pythonDocTest2,pythonSpaceError,@Spell
syn region pythonBytes start=+[bB]'''+ end=+'''+ keepend contains=pythonBytesError,pythonBytesContent,pythonDocTest,pythonSpaceError,@Spell
syn match pythonBytesError ".\+" display contained
syn match pythonBytesContent "[\u0000-\u00ff]\+" display contained contains=pythonBytesEscape,pythonBytesEscapeError
endif
syn match pythonBytesEscape +\\[abfnrtv'"\\]+ display contained
syn match pythonBytesEscape "\\\o\o\=\o\=" display contained
syn match pythonBytesEscapeError "\\\o\{,2}[89]" display contained
syn match pythonBytesEscape "\\x\x\{2}" display contained
syn match pythonBytesEscapeError "\\x\x\=\X" display contained
syn match pythonBytesEscape "\\$"
syn match pythonUniEscape "\\u\x\{4}" display contained
syn match pythonUniEscapeError "\\u\x\{,3}\X" display contained
syn match pythonUniEscape "\\U\x\{8}" display contained
syn match pythonUniEscapeError "\\U\x\{,7}\X" display contained
syn match pythonUniEscape "\\N{[A-Z ]\+}" display contained
syn match pythonUniEscapeError "\\N{[^A-Z ]\+}" display contained
if s:Python2Syntax()
" Python 2 Unicode strings
syn region pythonUniString start=+[uU]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
syn region pythonUniString start=+[uU]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
syn region pythonUniString start=+[uU]"""+ end=+"""+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell
syn region pythonUniString start=+[uU]'''+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
else
" Python 3 strings
syn region pythonString start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
syn region pythonString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell
syn region pythonString start=+"""+ end=+"""+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell
syn region pythonString start=+'''+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
endif
if s:Python2Syntax()
" Python 2 Unicode raw strings
syn region pythonUniRawString start=+[uU][rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell
syn region pythonUniRawString start=+[uU][rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell
syn region pythonUniRawString start=+[uU][rR]"""+ end=+"""+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest2,pythonSpaceError,@Spell
syn region pythonUniRawString start=+[uU][rR]'''+ end=+'''+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest,pythonSpaceError,@Spell
syn match pythonUniRawEscape "\([^\\]\(\\\\\)*\)\@<=\\u\x\{4}" display contained
syn match pythonUniRawEscapeError "\([^\\]\(\\\\\)*\)\@<=\\u\x\{,3}\X" display contained
endif
" Python 2/3 raw strings
if s:Python2Syntax()
syn region pythonRawString start=+[bB]\=[rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell
syn region pythonRawString start=+[bB]\=[rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell
syn region pythonRawString start=+[bB]\=[rR]"""+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell
syn region pythonRawString start=+[bB]\=[rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
else
syn region pythonRawString start=+[rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell
syn region pythonRawString start=+[rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell
syn region pythonRawString start=+[rR]"""+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell
syn region pythonRawString start=+[rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
syn region pythonRawBytes start=+[bB][rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell
syn region pythonRawBytes start=+[bB][rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell
syn region pythonRawBytes start=+[bB][rR]"""+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell
syn region pythonRawBytes start=+[bB][rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
endif
syn match pythonRawEscape +\\['"]+ display transparent contained
if s:Enabled("g:python_highlight_string_formatting")
" % operator string formatting
if s:Python2Syntax()
syn match pythonStrFormatting "%\%(([^)]\+)\)\=[-#0 +]*\d*\%(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
syn match pythonStrFormatting "%[-#0 +]*\%(\*\|\d\+\)\=\%(\.\%(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
else
syn match pythonStrFormatting "%\%(([^)]\+)\)\=[-#0 +]*\d*\%(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonRawString
syn match pythonStrFormatting "%[-#0 +]*\%(\*\|\d\+\)\=\%(\.\%(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonRawString
endif
endif
if s:Enabled("g:python_highlight_string_format")
" str.format syntax
if s:Python2Syntax()
syn match pythonStrFormat "{{\|}}" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
syn match pythonStrFormat "{\%(\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\d\+\)\=\%(\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\[\%(\d\+\|[^!:\}]\+\)\]\)*\%(![rsa]\)\=\%(:\%({\%(\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\d\+\)}\|\%([^}]\=[<>=^]\)\=[ +-]\=#\=0\=\d*,\=\%(\.\d\+\)\=[bcdeEfFgGnosxX%]\=\)\=\)\=}" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
else
syn match pythonStrFormat "{{\|}}" contained containedin=pythonString,pythonRawString
syn match pythonStrFormat "{\%(\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\d\+\)\=\%(\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\[\%(\d\+\|[^!:\}]\+\)\]\)*\%(![rsa]\)\=\%(:\%({\%(\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\|\d\+\)}\|\%([^}]\=[<>=^]\)\=[ +-]\=#\=0\=\d*,\=\%(\.\d\+\)\=[bcdeEfFgGnosxX%]\=\)\=\)\=}" contained containedin=pythonString,pythonRawString
endif
endif
if s:Enabled("g:python_highlight_string_templates")
" string.Template format
if s:Python2Syntax()
syn match pythonStrTemplate "\$\$" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
syn match pythonStrTemplate "\${[a-zA-Z_][a-zA-Z0-9_]*}" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
syn match pythonStrTemplate "\$[a-zA-Z_][a-zA-Z0-9_]*" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString
else
syn match pythonStrTemplate "\$\$" contained containedin=pythonString,pythonRawString
syn match pythonStrTemplate "\${[a-zA-Z_][a-zA-Z0-9_]*}" contained containedin=pythonString,pythonRawString
syn match pythonStrTemplate "\$[a-zA-Z_][a-zA-Z0-9_]*" contained containedin=pythonString,pythonRawString
endif
endif
if s:Enabled("g:python_highlight_doctests")
" DocTests
syn region pythonDocTest start="^\s*>>>" end=+'''+he=s-1 end="^\s*$" contained
syn region pythonDocTest2 start="^\s*>>>" end=+"""+he=s-1 end="^\s*$" contained
endif
"
" Numbers (ints, longs, floats, complex)
"
if s:Python2Syntax()
syn match pythonHexError "\<0[xX]\x*[g-zG-Z]\+\x*[lL]\=\>" display
syn match pythonOctError "\<0[oO]\=\o*\D\+\d*[lL]\=\>" display
syn match pythonBinError "\<0[bB][01]*\D\+\d*[lL]\=\>" display
syn match pythonHexNumber "\<0[xX]\x\+[lL]\=\>" display
syn match pythonOctNumber "\<0[oO]\o\+[lL]\=\>" display
syn match pythonBinNumber "\<0[bB][01]\+[lL]\=\>" display
syn match pythonNumberError "\<\d\+\D[lL]\=\>" display
syn match pythonNumber "\<\d[lL]\=\>" display
syn match pythonNumber "\<[0-9]\d\+[lL]\=\>" display
syn match pythonNumber "\<\d\+[lLjJ]\>" display
syn match pythonOctError "\<0[oO]\=\o*[8-9]\d*[lL]\=\>" display
syn match pythonBinError "\<0[bB][01]*[2-9]\d*[lL]\=\>" display
else
syn match pythonHexError "\<0[xX]\x*[g-zG-Z]\x*\>" display
syn match pythonOctError "\<0[oO]\=\o*\D\+\d*\>" display
syn match pythonBinError "\<0[bB][01]*\D\+\d*\>" display
syn match pythonHexNumber "\<0[xX]\x\+\>" display
syn match pythonOctNumber "\<0[oO]\o\+\>" display
syn match pythonBinNumber "\<0[bB][01]\+\>" display
syn match pythonNumberError "\<\d\+\D\>" display
syn match pythonNumberError "\<0\d\+\>" display
syn match pythonNumber "\<\d\>" display
syn match pythonNumber "\<[1-9]\d\+\>" display
syn match pythonNumber "\<\d\+[jJ]\>" display
syn match pythonOctError "\<0[oO]\=\o*[8-9]\d*\>" display
syn match pythonBinError "\<0[bB][01]*[2-9]\d*\>" display
endif
syn match pythonFloat "\.\d\+\%([eE][+-]\=\d\+\)\=[jJ]\=\>" display
syn match pythonFloat "\<\d\+[eE][+-]\=\d\+[jJ]\=\>" display
syn match pythonFloat "\<\d\+\.\d*\%([eE][+-]\=\d\+\)\=[jJ]\=" display
"
" Builtin objects and types
"
if s:Enabled("g:python_highlight_builtin_objs")
if s:Python2Syntax()
syn keyword pythonBuiltinObj None
syn keyword pythonBoolean True False
endif
syn keyword pythonBuiltinObj Ellipsis NotImplemented
syn keyword pythonBuiltinObj __debug__ __doc__ __file__ __name__ __package__
endif
"
" Builtin functions
"
if s:Enabled("g:python_highlight_builtin_funcs")
if s:Python2Syntax()
syn keyword pythonBuiltinFunc apply basestring buffer callable coerce
syn keyword pythonBuiltinFunc execfile file help intern long raw_input
syn keyword pythonBuiltinFunc reduce reload unichr unicode xrange
if s:Enabled("g:python_print_as_function")
syn keyword pythonBuiltinFunc print
endif
else
syn keyword pythonBuiltinFunc ascii exec memoryview print
endif
syn keyword pythonBuiltinFunc __import__ abs all any
syn keyword pythonBuiltinFunc bin bool bytearray bytes
syn keyword pythonBuiltinFunc chr classmethod cmp compile complex
syn keyword pythonBuiltinFunc delattr dict dir divmod enumerate eval
syn keyword pythonBuiltinFunc filter float format frozenset getattr
syn keyword pythonBuiltinFunc globals hasattr hash hex id
syn keyword pythonBuiltinFunc input int isinstance
syn keyword pythonBuiltinFunc issubclass iter len list locals map max
syn keyword pythonBuiltinFunc min next object oct open ord
syn keyword pythonBuiltinFunc pow property range
syn keyword pythonBuiltinFunc repr reversed round set setattr
syn keyword pythonBuiltinFunc slice sorted staticmethod str sum super tuple
syn keyword pythonBuiltinFunc type vars zip
endif
"
" Builtin exceptions and warnings
"
if s:Enabled("g:python_highlight_exceptions")
if s:Python2Syntax()
syn keyword pythonExClass StandardError
else
syn keyword pythonExClass BlockingIOError ChildProcessError
syn keyword pythonExClass ConnectionError BrokenPipeError
syn keyword pythonExClass ConnectionAbortedError ConnectionRefusedError
syn keyword pythonExClass ConnectionResetError FileExistsError
syn keyword pythonExClass FileNotFoundError InterruptedError
syn keyword pythonExClass IsADirectoryError NotADirectoryError
syn keyword pythonExClass PermissionError ProcessLookupError TimeoutError
syn keyword pythonExClass ResourceWarning
endif
syn keyword pythonExClass BaseException
syn keyword pythonExClass Exception ArithmeticError
syn keyword pythonExClass LookupError EnvironmentError
syn keyword pythonExClass AssertionError AttributeError BufferError EOFError
syn keyword pythonExClass FloatingPointError GeneratorExit IOError
syn keyword pythonExClass ImportError IndexError KeyError
syn keyword pythonExClass KeyboardInterrupt MemoryError NameError
syn keyword pythonExClass NotImplementedError OSError OverflowError
syn keyword pythonExClass ReferenceError RuntimeError StopIteration
syn keyword pythonExClass SyntaxError IndentationError TabError
syn keyword pythonExClass SystemError SystemExit TypeError
syn keyword pythonExClass UnboundLocalError UnicodeError
syn keyword pythonExClass UnicodeEncodeError UnicodeDecodeError
syn keyword pythonExClass UnicodeTranslateError ValueError VMSError
syn keyword pythonExClass WindowsError ZeroDivisionError
syn keyword pythonExClass Warning UserWarning BytesWarning DeprecationWarning
syn keyword pythonExClass PendingDepricationWarning SyntaxWarning
syn keyword pythonExClass RuntimeWarning FutureWarning
syn keyword pythonExClass ImportWarning UnicodeWarning
endif
if s:Enabled("g:python_slow_sync")
syn sync minlines=2000
else
" This is fast but code inside triple quoted strings screws it up. It
" is impossible to fix because the only way to know if you are inside a
" triple quoted string is to start from the beginning of the file.
syn sync match pythonSync grouphere NONE "):$"
syn sync maxlines=200
endif
if version >= 508 || !exists("did_python_syn_inits")
if version <= 508
let did_python_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink pythonStatement Statement
HiLink pythonImport Include
HiLink pythonFunction Function
HiLink pythonConditional Conditional
HiLink pythonRepeat Repeat
HiLink pythonException Exception
HiLink pythonOperator Operator
HiLink pythonDecorator Define
HiLink pythonDottedName Function
HiLink pythonDot Normal
HiLink pythonComment Comment
if !s:Enabled("g:python_highlight_file_headers_as_comments")
HiLink pythonCoding Special
HiLink pythonRun Special
endif
HiLink pythonTodo Todo
HiLink pythonError Error
HiLink pythonIndentError Error
HiLink pythonSpaceError Error
HiLink pythonString String
HiLink pythonRawString String
HiLink pythonUniEscape Special
HiLink pythonUniEscapeError Error
if s:Python2Syntax()
HiLink pythonUniString String
HiLink pythonUniRawString String
HiLink pythonUniRawEscape Special
HiLink pythonUniRawEscapeError Error
else
HiLink pythonBytes String
HiLink pythonRawBytes String
HiLink pythonBytesContent String
HiLink pythonBytesError Error
HiLink pythonBytesEscape Special
HiLink pythonBytesEscapeError Error
endif
HiLink pythonStrFormatting Special
HiLink pythonStrFormat Special
HiLink pythonStrTemplate Special
HiLink pythonDocTest Special
HiLink pythonDocTest2 Special
HiLink pythonNumber Number
HiLink pythonHexNumber Number
HiLink pythonOctNumber Number
HiLink pythonBinNumber Number
HiLink pythonFloat Float
HiLink pythonNumberError Error
HiLink pythonOctError Error
HiLink pythonHexError Error
HiLink pythonBinError Error
HiLink pythonBoolean Boolean
HiLink pythonBuiltinObj Structure
HiLink pythonBuiltinFunc Function
HiLink pythonExClass Structure
delcommand HiLink
endif
let b:current_syntax = "python"

View File

@ -0,0 +1,79 @@
" -----------------------------------------------------------------------------
" File: gruvbox.vim
" Description: Retro groove color scheme for Airline
" Author: morhetz <morhetz@gmail.com>
" Source: https://github.com/morhetz/gruvbox
" Last Modified: 12 Aug 2017
" -----------------------------------------------------------------------------
let g:airline#themes#gruvbox#palette = {}
function! airline#themes#gruvbox#refresh()
let M0 = airline#themes#get_highlight('Identifier')
let accents_group = airline#themes#get_highlight('Special')
let modified_group = [M0[0], '', M0[2], '', '']
let warning_group = airline#themes#get_highlight2(['Normal', 'bg'], ['Question', 'fg'])
let error_group = airline#themes#get_highlight2(['Normal', 'bg'], ['WarningMsg', 'fg'])
let s:N1 = airline#themes#get_highlight2(['Normal', 'bg'], ['StatusLineNC', 'bg'])
let s:N2 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['Pmenu', 'bg'])
let s:N3 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['CursorLine', 'bg'])
let g:airline#themes#gruvbox#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
let g:airline#themes#gruvbox#palette.normal_modified = { 'airline_c': modified_group }
let g:airline#themes#gruvbox#palette.normal.airline_warning = warning_group
let g:airline#themes#gruvbox#palette.normal_modified.airline_warning = warning_group
let g:airline#themes#gruvbox#palette.normal.airline_error = error_group
let g:airline#themes#gruvbox#palette.normal_modified.airline_error = error_group
let s:I1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Identifier', 'fg'])
let s:I2 = s:N2
let s:I3 = airline#themes#get_highlight2(['Normal', 'fg'], ['Pmenu', 'bg'])
let g:airline#themes#gruvbox#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
let g:airline#themes#gruvbox#palette.insert_modified = g:airline#themes#gruvbox#palette.normal_modified
let g:airline#themes#gruvbox#palette.insert.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
let g:airline#themes#gruvbox#palette.insert_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
let g:airline#themes#gruvbox#palette.insert.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
let g:airline#themes#gruvbox#palette.insert_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
let s:R1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Structure', 'fg'])
let s:R2 = s:I2
let s:R3 = s:I3
let g:airline#themes#gruvbox#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
let g:airline#themes#gruvbox#palette.replace_modified = g:airline#themes#gruvbox#palette.normal_modified
let g:airline#themes#gruvbox#palette.replace.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
let g:airline#themes#gruvbox#palette.replace_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
let g:airline#themes#gruvbox#palette.replace.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
let g:airline#themes#gruvbox#palette.replace_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
let s:V1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Question', 'fg'])
let s:V2 = s:N2
let s:V3 = airline#themes#get_highlight2(['Normal', 'bg'], ['TabLine', 'fg'])
let g:airline#themes#gruvbox#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
let g:airline#themes#gruvbox#palette.visual_modified = { 'airline_c': [ s:V3[0], '', s:V3[2], '', '' ] }
let g:airline#themes#gruvbox#palette.visual.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
let g:airline#themes#gruvbox#palette.visual_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
let g:airline#themes#gruvbox#palette.visual.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
let g:airline#themes#gruvbox#palette.visual_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
let s:IA = airline#themes#get_highlight2(['TabLine', 'fg'], ['CursorLine', 'bg'])
let g:airline#themes#gruvbox#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
let g:airline#themes#gruvbox#palette.inactive_modified = { 'airline_c': modified_group }
let g:airline#themes#gruvbox#palette.accents = { 'red': accents_group }
let s:TF = airline#themes#get_highlight2(['Normal', 'bg'], ['Normal', 'bg'])
let g:airline#themes#gruvbox#palette.tabline = {
\ 'airline_tab': s:N2,
\ 'airline_tabsel': s:N1,
\ 'airline_tabtype': s:V1,
\ 'airline_tabfill': s:TF,
\ 'airline_tabhid': s:IA,
\ 'airline_tabmod': s:I1
\ }
endfunction
call airline#themes#gruvbox#refresh()
" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker:

View File

@ -0,0 +1,42 @@
let g:airline#themes#quantum#palette = {}
function! airline#themes#quantum#refresh()
let g:airline#themes#quantum#palette.accents = {
\ 'red': airline#themes#get_highlight('Identifier'),
\ }
let s:N1 = airline#themes#get_highlight2(['CursorLine', 'bg'], ['Directory', 'fg'], 'bold')
let s:N2 = airline#themes#get_highlight('Pmenu')
let s:N3 = airline#themes#get_highlight('TabLine')
let g:airline#themes#quantum#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
let group = airline#themes#get_highlight('Type')
let g:airline#themes#quantum#palette.normal_modified = {
\ 'airline_c': [ group[0], '', group[2], '', '' ]
\ }
let s:I1 = airline#themes#get_highlight2(['CursorLine', 'bg'], ['MoreMsg', 'fg'], 'bold')
let g:airline#themes#quantum#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:N3)
let g:airline#themes#quantum#palette.insert_modified = g:airline#themes#quantum#palette.normal_modified
let s:R1 = airline#themes#get_highlight2(['CursorLine', 'bg'], ['Error', 'fg'], 'bold')
let g:airline#themes#quantum#palette.replace = airline#themes#generate_color_map(s:R1, s:N2, s:N3)
let g:airline#themes#quantum#palette.replace_modified = g:airline#themes#quantum#palette.normal_modified
let s:V1 = airline#themes#get_highlight2(['CursorLine', 'bg'], ['Statement', 'fg'], 'bold')
let g:airline#themes#quantum#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:N3)
let g:airline#themes#quantum#palette.visual_modified = g:airline#themes#quantum#palette.normal_modified
let s:IA = airline#themes#get_highlight2(['NonText', 'fg'], ['CursorLine', 'bg'])
let g:airline#themes#quantum#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
let g:airline#themes#quantum#palette.inactive_modified = g:airline#themes#quantum#palette.normal_modified
if get(g:, 'loaded_ctrlp', 0)
let g:airline#themes#quantum#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
\ airline#themes#get_highlight('CursorLine'),
\ airline#themes#get_highlight2(['Operator', 'fg'], ['Normal', 'bg']),
\ airline#themes#get_highlight2(['Normal', 'bg'], ['Operator', 'fg'], 'bold'))
endif
endfun
call airline#themes#quantum#refresh()

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,670 @@
" _ _ _ __
" | |__ __ _ __| | __ _____ | |/ _|
" | '_ \ / _` |/ _` | \ \ /\ / / _ \| | |_
" | |_) | (_| | (_| | \ V V / (_) | | _|
" |_.__/ \__,_|\__,_| \_/\_/ \___/|_|_|
"
" I am the Bad Wolf. I create myself.
" I take the words. I scatter them in time and space.
" A message to lead myself here.
"
" A Vim colorscheme pieced together by Steve Losh.
" Available at http://stevelosh.com/projects/badwolf/
"
" Why? {{{
"
" After using Molokai for quite a long time, I started longing for
" a replacement.
"
" I love Molokai's high contrast and gooey, saturated tones, but it can be
" a little inconsistent at times.
"
" Also it's winter here in Rochester, so I wanted a color scheme that's a bit
" warmer. A little less blue and a bit more red.
"
" And so Bad Wolf was born. I'm no designer, but designers have been scattering
" beautiful colors through time and space long before I came along. I took
" advantage of that and reused some of my favorites to lead me to this scheme.
"
" }}}
" Supporting code -------------------------------------------------------------
" Preamble {{{
if !has("gui_running") && &t_Co != 88 && &t_Co != 256
finish
endif
color=#1f1f1f
set background=dark
if exists("syntax_on")
syntax reset
endif
let g:colors_name = "badwolf"
if !exists("g:badwolf_html_link_underline") " {{{
let g:badwolf_html_link_underline = 1
endif " }}}
if !exists("g:badwolf_css_props_highlight") " {{{
let g:badwolf_css_props_highlight = 0
endif " }}}
" }}}
" Palette {{{
let s:bwc = {}
" The most basic of all our colors is a slightly tweaked version of the Molokai
" Normal text.
let s:bwc.plain = ['f8f6f2', 15]
" Pure and simple.
let s:bwc.snow = ['ffffff', 15]
let s:bwc.coal = ['000000', 16]
" All of the Gravel colors are based on a brown from Clouds Midnight.
let s:bwc.brightgravel = ['d9cec3', 252]
let s:bwc.lightgravel = ['998f84', 245]
let s:bwc.gravel = ['857f78', 243]
let s:bwc.mediumgravel = ['666462', 241]
let s:bwc.deepgravel = ['45413b', 238]
let s:bwc.deepergravel = ['35322d', 236]
let s:bwc.darkgravel = ['242321', 235]
let s:bwc.blackgravel = ['1c1b1a', 233]
let s:bwc.blackestgravel = ['141413', 232]
" A color sampled from a highlight in a photo of a glass of Dale's Pale Ale on
" my desk.
let s:bwc.dalespale = ['fade3e', 221]
" A beautiful tan from Tomorrow Night.
let s:bwc.dirtyblonde = ['f4cf86', 222]
" Delicious, chewy red from Made of Code for the poppiest highlights.
let s:bwc.taffy = ['ff2c4b', 196]
" Another chewy accent, but use sparingly!
let s:bwc.saltwatertaffy = ['8cffba', 121]
" The star of the show comes straight from Made of Code.
"
" You should almost never use this. It should be used for things that denote
" 'where the user is', which basically consists of:
"
" * The cursor
" * A REPL prompt
let s:bwc.tardis = ['0a9dff', 39]
" This one's from Mustang, not Florida!
let s:bwc.orange = ['ffa724', 214]
" A limier green from Getafe.
let s:bwc.lime = ['aeee00', 154]
" Rose's dress in The Idiot's Lantern.
let s:bwc.dress = ['ff9eb8', 211]
" Another play on the brown from Clouds Midnight. I love that color.
let s:bwc.toffee = ['b88853', 137]
" Also based on that Clouds Midnight brown.
let s:bwc.coffee = ['c7915b', 173]
let s:bwc.darkroast = ['88633f', 95]
" }}}
" Highlighting Function {{{
function! s:HL(group, fg, ...)
" Arguments: group, guifg, guibg, gui, guisp
let histring = 'hi ' . a:group . ' '
if strlen(a:fg)
if a:fg == 'fg'
let histring .= 'guifg=fg ctermfg=fg '
else
let c = get(s:bwc, a:fg)
let histring .= 'guifg=#' . c[0] . ' ctermfg=' . c[1] . ' '
endif
endif
if a:0 >= 1 && strlen(a:1)
if a:1 == 'bg'
let histring .= 'guibg=bg ctermbg=bg '
else
let c = get(s:bwc, a:1)
let histring .= 'guibg=#' . c[0] . ' ctermbg=' . c[1] . ' '
endif
endif
if a:0 >= 2 && strlen(a:2)
let histring .= 'gui=' . a:2 . ' cterm=' . a:2 . ' '
endif
if a:0 >= 3 && strlen(a:3)
let c = get(s:bwc, a:3)
let histring .= 'guisp=#' . c[0] . ' '
endif
" echom histring
execute histring
endfunction
" }}}
" Configuration Options {{{
if exists('g:badwolf_darkgutter') && g:badwolf_darkgutter
let s:gutter = 'blackestgravel'
else
let s:gutter = 'blackgravel'
endif
if exists('g:badwolf_tabline')
if g:badwolf_tabline == 0
let s:tabline = 'blackestgravel'
elseif g:badwolf_tabline == 1
let s:tabline = 'blackgravel'
elseif g:badwolf_tabline == 2
let s:tabline = 'darkgravel'
elseif g:badwolf_tabline == 3
let s:tabline = 'deepgravel'
else
let s:tabline = 'blackestgravel'
endif
else
let s:tabline = 'blackgravel'
endif
" }}}
" Actual colorscheme ----------------------------------------------------------
" Vanilla Vim {{{
" General/UI {{{
call s:HL('Normal', 'plain', 'blackgravel')
call s:HL('Folded', 'mediumgravel', 'bg', 'none')
call s:HL('VertSplit', 'lightgravel', 'bg', 'none')
call s:HL('CursorLine', '', 'darkgravel', 'none')
call s:HL('CursorColumn', '', 'darkgravel')
call s:HL('ColorColumn', '', 'darkgravel')
call s:HL('TabLine', 'plain', s:tabline, 'none')
call s:HL('TabLineFill', 'plain', s:tabline, 'none')
call s:HL('TabLineSel', 'coal', 'tardis', 'none')
call s:HL('MatchParen', 'dalespale', 'darkgravel', 'bold')
call s:HL('NonText', 'deepgravel', 'bg')
call s:HL('SpecialKey', 'deepgravel', 'bg')
call s:HL('Visual', '', 'deepgravel')
call s:HL('VisualNOS', '', 'deepgravel')
call s:HL('Search', 'coal', 'dalespale', 'bold')
call s:HL('IncSearch', 'coal', 'tardis', 'bold')
call s:HL('Underlined', 'fg', '', 'underline')
call s:HL('StatusLine', 'coal', 'tardis', 'bold')
call s:HL('StatusLineNC', 'snow', 'deepgravel', 'bold')
call s:HL('Directory', 'dirtyblonde', '', 'bold')
call s:HL('Title', 'lime')
call s:HL('ErrorMsg', 'taffy', 'bg', 'bold')
call s:HL('MoreMsg', 'dalespale', '', 'bold')
call s:HL('ModeMsg', 'dirtyblonde', '', 'bold')
call s:HL('Question', 'dirtyblonde', '', 'bold')
call s:HL('WarningMsg', 'dress', '', 'bold')
" This is a ctags tag, not an HTML one. 'Something you can use c-] on'.
call s:HL('Tag', '', '', 'bold')
" hi IndentGuides guibg=#373737
" hi WildMenu guifg=#66D9EF guibg=#000000
" }}}
" Gutter {{{
call s:HL('LineNr', 'mediumgravel', s:gutter)
call s:HL('SignColumn', '', s:gutter)
call s:HL('FoldColumn', 'mediumgravel', s:gutter)
" }}}
" Cursor {{{
call s:HL('Cursor', 'coal', 'tardis', 'bold')
call s:HL('vCursor', 'coal', 'tardis', 'bold')
call s:HL('iCursor', 'coal', 'tardis', 'none')
" }}}
" Syntax highlighting {{{
" Start with a simple base.
call s:HL('Special', 'plain')
" Comments are slightly brighter than folds, to make 'headers' easier to see.
call s:HL('Comment', 'gravel')
call s:HL('Todo', 'snow', 'bg', 'bold')
call s:HL('SpecialComment', 'snow', 'bg', 'bold')
" Strings are a nice, pale straw color. Nothing too fancy.
call s:HL('String', 'dirtyblonde')
" Control flow stuff is taffy.
call s:HL('Statement', 'taffy', '', 'bold')
call s:HL('Keyword', 'taffy', '', 'bold')
call s:HL('Conditional', 'taffy', '', 'bold')
call s:HL('Operator', 'taffy', '', 'none')
call s:HL('Label', 'taffy', '', 'none')
call s:HL('Repeat', 'taffy', '', 'none')
" Functions and variable declarations are orange, because plain looks weird.
call s:HL('Identifier', 'orange', '', 'none')
call s:HL('Function', 'orange', '', 'none')
" Preprocessor stuff is lime, to make it pop.
"
" This includes imports in any given language, because they should usually be
" grouped together at the beginning of a file. If they're in the middle of some
" other code they should stand out, because something tricky is
" probably going on.
call s:HL('PreProc', 'lime', '', 'none')
call s:HL('Macro', 'lime', '', 'none')
call s:HL('Define', 'lime', '', 'none')
call s:HL('PreCondit', 'lime', '', 'bold')
" Constants of all kinds are colored together.
" I'm not really happy with the color yet...
call s:HL('Constant', 'toffee', '', 'bold')
call s:HL('Character', 'toffee', '', 'bold')
call s:HL('Boolean', 'toffee', '', 'bold')
call s:HL('Number', 'toffee', '', 'bold')
call s:HL('Float', 'toffee', '', 'bold')
" Not sure what 'special character in a constant' means, but let's make it pop.
call s:HL('SpecialChar', 'dress', '', 'bold')
call s:HL('Type', 'dress', '', 'none')
call s:HL('StorageClass', 'taffy', '', 'none')
call s:HL('Structure', 'taffy', '', 'none')
call s:HL('Typedef', 'taffy', '', 'bold')
" Make try/catch blocks stand out.
call s:HL('Exception', 'lime', '', 'bold')
" Misc
call s:HL('Error', 'snow', 'taffy', 'bold')
call s:HL('Debug', 'snow', '', 'bold')
call s:HL('Ignore', 'gravel', '', '')
" }}}
" Completion Menu {{{
call s:HL('Pmenu', 'plain', 'deepergravel')
call s:HL('PmenuSel', 'coal', 'tardis', 'bold')
call s:HL('PmenuSbar', '', 'deepergravel')
call s:HL('PmenuThumb', 'brightgravel')
" }}}
" Diffs {{{
call s:HL('DiffDelete', 'coal', 'coal')
call s:HL('DiffAdd', '', 'deepergravel')
call s:HL('DiffChange', '', 'darkgravel')
call s:HL('DiffText', 'snow', 'deepergravel', 'bold')
" }}}
" Spelling {{{
if has("spell")
call s:HL('SpellCap', 'dalespale', 'bg', 'undercurl,bold', 'dalespale')
call s:HL('SpellBad', '', 'bg', 'undercurl', 'dalespale')
call s:HL('SpellLocal', '', '', 'undercurl', 'dalespale')
call s:HL('SpellRare', '', '', 'undercurl', 'dalespale')
endif
" }}}
" }}}
" Plugins {{{
" CtrlP {{{
" the message when no match is found
call s:HL('CtrlPNoEntries', 'snow', 'taffy', 'bold')
" the matched pattern
call s:HL('CtrlPMatch', 'orange', 'bg', 'none')
" the line prefix '>' in the match window
call s:HL('CtrlPLinePre', 'deepgravel', 'bg', 'none')
" the prompts base
call s:HL('CtrlPPrtBase', 'deepgravel', 'bg', 'none')
" the prompts text
call s:HL('CtrlPPrtText', 'plain', 'bg', 'none')
" the prompts cursor when moving over the text
call s:HL('CtrlPPrtCursor', 'coal', 'tardis', 'bold')
" 'prt' or 'win', also for 'regex'
call s:HL('CtrlPMode1', 'coal', 'tardis', 'bold')
" 'file' or 'path', also for the local working dir
call s:HL('CtrlPMode2', 'coal', 'tardis', 'bold')
" the scanning status
call s:HL('CtrlPStats', 'coal', 'tardis', 'bold')
" TODO: CtrlP extensions.
" CtrlPTabExtra : the part of each line thats not matched against (Comment)
" CtrlPqfLineCol : the line and column numbers in quickfix mode (|s:HL-Search|)
" CtrlPUndoT : the elapsed time in undo mode (|s:HL-Directory|)
" CtrlPUndoBr : the square brackets [] in undo mode (Comment)
" CtrlPUndoNr : the undo number inside [] in undo mode (String)
" }}}
" EasyMotion {{{
call s:HL('EasyMotionTarget', 'tardis', 'bg', 'bold')
call s:HL('EasyMotionShade', 'deepgravel', 'bg')
" }}}
" Interesting Words {{{
" These are only used if you're me or have copied the <leader>hNUM mappings
" from my Vimrc.
call s:HL('InterestingWord1', 'coal', 'orange')
call s:HL('InterestingWord2', 'coal', 'lime')
call s:HL('InterestingWord3', 'coal', 'saltwatertaffy')
call s:HL('InterestingWord4', 'coal', 'toffee')
call s:HL('InterestingWord5', 'coal', 'dress')
call s:HL('InterestingWord6', 'coal', 'taffy')
" }}}
" Makegreen {{{
" hi GreenBar term=reverse ctermfg=white ctermbg=green guifg=coal guibg=#9edf1c
" hi RedBar term=reverse ctermfg=white ctermbg=red guifg=white guibg=#C50048
" }}}
" Rainbow Parentheses {{{
call s:HL('level16c', 'mediumgravel', '', 'bold')
call s:HL('level15c', 'dalespale', '', '')
call s:HL('level14c', 'dress', '', '')
call s:HL('level13c', 'orange', '', '')
call s:HL('level12c', 'tardis', '', '')
call s:HL('level11c', 'lime', '', '')
call s:HL('level10c', 'toffee', '', '')
call s:HL('level9c', 'saltwatertaffy', '', '')
call s:HL('level8c', 'coffee', '', '')
call s:HL('level7c', 'dalespale', '', '')
call s:HL('level6c', 'dress', '', '')
call s:HL('level5c', 'orange', '', '')
call s:HL('level4c', 'tardis', '', '')
call s:HL('level3c', 'lime', '', '')
call s:HL('level2c', 'toffee', '', '')
call s:HL('level1c', 'saltwatertaffy', '', '')
" }}}
" ShowMarks {{{
call s:HL('ShowMarksHLl', 'tardis', 'blackgravel')
call s:HL('ShowMarksHLu', 'tardis', 'blackgravel')
call s:HL('ShowMarksHLo', 'tardis', 'blackgravel')
call s:HL('ShowMarksHLm', 'tardis', 'blackgravel')
" }}}
" }}}
" Filetype-specific {{{
" Clojure {{{
call s:HL('clojureSpecial', 'taffy', '', '')
call s:HL('clojureDefn', 'taffy', '', '')
call s:HL('clojureDefMacro', 'taffy', '', '')
call s:HL('clojureDefine', 'taffy', '', '')
call s:HL('clojureMacro', 'taffy', '', '')
call s:HL('clojureCond', 'taffy', '', '')
call s:HL('clojureKeyword', 'orange', '', 'none')
call s:HL('clojureFunc', 'dress', '', 'none')
call s:HL('clojureRepeat', 'dress', '', 'none')
call s:HL('clojureParen0', 'lightgravel', '', 'none')
call s:HL('clojureAnonArg', 'snow', '', 'bold')
" }}}
" Common Lisp {{{
call s:HL('lispFunc', 'lime', '', 'none')
call s:HL('lispVar', 'orange', '', 'bold')
call s:HL('lispEscapeSpecial', 'orange', '', 'none')
" }}}
" CSS {{{
if g:badwolf_css_props_highlight
call s:HL('cssColorProp', 'taffy', '', 'none')
call s:HL('cssBoxProp', 'taffy', '', 'none')
call s:HL('cssTextProp', 'taffy', '', 'none')
call s:HL('cssRenderProp', 'taffy', '', 'none')
call s:HL('cssGeneratedContentProp', 'taffy', '', 'none')
else
call s:HL('cssColorProp', 'fg', '', 'none')
call s:HL('cssBoxProp', 'fg', '', 'none')
call s:HL('cssTextProp', 'fg', '', 'none')
call s:HL('cssRenderProp', 'fg', '', 'none')
call s:HL('cssGeneratedContentProp', 'fg', '', 'none')
end
call s:HL('cssValueLength', 'toffee', '', 'bold')
call s:HL('cssColor', 'toffee', '', 'bold')
call s:HL('cssBraces', 'lightgravel', '', 'none')
call s:HL('cssIdentifier', 'orange', '', 'bold')
call s:HL('cssClassName', 'orange', '', 'none')
" }}}
" Diff {{{
call s:HL('gitDiff', 'lightgravel', '',)
call s:HL('diffRemoved', 'dress', '',)
call s:HL('diffAdded', 'lime', '',)
call s:HL('diffFile', 'coal', 'taffy', 'bold')
call s:HL('diffNewFile', 'coal', 'taffy', 'bold')
call s:HL('diffLine', 'coal', 'orange', 'bold')
call s:HL('diffSubname', 'orange', '', 'none')
" }}}
" Django Templates {{{
call s:HL('djangoArgument', 'dirtyblonde', '',)
call s:HL('djangoTagBlock', 'orange', '')
call s:HL('djangoVarBlock', 'orange', '')
" hi djangoStatement guifg=#ff3853 gui=bold
" hi djangoVarBlock guifg=#f4cf86
" }}}
" HTML {{{
" Punctuation
call s:HL('htmlTag', 'darkroast', 'bg', 'none')
call s:HL('htmlEndTag', 'darkroast', 'bg', 'none')
" Tag names
call s:HL('htmlTagName', 'coffee', '', 'bold')
call s:HL('htmlSpecialTagName', 'coffee', '', 'bold')
call s:HL('htmlSpecialChar', 'lime', '', 'none')
" Attributes
call s:HL('htmlArg', 'coffee', '', 'none')
" Stuff inside an <a> tag
if g:badwolf_html_link_underline
call s:HL('htmlLink', 'lightgravel', '', 'underline')
else
call s:HL('htmlLink', 'lightgravel', '', 'none')
endif
" }}}
" Java {{{
call s:HL('javaClassDecl', 'taffy', '', 'bold')
call s:HL('javaScopeDecl', 'taffy', '', 'bold')
call s:HL('javaCommentTitle', 'gravel', '')
call s:HL('javaDocTags', 'snow', '', 'none')
call s:HL('javaDocParam', 'dalespale', '', '')
" }}}
" LaTeX {{{
call s:HL('texStatement', 'tardis', '', 'none')
call s:HL('texMathZoneX', 'orange', '', 'none')
call s:HL('texMathZoneA', 'orange', '', 'none')
call s:HL('texMathZoneB', 'orange', '', 'none')
call s:HL('texMathZoneC', 'orange', '', 'none')
call s:HL('texMathZoneD', 'orange', '', 'none')
call s:HL('texMathZoneE', 'orange', '', 'none')
call s:HL('texMathZoneV', 'orange', '', 'none')
call s:HL('texMathZoneX', 'orange', '', 'none')
call s:HL('texMath', 'orange', '', 'none')
call s:HL('texMathMatcher', 'orange', '', 'none')
call s:HL('texRefLabel', 'dirtyblonde', '', 'none')
call s:HL('texRefZone', 'lime', '', 'none')
call s:HL('texComment', 'darkroast', '', 'none')
call s:HL('texDelimiter', 'orange', '', 'none')
call s:HL('texZone', 'brightgravel', '', 'none')
augroup badwolf_tex
au!
au BufRead,BufNewFile *.tex syn region texMathZoneV start="\\(" end="\\)\|%stopzone\>" keepend contains=@texMathZoneGroup
au BufRead,BufNewFile *.tex syn region texMathZoneX start="\$" skip="\\\\\|\\\$" end="\$\|%stopzone\>" keepend contains=@texMathZoneGroup
augroup END
" }}}
" LessCSS {{{
call s:HL('lessVariable', 'lime', '', 'none')
" }}}
" Lispyscript {{{
call s:HL('lispyscriptDefMacro', 'lime', '', '')
call s:HL('lispyscriptRepeat', 'dress', '', 'none')
" }}}
" REPLs {{{
" This isn't a specific plugin, but just useful highlight classes for anything
" that might want to use them.
call s:HL('replPrompt', 'tardis', '', 'bold')
" }}}
" Mail {{{
call s:HL('mailSubject', 'orange', '', 'bold')
call s:HL('mailHeader', 'lightgravel', '', '')
call s:HL('mailHeaderKey', 'lightgravel', '', '')
call s:HL('mailHeaderEmail', 'snow', '', '')
call s:HL('mailURL', 'toffee', '', 'underline')
call s:HL('mailSignature', 'gravel', '', 'none')
call s:HL('mailQuoted1', 'gravel', '', 'none')
call s:HL('mailQuoted2', 'dress', '', 'none')
call s:HL('mailQuoted3', 'dirtyblonde', '', 'none')
call s:HL('mailQuoted4', 'orange', '', 'none')
call s:HL('mailQuoted5', 'lime', '', 'none')
" }}}
" Markdown {{{
call s:HL('markdownHeadingRule', 'lightgravel', '', 'bold')
call s:HL('markdownHeadingDelimiter', 'lightgravel', '', 'bold')
call s:HL('markdownOrderedListMarker', 'lightgravel', '', 'bold')
call s:HL('markdownListMarker', 'lightgravel', '', 'bold')
call s:HL('markdownItalic', 'snow', '', 'bold')
call s:HL('markdownBold', 'snow', '', 'bold')
call s:HL('markdownH1', 'orange', '', 'bold')
call s:HL('markdownH2', 'lime', '', 'bold')
call s:HL('markdownH3', 'lime', '', 'none')
call s:HL('markdownH4', 'lime', '', 'none')
call s:HL('markdownH5', 'lime', '', 'none')
call s:HL('markdownH6', 'lime', '', 'none')
call s:HL('markdownLinkText', 'toffee', '', 'underline')
call s:HL('markdownIdDeclaration', 'toffee')
call s:HL('markdownAutomaticLink', 'toffee', '', 'bold')
call s:HL('markdownUrl', 'toffee', '', 'bold')
call s:HL('markdownUrldelimiter', 'lightgravel', '', 'bold')
call s:HL('markdownLinkDelimiter', 'lightgravel', '', 'bold')
call s:HL('markdownLinkTextDelimiter', 'lightgravel', '', 'bold')
call s:HL('markdownCodeDelimiter', 'dirtyblonde', '', 'bold')
call s:HL('markdownCode', 'dirtyblonde', '', 'none')
call s:HL('markdownCodeBlock', 'dirtyblonde', '', 'none')
" }}}
" MySQL {{{
call s:HL('mysqlSpecial', 'dress', '', 'bold')
" }}}
" Python {{{
hi def link pythonOperator Operator
call s:HL('pythonBuiltin', 'dress')
call s:HL('pythonBuiltinObj', 'dress')
call s:HL('pythonBuiltinFunc', 'dress')
call s:HL('pythonEscape', 'dress')
call s:HL('pythonException', 'lime', '', 'bold')
call s:HL('pythonExceptions', 'lime', '', 'none')
call s:HL('pythonPrecondit', 'lime', '', 'none')
call s:HL('pythonDecorator', 'taffy', '', 'none')
call s:HL('pythonRun', 'gravel', '', 'bold')
call s:HL('pythonCoding', 'gravel', '', 'bold')
" }}}
" SLIMV {{{
" Rainbow parentheses
call s:HL('hlLevel0', 'gravel')
call s:HL('hlLevel1', 'orange')
call s:HL('hlLevel2', 'saltwatertaffy')
call s:HL('hlLevel3', 'dress')
call s:HL('hlLevel4', 'coffee')
call s:HL('hlLevel5', 'dirtyblonde')
call s:HL('hlLevel6', 'orange')
call s:HL('hlLevel7', 'saltwatertaffy')
call s:HL('hlLevel8', 'dress')
call s:HL('hlLevel9', 'coffee')
" }}}
" Vim {{{
call s:HL('VimCommentTitle', 'lightgravel', '', 'bold')
call s:HL('VimMapMod', 'dress', '', 'none')
call s:HL('VimMapModKey', 'dress', '', 'none')
call s:HL('VimNotation', 'dress', '', 'none')
call s:HL('VimBracket', 'dress', '', 'none')
" }}}
" }}}

View File

@ -0,0 +1,672 @@
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let colors_name = "jellybeans"
if has("gui_running") || (has('termguicolors') && &termguicolors)
let s:true_color = 1
else
let s:true_color = 0
endif
if s:true_color || &t_Co >= 88
let s:low_color = 0
else
let s:low_color = 1
endif
" Configuration Variables:
" - g:jellybeans_overrides (default = {})
" - g:jellybeans_use_lowcolor_black (default = 0)
" - g:jellybeans_use_gui_italics (default = 1)
" - g:jellybeans_use_term_italics (default = 0)
let s:background_color = "000"
if exists("g:jellybeans_overrides")
let s:overrides = g:jellybeans_overrides
else
let s:overrides = {}
endif
" Backwards compatibility
if exists("g:jellybeans_background_color")
\ || exists("g:jellybeans_background_color_256")
\ || exists("g:jellybeans_use_term_background_color")
let s:overrides = deepcopy(s:overrides)
if !has_key(s:overrides, "background")
let s:overrides["background"] = {}
endif
if exists("g:jellybeans_background_color")
let s:overrides["background"]["guibg"] = g:jellybeans_background_color
endif
if exists("g:jellybeans_background_color_256")
let s:overrides["background"]["256ctermbg"] = g:jellybeans_background_color_256
endif
if exists("g:jellybeans_use_term_background_color")
\ && g:jellybeans_use_term_background_color
let s:overrides["background"]["ctermbg"] = "NONE"
let s:overrides["background"]["256ctermbg"] = "NONE"
endif
endif
if exists("g:jellybeans_use_lowcolor_black") && g:jellybeans_use_lowcolor_black
let s:termBlack = "Black"
else
let s:termBlack = "Grey"
endif
" When `termguicolors` is set, Vim[^1] ignores `hi Normal guibg=NONE`
" after Normal's `guibg` is already set to a color. See:
"
" - https://github.com/vim/vim/issues/981
" - https://github.com/nanotech/jellybeans.vim/issues/64
"
" To work around this, ensure we don't set the default background
" color before an override changes it to `NONE` by ensuring that the
" background color isn't set to a value different from its override.
"
" [^1]: Tested on 8.0.567. Does not apply to Neovim.
"
if has_key(s:overrides, "background") && has_key(s:overrides["background"], "guibg")
let s:background_color = s:overrides["background"]["guibg"]
endif
" Color approximation functions by Henry So, Jr. and David Liang {{{
" Added to jellybeans.vim by Daniel Herbert
if &t_Co == 88
" returns an approximate grey index for the given grey level
fun! s:grey_number(x)
if a:x < 23
return 0
elseif a:x < 69
return 1
elseif a:x < 103
return 2
elseif a:x < 127
return 3
elseif a:x < 150
return 4
elseif a:x < 173
return 5
elseif a:x < 196
return 6
elseif a:x < 219
return 7
elseif a:x < 243
return 8
else
return 9
endif
endfun
" returns the actual grey level represented by the grey index
fun! s:grey_level(n)
if a:n == 0
return 0
elseif a:n == 1
return 46
elseif a:n == 2
return 92
elseif a:n == 3
return 115
elseif a:n == 4
return 139
elseif a:n == 5
return 162
elseif a:n == 6
return 185
elseif a:n == 7
return 208
elseif a:n == 8
return 231
else
return 255
endif
endfun
" returns the palette index for the given grey index
fun! s:grey_color(n)
if a:n == 0
return 16
elseif a:n == 9
return 79
else
return 79 + a:n
endif
endfun
" returns an approximate color index for the given color level
fun! s:rgb_number(x)
if a:x < 69
return 0
elseif a:x < 172
return 1
elseif a:x < 230
return 2
else
return 3
endif
endfun
" returns the actual color level for the given color index
fun! s:rgb_level(n)
if a:n == 0
return 0
elseif a:n == 1
return 139
elseif a:n == 2
return 205
else
return 255
endif
endfun
" returns the palette index for the given R/G/B color indices
fun! s:rgb_color(x, y, z)
return 16 + (a:x * 16) + (a:y * 4) + a:z
endfun
else " assuming &t_Co == 256
" returns an approximate grey index for the given grey level
fun! s:grey_number(x)
if a:x < 14
return 0
else
let l:n = (a:x - 8) / 10
let l:m = (a:x - 8) % 10
if l:m < 5
return l:n
else
return l:n + 1
endif
endif
endfun
" returns the actual grey level represented by the grey index
fun! s:grey_level(n)
if a:n == 0
return 0
else
return 8 + (a:n * 10)
endif
endfun
" returns the palette index for the given grey index
fun! s:grey_color(n)
if a:n == 0
return 16
elseif a:n == 25
return 231
else
return 231 + a:n
endif
endfun
" returns an approximate color index for the given color level
fun! s:rgb_number(x)
if a:x < 75
return 0
else
let l:n = (a:x - 55) / 40
let l:m = (a:x - 55) % 40
if l:m < 20
return l:n
else
return l:n + 1
endif
endif
endfun
" returns the actual color level for the given color index
fun! s:rgb_level(n)
if a:n == 0
return 0
else
return 55 + (a:n * 40)
endif
endfun
" returns the palette index for the given R/G/B color indices
fun! s:rgb_color(x, y, z)
return 16 + (a:x * 36) + (a:y * 6) + a:z
endfun
endif
" returns the palette index to approximate the given R/G/B color levels
fun! s:color(r, g, b)
" map greys directly (see xterm's 256colres.pl)
if &t_Co == 256 && a:r == a:g && a:g == a:b && a:r > 3 && a:r < 243
return (a:r - 8) / 10 + 232
endif
" get the closest grey
let l:gx = s:grey_number(a:r)
let l:gy = s:grey_number(a:g)
let l:gz = s:grey_number(a:b)
" get the closest color
let l:x = s:rgb_number(a:r)
let l:y = s:rgb_number(a:g)
let l:z = s:rgb_number(a:b)
if l:gx == l:gy && l:gy == l:gz
" there are two possibilities
let l:dgr = s:grey_level(l:gx) - a:r
let l:dgg = s:grey_level(l:gy) - a:g
let l:dgb = s:grey_level(l:gz) - a:b
let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb)
let l:dr = s:rgb_level(l:gx) - a:r
let l:dg = s:rgb_level(l:gy) - a:g
let l:db = s:rgb_level(l:gz) - a:b
let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db)
if l:dgrey < l:drgb
" use the grey
return s:grey_color(l:gx)
else
" use the color
return s:rgb_color(l:x, l:y, l:z)
endif
else
" only one possibility
return s:rgb_color(l:x, l:y, l:z)
endif
endfun
fun! s:is_empty_or_none(str)
return empty(a:str) || a:str ==? "NONE"
endfun
" returns the palette index to approximate the 'rrggbb' hex string
fun! s:rgb(rgb)
if s:is_empty_or_none(a:rgb)
return "NONE"
endif
let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0
let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0
let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0
return s:color(l:r, l:g, l:b)
endfun
fun! s:prefix_highlight_value_with(prefix, color)
if s:is_empty_or_none(a:color)
return "NONE"
else
return a:prefix . a:color
endif
endfun
fun! s:remove_italic_attr(attr)
let l:attr = join(filter(split(a:attr, ","), "v:val !=? 'italic'"), ",")
if empty(l:attr)
let l:attr = "NONE"
endif
return l:attr
endfun
" sets the highlighting for the given group
fun! s:X(group, fg, bg, attr, lcfg, lcbg)
if s:low_color
let l:cmd = "hi ".a:group.
\ " ctermfg=".s:prefix_highlight_value_with("", a:lcfg).
\ " ctermbg=".s:prefix_highlight_value_with("", a:lcbg)
else
let l:cmd = "hi ".a:group.
\ " guifg=".s:prefix_highlight_value_with("#", a:fg).
\ " guibg=".s:prefix_highlight_value_with("#", a:bg)
if !s:true_color
let l:cmd = l:cmd.
\ " ctermfg=".s:rgb(a:fg).
\ " ctermbg=".s:rgb(a:bg)
endif
endif
let l:attr = s:prefix_highlight_value_with("", a:attr)
if exists("g:jellybeans_use_term_italics") && g:jellybeans_use_term_italics
let l:cterm_attr = l:attr
else
let l:cterm_attr = s:remove_italic_attr(l:attr)
endif
if !exists("g:jellybeans_use_gui_italics") || g:jellybeans_use_gui_italics
let l:gui_attr = l:attr
else
let l:gui_attr = s:remove_italic_attr(l:attr)
endif
let l:cmd = l:cmd." gui=".l:gui_attr." cterm=".l:cterm_attr
exec l:cmd
endfun
" }}}
call s:X("Normal","e8e8d3",s:background_color,"","White","")
set background=dark
call s:X("CursorLine","","1c1c1c","","",s:termBlack)
call s:X("CursorColumn","","1c1c1c","","",s:termBlack)
" Some of Terminal.app's default themes have a cursor color
" too close to Jellybeans' preferred MatchParen background
" color to be easily distinguishable. Other terminals tend
" to use a brighter cursor color.
"
" Use a more distinct color in Terminal.app, and also in
" low-color terminals if the preferred background color is
" not available.
if !has('gui_running') && $TERM_PROGRAM == "Apple_Terminal"
let s:matchParenGuiFg = "dd0093"
let s:matchParenGuiBg = "000000"
else
let s:matchParenGuiFg = "ffffff"
let s:matchParenGuiBg = "556779"
endif
if s:termBlack != "Black"
let s:matchParenTermFg = "Magenta"
let s:matchParenTermBg = ""
else
let s:matchParenTermFg = ""
let s:matchParenTermBg = s:termBlack
endif
call s:X("MatchParen",s:matchParenGuiFg,s:matchParenGuiBg,"bold",
\ s:matchParenTermFg,s:matchParenTermBg)
call s:X("TabLine","000000","b0b8c0","italic","",s:termBlack)
call s:X("TabLineFill","9098a0","","","",s:termBlack)
call s:X("TabLineSel","000000","f0f0f0","italic,bold",s:termBlack,"White")
" Auto-completion
call s:X("Pmenu","ffffff","606060","","White",s:termBlack)
call s:X("PmenuSel","101010","eeeeee","",s:termBlack,"White")
call s:X("Visual","","404040","","",s:termBlack)
call s:X("Cursor",s:background_color,"b0d0f0","","","")
call s:X("LineNr","605958",s:background_color,"NONE",s:termBlack,"")
call s:X("CursorLineNr","ccc5c4","","NONE","White","")
call s:X("Comment","888888","","italic","Grey","")
call s:X("Todo","c7c7c7","","bold","White",s:termBlack)
call s:X("StatusLine","000000","dddddd","italic","","White")
call s:X("StatusLineNC","ffffff","403c41","italic","White","Black")
call s:X("VertSplit","777777","403c41","",s:termBlack,s:termBlack)
call s:X("WildMenu","f0a0c0","302028","","Magenta","")
call s:X("Folded","a0a8b0","384048","italic",s:termBlack,"")
call s:X("FoldColumn","535D66","1f1f1f","","",s:termBlack)
call s:X("SignColumn","777777","333333","","",s:termBlack)
call s:X("ColorColumn","","000000","","",s:termBlack)
call s:X("Title","70b950","","bold","Green","")
call s:X("Constant","cf6a4c","","","Red","")
call s:X("Special","799d6a","","","Green","")
call s:X("Delimiter","668799","","","Grey","")
call s:X("String","99ad6a","","","Green","")
call s:X("StringDelimiter","556633","","","DarkGreen","")
call s:X("Identifier","c6b6ee","","","LightCyan","")
call s:X("Structure","8fbfdc","","","LightCyan","")
call s:X("Function","fad07a","","","Yellow","")
call s:X("Statement","8197bf","","","DarkBlue","")
call s:X("PreProc","8fbfdc","","","LightBlue","")
hi! link Operator Structure
hi! link Conceal Operator
call s:X("Type","ffb964","","","Yellow","")
call s:X("NonText","606060",s:background_color,"",s:termBlack,"")
call s:X("SpecialKey","444444","1c1c1c","",s:termBlack,"")
call s:X("Search","f0a0c0","302028","underline","Magenta","")
call s:X("Directory","dad085","","","Yellow","")
call s:X("ErrorMsg","","902020","","","DarkRed")
hi! link Error ErrorMsg
hi! link MoreMsg Special
call s:X("Question","65C254","","","Green","")
" Spell Checking
call s:X("SpellBad","","902020","underline","","DarkRed")
call s:X("SpellCap","","0000df","underline","","Blue")
call s:X("SpellRare","","540063","underline","","DarkMagenta")
call s:X("SpellLocal","","2D7067","underline","","Green")
" Diff
hi! link diffRemoved Constant
hi! link diffAdded String
" VimDiff
call s:X("DiffAdd","D2EBBE","437019","","White","DarkGreen")
call s:X("DiffDelete","40000A","700009","","DarkRed","DarkRed")
call s:X("DiffChange","","2B5B77","","White","DarkBlue")
call s:X("DiffText","8fbfdc","000000","reverse","Yellow","")
" PHP
hi! link phpFunctions Function
call s:X("StorageClass","c59f6f","","","Red","")
hi! link phpSuperglobal Identifier
hi! link phpQuoteSingle StringDelimiter
hi! link phpQuoteDouble StringDelimiter
hi! link phpBoolean Constant
hi! link phpNull Constant
hi! link phpArrayPair Operator
hi! link phpOperator Normal
hi! link phpRelation Normal
hi! link phpVarSelector Identifier
" Python
hi! link pythonOperator Statement
" Ruby
hi! link rubySharpBang Comment
call s:X("rubyClass","447799","","","DarkBlue","")
call s:X("rubyIdentifier","c6b6fe","","","Cyan","")
hi! link rubyConstant Type
hi! link rubyFunction Function
call s:X("rubyInstanceVariable","c6b6fe","","","Cyan","")
call s:X("rubySymbol","7697d6","","","Blue","")
hi! link rubyGlobalVariable rubyInstanceVariable
hi! link rubyModule rubyClass
call s:X("rubyControl","7597c6","","","Blue","")
hi! link rubyString String
hi! link rubyStringDelimiter StringDelimiter
hi! link rubyInterpolationDelimiter Identifier
call s:X("rubyRegexpDelimiter","540063","","","Magenta","")
call s:X("rubyRegexp","dd0093","","","DarkMagenta","")
call s:X("rubyRegexpSpecial","a40073","","","Magenta","")
call s:X("rubyPredefinedIdentifier","de5577","","","Red","")
" Erlang
hi! link erlangAtom rubySymbol
hi! link erlangBIF rubyPredefinedIdentifier
hi! link erlangFunction rubyPredefinedIdentifier
hi! link erlangDirective Statement
hi! link erlangNode Identifier
" Elixir
hi! link elixirAtom rubySymbol
" JavaScript
hi! link javaScriptValue Constant
hi! link javaScriptRegexpString rubyRegexp
hi! link javaScriptTemplateVar StringDelim
hi! link javaScriptTemplateDelim Identifier
hi! link javaScriptTemplateString String
" CoffeeScript
hi! link coffeeRegExp javaScriptRegexpString
" Lua
hi! link luaOperator Conditional
" C
hi! link cFormat Identifier
hi! link cOperator Constant
" Objective-C/Cocoa
hi! link objcClass Type
hi! link cocoaClass objcClass
hi! link objcSubclass objcClass
hi! link objcSuperclass objcClass
hi! link objcDirective rubyClass
hi! link objcStatement Constant
hi! link cocoaFunction Function
hi! link objcMethodName Identifier
hi! link objcMethodArg Normal
hi! link objcMessageName Identifier
" Vimscript
hi! link vimOper Normal
" HTML
hi! link htmlTag Statement
hi! link htmlEndTag htmlTag
hi! link htmlTagName htmlTag
" XML
hi! link xmlTag Statement
hi! link xmlEndTag xmlTag
hi! link xmlTagName xmlTag
hi! link xmlEqual xmlTag
hi! link xmlEntity Special
hi! link xmlEntityPunct xmlEntity
hi! link xmlDocTypeDecl PreProc
hi! link xmlDocTypeKeyword PreProc
hi! link xmlProcessingDelim xmlAttrib
" Debugger.vim
call s:X("DbgCurrent","DEEBFE","345FA8","","White","DarkBlue")
call s:X("DbgBreakPt","","4F0037","","","DarkMagenta")
" vim-indent-guides
if !exists("g:indent_guides_auto_colors")
let g:indent_guides_auto_colors = 0
endif
call s:X("IndentGuidesOdd","","232323","","","")
call s:X("IndentGuidesEven","","1b1b1b","","","")
" Plugins, etc.
hi! link TagListFileName Directory
call s:X("PreciseJumpTarget","B9ED67","405026","","White","Green")
" Manual overrides for 256-color terminals. Dark colors auto-map badly.
if !s:low_color
hi StatusLineNC ctermbg=235
hi Folded ctermbg=236
hi DiffText ctermfg=81
hi DbgBreakPt ctermbg=53
hi IndentGuidesOdd ctermbg=235
hi IndentGuidesEven ctermbg=234
endif
if !empty("s:overrides")
fun! s:current_attr(group)
let l:synid = synIDtrans(hlID(a:group))
let l:attrs = []
for l:attr in ["bold", "italic", "reverse", "standout", "underline", "undercurl"]
if synIDattr(l:synid, l:attr, "gui") == 1
call add(l:attrs, l:attr)
endif
endfor
return join(l:attrs, ",")
endfun
fun! s:current_color(group, what, mode)
let l:color = synIDattr(synIDtrans(hlID(a:group)), a:what, a:mode)
if l:color == -1
return ""
else
return substitute(l:color, "^#", "", "")
endif
endfun
fun! s:load_color_def(group, def)
call s:X(a:group, get(a:def, "guifg", s:current_color(a:group, "fg", "gui")),
\ get(a:def, "guibg", s:current_color(a:group, "bg", "gui")),
\ get(a:def, "attr", s:current_attr(a:group)),
\ get(a:def, "ctermfg", s:current_color(a:group, "fg", "cterm")),
\ get(a:def, "ctermbg", s:current_color(a:group, "bg", "cterm")))
if !s:low_color
for l:prop in ["ctermfg", "ctermbg"]
let l:override_key = "256".l:prop
if has_key(a:def, l:override_key)
exec "hi ".a:group." ".l:prop."=".a:def[l:override_key]
endif
endfor
endif
endfun
fun! s:load_colors(defs)
for [l:group, l:def] in items(a:defs)
if l:group == "background"
call s:load_color_def("LineNr", l:def)
call s:load_color_def("NonText", l:def)
call s:load_color_def("Normal", l:def)
else
call s:load_color_def(l:group, l:def)
endif
unlet l:group
unlet l:def
endfor
endfun
call s:load_colors(s:overrides)
delf s:load_colors
delf s:load_color_def
delf s:current_color
delf s:current_attr
endif
" delete functions {{{
delf s:X
delf s:remove_italic_attr
delf s:prefix_highlight_value_with
delf s:rgb
delf s:is_empty_or_none
delf s:color
delf s:rgb_color
delf s:rgb_level
delf s:rgb_number
delf s:grey_color
delf s:grey_level
delf s:grey_number
" }}}

View File

@ -0,0 +1,261 @@
" Quantum - A 24-bit Material color scheme for Vim
" Author: Brandon Siders
" License: MIT
highlight clear
if exists('syntax_on')
syntax reset
endif
set background=dark
let g:colors_name = 'quantum'
let g:quantum_italics = get(g:, 'quantum_italics', 0)
let g:quantum_black = get(g:, 'quantum_black', 0)
" Color Palette
let s:gray1 = g:quantum_black ? '#000000' : '#000'
let s:gray2 = g:quantum_black ? '#292929' : '#2c3a41'
let s:gray3 = g:quantum_black ? '#474646' : '#425762'
let s:gray4 = g:quantum_black ? '#6a6c6c' : '#658494'
let s:gray5 = g:quantum_black ? '#b7bdc0' : '#aebbc5'
let s:red = '#dd7186'
let s:green = '#87bb7c'
let s:yellow = '#d5b875'
let s:blue = '#70ace5'
let s:purple = '#a48add'
let s:cyan = '#69c5ce'
let s:orange = '#d7956e'
let s:indigo = '#7681de'
function! s:HL(group, fg, bg, attr)
let l:attr = a:attr
if !g:quantum_italics && l:attr ==# 'italic'
let l:attr = 'none'
endif
if !empty(a:fg)
exec 'hi ' . a:group . ' guifg=' . a:fg
endif
if !empty(a:bg)
exec 'hi ' . a:group . ' guibg=' . a:bg
endif
if !empty(a:attr)
exec 'hi ' . a:group . ' gui=' . l:attr . ' cterm=' . l:attr
endif
endfun
" Vim Editor
call s:HL('ColorColumn', '', s:gray2, '')
call s:HL('Cursor', s:gray2, s:gray5, '')
call s:HL('CursorColumn', '', s:gray2, '')
call s:HL('CursorLine', '', s:gray2, 'none')
call s:HL('CursorLineNr', s:cyan, s:gray2, 'none')
call s:HL('Directory', s:blue, '', '')
call s:HL('DiffAdd', s:green, s:gray2, 'none')
call s:HL('DiffChange', s:yellow, s:gray2, 'none')
call s:HL('DiffDelete', s:red, s:gray2, 'none')
call s:HL('DiffText', s:blue, s:gray2, 'none')
call s:HL('ErrorMsg', s:red, s:gray1, 'bold')
call s:HL('FoldColumn', s:gray4, s:gray1, '')
call s:HL('Folded', s:gray3, s:gray1, '')
call s:HL('IncSearch', s:gray1, 's:gray5', '')
call s:HL('LineNr', s:gray3, '', '')
call s:HL('MatchParen', s:gray4, s:cyan, 'bold')
call s:HL('ModeMsg', s:green, '', '')
call s:HL('MoreMsg', s:green, '', '')
call s:HL('NonText', s:gray4, '', 'none')
call s:HL('Normal', s:gray5, s:gray1, 'none')
call s:HL('Pmenu', s:gray5, s:gray3, '')
call s:HL('PmenuSbar', '', s:gray2, '')
call s:HL('PmenuSel', s:gray2, s:cyan, '')
call s:HL('PmenuThumb', '', s:gray4, '')
call s:HL('Question', s:blue, '', 'none')
call s:HL('Search', s:yellow, s:gray1, '')
call s:HL('SignColumn', s:gray5, s:gray1, '')
call s:HL('SpecialKey', s:gray4, '', '')
call s:HL('SpellCap', s:blue, s:gray2, 'undercurl')
call s:HL('SpellBad', s:red, s:gray2, 'undercurl')
call s:HL('StatusLine', s:gray5, s:gray3, 'none')
call s:HL('StatusLineNC', s:gray2, s:gray4, '')
call s:HL('TabLine', s:gray4, s:gray2, 'none')
call s:HL('TabLineFill', s:gray4, s:gray2, 'none')
call s:HL('TabLineSel', s:yellow, s:gray3, 'none')
call s:HL('Title', s:green, '', 'none')
call s:HL('VertSplit', s:gray4, s:gray1, 'none')
call s:HL('Visual', s:gray5, s:gray3, '')
call s:HL('WarningMsg', s:red, '', '')
call s:HL('WildMenu', s:gray2, s:cyan, '')
" Standard Syntax
call s:HL('Comment', s:gray4, '', 'italic')
call s:HL('Constant', s:orange, '', '')
call s:HL('String', s:green, '', '')
call s:HL('Character', s:green, '', '')
call s:HL('Identifier', s:red, '', 'none')
call s:HL('Function', s:blue, '', '')
call s:HL('Statement', s:purple, '', 'none')
call s:HL('Operator', s:cyan, '', '')
call s:HL('PreProc', s:cyan, '', '')
call s:HL('Include', s:blue, '', '')
call s:HL('Define', s:purple, '', 'none')
call s:HL('Macro', s:purple, '', '')
call s:HL('Type', s:yellow, '', 'none')
call s:HL('Structure', s:cyan, '', '')
call s:HL('Special', s:indigo, '', '')
call s:HL('Underlined', s:blue, '', 'none')
call s:HL('Error', s:red, s:gray1, 'bold')
call s:HL('Todo', s:orange, s:gray1, 'bold')
" CSS
call s:HL('cssAttrComma', s:gray5, '', '')
call s:HL('cssPseudoClassId', s:yellow, '', '')
call s:HL('cssBraces', s:gray5, '', '')
call s:HL('cssClassName', s:yellow, '', '')
call s:HL('cssClassNameDot', s:yellow, '', '')
call s:HL('cssFunctionName', s:blue, '', '')
call s:HL('cssImportant', s:cyan, '', '')
call s:HL('cssIncludeKeyword', s:purple, '', '')
call s:HL('cssTagName', s:red, '', '')
call s:HL('cssMediaType', s:orange, '', '')
call s:HL('cssProp', s:gray5, '', '')
call s:HL('cssSelectorOp', s:cyan, '', '')
call s:HL('cssSelectorOp2', s:cyan, '', '')
" Commit Messages (Git)
call s:HL('gitcommitHeader', s:purple, '', '')
call s:HL('gitcommitUnmerged', s:green, '', '')
call s:HL('gitcommitSelectedFile', s:green, '', '')
call s:HL('gitcommitDiscardedFile', s:red, '', '')
call s:HL('gitcommitUnmergedFile', s:yellow, '', '')
call s:HL('gitcommitSelectedType', s:green, '', '')
call s:HL('gitcommitSummary', s:blue, '', '')
call s:HL('gitcommitDiscardedType', s:red, '', '')
hi link gitcommitNoBranch gitcommitBranch
hi link gitcommitUntracked gitcommitComment
hi link gitcommitDiscarded gitcommitComment
hi link gitcommitSelected gitcommitComment
hi link gitcommitDiscardedArrow gitcommitDiscardedFile
hi link gitcommitSelectedArrow gitcommitSelectedFile
hi link gitcommitUnmergedArrow gitcommitUnmergedFile
" HTML
call s:HL('htmlEndTag', s:blue, '', '')
call s:HL('htmlLink', s:red, '', '')
call s:HL('htmlTag', s:blue, '', '')
call s:HL('htmlTitle', s:gray5, '', '')
call s:HL('htmlSpecialTagName', s:purple, '', '')
" Javascript
call s:HL('javaScriptBraces', s:gray5, '', '')
call s:HL('javaScriptNull', s:orange, '', '')
call s:HL('javaScriptIdentifier', s:purple, '', '')
call s:HL('javaScriptNumber', s:orange, '', '')
call s:HL('javaScriptRequire', s:cyan, '', '')
call s:HL('javaScriptReserved', s:purple, '', '')
" pangloss/vim-javascript
call s:HL('jsArrowFunction', s:purple, '', '')
call s:HL('jsAsyncKeyword', s:purple, '', '')
call s:HL('jsExtendsKeyword', s:purple, '', '')
call s:HL('jsClassKeyword', s:purple, '', '')
call s:HL('jsDocParam', s:green, '', '')
call s:HL('jsDocTags', s:cyan, '', '')
call s:HL('jsForAwait', s:purple, '', '')
call s:HL('jsFlowArgumentDef', s:yellow, '', '')
call s:HL('jsFrom', s:purple, '', '')
call s:HL('jsImport', s:purple, '', '')
call s:HL('jsExport', s:purple, '', '')
call s:HL('jsExportDefault', s:purple, '', '')
call s:HL('jsFuncCall', s:blue, '', '')
call s:HL('jsFunction', s:purple, '', '')
call s:HL('jsGlobalObjects', s:yellow, '', '')
call s:HL('jsGlobalNodeObjects', s:yellow, '', '')
call s:HL('jsModuleAs', s:purple, '', '')
call s:HL('jsNull', s:orange, '', '')
call s:HL('jsStorageClass', s:purple, '', '')
call s:HL('jsTemplateBraces', s:red, '', '')
call s:HL('jsTemplateExpression', s:red, '', '')
call s:HL('jsThis', s:red, '', '')
call s:HL('jsUndefined', s:orange, '', '')
" JSON
call s:HL('jsonBraces', s:gray5, '', '')
" Less
call s:HL('lessAmpersand', s:red, '', '')
call s:HL('lessClassChar', s:yellow, '', '')
call s:HL('lessCssAttribute', s:gray5, '', '')
call s:HL('lessFunction', s:blue, '', '')
call s:HL('lessVariable', s:purple, '', '')
" Markdown
call s:HL('markdownBold', s:yellow, '', 'bold')
call s:HL('markdownCode', s:cyan, '', '')
call s:HL('markdownCodeBlock', s:cyan, '', '')
call s:HL('markdownCodeDelimiter', s:cyan, '', '')
call s:HL('markdownHeadingDelimiter', s:green, '', '')
call s:HL('markdownHeadingRule', s:gray4, '', '')
call s:HL('markdownId', s:purple, '', '')
call s:HL('markdownItalic', s:blue, '', 'italic')
call s:HL('markdownListMarker', s:orange, '', '')
call s:HL('markdownOrderedListMarker', s:orange, '', '')
call s:HL('markdownRule', s:gray4, '', '')
call s:HL('markdownUrl', s:purple, '', '')
call s:HL('markdownUrlTitleDelimiter', s:green, '', '')
" Ruby
call s:HL('rubyInterpolation', s:cyan, '', '')
call s:HL('rubyInterpolationDelimiter', s:indigo, '', '')
call s:HL('rubyRegexp', s:cyan, '', '')
call s:HL('rubyRegexpDelimiter', s:indigo, '', '')
call s:HL('rubyStringDelimiter', s:green, '', '')
" Sass
call s:HL('sassAmpersand', s:red, '', '')
call s:HL('sassClassChar', s:yellow, '', '')
call s:HL('sassMixinName', s:blue, '', '')
call s:HL('sassVariable', s:purple, '', '')
" Vim-Fugitive
call s:HL('diffAdded', s:green, '', '')
call s:HL('diffRemoved', s:red, '', '')
" Vim-Gittgutter
call s:HL('GitGutterAdd', s:green, '', '')
call s:HL('GitGutterChange', s:yellow, '', '')
call s:HL('GitGutterChangeDelete', s:orange, '', '')
call s:HL('GitGutterDelete', s:red, '', '')
" Vim-Signify
hi link SignifySignAdd GitGutterAdd
hi link SignifySignChange GitGutterChange
hi link SignifySignDelete GitGutterDelete
" XML
call s:HL('xmlAttrib', s:yellow, '', '')
call s:HL('xmlEndTag', s:blue, '', '')
call s:HL('xmlTag', s:blue, '', '')
call s:HL('xmlTagName', s:blue, '', '')
" Neovim terminal colors
if has('nvim')
let g:terminal_color_0 = s:gray1
let g:terminal_color_1 = s:red
let g:terminal_color_2 = s:green
let g:terminal_color_3 = s:yellow
let g:terminal_color_4 = s:blue
let g:terminal_color_5 = s:purple
let g:terminal_color_6 = s:cyan
let g:terminal_color_7 = s:gray5
let g:terminal_color_8 = s:gray3
let g:terminal_color_9 = s:red
let g:terminal_color_10 = s:green
let g:terminal_color_11 = s:yellow
let g:terminal_color_12 = s:blue
let g:terminal_color_13 = s:purple
let g:terminal_color_14 = s:cyan
let g:terminal_color_15 = s:gray4
let g:terminal_color_background = g:terminal_color_0
let g:terminal_color_foreground = g:terminal_color_7
endif

View File

@ -0,0 +1,216 @@
" Goyo mappings
nmap <C-g> :Goyo 60x60
" Enable the Vue Language server
let g:LanguageClient_serverCommands = {
\ 'vue': ['vls']
\ }
" init rainbow brackets
"set to 0 if you want to enable it later via :RainbowToggle
let g:rainbow_active = 0
" Emmet mappings
let g:user_emmet_mode='a' " enable all functions in all modes
let g:user_emmet_leader_key='<C-S>'
" Devicon Configurations
" loading the plugin
let g:webdevicons_enable = 1
" Indention Config
let g:indentLine_char = '┊'
" Lightline Themes Configurations
let g:lightline = {
\ 'colorscheme': 'simpleblack',
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ],
\ [ 'cocstatus', 'readonly', 'filename', 'modified' ] ]
\ },
\ 'component_function': {
\ 'cocstatus': 'coc#status'
\ },
\ }
" Use auocmd to force lightline update.
autocmd User CocStatusChange,CocDiagnosticChange call lightline#update()
" Fancy markdown syntax
let g:markdown_fenced_languages = ['css', 'js=javascript']
" +++++++++++++++++++++ vim-float-term configuration +++++++++++++++++++++++++
let g:floaterm_keymap_new = '<leader>.'
let g:floaterm_position = 'center'
let g:floaterm_type = 'normal'
" custom mappings for my person tools in normal mode only
nnoremap <C-p> :FloatermNew ipython<CR>
nnoremap <C-l> :FloatermNew lf<CR>
nnoremap <C-s> :FloatermNew sefr<CR>
" +++++++++++++++++++++++++ Conquer of Completion +++++++++++++++++++++++++
" if hidden is not set, TextEdit might fail.
set hidden
" Some servers have issues with backup files, see #649
set nobackup
set nowritebackup
" Better display for messages
set cmdheight=2
" You will have bad experience for diagnostic messages when it's default 4000.
set updatetime=300
" don't give |ins-completion-menu| messages.
set shortmess+=c
" always show signcolumns
set signcolumn=yes
" Use tab for trigger completion with characters ahead and navigate.
" Use command ':verbose imap <tab>' to make sure tab is not mapped by other plugin.
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" Use <c-space> to trigger completion.
inoremap <silent><expr> <c-space> coc#refresh()
" Use <cr> to confirm completion, `<C-g>u` means break undo chain at current position.
" Coc only does snippet and additional edit on confirm.
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
" Or use `complete_info` if your vim support it, like:
" inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>"
" Use `[g` and `]g` to navigate diagnostics
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
" Remap keys for gotos
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" Use K to show documentation in preview window
"nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
else
call CocAction('doHover')
endif
endfunction
" Highlight symbol under cursor on CursorHold
autocmd CursorHold * silent call CocActionAsync('highlight')
" Remap for rename current word
nmap <leader>rn <Plug>(coc-rename)
" Remap for format selected region
xmap <leader>fr <Plug>(coc-format-selected)
nmap <leader>fr <Plug>(coc-format-selected)
augroup mygroup
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" Remap for do codeAction of selected region, ex: `<leader>aap` for current paragraph
xmap <leader>a <Plug>(coc-codeaction-selected)
nmap <leader>a <Plug>(coc-codeaction-selected)
" Remap for do codeAction of current line
nmap <leader>ac <Plug>(coc-codeaction)
" Fix autofix problem of current line
nmap <leader>qf <Plug>(coc-fix-current)
" Create mappings for function text object, requires document symbols feature of languageserver.
xmap if <Plug>(coc-funcobj-i)
xmap af <Plug>(coc-funcobj-a)
omap if <Plug>(coc-funcobj-i)
omap af <Plug>(coc-funcobj-a)
" Use <TAB> for select selections ranges, needs server support, like: coc-tsserver, coc-python
nmap <silent> <TAB> <Plug>(coc-range-select)
xmap <silent> <TAB> <Plug>(coc-range-select)
" Use `:Format` to format current buffer
command! -nargs=0 Format :call CocAction('format')
" Use `:Fold` to fold current buffer
command! -nargs=? Fold :call CocAction('fold', <f-args>)
" use `:OR` for organize import of current buffer
command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport')
" Add status line support, for integration with other plugin, checkout `:h coc-status`
set statusline^=%{StatusDiagnostic()}
" Using CocList
" Show all diagnostics
nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions
nnoremap <silent> <space>e :<C-u>CocList extensions<cr>
" Show commands
nnoremap <silent> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document
nnoremap <silent> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols
nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent> <space>j :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list
nnoremap <silent> <space>p :<C-u>CocListResume<CR>
" Auto command for python projects
autocmd FileType python let b:coc_root_patterns = ['.git', '.env']
" Auto command for correct comment highlighting in Json files
autocmd FileType json syntax match Comment +\/\/.\+$+
" status line function
function! StatusDiagnostic() abort
let info = get(b:, 'coc_diagnostic_info', {})
if empty(info) | return '' | endif
let msgs = []
if get(info, 'error', 0)
call add(msgs, 'E' . info['error'])
endif
if get(info, 'warning', 0)
call add(msgs, 'W' . info['warning'])
endif
return join(msgs, ' ') . ' ' . get(g:, 'coc_status', '')
endfunction
" Disable node version warning
let g:coc_disable_startup_warning = 1
" Vim script coc extension
let g:markdown_fenced_languages = [
\ 'vim',
\ 'help'
\]
" Emoji completion
set completefunc=emoji#complete

View File

@ -0,0 +1,23 @@
runtime plugins.vim
runtime settings.vim
runtime themes.vim
runtime autocommands.vim
runtime coc.vim
runtime keys.vim
" Check code as python3 by default
let g:neomake_python_python_maker = neomake#makers#ft#python#python()
let g:neomake_python_flake8_maker = neomake#makers#ft#python#flake8()
let g:neomake_python_python_maker.exe = 'python3 -m py_compile'
let g:neomake_python_flake8_maker.exe = 'python3 -m flake8'
" Disable error messages inside the buffer, next to the problematic line
let g:neomake_virtualtext_current_error = 1
"------------------------------------------------------------------------------
" Shawn Anderson as of September 30th 2020
noremap <leader>f 0
noremap <leader>j $
map <leader>/ :nohl<CR>
test

View File

@ -0,0 +1,20 @@
" September 29th 2020 - Shawn Anderson
" ------------------------------------------------------------------------------
" I have established a package management worklow with vim using stow. This has
" far reaching implications.
The command to load up the nvim environment that you want to be running is:
`stow -v -R nvim_v1/ -t ../`
" September 22nd 2020 - Shawn Anderson
" ------------------------------------------------------------------------------
" Now that I actually know what I'm doing in vim (somewhat) I'm starting a new
" config from scratch that will be the amalgamation of all the vim tricks and
" tweaks that I have accumulated over the years. Development is in close
" collaboration with Matthew Williams, whom I have been having a lot of vim
" discussions with lately. Original plugin count: Matt-28 Shawn-39. Only 10
" overlapping. Matt had the deprecated nerdtree and Shawn had the deprecated
" nerdcommenter. In these cases the author has changed to preservim from
" scrooloose.
"

View File

@ -0,0 +1,135 @@
" ____ _
" / ___|| |__ __ ___ ___ __
" \___ \| '_ \ / _` \ \ /\ / / '_ \
" ___) | | | | (_| |\ V V /| | | |
" |____/|_| |_|\__,_| \_/\_/ |_| |_|
" _ _
" / \ _ __ __| | ___ _ __ ___ ___ _ __
" / _ \ | '_ \ / _` |/ _ \ '__/ __|/ _ \| '_ \
" / ___ \| | | | (_| | __/ | \__ \ (_) | | | |
" /_/ \_\_| |_|\__,_|\___|_| |___/\___/|_| |_|
"
" __ ___
" \ \ / (_)_ __ ___
" \ \ / /| | '_ ` _ \
" \ V / | | | | | | |
"Neo \_/ |_|_| |_| |_|
" ____ __ _ _ _
" / ___|___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __
" | | / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \
" | |__| (_) | | | | _| | (_| | |_| | | | (_| | |_| | (_) | | | |
" \____\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_|
" |___/
"
" ==============================================================================
" Now that I actually know what I'm doing in vim (somewhat) I'm starting a new
" config from scratch that will be the amalgamation of all the vim tricks and
" tweaks that I have accumulated over the years. Development is in close
" collaboration with Matthew Williams, whom I have been having a lot of vim
" discussions with lately. Original plugin count: Matt-28 Shawn-39. Only 10
" overlapping. Matt had the deprecated nerdtree and Shawn had the deprecated
" nerdcommenter. In these cases the author has changed to preservim from
" scrooloose.
"
" September 22nd 2020 - Shawn Anderson
" ==============================================================================
" Contents
" 0. Header and Introduction
" 1. Table of Contents
" 2. Feature List
" 3. Key Binding Listing and Philosophy
" 4. Plugin Directory and Customization
" 5. Conquer of Completion
" 6. General Configuration
" 7. Language Specific Configuration
" ==============================================================================
" Feature List
" TODO Tag based organization
" TODO Fuzzy search oriented workflow
" TODO Use ripgrep for plazingly fast file and string searches
" TODO Use bat for beautiful previews during fuzzy searches
" TODO Nerdtree Power Usage
" TODO Rapid Configuration with Key Bindings
" TODO Open plugin documentation from init.vim
" TODO Plugin graduation process from experimental to optional to required
" TODO Sort plugins by author, category, or requirment status
" ==============================================================================
" Key Binding List
" ==============================================================================
" Plugin Directory and Configuration
call plug#begin('~/.config/nvim/plugged')
Plug 'airblade/vim-gitgutter' " #git #:experimental #Origin-Shawn
Plug 'airblade/vim-rooter' " Used by fzf... TODO Why? #FuzzySearch #:experimental #Origin-Shawn
Plug 'alvan/vim-closetag' " Close tag pairs #Coding #:experimental #Origin-Shawn
Plug 'arielrossanigo/dir-configs-override.vim' "Override configs by directory TODO What is this? #Origin-Matt
Plug 'bfredl/nvim-ipy' " Ipython in Vim. TODO Is this complementary to Matt's floaterm workflow? #Coding #Python #:experimental #Origin-Shawn
Plug 'donRaphaco/neotex', {'for': 'tex'} "Plugin for live preview of LaTex #Origin-Matt
Plug 'euclio/vim-markdown-composer', { 'do': function('BuildComposer') } " Compose Markdown to view in browser #Workflow #:optional #Origin-Shawn
Plug 'fisadev/FixedTaskList.vim' "Pending tasks list #Origin-Matt
Plug 'itchyny/lightline.vim' "Lightline #Origin-Matt
Plug 'jeetsukumaran/vim-indentwise' " Indentation based movements #Origin-Matt
Plug 'jeffkreeftmeijer/vim-numbertoggle' " TODO What is this? #:experimental #Origin-Shawn
Plug 'jez/vim-superman' " Man Pages in Vim #SystemUtility #:experimental #Origin-Shawn
Plug 'jiangmiao/auto-pairs' " Auto close brackets TODO Is this necessary? #Coding #:experimental #Origin-Shawn
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } "Code and files fuzzy finder #Origin-Matt
Plug 'junegunn/fzf.vim' "fzf for vim #Origin-Matt
Plug 'junegunn/goyo.vim' " Distraction free programming #Origin-Matt #:optional #Origin-Shawn
Plug 'junegunn/gv.vim' " #git #:experimental #Origin-Shawn
Plug 'junegunn/limelight.vim' " #:optional #Origin-Shawn
Plug 'junegunn/vim-easy-align' " #:experimental #Origin-Shawn
Plug 'junegunn/vim-emoji' "Vim Emoji #typing #Origin-Matt
Plug 'junegunn/vim-github-dashboard' " #git #:experimental #Origin-Shawn
Plug 'jreybert/vimagit' " Interactive git dashboard like emacs magit #git #:experimental #Origin-Shawn
Plug 'lilydjwg/colorizer' " Paint css colors with the real color #Origin-Matt
Plug 'liuchengxu/vista.vim' " Language server protocol.. TODO how does this relate to COC? #:experimental #Origin-Shawn
Plug 'lotabout/slimux' " Send strings across tmux panes! #Workflow #:optional #Origin-Shawn
Plug 'luochen1990/rainbow' "Rainbow Brackets #typing #Origin-Matt
Plug 'majutsushi/tagbar' "Class/module browser TODO known problems: * current block not refreshing' #Origin-Matt
Plug 'mattn/emmet-vim' " Generate html in a simple way TODO is this obsolete by coc-emmet #Origin-Matt
Plug 'mhinz/vim-signify' " Git/mercurial/others diff icons on the side of the file lines #Origin-Matt
Plug 'mhinz/vim-startify' " Fun homepage for vim #Workflow #:optional #Origin-Shawn
Plug 'michaeljsmith/vim-indent-object' " Indent text object #Origin-Matt
Plug 'mileszs/ack.vim' " Ack code search (requires ack installed in the system) TODO is there a way to prevent the progress which hides the editor? #Origin-Matt
Plug 'neoclide/coc.nvim', {'branch': 'release'} "Conquer of Completion #Completions #Origin-Matt #:required #Origin-Shawn
Plug 'neoclide/coc-eslint' " #Javascript #Linting #:experimental #Origin-Shawn
Plug 'neoclide/coc-prettier' " #Javascript #Linting #:experimental #Origin-Shawn
Plug 'neoclide/jsonc.vim' " TODO What is this? #:experimental #Origin-Shawn
Plug 'neomake/neomake' " #Linters TODO is it running on save? or when? TODO not detecting errors, just style, is it using pylint? #Origin-Matt #Origin-Shawn
Plug 'preservim/nerdcommenter' "Quick Commentor #typing #Origin-Matt
Plug 'preservim/nerdtree' | " #:required #Origin-Shawn
\ Plug 'Xuyuanp/nerdtree-git-plugin' | " #:optional #Origin-Shawn
\ Plug 'ryanoasis/vim-devicons' "Nice icons: Need to install patched font for this to work #Origin-Matt #:optional #Origin-Shawn
Plug 'scrooloose/nerdcommenter' " #:optional #Origin-Shawn
Plug 'scrooloose/nerdtree' "Vim extendable file browser #Origin-Matt
Plug 'sheerun/vim-polyglot' " #Origin-Shawn
Plug 'sheerun/vim-polyglot' " Better language packs #Origin-Matt
Plug 'shougo/context_filetype.vim' "Completion from other opened files #Origin-Matt
Plug 'Shougo/denite.nvim' " Unite all interfaces TODO Is this necessary with fzf? #Workflow #:experimental #Origin-Shawn
Plug 'tomlion/vim-solidity' " TODO I'm sure that we don't need this given COC #:experimental #Origin-Shawn
Plug 'townk/vim-autoclose' "Automatically close parenthesis, etc #Origin-Matt
Plug 'tpope/vim-fugitive' " Git integration #git #Origin-Matt
Plug 'tpope/vim-fugitive' " #:required #Origin-Shawn
Plug 'tpope/vim-repeat' " Enable dot operator to work on plugin commands #Workflow #:required #Origin-Shawn
Plug 'tpope/vim-rhubarb' " TODO What the heck is this? #:experimental #Origin-Shawn
Plug 'tpope/vim-speeddating' " TODO What is this? #:experimental #Origin-Shawn
Plug 'tpope/vim-surround' " Nice vim utility for surrounding blocks with things #Workflow #:optional #Origin-Shawn
Plug 'tpope/vim-unimpaired' " TODO What does this do? #Workflow #:experimental #Origin-Shawn
Plug 'vim-airline/vim-airline' " Airline status bar. TODO I'm sure I don't need this. Whatever Matt is doing is better. #:optional #Origin-Shawn
Plug 'vim-airline/vim-airline-themes' " Airline status bar. TODO I'm sure I don't need this. Whatever Matt is doing is better. #:optional #Origin-Shawn
Plug 'vim-scripts/indexedsearch' "Search results counter #Origin-Matt
Plug 'vimwiki/vimwiki' " For ultimate organization. #Workflow #:required #Origin-Shawn
Plug 'voldikss/vim-floaterm' "Integrated Floating terminal #Origin-Matt
Plug 'yggdroot/indentline' "Show indention level through lines #Origin-Matt
Plug 'yggdroot/indentline' " #Origin-Shawn
call plug#end()
" ============================================================================
:smile
" vim-devicons
" add or override individual additional filetypes
" let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols = {} " needed
" let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols['mkv'] = 'ƛ'

View File

@ -0,0 +1 @@
stow -v -R serious/ -t ../

View File

@ -0,0 +1 @@
stow -v -D serious/ -t ../