mirror of
https://github.com/davegallant/nix-config
synced 2025-08-07 13:22:28 +00:00
Switch vim colorscheme to gruvbox (#23)
This commit is contained in:
179
.config/nvim/colors/noclown.vim
Normal file
179
.config/nvim/colors/noclown.vim
Normal file
@@ -0,0 +1,179 @@
|
||||
" noclown
|
||||
"
|
||||
" A mostly color free theme with a goal of not making your code look like a
|
||||
" clown threw up.
|
||||
"
|
||||
" Propaganda:
|
||||
" -- Visual clutter saps mental energy.
|
||||
"
|
||||
" * http://www.linusakesson.net/programming/syntaxhighlighting/
|
||||
" * http://kyleisom.net/blog/2012/10/17/syntax-off/
|
||||
" * https://www.robertmelton.com/2016/04/10/syntax-highlighting-off/
|
||||
"
|
||||
" PUBLIC DOMAIN
|
||||
" To the extent possible under law, Berk D. Demir has waived all copyright and
|
||||
" related or neighboring rights to noclown color scheme for Vim.
|
||||
" This work is published from: United States.
|
||||
|
||||
|
||||
highlight clear
|
||||
if exists('syntax_on')
|
||||
syntax reset
|
||||
endif
|
||||
let g:colors_name = "noclown"
|
||||
|
||||
" Terminals that don't support italics, resort to rendering them as standout.
|
||||
" For comments and other things we italicize, this can become annoying very
|
||||
" quickly. We are going to ignore 'italic' attribute if the terminal doesn't
|
||||
" know about it.
|
||||
if (has('gui_running') ||
|
||||
\ has('unix') && system('tput sitm') == "\e[3m")
|
||||
let g:noclown_has_italics = 1
|
||||
endif
|
||||
|
||||
let s:palette = {
|
||||
\ 'foreground' : [250, '#bcbcbc'],
|
||||
\ 'background' : [234, '#1c1c1c'],
|
||||
\ 'fade' : [245, '#8a8a8a'],
|
||||
\ 'fade-more' : [238, '#444444'],
|
||||
\ 'highlight' : [230, '#ffffd7'],
|
||||
\ 'attention' : [224, '#ffd7d7'],
|
||||
\ 'error' : [203, '#ff5f5f'],
|
||||
\ }
|
||||
|
||||
function! s:fg(name)
|
||||
let [l:ctermfg, l:guifg] = s:palette[a:name]
|
||||
return {'ctermfg': l:ctermfg, 'guifg': l:guifg}
|
||||
endfunction
|
||||
|
||||
function! s:bg(name)
|
||||
let [l:ctermfg, l:guifg] = s:palette[a:name]
|
||||
return {'ctermbg': l:ctermfg, 'guibg': l:guifg}
|
||||
endfunction
|
||||
|
||||
function! s:attr(...)
|
||||
let l:alist = a:000
|
||||
|
||||
if !exists('g:noclown_has_italics')
|
||||
" We're going to modify the list, so make a copy (a:* are immutable)
|
||||
let l:alist = copy(a:000)
|
||||
call filter(l:alist, 'v:val != "italic"')
|
||||
endif
|
||||
|
||||
" l:attrs: comma separated 'l:alist' as string or if empty: 'NONE'
|
||||
let l:attrs = empty(l:alist) ? 'NONE' : join(l:alist, ',')
|
||||
|
||||
return {'term': l:attrs, 'cterm': l:attrs, 'gui': l:attrs}
|
||||
endfunction
|
||||
|
||||
" Clear every attribute to NONE to avoid inheriting from default colorscheme.
|
||||
let s:hi_clear = {}
|
||||
for key in ['term', 'cterm', 'ctermfg', 'ctermbg', 'gui', 'guifg', 'guibg']
|
||||
let s:hi_clear[key] = 'NONE'
|
||||
endfor
|
||||
|
||||
function! s:Defn(group, ...)
|
||||
let l:hi_dict = copy(s:hi_clear)
|
||||
|
||||
" Merge attribute group definitions to main dictionary
|
||||
for setting in a:000
|
||||
call extend(l:hi_dict, setting)
|
||||
endfor
|
||||
|
||||
let l:hi_expr = 'highlight ' . a:group . ' '
|
||||
" Convert { k1: v1, k2: v2, ..., kn: vn} dictionary to 'k1=v1 k2=v2 ... kn=vn' string
|
||||
let l:hi_expr .= join(map(items(l:hi_dict), 'join(v:val, "=")'), ' ')
|
||||
|
||||
execute l:hi_expr
|
||||
endfunction
|
||||
|
||||
function! s:None(group)
|
||||
execute 'highlight ' . a:group . ' NONE'
|
||||
endfunction
|
||||
|
||||
function! s:Link(from, to)
|
||||
call s:None(a:from)
|
||||
execute 'highlight link ' . a:from . ' ' . a:to
|
||||
endfunction
|
||||
|
||||
" Suggested group names from naming conventions -- ':h E669'
|
||||
call s:Defn('Comment', s:fg('fade'), s:attr('italic'))
|
||||
call s:None('Constant') "<- String Character Number Boolean Float
|
||||
call s:None('Identifier') "<- Function
|
||||
call s:None('Statement') "<- Conditional Repeat Label Operator Keyword Exception
|
||||
call s:None('PreProc') "<- Include Define Macro PreCondit
|
||||
call s:None('Type') "<- StorageClass Structure Typedef
|
||||
call s:None('Special') "<- SpecialChar Tag Delimiter SpecialComment Debug
|
||||
call s:Defn('Underlined', s:attr('underline'))
|
||||
call s:Defn('Ignore', s:fg('fade-more'))
|
||||
call s:Defn('Error', s:fg('error'))
|
||||
call s:Defn('Todo', s:attr('reverse'))
|
||||
|
||||
" Default group names -- ':h highlight-default'
|
||||
call s:Defn('Normal', s:fg('foreground'), s:bg('background'))
|
||||
|
||||
call s:Defn('SpecialKey', s:fg('fade'))
|
||||
call s:Defn('NonText', s:fg('fade-more'))
|
||||
call s:Link('CursorLineNr', 'SpecialKey')
|
||||
call s:Link('LineNr', 'NonText')
|
||||
call s:None('CursorLine')
|
||||
|
||||
call s:Defn('VertSplit', s:fg('fade'), s:bg('fade-more'))
|
||||
call s:Link('StatusLineNC', 'VertSplit')
|
||||
|
||||
call s:Defn('StatusLine', s:attr('reverse'))
|
||||
call s:Defn('Visual', s:attr('reverse'))
|
||||
call s:Defn('MatchParen', s:attr('reverse'))
|
||||
|
||||
call s:Defn('Title', s:fg('highlight')) " titles for output from ':set all', ':autocmd' etc.
|
||||
call s:Link('Question', 'Title')
|
||||
call s:Link('MoreMsg', 'Title')
|
||||
call s:Link('IncSearch', 'Title')
|
||||
call s:Defn('Search', s:fg('highlight'), s:attr('reverse'))
|
||||
call s:Link('WildMenu', 'Search')
|
||||
|
||||
call s:Defn('WarningMsg', s:fg('attention'))
|
||||
call s:Defn('ErrorMsg', s:fg('error'))
|
||||
|
||||
call s:Defn('Pmenu', s:bg('fade-more'))
|
||||
call s:Defn('PMenuSel', s:fg('highlight'), s:bg('fade'))
|
||||
call s:Defn('PMenuSbar', s:fg('fade'), s:bg('fade'))
|
||||
call s:Defn('PMenuThumb', s:fg('fade'), s:bg('highlight'))
|
||||
|
||||
call s:Defn('SpellBad', s:fg('attention'), s:attr('italic'))
|
||||
call s:Link('SpellCap', 'Underlined')
|
||||
call s:Link('SpellLocal', 'SpellCap')
|
||||
call s:Link('SpellRare', 'SpellCap')
|
||||
|
||||
call s:Defn('Folded', s:fg('highlight'), s:bg('fade'))
|
||||
call s:Defn('FoldColumn', s:fg('highlight'), s:bg('fade-more'))
|
||||
|
||||
call s:Defn('DiffAdd', s:attr('bold'), s:bg('fade-more'))
|
||||
call s:Defn('DiffChange', s:bg('fade-more'))
|
||||
call s:Defn('DiffDelete', s:fg('error'), s:bg('fade-more'))
|
||||
call s:Defn('DiffText', s:bg('attention'), s:fg('background'))
|
||||
|
||||
" QuickFix
|
||||
call s:Defn('qfFileName', s:fg('fade'))
|
||||
|
||||
""""
|
||||
""" Unmodified groups from default group names list.
|
||||
""" They retain their colorscheme from Vim's defaults.
|
||||
"""
|
||||
"ColorColumn used for the columns set with 'colorcolumn'
|
||||
"Conceal placeholder characters substituted for concealed
|
||||
" text (see 'conceallevel')
|
||||
"Cursor the character under the cursor
|
||||
"CursorIM like Cursor, but used when in IME mode |CursorIM|
|
||||
"CursorColumn the screen column that the cursor is in when 'cursorcolumn' is
|
||||
" set
|
||||
"Directory directory names (and other special names in listings)
|
||||
"EndOfBuffer filler lines (~) after the last line in the buffer.
|
||||
" By default, this is highlighted like |hl-NonText|.
|
||||
"SignColumn column where |signs| are displayed
|
||||
"ModeMsg 'showmode' message (e.g., "-- INSERT --")
|
||||
"TabLine tab pages line, not active tab page label
|
||||
"TabLineFill tab pages line, where there are no labels
|
||||
"TabLineSel tab pages line, active tab page label
|
||||
"VisualNOS Visual mode selection when vim is "Not Owning the Selection".
|
||||
" Only X11 Gui's |gui-x11| and |xterm-clipboard| supports this.
|
Reference in New Issue
Block a user