nvim-ui-modifier
v0.0.5
Published
Change accent colors of UI by changing NVim modes
Downloads
15
Readme
NVim Theme Modifier
Changes theme accents based on current NeoVim mode.
Currently works for the following modes:
- Normal
- Insert
- Visual
Set the color for each mode to match your theme in settings.json (see below)
Requirements
You will need the NeoVim VScode extension installed for this to work - Neovim Extension - follow full setup before continuing
Config
** WARNING: The plugin will add / override the following keys in settings.json - workbench.colorCustomizations:
"workbench.colorCustomizations": {
"activityBarBadge.background": "#ffc600",
"editorCursor.foreground": "#ffc600",
"inputValidation.errorBorder": "#ffc600",
"panel.border": "#ffc600",
"panelTitle.activeBorder": "#ffc600",
"panelTitle.activeForeground": "#ffc600",
"peekView.border": "#ffc600",
"peekViewTitleLabel.foreground": "#ffc600",
"tab.activeBorder": "#ffc600",
"statusBar.border": "#ffc600"
}
In settings.json:
You can change the colors to match the theme you use:
"workbench.nvimColorNormal": "#ffc600",
"workbench.nvimColorInsert": "#D32F2F",
"workbench.nvimColorVisual": "#673AB7",
In Vscode Vimrc:
This will need adding to you rvimrc, it tells neovim to send a command to vscode changing the color in a hacky way (can't find a better way, no AUTOCMDS for visual, replace etc,,,)
Make sure to restart VSCode after adding this config
" THEME CHANGER
" THEME CHANGER
function! SetCursorLineNrColorInsert(mode)
" Insert mode: blue
if a:mode == "i"
call VSCodeNotify('nvim-theme.insert')
" Replace mode: red
elseif a:mode == "r"
call VSCodeNotify('nvim-theme.replace')
endif
endfunction
function! SetCursorLineNrColorVisual()
set updatetime=0
call VSCodeNotify('nvim-theme.visual')
endfunction
vnoremap <silent> <expr> <SID>SetCursorLineNrColorVisual SetCursorLineNrColorVisual()
nnoremap <silent> <script> v v<SID>SetCursorLineNrColorVisual
nnoremap <silent> <script> V V<SID>SetCursorLineNrColorVisual
nnoremap <silent> <script> <C-v> <C-v><SID>SetCursorLineNrColorVisual
function! SetCursorLineNrColorVisual()
set updatetime=0
call VSCodeNotify('nvim-theme.visual')
endfunction
vnoremap <silent> <expr> <SID>SetCursorLineNrColorVisual SetCursorLineNrColorVisual()
nnoremap <silent> <script> v v<SID>SetCursorLineNrColorVisual
nnoremap <silent> <script> V V<SID>SetCursorLineNrColorVisual
nnoremap <silent> <script> <C-v> <C-v><SID>SetCursorLineNrColorVisual
augroup CursorLineNrColorSwap
autocmd!
autocmd InsertEnter * call SetCursorLineNrColorInsert(v:insertmode)
autocmd InsertLeave * call VSCodeNotify('nvim-theme.normal')
autocmd CursorHold * call VSCodeNotify('nvim-theme.normal')
augroup END
Known Issues
- Visual mode puts the cursor to the start of the line. Negligable as following command is almost always to move the cursor
TODO
- search mode
- replace mode