Overhaul nvim config

main
zoomiti 2 years ago
parent 3f9c992f47
commit c124d3511c

@ -33,10 +33,12 @@ Plug 'airblade/vim-gitgutter'
Plug 'lervag/vimtex' Plug 'lervag/vimtex'
" Rust " Rust
if has("nvim")
Plug 'mrcjkb/rustaceanvim'
Plug 'rayliwell/nvim-ts-autotag'
else
Plug 'rust-lang/rust.vim' Plug 'rust-lang/rust.vim'
let g:rustfmt_autosave = 1 let g:rustfmt_autosave = 1
if has("nvim")
Plug 'simrat39/rust-tools.nvim' " Adds extra functionality over rust analyzer
endif endif
" Markdown " Markdown
@ -49,18 +51,27 @@ Plug 'dhruvasagar/vim-table-mode'
Plug 'zoomiti/firewatch' Plug 'zoomiti/firewatch'
Plug 'sonph/onehalf', { 'rtp': 'vim' } Plug 'sonph/onehalf', { 'rtp': 'vim' }
Plug 'sjl/badwolf' Plug 'sjl/badwolf'
if !has("nvim")
Plug 'lifepillar/vim-colortemplate' Plug 'lifepillar/vim-colortemplate'
Plug 'cocopon/inspecthi.vim' endif
if has("nvim") if has("nvim")
" Neoconf
Plug 'folke/neoconf.nvim'
" LSP " LSP
Plug 'neovim/nvim-lspconfig' Plug 'neovim/nvim-lspconfig'
Plug 'hrsh7th/nvim-cmp' " For LSP completion Plug 'andythigpen/nvim-coverage'
" Cmp
Plug 'hrsh7th/nvim-cmp'
Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/cmp-nvim-lsp-signature-help'
Plug 'hrsh7th/cmp-path' Plug 'hrsh7th/cmp-path'
Plug 'hrsh7th/cmp-buffer' Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-nvim-lua' Plug 'hrsh7th/cmp-nvim-lua'
Plug 'petertriho/cmp-git'
Plug 'f3fora/cmp-spell' Plug 'f3fora/cmp-spell'
" Plug 'hrsh7th/cmp-copilot' " Plug 'hrsh7th/cmp-copilot'
Plug 'onsails/lspkind.nvim' Plug 'onsails/lspkind.nvim'
@ -88,7 +99,7 @@ Plug 'norcalli/nvim-colorizer.lua' " For colorizing
" Tree sitter " Tree sitter
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
Plug 'lewis6991/spellsitter.nvim' Plug 'lewis6991/spellsitter.nvim'
Plug 'nvim-treesitter/playground' Plug 'rayliwell/tree-sitter-rstml'
" Neorg " Neorg
Plug 'nvim-neorg/neorg' Plug 'nvim-neorg/neorg'
@ -150,9 +161,12 @@ if has('nvim')
nnoremap <leader>b <cmd>Telescope buffers<CR> nnoremap <leader>b <cmd>Telescope buffers<CR>
nnoremap <C-/> <cmd>lua require("telescope.builtin").current_buffer_fuzzy_find(require('telescope.themes').get_ivy())<CR> nnoremap <C-/> <cmd>lua require("telescope.builtin").current_buffer_fuzzy_find(require('telescope.themes').get_ivy())<CR>
nnoremap <leader>f <cmd>Telescope find_files<CR> nnoremap <leader>f <cmd>Telescope find_files<CR>
nnoremap <leader>p <cmd>Telescope git_files<CR>
nnoremap <leader>t <cmd>bel 15sp \| term<CR><cmd>startinsert<CR>
else else
nnoremap <leader>b <cmd>ls<CR>:b<Space> nnoremap <leader>b <cmd>ls<CR>:b<Space>
nnoremap <leader>s <cmd>ls<CR>:sb<Space> nnoremap <leader>s <cmd>ls<CR>:sb<Space>
nnoremap <leader>t <cmd>bel term<CR>
endif endif
@ -318,15 +332,19 @@ endif
if has("nvim") if has("nvim")
lua << EOF lua << EOF
vim.loader.enable()
require('neoconf').setup{}
require('telescope').setup{} require('telescope').setup{}
require('telescope').load_extension('fzf') require('telescope').load_extension('fzf')
require('telescope').load_extension('ui-select')
-- Setup treesitter -- Setup treesitter
require'nvim-treesitter.configs'.setup { --{{{ require'nvim-treesitter.configs'.setup { --{{{
-- A list of parser names, or "all" -- A list of parser names, or "all"
ensure_installed = { "c", "lua", "rust", "vim" }, ensure_installed = { "c", "lua", "vim" }, --"rust"
-- Install parsers synchronously (only applied to `ensure_installed`) -- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false, sync_install = false,
@ -357,7 +375,7 @@ if has("nvim")
incremental_selection = { incremental_selection = {
enable = true, enable = true,
keymaps = { keymaps = {
init_selction = "gnn", init_selection = "gnn",
node_incremental = "grn", node_incremental = "grn",
scope_incremental = "grc", scope_incremental = "grc",
node_decremental = "grm", node_decremental = "grm",
@ -373,9 +391,13 @@ if has("nvim")
}, },
} --}}} } --}}}
require('spellsitter').setup() require('spellsitter').setup()
require('tree-sitter-rstml').setup()
require('nvim-ts-autotag').setup()
require'colorizer'.setup() require'colorizer'.setup()
-- Setup nvim-cmp. -- Setup nvim-cmp.
-- {{{
local cmp = require'cmp' local cmp = require'cmp'
local lspkind = require'lspkind' local lspkind = require'lspkind'
local cmp_ultisnips_mappings = require'cmp_nvim_ultisnips.mappings' local cmp_ultisnips_mappings = require'cmp_nvim_ultisnips.mappings'
@ -408,8 +430,9 @@ if has("nvim")
end, { 'i', 's' }), end, { 'i', 's' }),
}, },
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = 'copilot' }, { name = 'path' },
{ name = 'nvim_lsp' }, { name = 'nvim_lsp' },
{ name = 'nvim_lsp_signature_help' },
{ name = 'neorg' }, { name = 'neorg' },
{ name = 'nvim_lua' }, { name = 'nvim_lua' },
{ name = 'ultisnips' }, { name = 'ultisnips' },
@ -421,10 +444,16 @@ if has("nvim")
}, },
keyword_length = 3, keyword_length = 3,
}, },
{ name = 'path' }, { name = "git" },
}, { }, {
{ name = 'buffer', keyword_length = 5}, { name = 'buffer', keyword_length = 5},
}), }),
--{{{
--window = {
-- completion = cmp.config.window.bordered(),
-- documentation = cmp.config.window.bordered(),
--},
--}}}
formatting = { formatting = {
format = lspkind.cmp_format { format = lspkind.cmp_format {
with_text = true, with_text = true,
@ -435,21 +464,26 @@ if has("nvim")
path = "[path]", path = "[path]",
ultisnips = "[snip]", ultisnips = "[snip]",
spell = "[spell]", spell = "[spell]",
git = "[git]"
--copilot = "[cop]", --copilot = "[cop]",
}, },
}, },
}, },
}) })
require("cmp_git").setup()
-- }}}
-- Setup lspconfig. -- Setup lspconfig.
local capabilities = require('cmp_nvim_lsp').default_capabilities() local capabilities = require('cmp_nvim_lsp').default_capabilities()
local function on_attach(client, bufnr) local function on_attach(client, bufnr)
vim.lsp.inlay_hint.enable(bufnr, true)
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', {noremap = true}) buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', {noremap = true})
-- buf_set_keymap('n', 'gt', '<Cmd>lua vim.lsp.buf.type_definition()<CR>', {noremap = true}) buf_set_keymap('n', 'gt', '<Cmd>lua vim.lsp.buf.type_definition()<CR>', {noremap = true})
buf_set_keymap('n', 'gi', '<Cmd>lua vim.lsp.buf.implementation()<CR>', {noremap = true}) buf_set_keymap('n', 'gi', '<Cmd>lua vim.lsp.buf.implementation()<CR>', {noremap = true})
buf_set_keymap('n', 'gr', '<Cmd>lua vim.lsp.buf.references()<CR>', {noremap = true})
buf_set_keymap('n', '<leader>r', '<Cmd>lua vim.lsp.buf.rename()<CR>', {noremap = true}) buf_set_keymap('n', '<leader>r', '<Cmd>lua vim.lsp.buf.rename()<CR>', {noremap = true})
buf_set_keymap('n', '<leader>d', '<Cmd>Trouble workspace_diagnostics<CR>', {noremap = true}) buf_set_keymap('n', '<leader>d', '<Cmd>Trouble workspace_diagnostics<CR>', {noremap = true})
buf_set_keymap('n', ']d', '<Cmd>lua vim.diagnostic.goto_next()<CR>', {noremap = true}) buf_set_keymap('n', ']d', '<Cmd>lua vim.diagnostic.goto_next()<CR>', {noremap = true})
@ -466,14 +500,49 @@ if has("nvim")
require('lspconfig')['texlab'].setup({ capabilities = capabilities, on_attach = on_attach }) require('lspconfig')['texlab'].setup({ capabilities = capabilities, on_attach = on_attach })
require('rust-tools').setup({ server = {capabilities = capabilities, vim.opt.exrc = true
vim.g.rustaceanvim = {
-- LSP configuration
server = {
capabilities = capabilities,
on_attach = function(client, bufnr) on_attach = function(client, bufnr)
-- you can also put keymaps in here
on_attach(client, bufnr); on_attach(client, bufnr);
-- client.server_capabilities.semanticTokensProvider = nil
vim.api.nvim_create_autocmd({"BufWritePre"}, {pattern = {"*"}, command = "lua vim.lsp.buf.format()" })
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
buf_set_keymap('n', '<leader>c', '<Cmd>lua require\'rust-tools\'.open_cargo_toml.open_cargo_toml()<CR>', {noremap = true}) buf_set_keymap('n', 'J', "<Cmd>RustLsp joinLines<CR>", {noremap = true})
end buf_set_keymap('n', '<C-Space>', "<Cmd>RustLsp codeAction<CR>", {noremap = true})
buf_set_keymap('n', '<leader>c', "<Cmd>RustLsp openCargo<CR>", {noremap = true})
buf_set_keymap('n', 'gD', '<Cmd>RustLsp openDocs<CR>', {noremap = true})
end,
cmd = {"ra-multiplex", "client"},
load_vscode_settings = true,
default_settings = {
-- rust-analyzer language server configuration
['rust-analyzer'] = {
cargo = {
features = "all",
targetDir = true,
},
checkOnSave = true,
check = {
command = "clippy",
allfeatures = true,
extrArgs = {"--no-deps"},
},
rustfmt = {
overrideCommand = {"/home/zoomiti/.cargo/bin/leptosfmt", "--stdin", "--rustfmt"},
},
procMacro = {
enable = true
},
},
},
},
} }
})
--[[ --[[
require('lean').setup{ --{{{ require('lean').setup{ --{{{
@ -545,6 +614,7 @@ if has("nvim")
-- refer to the configuration section below -- refer to the configuration section below
} }
--[[
require('neorg').setup { require('neorg').setup {
load = { load = {
["core.defaults"] = {}, ["core.defaults"] = {},
@ -580,6 +650,9 @@ if has("nvim")
["core.integrations.telescope"] = {}, -- Enable the telescope module ["core.integrations.telescope"] = {}, -- Enable the telescope module
} }
} }
--]]
require("coverage").setup()
require("which-key").setup { require("which-key").setup {
-- your configuration comes here -- your configuration comes here

Loading…