mirror of
https://github.com/halfdan/dotfiles.git
synced 2025-09-10 19:56:24 +00:00
Major update
This commit is contained in:
1
.config/nvim/lua/autocmds.lua
Normal file
1
.config/nvim/lua/autocmds.lua
Normal file
@@ -0,0 +1 @@
|
||||
vim.cmd([[autocmd TermOpen * setlocal nonumber norelativenumber]])
|
@@ -6,7 +6,7 @@ O = {
|
||||
clipboard = unnamedplus,
|
||||
incsearch = true,
|
||||
termguicolors = true,
|
||||
colorscheme = 'dracula',
|
||||
colorscheme = 'nord',
|
||||
hidden_files = true,
|
||||
wrap_lines = false,
|
||||
number = true,
|
||||
|
@@ -38,12 +38,6 @@ vim.cmd([[
|
||||
vim.api.nvim_set_keymap('v', '<', '<gv', {noremap = true, silent = true})
|
||||
vim.api.nvim_set_keymap('v', '>', '>gv', {noremap = true, silent = true})
|
||||
|
||||
-- I hate escape
|
||||
vim.api.nvim_set_keymap('i', 'jk', '<ESC>', {noremap = true, silent = true})
|
||||
vim.api.nvim_set_keymap('i', 'kj', '<ESC>', {noremap = true, silent = true})
|
||||
vim.api.nvim_set_keymap('i', 'jj', '<ESC>', {noremap = true, silent = true})
|
||||
|
||||
|
||||
-- Tab switch buffer
|
||||
vim.api.nvim_set_keymap('n', '<TAB>', ':bnext<CR>', {noremap = true, silent = true})
|
||||
vim.api.nvim_set_keymap('n', '<S-TAB>', ':bprevious<CR>', {noremap = true, silent = true})
|
||||
@@ -55,12 +49,11 @@ vim.api.nvim_set_keymap('x', 'J', ':move \'>+1<CR>gv-gv', {noremap = true, silen
|
||||
vim.api.nvim_set_keymap('n', 'Q', '<Nop>', {noremap = true, silent = true})
|
||||
|
||||
-- Telescope
|
||||
vim.api.nvim_set_keymap('n', '<leader>ps', ':lua require(\'telescope.builtin\').grep_string({ search = vim.fn.input("Grep For > ")})<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<C-p>', ':lua require(\'telescope.builtin\').git_files()<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<Leader>pf', ':lua require(\'telescope.builtin\').find_files()<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>fs', ':lua require(\'telescope.builtin\').grep_string({ search = vim.fn.input("Grep For > ")})<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<Leader>ff', ':lua require(\'telescope.builtin\').find_files()<CR>', {noremap = true})
|
||||
|
||||
vim.api.nvim_set_keymap('n', '<leader>pw', ':lua require(\'telescope.builtin\').grep_string { search = vim.fn.expand("<cword>") }<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>pb', ':lua require(\'telescope.builtin\').buffers()<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>fw', ':lua require(\'telescope.builtin\').grep_string { search = vim.fn.expand("<cword>") }<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>fb', ':lua require(\'telescope.builtin\').buffers()<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>vh', ':lua require(\'telescope.builtin\').help_tags()<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>gw', ':lua require(\'telescope\').extensions.git_worktree.git_worktrees()<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>gm', ':lua require(\'telescope\').extensions.git_worktree.create_git_worktree()<CR>', {noremap = true})
|
||||
@@ -69,6 +62,13 @@ vim.api.nvim_set_keymap('n', '<leader>gm', ':lua require(\'telescope\').extensio
|
||||
vim.api.nvim_set_keymap('n', '<Leader>tt', ':SymbolsOutline<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<Leader>hl', ':nohl<CR>', {noremap = true})
|
||||
|
||||
-- Vim Test
|
||||
vim.api.nvim_set_keymap('n', '<leader>t', ':TestNearest<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>T', ':TestFile<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>a', ':TestSuite<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>l', ':TestLast<CR>', {noremap = true})
|
||||
vim.api.nvim_set_keymap('n', '<leader>g', ':TestVisit<CR>', {noremap = true})
|
||||
|
||||
-- LSP
|
||||
vim.cmd("nnoremap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR>")
|
||||
vim.cmd("nnoremap <silent> gD <cmd>lua vim.lsp.buf.declaration()<CR>")
|
||||
@@ -76,6 +76,9 @@ vim.cmd("nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>")
|
||||
vim.cmd("nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR>")
|
||||
vim.cmd("nnoremap <silent> ca :Lspsaga code_action<CR>")
|
||||
vim.cmd("nnoremap <silent> K :Lspsaga hover_doc<CR>")
|
||||
vim.cmd("nnoremap <silent> rn <cmd>lua vim.lsp.buf.rename()<CR>")
|
||||
vim.cmd("nnoremap <silent> ff <cmd>lua vim.lsp.buf.formatting()<CR>")
|
||||
|
||||
vim.cmd('nnoremap <silent> <C-k> <cmd>lua vim.lsp.buf.signature_help()<CR>')
|
||||
vim.cmd("nnoremap <silent> <C-p> :Lspsaga diagnostic_jump_prev<CR>")
|
||||
vim.cmd("nnoremap <silent> <C-n> :Lspsaga diagnostic_jump_next<CR>")
|
||||
|
@@ -86,33 +86,83 @@ vim.cmd([[
|
||||
au BufRead,BufNewFile mix.lock set filetype=elixir
|
||||
]])
|
||||
|
||||
require("lspconfig").gopls.setup({
|
||||
cmd = { "gopls", "serve" },
|
||||
settings = {
|
||||
gopls = {
|
||||
analyses = {
|
||||
unusedparams = true,
|
||||
},
|
||||
staticcheck = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
require'lspconfig'.julials.setup{}
|
||||
|
||||
require'lspconfig'.pyright.setup{}
|
||||
-- Diagnostic keymaps
|
||||
vim.api.nvim_set_keymap('n', '<leader>e', '<cmd>lua vim.diagnostic.open_float()<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', { noremap = true, silent = true })
|
||||
|
||||
require("lspconfig").rust_analyzer.setup({
|
||||
cmd = { "rustup", "run", "nightly", "rust-analyzer"},
|
||||
--[[
|
||||
settings = {
|
||||
rust = {
|
||||
unstable_features = true,
|
||||
build_on_save = false,
|
||||
all_features = true,
|
||||
},
|
||||
-- LSP settings
|
||||
local lspconfig = require 'lspconfig'
|
||||
local on_attach = function(_, bufnr)
|
||||
local opts = { noremap = true, silent = true }
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>so', [[<cmd>lua require('telescope.builtin').lsp_document_symbols()<CR>]], opts)
|
||||
vim.cmd [[ command! Format execute 'lua vim.lsp.buf.formatting()' ]]
|
||||
end
|
||||
|
||||
-- nvim-cmp supports additional completion capabilities
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
|
||||
|
||||
-- Enable the following language servers
|
||||
local servers = { 'gopls', 'julials', 'rust_analyzer', 'pyright', 'elixirls' }
|
||||
for _, lsp in ipairs(servers) do
|
||||
lspconfig[lsp].setup {
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
}
|
||||
end
|
||||
|
||||
--require("lspconfig").gopls.setup({
|
||||
--cmd = { "gopls", "serve" },
|
||||
--settings = {
|
||||
--gopls = {
|
||||
--analyses = {
|
||||
--unusedparams = true,
|
||||
--},
|
||||
--staticcheck = true,
|
||||
--},
|
||||
--},
|
||||
--})
|
||||
|
||||
--require'lspconfig'.julials.setup{}
|
||||
|
||||
--require'lspconfig'.pyright.setup{}
|
||||
|
||||
--require("lspconfig").rust_analyzer.setup({
|
||||
----cmd = { "rustup", "run", "nightly", "rust-analyzer"},
|
||||
--[>
|
||||
--settings = {
|
||||
--rust = {
|
||||
--unstable_features = true,
|
||||
--build_on_save = false,
|
||||
--all_features = true,
|
||||
--},
|
||||
--}
|
||||
----]]
|
||||
--})
|
||||
|
||||
require('rust-tools').setup({
|
||||
tools = {
|
||||
inlay_hints = {
|
||||
parameter_hints_prefix = "← ",
|
||||
other_hints_prefix = "➜ ",
|
||||
}
|
||||
}
|
||||
--]]
|
||||
})
|
||||
|
||||
vim.g.symbols_outline = {
|
||||
@@ -123,12 +173,12 @@ vim.g.symbols_outline = {
|
||||
width = 25,
|
||||
}
|
||||
|
||||
vim.cmd([[
|
||||
augroup
|
||||
autocmd!
|
||||
autocmd BufWritePre *.go lua vim.lsp.buf.formatting_sync(nil, 100)
|
||||
autocmd BufWritePre *.rs lua vim.lsp.buf.formatting_sync(nil, 100)
|
||||
autocmd BufWritePre *.ex,*.exs lua vim.lsp.buf.formatting_sync(nil, 100)
|
||||
autocmd BufWritePre *.py lua vim.lsp.buf.formatting_sync(nil, 100)
|
||||
augroup END
|
||||
]])
|
||||
--vim.cmd([[
|
||||
--augroup
|
||||
--autocmd!
|
||||
--autocmd BufWritePre *.go lua vim.lsp.buf.formatting_sync(nil, 100)
|
||||
--autocmd BufWritePre *.rs lua vim.lsp.buf.formatting_sync(nil, 100)
|
||||
--autocmd BufWritePre *.ex,*.exs lua vim.lsp.buf.formatting_sync(nil, 100)
|
||||
--autocmd BufWritePre *.py lua vim.lsp.buf.formatting_sync(nil, 100)
|
||||
--augroup END
|
||||
--]])
|
||||
|
@@ -46,6 +46,11 @@ return require("packer").startup(
|
||||
-- Goodies
|
||||
use {'tpope/vim-fugitive'}
|
||||
use {'tpope/vim-surround'} -- ✅
|
||||
use {'tpope/vim-dispatch'}
|
||||
|
||||
-- Testing
|
||||
use {'vim-test/vim-test'}
|
||||
|
||||
|
||||
-- Treesitter
|
||||
use {"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"}
|
||||
@@ -81,9 +86,12 @@ return require("packer").startup(
|
||||
use {'hrsh7th/nvim-cmp'}
|
||||
use {'tzachar/cmp-tabnine', run = './install.sh'}
|
||||
use {'onsails/lspkind-nvim'} -- Display symbol with cmp suggestions
|
||||
use {'L3MON4D3/LuaSnip'}
|
||||
use {'saadparwaiz1/cmp_luasnip'}
|
||||
|
||||
use {'tami5/lspsaga.nvim'}
|
||||
|
||||
-- Used to display LSP status in Lualine
|
||||
use {'nvim-lua/lsp-status.nvim'}
|
||||
|
||||
--use {'simrat39/symbols-outline.nvim'}
|
||||
@@ -102,6 +110,7 @@ return require("packer").startup(
|
||||
use {'neoclide/jsonc.vim'}
|
||||
|
||||
use {'rust-lang/rust.vim'}
|
||||
use {'simrat39/rust-tools.nvim'}
|
||||
|
||||
-- Debugger support via dap
|
||||
use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap"} }
|
||||
@@ -123,3 +132,4 @@ return require("packer").startup(
|
||||
require_plugin('julia-vim')
|
||||
end
|
||||
)
|
||||
|
||||
|
@@ -1,5 +1,6 @@
|
||||
local cmp = require'cmp'
|
||||
local lspkind = require('lspkind')
|
||||
local luasnip = require 'luasnip'
|
||||
|
||||
local source_mapping = {
|
||||
buffer = "[Buffer]",
|
||||
@@ -19,18 +20,50 @@ cmp.setup({
|
||||
-- -- require'snippy'.expand_snippet(args.body) -- For `snippy` users.
|
||||
-- end,
|
||||
-- },
|
||||
--mapping = {
|
||||
--['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
|
||||
--['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
|
||||
--['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
|
||||
--['<CR>'] = cmp.mapping.confirm({ select = true }),
|
||||
--},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require'luasnip'.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
|
||||
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
|
||||
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = true }),
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.close(),
|
||||
['<CR>'] = cmp.mapping.confirm {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
},
|
||||
['<Tab>'] = function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end,
|
||||
['<S-Tab>'] = function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end,
|
||||
},
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'cmp_tabnine' },
|
||||
{ name = 'nvim_lsp' },
|
||||
},
|
||||
{
|
||||
{ name = 'buffer' },
|
||||
{ name = 'cmp_tabnine' },
|
||||
{ name = 'nvim_lsp' },
|
||||
}),
|
||||
formatting = {
|
||||
format = function(entry, vim_item)
|
||||
@@ -74,7 +107,7 @@ tabnine:setup({
|
||||
snippet_placeholder = '..';
|
||||
ignored_file_types = { -- default is not to ignore
|
||||
-- uncomment to ignore in lua:
|
||||
-- lua = true
|
||||
lua = true
|
||||
};
|
||||
})
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
require'lualine'.setup {
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = 'dracula',
|
||||
theme = 'auto',
|
||||
--component_separators = {'', ''},
|
||||
--section_separators = {'', ''},
|
||||
disabled_filetypes = {}
|
||||
@@ -9,7 +9,7 @@ require'lualine'.setup {
|
||||
sections = {
|
||||
lualine_a = {'mode'},
|
||||
lualine_b = {'branch'},
|
||||
lualine_c = {'filename', require'lsp-status'.status},
|
||||
lualine_c = { 'filename', 'data', "require'lsp-status'.status()" },
|
||||
lualine_x = {'filetype'},
|
||||
lualine_y = {'progress'},
|
||||
lualine_z = {'location'}
|
||||
|
@@ -2,4 +2,7 @@ vim.cmd([[
|
||||
let g:sneak#label = 1
|
||||
let g:sneak#prompt = '🔎'
|
||||
let g:sneak#s_next = 1
|
||||
|
||||
let test#strategy = "neovim"
|
||||
let test#neovim#term_position = "vert rightbelow 50"
|
||||
]])
|
||||
|
@@ -19,7 +19,7 @@ require('telescope').setup {
|
||||
file_ignore_patterns = {},
|
||||
generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter,
|
||||
shorten_path = true,
|
||||
winblend = 0,
|
||||
winblend = 0,
|
||||
width = 0.75,
|
||||
preview_cutoff = 120,
|
||||
results_height = 1,
|
||||
@@ -32,7 +32,7 @@ require('telescope').setup {
|
||||
file_previewer = require'telescope.previewers'.vim_buffer_cat.new,
|
||||
grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new,
|
||||
qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new,
|
||||
|
||||
layout_strategy = "horizontal",
|
||||
-- Developer configurations: Not meant for general override
|
||||
buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker,
|
||||
mappings = {
|
||||
|
Reference in New Issue
Block a user