Skip to content

Instantly share code, notes, and snippets.

@TommyJerryMairo
Created September 28, 2020 09:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TommyJerryMairo/27ad5e652c1bc81a137984d594e6caa9 to your computer and use it in GitHub Desktop.
Save TommyJerryMairo/27ad5e652c1bc81a137984d594e6caa9 to your computer and use it in GitHub Desktop.
call plug#begin('~/.local/share/nvim/plugged')
" " Language Server Protocol (LSP) support
Plug 'autozimu/LanguageClient-neovim', {
\ 'branch': 'next',
\ 'do': 'bash install.sh',
\ }
" (Optional) Multi-entry selection UI.
Plug 'junegunn/fzf'
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'scrooloose/syntastic'
Plug 'jiangmiao/auto-pairs'
Plug 'luochen1990/rainbow'
Plug 'scrooloose/nerdtree'
" Initialize plugin system
call plug#end()
" Language-Client Config
let g:LanguageClient_serverCommands = {
\ 'c': ['ccls', '--log-file=/tmp/cc.log'],
\ 'cpp': ['ccls', '--log-file=/tmp/cc.log'],
\ 'cuda': ['ccls', '--log-file=/tmp/cc.log'],
\ 'objc': ['ccls', '--log-file=/tmp/cc.log'],
\ }
let g:LanguageClient_loadSettings = 1 " Use an absolute configuration path if you want system-wide settings
let g:LanguageClient_settingsPath = '/home/tjm/.config/nvim/settings.json'
nn <silent> <M-j> :call LanguageClient#textDocument_definition()<cr>
nn <silent> <C-,> :call LanguageClient#textDocument_references({'includeDeclaration': v:false})<cr>
nn <silent> K :call LanguageClient#textDocument_hover()<cr>
augroup LanguageClient_config
au!
au BufEnter * let b:Plugin_LanguageClient_started = 0
au User LanguageClientStarted setl signcolumn=yes
au User LanguageClientStarted let b:Plugin_LanguageClient_started = 1
au User LanguageClientStopped setl signcolumn=auto
au User LanguageClientStopped let b:Plugin_LanguageClient_stopped = 0
au CursorMoved * if b:Plugin_LanguageClient_started | sil call LanguageClient#textDocument_documentHighlight() | endif
augroup END
nn <silent> xh :call LanguageClient#findLocations({'method':'$ccls/navigate','direction':'L'})<cr>
nn <silent> xj :call LanguageClient#findLocations({'method':'$ccls/navigate','direction':'D'})<cr>
nn <silent> xk :call LanguageClient#findLocations({'method':'$ccls/navigate','direction':'U'})<cr>
nn <silent> xl :call LanguageClient#findLocations({'method':'$ccls/navigate','direction':'R'})<cr>
" one-level base
nn <silent> xB :call LanguageClient#findLocations({'method':'$ccls/base'})<cr>
" bases of up to 3 levels
nn <silent> xb :call LanguageClient#findLocations({'method':'$ccls/inheritanceHierarchy','flat':v:true,'levels':3,'derived':v:false})<cr>
" derived of up to 3 levels
nn <silent> xd :call LanguageClient#findLocations({'method':'$ccls/inheritanceHierarchy','flat':v:true,'levels':3,'derived':v:true})<cr>
nn <silent> xe :call LanguageClient#findLocations({'method':'$ccls/callers'})<cr>
nn <silent> xm :call LanguageClient#findLocations({'method':'$ccls/memberHierarchy','flat':v:true})<cr>
nn <silent> xt :call LanguageClient#textDocument_typeDefinition()<cr>
nn <silent> xv :call LanguageClient#findLocations({'method':'$ccls/vars'})<cr>
nn <silent> xV :call LanguageClient#findLocations({'method':'$ccls/vars','kind':1})<cr>
nn xx x
" NerdTree Config
augroup nerdtree_open
autocmd!
autocmd VimEnter * NERDTree | wincmd p
augroup END
nn <silent> <C-k><C-B> :NERDTreeToggle<CR>
nm <leader>nf :NERDTreeFind<CR>
" "Display line number
:set number
set autoindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set background=light
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment