summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris <[email protected]>2020-04-27 21:58:30 -0400
committerChris <[email protected]>2020-04-27 21:58:30 -0400
commit53123f954c6719599b1e3cbb7fb3bbe07bd12512 (patch)
tree2734f039da65a3acb91c38eb18a4e92ca3412e36
parent5f02cd6a4d5e92b3f42d87780e911f0763d94d41 (diff)
added vscode support
-rw-r--r--general/settings.vim85
-rw-r--r--init.vim37
-rw-r--r--keys/mappings.vim79
-rw-r--r--vim-plug/plugins.vim7
-rw-r--r--vscode/windows.vim67
5 files changed, 183 insertions, 92 deletions
diff --git a/general/settings.vim b/general/settings.vim
index ae86008f..5ea7d1ff 100644
--- a/general/settings.vim
+++ b/general/settings.vim
@@ -1,46 +1,51 @@
" set leader key
map <Space> <Leader>
-syntax enable " Enables syntax highlighing
-set hidden " Required to keep multiple buffers open multiple buffers
-set nowrap " Display long lines as just one line
-set encoding=utf-8 " The encoding displayed
-set pumheight=10 " Makes popup menu smaller
-set fileencoding=utf-8 " The encoding written to file
-set ruler " Show the cursor position all the time
-set cmdheight=2 " More space for displaying messages
-set iskeyword+=- " treat dash separated words as a word text object"
-set mouse=a " Enable your mouse
-set splitbelow " Horizontal splits will automatically be below
-set splitright " Vertical splits will automatically be to the right
-set t_Co=256 " Support 256 colors
-set conceallevel=0 " So that I can see `` in markdown files
-set foldcolumn=2 " Folding abilities
-set tabstop=2 " Insert 2 spaces for a tab
-set shiftwidth=2 " Change the number of space characters inserted for indentation
-set smarttab " Makes tabbing smarter will realize you have 2 vs 4
-set expandtab " Converts tabs to spaces
-set smartindent " Makes indenting smart
-set autoindent " Good auto indent
-set laststatus=0 " Always display the status line
-set number " Line numbers
-set cursorline " Enable highlighting of the current line
-set background=dark " tell vim what the background color looks like
-set showtabline=2 " Always show tabs
-set noshowmode " We don't need to see things like -- INSERT -- anymore
-set nobackup " This is recommended by coc
-set nowritebackup " This is recommended by coc
-set shortmess+=c " Don't pass messages to |ins-completion-menu|.
-set signcolumn=yes " Always show the signcolumn, otherwise it would shift the text each time
-set updatetime=300 " Faster completion
-set timeoutlen=100 " By default timeoutlen is 1000 ms
-set formatoptions-=cro " Stop newline continution of comments
-set clipboard=unnamedplus " Copy paste between vim and everything else
-"set autochdir " Your working directory will always be the same as your working directory
+if !exists('g:vscode')
+ syntax enable " Enables syntax highlighing
+ set hidden " Required to keep multiple buffers open multiple buffers
+ set nowrap " Display long lines as just one line
+ set encoding=utf-8 " The encoding displayed
+ set pumheight=10 " Makes popup menu smaller
+ set fileencoding=utf-8 " The encoding written to file
+ set ruler " Show the cursor position all the time
+ set cmdheight=2 " More space for displaying messages
+ set iskeyword+=- " treat dash separated words as a word text object"
+ set mouse=a " Enable your mouse
+ set splitbelow " Horizontal splits will automatically be below
+ set splitright " Vertical splits will automatically be to the right
+ set t_Co=256 " Support 256 colors
+ set conceallevel=0 " So that I can see `` in markdown files
+ set tabstop=2 " Insert 2 spaces for a tab
+ set shiftwidth=2 " Change the number of space characters inserted for indentation
+ set smarttab " Makes tabbing smarter will realize you have 2 vs 4
+ set expandtab " Converts tabs to spaces
+ set smartindent " Makes indenting smart
+ set autoindent " Good auto indent
+ set laststatus=0 " Always display the status line
+ set number " Line numbers
+ set cursorline " Enable highlighting of the current line
+ set background=dark " tell vim what the background color looks like
+ set showtabline=2 " Always show tabs
+ set noshowmode " We don't need to see things like -- INSERT -- anymore
+ set nobackup " This is recommended by coc
+ set nowritebackup " This is recommended by coc
+ set shortmess+=c " Don't pass messages to |ins-completion-menu|.
+ set signcolumn=yes " Always show the signcolumn, otherwise it would shift the text each time
+ set updatetime=300 " Faster completion
+ set timeoutlen=100 " By default timeoutlen is 1000 ms
+ set formatoptions-=cro " Stop newline continution of comments
+ set clipboard=unnamedplus " Copy paste between vim and everything else
+ set incsearch
+ " set autochdir " Your working directory will always be the same as your working directory
+ " set foldcolumn=2 " Folding abilities
-au! BufWritePost $MYVIMRC source % " auto source when writing to init.vm alternatively you can run :source $MYVIMRC
-autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
+ au! BufWritePost $MYVIMRC source % " auto source when writing to init.vm alternatively you can run :source $MYVIMRC
+ autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
+
+
+ " You can't stop me
+ cmap w!! w !sudo tee %
+endif
-" You can't stop me
-cmap w!! w !sudo tee %
diff --git a/init.vim b/init.vim
index f7675969..c0bc365c 100644
--- a/init.vim
+++ b/init.vim
@@ -1,16 +1,29 @@
-" Viml Plugins
+" ____ _ __ _
+" / _/___ (_) /__ __(_)___ ___
+" / // __ \/ / __/ | / / / __ `__ \
+" _/ // / / / / /__| |/ / / / / / / /
+"/___/_/ /_/_/\__(_)___/_/_/ /_/ /_/
+
+
+" Always source these
source $HOME/.config/nvim/vim-plug/plugins.vim
source $HOME/.config/nvim/general/settings.vim
-source $HOME/.config/nvim/general/paths.vim
source $HOME/.config/nvim/keys/mappings.vim
-source $HOME/.config/nvim/themes/syntax.vim
-source $HOME/.config/nvim/themes/onedark.vim
-source $HOME/.config/nvim/themes/airline.vim
-source $HOME/.config/nvim/plug-config/coc.vim
-source $HOME/.config/nvim/plug-config/rnvimr.vim
-source $HOME/.config/nvim/plug-config/fzf.vim
-source $HOME/.config/nvim/plug-config/commentary.vim
-source $HOME/.config/nvim/plug-config/rainbow.vim
+source $HOME/.config/nvim/general/paths.vim
-" Lua Plugins
-lua require'plug-colorizer'
+" Source depending on if VSCode is our client
+if exists('g:vscode')
+ " VSCode extension
+ source $HOME/.config/nvim/vscode/windows.vim
+else
+ " ordinary neovim
+ source $HOME/.config/nvim/themes/syntax.vim
+ source $HOME/.config/nvim/themes/onedark.vim
+ source $HOME/.config/nvim/themes/airline.vim
+ source $HOME/.config/nvim/plug-config/coc.vim
+ source $HOME/.config/nvim/plug-config/rnvimr.vim
+ source $HOME/.config/nvim/plug-config/fzf.vim
+ source $HOME/.config/nvim/plug-config/commentary.vim
+ source $HOME/.config/nvim/plug-config/rainbow.vim
+ lua require'plug-colorizer'
+endif
diff --git a/keys/mappings.vim b/keys/mappings.vim
index 57a763f1..b1740c0d 100644
--- a/keys/mappings.vim
+++ b/keys/mappings.vim
@@ -1,42 +1,45 @@
-" Better nav for omnicomplete
-inoremap <expr> <c-j> ("\<C-n>")
-inoremap <expr> <c-k> ("\<C-p>")
-
-" Use alt + hjkl to resize windows
-nnoremap <M-j> :resize -2<CR>
-nnoremap <M-k> :resize +2<CR>
-nnoremap <M-h> :vertical resize -2<CR>
-nnoremap <M-l> :vertical resize +2<CR>
-
-" I hate escape more than anything else
-inoremap jk <Esc>
-inoremap kj <Esc>
-
-" Easy CAPS
-inoremap <c-u> <ESC>viwUi
-nnoremap <c-u> viwU<Esc>
-
-" TAB in general mode will move to text buffer
-nnoremap <TAB> :bnext<CR>
-" SHIFT-TAB will go back
-nnoremap <S-TAB> :bprevious<CR>
-
-" Alternate way to save
-nnoremap <C-s> :w<CR>
-" Alternate way to quit
-nnoremap <C-Q> :wq!<CR>
-" Use control-c instead of escape
-nnoremap <C-c> <Esc>
-" <TAB>: completion.
-inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
+
+if !exists('g:vscode')
+ " Better nav for omnicomplete
+ inoremap <expr> <c-j> ("\<C-n>")
+ inoremap <expr> <c-k> ("\<C-p>")
+
+ " I hate escape more than anything else
+ inoremap jk <Esc>
+ inoremap kj <Esc>
+
+ " Easy CAPS
+ " inoremap <c-u> <ESC>viwUi
+ " nnoremap <c-u> viwU<Esc>
+
+ " TAB in general mode will move to text buffer
+ nnoremap <TAB> :bnext<CR>
+ " SHIFT-TAB will go back
+ nnoremap <S-TAB> :bprevious<CR>
+
+ " Alternate way to save
+ nnoremap <C-s> :w<CR>
+ " Alternate way to quit
+ nnoremap <C-Q> :wq!<CR>
+ " Use control-c instead of escape
+ nnoremap <C-c> <Esc>
+ " <TAB>: completion.
+ inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
+
+
+ " Better window navigation
+ nnoremap <C-h> <C-w>h
+ nnoremap <C-j> <C-w>j
+ nnoremap <C-k> <C-w>k
+ nnoremap <C-l> <C-w>l
+
+ " Use alt + hjkl to resize windows
+ nnoremap <M-j> :resize -2<CR>
+ nnoremap <M-k> :resize +2<CR>
+ nnoremap <M-h> :vertical resize -2<CR>
+ nnoremap <M-l> :vertical resize +2<CR>
+endif
" Better tabbing
vnoremap < <gv
vnoremap > >gv
-
-" Better window navigation
-nnoremap <C-h> <C-w>h
-nnoremap <C-j> <C-w>j
-nnoremap <C-k> <C-w>k
-nnoremap <C-l> <C-w>l
-
diff --git a/vim-plug/plugins.vim b/vim-plug/plugins.vim
index e394b58e..c48b6c57 100644
--- a/vim-plug/plugins.vim
+++ b/vim-plug/plugins.vim
@@ -8,13 +8,16 @@ endif
call plug#begin('~/.config/nvim/autoload/plugged')
+ if !exists('g:vscode')
+ " VSCode extension
+ " ordinary neovim
" Better Syntax Support
Plug 'sheerun/vim-polyglot'
" Auto pairs for '(' '[' '{'
Plug 'jiangmiao/auto-pairs'
" Themes
Plug 'christianchiarulli/onedark.vim'
- Plug 'kaicataldo/material.vim'
+ " Plug 'kaicataldo/material.vim'
" Intellisense
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Status Line
@@ -31,7 +34,7 @@ call plug#begin('~/.config/nvim/autoload/plugged')
" Add some color
Plug 'norcalli/nvim-colorizer.lua'
Plug 'junegunn/rainbow_parentheses.vim'
-
+ endif
call plug#end()
diff --git a/vscode/windows.vim b/vscode/windows.vim
new file mode 100644
index 00000000..436bf981
--- /dev/null
+++ b/vscode/windows.vim
@@ -0,0 +1,67 @@
+
+"VSCode
+function! s:split(...) abort
+ let direction = a:1
+ let file = a:2
+ call VSCodeCall(direction == 'h' ? 'workbench.action.splitEditorDown' : 'workbench.action.splitEditorRight')
+ if file != ''
+ call VSCodeExtensionNotify('open-file', expand(file), 'all')
+ endif
+endfunction
+
+function! s:splitNew(...)
+ let file = a:2
+ call s:split(a:1, file == '' ? '__vscode_new__' : file)
+endfunction
+
+function! s:closeOtherEditors()
+ call VSCodeNotify('workbench.action.closeEditorsInOtherGroups')
+ call VSCodeNotify('workbench.action.closeOtherEditors')
+endfunction
+
+function! s:manageEditorSize(...)
+ let count = a:1
+ let to = a:2
+ for i in range(1, count ? count : 1)
+ call VSCodeNotify(to == 'increase' ? 'workbench.action.increaseViewSize' : 'workbench.action.decreaseViewSize')
+ endfor
+endfunction
+
+command! -complete=file -nargs=? Split call <SID>split('h', <q-args>)
+command! -complete=file -nargs=? Vsplit call <SID>split('v', <q-args>)
+command! -complete=file -nargs=? New call <SID>split('h', '__vscode_new__')
+command! -complete=file -nargs=? Vnew call <SID>split('v', '__vscode_new__')
+command! -bang Only if <q-bang> == '!' | call <SID>closeOtherEditors() | else | call VSCodeNotify('workbench.action.joinAllGroups') | endif
+
+nnoremap <silent> <C-w>s :call <SID>split('h')<CR>
+xnoremap <silent> <C-w>s :call <SID>split('h')<CR>
+
+nnoremap <silent> <C-w>v :call <SID>split('v')<CR>
+xnoremap <silent> <C-w>v :call <SID>split('v')<CR>
+
+nnoremap <silent> <C-w>n :call <SID>splitNew('h', '__vscode_new__')<CR>
+xnoremap <silent> <C-w>n :call <SID>splitNew('h', '__vscode_new__')<CR>
+
+nnoremap <silent> <C-j> :call VSCodeNotify('workbench.action.focusBelowGroup')<CR>
+xnoremap <silent> <C-j> :call VSCodeNotify('workbench.action.focusBelowGroup')<CR>
+nnoremap <silent> <C-k> :call VSCodeNotify('workbench.action.focusAboveGroup')<CR>
+xnoremap <silent> <C-k> :call VSCodeNotify('workbench.action.focusAboveGroup')<CR>
+nnoremap <silent> <C-h> :call VSCodeNotify('workbench.action.focusLeftGroup')<CR>
+xnoremap <silent> <C-h> :call VSCodeNotify('workbench.action.focusLeftGroup')<CR>
+nnoremap <silent> <C-l> :call VSCodeNotify('workbench.action.focusRightGroup')<CR>
+xnoremap <silent> <C-l> :call VSCodeNotify('workbench.action.focusRightGroup')<CR>
+
+nnoremap <silent> <C-w>= :<C-u>call VSCodeNotify('workbench.action.evenEditorWidths')<CR>
+xnoremap <silent> <C-w>= :<C-u>call VSCodeNotify('workbench.action.evenEditorWidths')<CR>
+
+nnoremap <silent> <C-w>> :<C-u>call <SID>manageEditorSize(v:count, 'increase')<CR>
+xnoremap <silent> <C-w>> :<C-u>call <SID>manageEditorSize(v:count, 'increase')<CR>
+nnoremap <silent> <C-w>+ :<C-u>call <SID>manageEditorSize(v:count, 'increase')<CR>
+xnoremap <silent> <C-w>+ :<C-u>call <SID>manageEditorSize(v:count, 'increase')<CR>
+nnoremap <silent> <C-w>< :<C-u>call <SID>manageEditorSize(v:count, 'decrease')<CR>
+xnoremap <silent> <C-w>< :<C-u>call <SID>manageEditorSize(v:count, 'decrease')<CR>
+nnoremap <silent> <C-w>- :<C-u>call <SID>manageEditorSize(v:count, 'decrease')<CR>
+xnoremap <silent> <C-w>- :<C-u>call <SID>manageEditorSize(v:count, 'decrease')<CR>
+
+nnoremap <silent> <C-w>_ :<C-u>call VSCodeNotify('workbench.action.toggleEditorWidths')<CR>
+