Switch to Lua neovim configuration
This commit is contained in:
parent
74582f6c92
commit
735c3e2e0c
|
@ -0,0 +1,5 @@
|
|||
vim.g.tokyonight_transparent_sidebar = true
|
||||
vim.g.tokyonight_transparent = true
|
||||
vim.opt.background = "dark"
|
||||
|
||||
vim.cmd("colorscheme tokyonight")
|
|
@ -1,97 +0,0 @@
|
|||
{
|
||||
"languageserver": {
|
||||
"golang": {
|
||||
"command": "gopls",
|
||||
"rootPatterns": ["go.mod", ".vim/", ".git/", ".hg/"],
|
||||
"filetypes": ["go"]
|
||||
},
|
||||
"ccls": {
|
||||
"command": "ccls",
|
||||
"filetypes": [
|
||||
"c",
|
||||
"cpp",
|
||||
"objc",
|
||||
"objcpp"
|
||||
],
|
||||
"rootPatterns": [
|
||||
".ccls",
|
||||
"compile_commands.json",
|
||||
".vim/",
|
||||
".git/",
|
||||
".hg/"
|
||||
],
|
||||
"initializationOptions": {
|
||||
"cache": {
|
||||
"directory": "/tmp/ccls"
|
||||
}
|
||||
}
|
||||
}
|
||||
// "python": {
|
||||
// "command": "python",
|
||||
// "args": ["-mpyls", "-vv", "--log-file", "/tmp/lsp_python.log"],
|
||||
// "trace.server": "verbose",
|
||||
// "filetypes": ["python"],
|
||||
// "settings": {
|
||||
// "pyls": {
|
||||
// "enable": true,
|
||||
// "trace": {
|
||||
// "server": "verbose"
|
||||
// },
|
||||
// "commandPath": "",
|
||||
// "configurationSources": ["pycodestyle"],
|
||||
// "plugins": {
|
||||
// "jedi_completion": {
|
||||
// "enabled": true
|
||||
// },
|
||||
// "jedi_hover": {
|
||||
// "enabled": true
|
||||
// },
|
||||
// "jedi_references": {
|
||||
// "enabled": true
|
||||
// },
|
||||
// "jedi_signature_help": {
|
||||
// "enabled": true
|
||||
// },
|
||||
// "jedi_symbols": {
|
||||
// "enabled": true,
|
||||
// "all_scopes": true
|
||||
// },
|
||||
// "mccabe": {
|
||||
// "enabled": true,
|
||||
// "threshold": 15
|
||||
// },
|
||||
// "preload": {
|
||||
// "enabled": true
|
||||
// },
|
||||
// "pycodestyle": {
|
||||
// "enabled": true
|
||||
// },
|
||||
// "pydocstyle": {
|
||||
// "enabled": false,
|
||||
// "match": "(?!test_).*\\.py",
|
||||
// "matchDir": "[^\\.].*"
|
||||
// },
|
||||
// "pyflakes": {
|
||||
// "enabled": true
|
||||
// },
|
||||
// "rope_completion": {
|
||||
// "enabled": true
|
||||
// },
|
||||
// "yapf": {
|
||||
// "enabled": true
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
},
|
||||
|
||||
// explorer
|
||||
"explorer.width": 30,
|
||||
"explorer.keyMappings.global": {
|
||||
"<cr>": ["expandable?", ["expanded?", "collapse", "expand"], "open"],
|
||||
"v": "open:vsplit"
|
||||
},
|
||||
"explorer.icon.enableNerdfont": true,
|
||||
"explorer.previewAction.onHover": false
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
require("vtimofei")
|
|
@ -1,229 +0,0 @@
|
|||
" plugins
|
||||
"
|
||||
call plug#begin('~/.vim/plugged')
|
||||
|
||||
Plug 'itchyny/lightline.vim'
|
||||
Plug 'sonph/onehalf', { 'rtp': 'vim' }
|
||||
|
||||
Plug 'tpope/vim-fugitive'
|
||||
|
||||
" Colorschemes
|
||||
Plug 'markvincze/panda-vim'
|
||||
Plug 'NLKNguyen/papercolor-theme'
|
||||
|
||||
" BQN
|
||||
Plug 'mlochbaum/BQN', {'rtp': 'editors/vim'}
|
||||
|
||||
Plug 'fatih/vim-go'
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'}
|
||||
|
||||
" polyglot
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
|
||||
" Typescript lsp
|
||||
Plug 'neoclide/coc-tsserver'
|
||||
|
||||
" treesitter
|
||||
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
||||
|
||||
" telescope
|
||||
Plug 'nvim-lua/popup.nvim'
|
||||
Plug 'nvim-lua/plenary.nvim'
|
||||
Plug 'nvim-telescope/telescope.nvim'
|
||||
|
||||
call plug#end()
|
||||
|
||||
nnoremap <SPACE> <Nop>
|
||||
let mapleader=" "
|
||||
|
||||
" colors
|
||||
"
|
||||
set t_Co=256 "required for urxvt
|
||||
set background=dark "dark or light
|
||||
colorscheme PaperColor
|
||||
|
||||
let g:lightline = {
|
||||
\ 'colorscheme': 'ayu_dark',
|
||||
\ 'active': {
|
||||
\ 'left': [ [ 'mode', 'paste' ],
|
||||
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]
|
||||
\ },
|
||||
\ 'component_function': {
|
||||
\ 'gitbranch': 'FugitiveHead'
|
||||
\ },
|
||||
\ }
|
||||
" Hide insert(redundant because of lightline plugin)
|
||||
set noshowmode
|
||||
|
||||
" Clear the background in order to have opacity
|
||||
hi Normal guibg=NONE ctermbg=NONE
|
||||
hi NonText guibg=NONE ctermbg=NONE
|
||||
hi clear SignColumn
|
||||
hi clear LineNr
|
||||
|
||||
" settings
|
||||
"
|
||||
filetype on "detect files based on type
|
||||
filetype plugin on "when a file is edited its plugin file is loaded
|
||||
filetype indent on "maintain indentention
|
||||
set nu "enable line numbers
|
||||
set relativenumber "relative line numbers
|
||||
set colorcolumn=100 "display a colored column at 100 chars
|
||||
highlight ColorColumn ctermbg=0 guibg=morning
|
||||
|
||||
" -------------------------------------------------------------------------------------------------
|
||||
" treesitter settings
|
||||
"
|
||||
" -------------------------------------------------------------------------------------------------
|
||||
|
||||
" Syntax highlighting
|
||||
lua <<EOF
|
||||
require'nvim-treesitter.configs'.setup {
|
||||
highlight = {
|
||||
enable = true,
|
||||
custom_captures = {
|
||||
-- Highlight the @foo.bar capture group with the "Identifier" highlight group.
|
||||
["foo.bar"] = "Identifier",
|
||||
},
|
||||
},
|
||||
}
|
||||
EOF
|
||||
|
||||
" Incrementals selection
|
||||
lua <<EOF
|
||||
require'nvim-treesitter.configs'.setup {
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = "gnn",
|
||||
node_incremental = "grn",
|
||||
scope_incremental = "grc",
|
||||
node_decremental = "grm",
|
||||
},
|
||||
},
|
||||
}
|
||||
EOF
|
||||
|
||||
" Indentation
|
||||
lua <<EOF
|
||||
require'nvim-treesitter.configs'.setup {
|
||||
indent = {
|
||||
enable = true
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
" Folding
|
||||
set foldmethod=expr
|
||||
set foldexpr=nvim_treesitter#foldexpr()
|
||||
|
||||
" Reload file
|
||||
nnoremap <leader>r <cmd>update \| edit \| TSBufEnable highlight<cr>
|
||||
|
||||
" -------------------------------------------------------------------------------------------------
|
||||
" telescope keymaps
|
||||
"
|
||||
" -------------------------------------------------------------------------------------------------
|
||||
|
||||
nnoremap <leader>ff <cmd>Telescope find_files<cr>
|
||||
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
|
||||
nnoremap <leader>fb <cmd>Telescope buffers<cr>
|
||||
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
|
||||
|
||||
" -------------------------------------------------------------------------------------------------
|
||||
" System clipboard keybinds (requires xclip on Linux systems to work)
|
||||
"
|
||||
" -------------------------------------------------------------------------------------------------
|
||||
|
||||
nnoremap <leader>p "+p
|
||||
nnoremap <leader>y "+yy
|
||||
|
||||
" -------------------------------------------------------------------------------------------------
|
||||
" coc.nvim scroll popup definition
|
||||
"
|
||||
" -------------------------------------------------------------------------------------------------
|
||||
|
||||
nnoremap <nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
||||
nnoremap <nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
||||
inoremap <nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
|
||||
inoremap <nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
|
||||
|
||||
" -------------------------------------------------------------------------------------------------
|
||||
" coc.nvim default settings
|
||||
"
|
||||
" -------------------------------------------------------------------------------------------------
|
||||
|
||||
" if hidden is not set, TextEdit might fail.
|
||||
set hidden
|
||||
" Better display for messages
|
||||
set cmdheight=2
|
||||
" Smaller updatetime for CursorHold & CursorHoldI
|
||||
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 `[c` and `]c` to navigate diagnostics
|
||||
nmap <silent> [c <Plug>(coc-diagnostic-prev)
|
||||
nmap <silent> ]c <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 U to show documentation in preview window
|
||||
nnoremap <silent> U :call <SID>show_documentation()<CR>
|
||||
|
||||
" Remap for rename current word
|
||||
nmap <leader>rn <Plug>(coc-rename)
|
||||
|
||||
" Remap for format selected region
|
||||
vmap <leader>f <Plug>(coc-format-selected)
|
||||
nmap <leader>f <Plug>(coc-format-selected)
|
||||
" 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>
|
||||
|
||||
" disable vim-go :GoDef short cut (gd)
|
||||
" this is handled by LanguageClient [LC]
|
||||
let g:go_def_mapping_enabled = 0
|
||||
|
||||
" Explorer
|
||||
nmap <space>e :CocCommand explorer<CR>
|
||||
nmap <space>f :CocCommand explorer --preset floating<CR>
|
||||
autocmd BufEnter * if (winnr("$") == 1 && &filetype == 'coc-explorer') | q | endif
|
||||
|
||||
" Prettier
|
||||
command! -nargs=0 Prettier :CocCommand prettier.formatFile
|
|
@ -0,0 +1,26 @@
|
|||
vim.opt.completeopt = { "menu", "menuone", "noselect" }
|
||||
|
||||
local cmp = require'cmp'
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require('luasnip').lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = true }),
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
|
@ -0,0 +1,6 @@
|
|||
require("vtimofei.set")
|
||||
require("vtimofei.remap")
|
||||
require("vtimofei.cmp")
|
||||
require("vtimofei.lsp")
|
||||
require("vtimofei.plugins")
|
||||
require("vtimofei.telescope")
|
|
@ -0,0 +1,17 @@
|
|||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
local remap = require('vtimofei.lsp.remap')
|
||||
local lsp_conf = require('lspconfig')
|
||||
|
||||
lsp_conf.gopls.setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = function()
|
||||
remap.hover()
|
||||
remap.definition()
|
||||
remap.type_definition()
|
||||
remap.implementation()
|
||||
remap.diagnostics_next()
|
||||
remap.diagnostics_prev()
|
||||
remap.rename()
|
||||
remap.code_action()
|
||||
end
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
require('vtimofei.lsp.gopls')
|
||||
require('vtimofei.lsp.rust_analyzer')
|
||||
require('vtimofei.lsp.sumneko_lua')
|
||||
require('vtimofei.lsp.tsserver')
|
|
@ -0,0 +1,35 @@
|
|||
local M = {}
|
||||
|
||||
M.hover = function()
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, {buffer = 0})
|
||||
end
|
||||
|
||||
M.definition = function()
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, {buffer = 0})
|
||||
end
|
||||
|
||||
M.type_definition = function()
|
||||
vim.keymap.set("n", "gt", vim.lsp.buf.type_definition, {buffer = 0})
|
||||
end
|
||||
|
||||
M.implementation = function()
|
||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, {buffer = 0})
|
||||
end
|
||||
|
||||
M.diagnostics_next = function()
|
||||
vim.keymap.set("n", "<leader>dj", vim.diagnostic.goto_next, {buffer = 0})
|
||||
end
|
||||
|
||||
M.diagnostics_prev = function()
|
||||
vim.keymap.set("n", "<leader>dk", vim.diagnostic.goto_prev, {buffer = 0})
|
||||
end
|
||||
|
||||
M.rename = function()
|
||||
vim.keymap.set("n", "<leader>r", vim.lsp.buf.rename, {buffer = 0})
|
||||
end
|
||||
|
||||
M.code_action = function()
|
||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, {buffer = 0})
|
||||
end
|
||||
|
||||
return M
|
|
@ -0,0 +1,17 @@
|
|||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
local remap = require('vtimofei.lsp.remap')
|
||||
local lsp_conf = require('lspconfig')
|
||||
|
||||
lsp_conf.rust_analyzer.setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = function()
|
||||
remap.hover()
|
||||
remap.definition()
|
||||
remap.type_definition()
|
||||
remap.implementation()
|
||||
remap.diagnostics_next()
|
||||
remap.diagnostics_prev()
|
||||
remap.rename()
|
||||
remap.code_action()
|
||||
end
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
local remap = require('vtimofei.lsp.remap')
|
||||
local lsp_conf = require('lspconfig')
|
||||
|
||||
lsp_conf.sumneko_lua.setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = function()
|
||||
remap.hover()
|
||||
remap.definition()
|
||||
remap.type_definition()
|
||||
remap.implementation()
|
||||
remap.diagnostics_next()
|
||||
remap.diagnostics_prev()
|
||||
remap.rename()
|
||||
remap.code_action()
|
||||
end
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
local remap = require('vtimofei.lsp.remap')
|
||||
local lsp_conf = require('lspconfig')
|
||||
|
||||
lsp_conf.tsserver.setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = function()
|
||||
print("loaded tsserver")
|
||||
remap.hover()
|
||||
remap.definition()
|
||||
remap.type_definition()
|
||||
remap.implementation()
|
||||
remap.diagnostics_next()
|
||||
remap.diagnostics_prev()
|
||||
remap.rename()
|
||||
remap.code_action()
|
||||
end
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
vim.cmd [[packadd packer.nvim]]
|
||||
|
||||
return require('packer').startup(function(use)
|
||||
use 'wbthomason/packer.nvim'
|
||||
use 'folke/tokyonight.nvim'
|
||||
use 'neovim/nvim-lspconfig'
|
||||
use 'nvim-lua/plenary.nvim'
|
||||
use 'hrsh7th/nvim-cmp'
|
||||
use 'hrsh7th/cmp-nvim-lsp'
|
||||
use 'hrsh7th/cmp-buffer'
|
||||
use 'hrsh7th/cmp-path'
|
||||
use 'L3MON4D3/LuaSnip'
|
||||
use 'saadparwaiz1/cmp_luasnip'
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
run = function()
|
||||
local ts_update = require('nvim-treesitter.install').update({ with_sync = true })
|
||||
ts_update()
|
||||
end,
|
||||
}
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim', branch = '0.1.x',
|
||||
requires = { {'nvim-lua/plenary.nvim'} }
|
||||
}
|
||||
end)
|
|
@ -0,0 +1 @@
|
|||
vim.keymap.set("n", "<leader>e", "<cmd>Ex<CR>")
|
|
@ -0,0 +1,17 @@
|
|||
vim.opt.guicursor = ""
|
||||
|
||||
vim.opt.nu = true
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
vim.opt.tabstop = 8
|
||||
vim.opt.softtabstop = 8
|
||||
vim.opt.shiftwidth = 8
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.hlsearch = false
|
||||
vim.opt.incsearch = true
|
||||
|
||||
vim.opt.smartindent = true
|
||||
|
||||
vim.opt.wrap = false
|
||||
|
||||
vim.g.mapleader = " "
|
|
@ -0,0 +1,6 @@
|
|||
vim.keymap.set("n", "<leader>dl", "<cmd>Telescope diagnostics<CR>")
|
||||
vim.keymap.set("n", "<leader>tr", "<cmd>Telescope lsp_references<CR>")
|
||||
vim.keymap.set("n", "<leader>ti", "<cmd>Telescope lsp_implementations<CR>")
|
||||
vim.keymap.set("n", "<leader>fw", "<cmd>Telescope live_grep<CR>")
|
||||
vim.keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<CR>")
|
||||
vim.keymap.set("n", "<leader>tc", "<cmd>Telescope colorscheme<CR>")
|
26
.vimrc
26
.vimrc
|
@ -1,26 +0,0 @@
|
|||
" Enable syntax highlighting
|
||||
syntax on
|
||||
|
||||
" Need to set this also to see the current line number
|
||||
set number
|
||||
" Use relative line numbers
|
||||
set relativenumber
|
||||
|
||||
" Do not create swapfiles
|
||||
set noswapfile
|
||||
|
||||
set tabstop=3 softtabstop=3
|
||||
set expandtab
|
||||
set smartindent
|
||||
|
||||
" Do not wrap the line
|
||||
set nowrap
|
||||
|
||||
" View a colored column at 80 chars
|
||||
set colorcolumn=80
|
||||
" Color of column
|
||||
highlight ColorColumn ctermbg=0 guibg=lightgrey
|
||||
|
||||
filetype plugin indent on
|
||||
filetype detect
|
||||
autocmd FileType make set noexpandtab
|
Loading…
Reference in New Issue