From ab6ddb63aaa0126ac3ceae23a38322f2ceb2f272 Mon Sep 17 00:00:00 2001 From: Fabian Becker Date: Tue, 26 Jul 2022 09:03:45 +0200 Subject: [PATCH] Refactor nvim config, thanks ThePrimeagen --- .../{lua/plugins => after/plugin}/cmp.lua | 0 .config/nvim/after/plugin/init.lua | 0 .config/nvim/after/plugin/keymappings.lua | 80 ++++++ .config/nvim/{lua => after/plugin}/lsp.lua | 67 ++--- .../{lua/plugins => after/plugin}/sneak.lua | 0 .../{lua/plugins => after/plugin}/tagbar.lua | 0 .config/nvim/after/plugin/telescope.lua | 32 +++ .config/nvim/init.lua | 21 +- .config/nvim/lua/functions.lua | 19 -- .config/nvim/lua/{ => halfdan}/autocmds.lua | 0 .../nvim/lua/{ => halfdan}/colorscheme.lua | 0 .config/nvim/lua/halfdan/debugger/init.lua | 76 ++++++ .config/nvim/lua/{ => halfdan}/globals.lua | 0 .config/nvim/lua/halfdan/init.lua | 14 ++ .config/nvim/lua/halfdan/keymap.lua | 20 ++ .../nvim/lua/{plugins => halfdan}/lualine.lua | 0 .config/nvim/lua/halfdan/neogit.lua | 10 + .../lua/{plugins.lua => halfdan/packer.lua} | 0 .config/nvim/lua/{ => halfdan}/settings.lua | 12 +- .../telescope-project.lua | 0 .../lua/{plugins => halfdan}/telescope.lua | 0 .../nvim/lua/{ => halfdan}/themes/nord.lua | 0 .../lua/{plugins => halfdan}/treesitter.lua | 0 .config/nvim/lua/keymappings.lua | 96 -------- .config/nvim/lua/plugins/galaxyline.lua | 231 ------------------ .config/nvim/lua/utils.lua | 13 - 26 files changed, 275 insertions(+), 416 deletions(-) rename .config/nvim/{lua/plugins => after/plugin}/cmp.lua (100%) create mode 100644 .config/nvim/after/plugin/init.lua create mode 100644 .config/nvim/after/plugin/keymappings.lua rename .config/nvim/{lua => after/plugin}/lsp.lua (62%) rename .config/nvim/{lua/plugins => after/plugin}/sneak.lua (100%) rename .config/nvim/{lua/plugins => after/plugin}/tagbar.lua (100%) create mode 100644 .config/nvim/after/plugin/telescope.lua delete mode 100644 .config/nvim/lua/functions.lua rename .config/nvim/lua/{ => halfdan}/autocmds.lua (100%) rename .config/nvim/lua/{ => halfdan}/colorscheme.lua (100%) create mode 100644 .config/nvim/lua/halfdan/debugger/init.lua rename .config/nvim/lua/{ => halfdan}/globals.lua (100%) create mode 100644 .config/nvim/lua/halfdan/init.lua create mode 100644 .config/nvim/lua/halfdan/keymap.lua rename .config/nvim/lua/{plugins => halfdan}/lualine.lua (100%) create mode 100644 .config/nvim/lua/halfdan/neogit.lua rename .config/nvim/lua/{plugins.lua => halfdan/packer.lua} (100%) rename .config/nvim/lua/{ => halfdan}/settings.lua (86%) rename .config/nvim/lua/{plugins => halfdan}/telescope-project.lua (100%) rename .config/nvim/lua/{plugins => halfdan}/telescope.lua (100%) rename .config/nvim/lua/{ => halfdan}/themes/nord.lua (100%) rename .config/nvim/lua/{plugins => halfdan}/treesitter.lua (100%) delete mode 100644 .config/nvim/lua/keymappings.lua delete mode 100644 .config/nvim/lua/plugins/galaxyline.lua delete mode 100644 .config/nvim/lua/utils.lua diff --git a/.config/nvim/lua/plugins/cmp.lua b/.config/nvim/after/plugin/cmp.lua similarity index 100% rename from .config/nvim/lua/plugins/cmp.lua rename to .config/nvim/after/plugin/cmp.lua diff --git a/.config/nvim/after/plugin/init.lua b/.config/nvim/after/plugin/init.lua new file mode 100644 index 0000000..e69de29 diff --git a/.config/nvim/after/plugin/keymappings.lua b/.config/nvim/after/plugin/keymappings.lua new file mode 100644 index 0000000..ee53e16 --- /dev/null +++ b/.config/nvim/after/plugin/keymappings.lua @@ -0,0 +1,80 @@ +local Remap = require("halfdan.keymap") +local nnoremap = Remap.nnoremap +local vnoremap = Remap.vnoremap +local inoremap = Remap.inoremap +local xnoremap = Remap.xnoremap +local nmap = Remap.nmap + +-- better window movement +nnoremap('', 'h') +nnoremap('', 'j') +nnoremap('', 'k') +nnoremap('', 'l') + +-- resize with arrows +nnoremap('', ':resize -2') +nnoremap('', ':resize +2') +nnoremap('', ':vertical resize -2') +nnoremap('', ':vertical resize +2') + +-- improved keyboard support for navigation (especially terminal) +nnoremap('h', 'h') +nnoremap('j', 'j') +nnoremap('k', 'k') +nnoremap('l', 'l') +nnoremap('', 'h') +nnoremap('', 'j') +nnoremap('', 'k') +nnoremap('', 'l') + +-- Change 2 split windows from vert to horiz or horiz to vert +nnoremap('th', 'tH') +nnoremap('tk', 'tK') + +-- Make adjusting split sizes a bit more friendly +vim.cmd([[ + noremap :vertical resize +3 + noremap :vertical resize -3 + noremap :resize +3 + noremap :resize -3 +]]) + +-- better indenting +vnoremap('<', '', '>gv') + +-- Tab switch buffer +nnoremap('', ':bnext') +nnoremap('', ':bprevious') + +-- Move selected line / block of text in visual mode +xnoremap('J', ':move \'>+1gv-gv') +xnoremap('K', ':move \'<-2gv-gv') + +nnoremap('Q', '') + +-- Tagbar +nnoremap('hl', ':nohl') + +-- Vim Test +nnoremap('t', ':TestNearest') +nnoremap('T', ':TestFile') +nnoremap('a', ':TestSuite') +nnoremap('l', ':TestLast') +nnoremap('g', ':TestVisit') + +vim.cmd("nnoremap :Lspsaga diagnostic_jump_prev") +vim.cmd("nnoremap :Lspsaga diagnostic_jump_next") +-- -- scroll down hover doc or scroll in definition preview +vim.cmd("nnoremap lua require('lspsaga.action').smart_scroll_with_saga(1)") +-- -- scroll up hover doc +vim.cmd("nnoremap lua require('lspsaga.action').smart_scroll_with_saga(-1)") +vim.cmd('command! -nargs=0 LspVirtualTextToggle lua require("lsp/virtual_text").toggle()') + +-- Yank until end of line +nnoremap('Y', 'yg$') +-- Next item, but center line +nnoremap('n', 'nzzzv') +nnoremap('N', 'Nzzzv') +-- Join line but keep cursor intact +nnoremap('J', 'mzJ`z') diff --git a/.config/nvim/lua/lsp.lua b/.config/nvim/after/plugin/lsp.lua similarity index 62% rename from .config/nvim/lua/lsp.lua rename to .config/nvim/after/plugin/lsp.lua index b75f7e4..6a129dd 100644 --- a/.config/nvim/lua/lsp.lua +++ b/.config/nvim/after/plugin/lsp.lua @@ -1,3 +1,7 @@ +local Remap = require("halfdan.keymap") +local nnoremap = Remap.nnoremap +local inoremap = Remap.inoremap + -- TODO figure out why this don't work vim.fn.sign_define( "LspDiagnosticsSignError", @@ -97,48 +101,47 @@ vim.cmd([[ -- Diagnostic keymaps vim.api.nvim_set_keymap('n', 'e', 'lua vim.diagnostic.open_float()', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('n', '[d', 'lua vim.diagnostic.goto_prev()', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('n', ']d', 'lua vim.diagnostic.goto_next()', { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', 'q', 'lua vim.diagnostic.setloclist()', { noremap = true, silent = 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', 'lua vim.lsp.buf.declaration()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', 'lua vim.lsp.buf.definition()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', 'lua vim.lsp.buf.hover()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', 'lua vim.lsp.buf.implementation()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', '', 'lua vim.lsp.buf.signature_help()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'D', 'lua vim.lsp.buf.type_definition()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'rn', 'lua vim.lsp.buf.rename()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', 'lua vim.lsp.buf.references()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'ca', 'lua vim.lsp.buf.code_action()', opts) - vim.api.nvim_buf_set_keymap(bufnr, 'n', 'so', [[lua require('telescope.builtin').lsp_document_symbols()]], opts) - vim.cmd [[ command! Format execute 'lua vim.lsp.buf.formatting()' ]] +local function config(_config) + return vim.tbl_deep_extend("force", { + capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities()), + on_attach = function() + -- local opts = { noremap = true, silent = true } + nnoremap("gd", function() vim.lsp.buf.definition() end) + nnoremap("gD", function() vim.lsp.buf.declaration() end) + nnoremap("K", function() vim.lsp.buf.hover() end) + nnoremap("vws", function() vim.lsp.buf.workspace_symbol() end) + nnoremap("vd", function() vim.diagnostic.open_float() end) + nnoremap("[d", function() vim.diagnostic.goto_next() end) + nnoremap("]d", function() vim.diagnostic.goto_prev() end) + nnoremap("vca", function() vim.lsp.buf.code_action() end) + nnoremap("vrr", function() vim.lsp.buf.references() end) + nnoremap("vrn", function() vim.lsp.buf.rename() end) + inoremap("", function() vim.lsp.buf.signature_help() end) + --vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', 'lua vim.lsp.buf.implementation()', opts) + -- vim.api.nvim_buf_set_keymap(bufnr, 'n', '', 'lua vim.lsp.buf.signature_help()', opts) + -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) + -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) + -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) + -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'D', 'lua vim.lsp.buf.type_definition()', opts) + -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'ca', 'lua vim.lsp.buf.code_action()', opts) + -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'so', [[lua require('telescope.builtin').lsp_document_symbols()]], opts) + -- vim.cmd [[ command! Format execute 'lua vim.lsp.buf.formatting()' ]] + end, + }, _config or {}) end --- nvim-cmp supports additional completion capabilities -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) - - -lspconfig['elixirls'].setup{ - cmd = { "/Users/fbecker18/opt/elixir-ls/language_server.sh"}, - on_attach = on_attach, - capabilities = capabilities, -} +lspconfig['elixirls'].setup{config({ + cmd = { "/Users/fbecker18/opt/elixir-ls/language_server.sh"} +})} -- Enable the following language servers local servers = { 'gopls', 'julials', 'rust_analyzer', 'pyright' } for _, lsp in ipairs(servers) do - lspconfig[lsp].setup { - on_attach = on_attach, - capabilities = capabilities, - } + lspconfig[lsp].setup(config()) end require('rust-tools').setup({ diff --git a/.config/nvim/lua/plugins/sneak.lua b/.config/nvim/after/plugin/sneak.lua similarity index 100% rename from .config/nvim/lua/plugins/sneak.lua rename to .config/nvim/after/plugin/sneak.lua diff --git a/.config/nvim/lua/plugins/tagbar.lua b/.config/nvim/after/plugin/tagbar.lua similarity index 100% rename from .config/nvim/lua/plugins/tagbar.lua rename to .config/nvim/after/plugin/tagbar.lua diff --git a/.config/nvim/after/plugin/telescope.lua b/.config/nvim/after/plugin/telescope.lua new file mode 100644 index 0000000..05c5f3b --- /dev/null +++ b/.config/nvim/after/plugin/telescope.lua @@ -0,0 +1,32 @@ +local Remap = require("halfdan.keymap") +local nnoremap = Remap.nnoremap + +nnoremap("ps", function() + require('telescope.builtin').grep_string({ search = vim.fn.input("Grep For > ")}) +end) +nnoremap("", function() + require('telescope.builtin').git_files() +end) +nnoremap("pf", function() + require('telescope.builtin').find_files() +end) + +nnoremap("pw", function() + require('telescope.builtin').grep_string { search = vim.fn.expand("") } +end) +nnoremap("pb", function() + require('telescope.builtin').buffers() +end) +nnoremap("vh", function() + require('telescope.builtin').help_tags() +end) + +-- Telescope +-- nnoremap('fs', ':lua require(\'telescope.builtin\').grep_string({ search = vim.fn.input("Grep For > ")})') +-- nnoremap('ff', ':lua require(\'telescope.builtin\').find_files()') + +-- nnoremap('fw', ':lua require(\'telescope.builtin\').grep_string { search = vim.fn.expand("") }') +-- nnoremap('fb', ':lua require(\'telescope.builtin\').buffers()') +-- nnoremap('vh', ':lua require(\'telescope.builtin\').help_tags()') +-- nnoremap('gwl', ':lua require(\'telescope\').extensions.git_worktree.git_worktrees()') +-- nnoremap('gwc', ':lua require(\'telescope\').extensions.git_worktree.create_git_worktree()') diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 91c31c3..5169d62 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -1,20 +1 @@ -require('globals') -require('keymappings') -require('settings') -require('plugins') - -require('colorscheme') - -require('lsp') - -require('plugins.telescope') -require('plugins.telescope-project') -require('plugins.treesitter') -require('plugins.cmp') -require('plugins.lualine') -require('plugins.tagbar') -require('plugins.sneak') - -require('themes.nord') - -require('autocmds') +require('halfdan') diff --git a/.config/nvim/lua/functions.lua b/.config/nvim/lua/functions.lua deleted file mode 100644 index 4339bb8..0000000 --- a/.config/nvim/lua/functions.lua +++ /dev/null @@ -1,19 +0,0 @@ --- functions - -local M = {} - -function M.edit_dotfiles() - require'telescope.builtin'.git_files { - shorten_path = false, - cwd = "~/.dotfiles", - prompt = "~ dotfiles ~", - height = 10, - - layout_strategy = 'horizontal', - layout_options = { - preview_width = 0.75, - }, - } -end - -return M diff --git a/.config/nvim/lua/autocmds.lua b/.config/nvim/lua/halfdan/autocmds.lua similarity index 100% rename from .config/nvim/lua/autocmds.lua rename to .config/nvim/lua/halfdan/autocmds.lua diff --git a/.config/nvim/lua/colorscheme.lua b/.config/nvim/lua/halfdan/colorscheme.lua similarity index 100% rename from .config/nvim/lua/colorscheme.lua rename to .config/nvim/lua/halfdan/colorscheme.lua diff --git a/.config/nvim/lua/halfdan/debugger/init.lua b/.config/nvim/lua/halfdan/debugger/init.lua new file mode 100644 index 0000000..82d737a --- /dev/null +++ b/.config/nvim/lua/halfdan/debugger/init.lua @@ -0,0 +1,76 @@ +local dap = require("dap") +local dapui = require("dapui") +local daptext = require("nvim-dap-virtual-text") + +local remap = require("halfdan.keymap") +local nnoremap = remap.nnoremap + +daptext.setup() +dapui.setup({ + layouts = { + { + elements = { + "console", + }, + size = 7, + position = "bottom", + }, + { + elements = { + -- Elements can be strings or table with id and size keys. + { id = "scopes", size = 0.25 }, + "watches", + }, + size = 40, + position = "left", + } + }, +}) + +dap.listeners.after.event_initialized["dapui_config"] = function() + dapui.open(1) +end +dap.listeners.before.event_terminated["dapui_config"] = function() + dapui.close() +end +dap.listeners.before.event_exited["dapui_config"] = function() + dapui.close() +end + +-- require("theprimeagen.debugger.node"); + +nnoremap("", function() + dapui.toggle(1) +end) +nnoremap("", function() + dapui.toggle(2) +end) + +nnoremap("", function() + dap.close() +end) + +nnoremap("", function() + dap.continue() +end) +nnoremap("", function() + dap.step_over() +end) +nnoremap("", function() + dap.step_into() +end) +nnoremap("", function() + dap.step_out() +end) +nnoremap("b", function() + dap.toggle_breakpoint() +end) +nnoremap("B", function() + dap.set_breakpoint(vim.fn.input('Breakpoint condition: ')) +end) +nnoremap("rc", function() + dap.run_to_cursor() +end) +nnoremap("dr", function() + dap.repl.open() +end) diff --git a/.config/nvim/lua/globals.lua b/.config/nvim/lua/halfdan/globals.lua similarity index 100% rename from .config/nvim/lua/globals.lua rename to .config/nvim/lua/halfdan/globals.lua diff --git a/.config/nvim/lua/halfdan/init.lua b/.config/nvim/lua/halfdan/init.lua new file mode 100644 index 0000000..3ef9409 --- /dev/null +++ b/.config/nvim/lua/halfdan/init.lua @@ -0,0 +1,14 @@ +require("halfdan.settings") +require("halfdan.packer") +require("halfdan.neogit") + +require('halfdan.globals') +require('halfdan.keymap') + +require('halfdan.colorscheme') + +require('halfdan.themes.nord') + +require('halfdan.autocmds') + +require('halfdan.debugger') diff --git a/.config/nvim/lua/halfdan/keymap.lua b/.config/nvim/lua/halfdan/keymap.lua new file mode 100644 index 0000000..53c5cd3 --- /dev/null +++ b/.config/nvim/lua/halfdan/keymap.lua @@ -0,0 +1,20 @@ +local M = {} + +local function bind(op, outer_opts) + outer_opts = outer_opts or {noremap = true} + return function(lhs, rhs, opts) + opts = vim.tbl_extend("force", + outer_opts, + opts or {} + ) + vim.keymap.set(op, lhs, rhs, opts) + end +end + +M.nmap = bind("n", {noremap = false}) +M.nnoremap = bind("n") +M.vnoremap = bind("v") +M.xnoremap = bind("x") +M.inoremap = bind("i") + +return M diff --git a/.config/nvim/lua/plugins/lualine.lua b/.config/nvim/lua/halfdan/lualine.lua similarity index 100% rename from .config/nvim/lua/plugins/lualine.lua rename to .config/nvim/lua/halfdan/lualine.lua diff --git a/.config/nvim/lua/halfdan/neogit.lua b/.config/nvim/lua/halfdan/neogit.lua new file mode 100644 index 0000000..95d2a5b --- /dev/null +++ b/.config/nvim/lua/halfdan/neogit.lua @@ -0,0 +1,10 @@ +local neogit = require('neogit') +local nnoremap = require('halfdan.keymap').nnoremap + +neogit.setup {} + +nnoremap("gs", function() + neogit.open({ }) +end); + +nnoremap("ga", "!git fetch --all"); diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/halfdan/packer.lua similarity index 100% rename from .config/nvim/lua/plugins.lua rename to .config/nvim/lua/halfdan/packer.lua diff --git a/.config/nvim/lua/settings.lua b/.config/nvim/lua/halfdan/settings.lua similarity index 86% rename from .config/nvim/lua/settings.lua rename to .config/nvim/lua/halfdan/settings.lua index 983556a..cf0d9d0 100644 --- a/.config/nvim/lua/settings.lua +++ b/.config/nvim/lua/halfdan/settings.lua @@ -1,12 +1,12 @@ vim.cmd('set iskeyword+=-') -- treat dash separated words as a word text object" vim.cmd('set shortmess+=c') -- Don't pass messages to |ins-completion-menu|. vim.cmd('set inccommand=split') -- Make substitution work in realtime -vim.o.hidden = O.hidden_files -- Required to keep multiple buffers open multiple buffers +vim.o.hidden = true -- Required to keep multiple buffers open multiple buffers vim.o.title = true TERMINAL = vim.fn.expand('$TERMINAL') vim.cmd('let &titleold="'..TERMINAL..'"') vim.o.titlestring="%<%F%=%l/%L - nvim" -vim.wo.wrap = O.wrap_lines -- Display long lines as just one line +vim.wo.wrap = false -- Display long lines as just one line vim.cmd('set whichwrap+=<,>,[,],h,l') -- move to next line with theses keys vim.cmd('syntax on') -- syntax highlighting vim.o.pumheight = 10 -- Makes popup menu smaller @@ -22,8 +22,8 @@ vim.cmd('set ts=4') -- Insert 4 spaces for a tab vim.cmd('set sw=4') -- Change the number of space characters inserted for indentation vim.cmd('set expandtab') -- Converts tabs to spaces vim.bo.smartindent = true -- Makes indenting smart -vim.wo.number = O.number -- set numbered lines -vim.wo.relativenumber = O.relative_number -- set relative number +vim.wo.number = true -- set numbered lines +vim.wo.relativenumber = true -- set relative number vim.wo.cursorline = true -- Enable highlighting of the current line vim.o.showtabline = 2 -- Always show tabs vim.o.showmode = false -- We don't need to see things like -- INSERT -- anymore @@ -31,7 +31,7 @@ vim.o.backup = false -- This is recommended by coc vim.o.writebackup = false -- This is recommended by coc vim.wo.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift the text each time vim.o.updatetime = 300 -- Faster completion -vim.o.timeoutlen = O.timeoutlen -- By default timeoutlen is 1000 ms +vim.o.timeoutlen = 500 -- By default timeoutlen is 1000 ms vim.o.clipboard = "unnamedplus" -- Copy paste between vim and everything else vim.o.laststatus = 3 -- Set global status bar vim.opt.showtabline = 0 -- Disable tabline @@ -40,3 +40,5 @@ vim.opt.showtabline = 0 -- Disable tabline -- Enable telescope theme vim.g.gruvbox_baby_telescope_theme = 1 vim.g.gruvbox_baby_background_color = "dark" + +vim.g.mapleader = ' ' diff --git a/.config/nvim/lua/plugins/telescope-project.lua b/.config/nvim/lua/halfdan/telescope-project.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope-project.lua rename to .config/nvim/lua/halfdan/telescope-project.lua diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/halfdan/telescope.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope.lua rename to .config/nvim/lua/halfdan/telescope.lua diff --git a/.config/nvim/lua/themes/nord.lua b/.config/nvim/lua/halfdan/themes/nord.lua similarity index 100% rename from .config/nvim/lua/themes/nord.lua rename to .config/nvim/lua/halfdan/themes/nord.lua diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/halfdan/treesitter.lua similarity index 100% rename from .config/nvim/lua/plugins/treesitter.lua rename to .config/nvim/lua/halfdan/treesitter.lua diff --git a/.config/nvim/lua/keymappings.lua b/.config/nvim/lua/keymappings.lua deleted file mode 100644 index cf994cb..0000000 --- a/.config/nvim/lua/keymappings.lua +++ /dev/null @@ -1,96 +0,0 @@ -vim.g.mapleader = ' ' - --- better window movement -vim.api.nvim_set_keymap('n', '', 'h', {silent = true}) -vim.api.nvim_set_keymap('n', '', 'j', {silent = true}) -vim.api.nvim_set_keymap('n', '', 'k', {silent = true}) -vim.api.nvim_set_keymap('n', '', 'l', {silent = true}) - --- resize with arrows -vim.api.nvim_set_keymap('n', '', ':resize -2', {silent = true}) -vim.api.nvim_set_keymap('n', '', ':resize +2', {silent = true}) -vim.api.nvim_set_keymap('n', '', ':vertical resize -2', {silent = true}) -vim.api.nvim_set_keymap('n', '', ':vertical resize +2', {silent = true}) - --- improved keyboard support for navigation (especially terminal) -vim.api.nvim_set_keymap('n', 'h', 'h', {noremap = true}) -vim.api.nvim_set_keymap('n', 'j', 'j', {noremap = true}) -vim.api.nvim_set_keymap('n', 'k', 'k', {noremap = true}) -vim.api.nvim_set_keymap('n', 'l', 'l', {noremap = true}) -vim.api.nvim_set_keymap('n', '', 'h', {noremap = true}) -vim.api.nvim_set_keymap('n', '', 'j', {noremap = true}) -vim.api.nvim_set_keymap('n', '', 'k', {noremap = true}) -vim.api.nvim_set_keymap('n', '', 'l', {noremap = true}) - --- Change 2 split windows from vert to horiz or horiz to vert -vim.api.nvim_set_keymap('n', 'th', 'tH', {noremap = true}) -vim.api.nvim_set_keymap('n', 'tk', 'tK', {noremap = true}) - --- Make adjusting split sizes a bit more friendly -vim.cmd([[ - noremap :vertical resize +3 - noremap :vertical resize -3 - noremap :resize +3 - noremap :resize -3 -]]) - --- better indenting -vim.api.nvim_set_keymap('v', '<', '', '>gv', {noremap = true, silent = true}) - --- Tab switch buffer -vim.api.nvim_set_keymap('n', '', ':bnext', {noremap = true, silent = true}) -vim.api.nvim_set_keymap('n', '', ':bprevious', {noremap = true, silent = true}) - --- Move selected line / block of text in visual mode -vim.api.nvim_set_keymap('x', 'J', ':move \'>+1gv-gv', {noremap = true, silent = true}) -vim.api.nvim_set_keymap('x', 'K', ':move \'<-2gv-gv', {noremap = true, silent = true}) - -vim.api.nvim_set_keymap('n', 'Q', '', {noremap = true, silent = true}) - --- Telescope -vim.api.nvim_set_keymap('n', 'fs', ':lua require(\'telescope.builtin\').grep_string({ search = vim.fn.input("Grep For > ")})', {noremap = true}) -vim.api.nvim_set_keymap('n', 'ff', ':lua require(\'telescope.builtin\').find_files()', {noremap = true}) - -vim.api.nvim_set_keymap('n', 'fw', ':lua require(\'telescope.builtin\').grep_string { search = vim.fn.expand("") }', {noremap = true}) -vim.api.nvim_set_keymap('n', 'fb', ':lua require(\'telescope.builtin\').buffers()', {noremap = true}) -vim.api.nvim_set_keymap('n', 'vh', ':lua require(\'telescope.builtin\').help_tags()', {noremap = true}) -vim.api.nvim_set_keymap('n', 'gwl', ':lua require(\'telescope\').extensions.git_worktree.git_worktrees()', {noremap = true}) -vim.api.nvim_set_keymap('n', 'gwc', ':lua require(\'telescope\').extensions.git_worktree.create_git_worktree()', {noremap = true}) - --- Tagbar -vim.api.nvim_set_keymap('n', 'hl', ':nohl', {noremap = true}) - --- Vim Test -vim.api.nvim_set_keymap('n', 't', ':TestNearest', {noremap = true}) -vim.api.nvim_set_keymap('n', 'T', ':TestFile', {noremap = true}) -vim.api.nvim_set_keymap('n', 'a', ':TestSuite', {noremap = true}) -vim.api.nvim_set_keymap('n', 'l', ':TestLast', {noremap = true}) -vim.api.nvim_set_keymap('n', 'g', ':TestVisit', {noremap = true}) - --- LSP -vim.cmd("nnoremap gd lua vim.lsp.buf.definition()") -vim.cmd("nnoremap gD lua vim.lsp.buf.declaration()") -vim.cmd("nnoremap gr lua vim.lsp.buf.references()") -vim.cmd("nnoremap gi lua vim.lsp.buf.implementation()") -vim.cmd("nnoremap ca :Lspsaga code_action") -vim.cmd("nnoremap K :Lspsaga hover_doc") -vim.cmd("nnoremap rn lua vim.lsp.buf.rename()") -vim.cmd("nnoremap ff lua vim.lsp.buf.formatting()") - -vim.cmd('nnoremap lua vim.lsp.buf.signature_help()') -vim.cmd("nnoremap :Lspsaga diagnostic_jump_prev") -vim.cmd("nnoremap :Lspsaga diagnostic_jump_next") --- -- scroll down hover doc or scroll in definition preview -vim.cmd("nnoremap lua require('lspsaga.action').smart_scroll_with_saga(1)") --- -- scroll up hover doc -vim.cmd("nnoremap lua require('lspsaga.action').smart_scroll_with_saga(-1)") -vim.cmd('command! -nargs=0 LspVirtualTextToggle lua require("lsp/virtual_text").toggle()') - --- Yank until end of line -vim.api.nvim_set_keymap('n', 'Y', 'yg$', {noremap = true, silent = true}) --- Next item, but center line -vim.api.nvim_set_keymap('n', 'n', 'nzzzv', {noremap = true, silent = true}) -vim.api.nvim_set_keymap('n', 'N', 'Nzzzv', {noremap = true, silent = true}) --- Join line but keep cursor intact -vim.api.nvim_set_keymap('n', 'J', 'mzJ`z', {noremap = true, silent = true}) diff --git a/.config/nvim/lua/plugins/galaxyline.lua b/.config/nvim/lua/plugins/galaxyline.lua deleted file mode 100644 index 6f83618..0000000 --- a/.config/nvim/lua/plugins/galaxyline.lua +++ /dev/null @@ -1,231 +0,0 @@ -local vim = vim -local gl = require('galaxyline') -local utils = require('utils') - -local gls = gl.section -gl.short_line_list = { 'defx', 'packager', 'vista' } - --- Colors -local colors = { - bg = '#282a36', - fg = '#f8f8f2', - section_bg = '#38393f', - yellow = '#f1fa8c', - cyan = '#8be9fd', - green = '#50fa7b', - orange = '#ffb86c', - magenta = '#ff79c6', - blue = '#8be9fd', - red = '#ff5555' -} - --- Local helper functions -local buffer_not_empty = function() - return not utils.is_buffer_empty() -end - -local in_git_repo = function () - local vcs = require('galaxyline.provider_vcs') - local branch_name = vcs.get_git_branch() - - return branch_name ~= nil -end - -local checkwidth = function() - return utils.has_width_gt(40) and in_git_repo() -end - -local mode_color = function() - local mode_colors = { - n = colors.cyan, - i = colors.green, - c = colors.orange, - V = colors.magenta, - [''] = colors.magenta, - v = colors.magenta, - R = colors.red, - } - - local color = mode_colors[vim.fn.mode()] - - if color == nil then - color = colors.red - end - - return color -end - --- Left side -gls.left[1] = { - FirstElement = { - provider = function() return '▋' end, - highlight = { colors.cyan, colors.section_bg } - }, -} -gls.left[2] = { - ViMode = { - provider = function() - local alias = { - n = 'NORMAL', - i = 'INSERT', - c = 'COMMAND', - V = 'VISUAL', - [''] = 'VISUAL', - v = 'VISUAL', - R = 'REPLACE', - } - vim.api.nvim_command('hi GalaxyViMode guifg='..mode_color()) - local alias_mode = alias[vim.fn.mode()] - if alias_mode == nil then - alias_mode = vim.fn.mode() - end - return alias_mode..' ' - end, - highlight = { colors.bg, colors.bg }, - separator = " ", - separator_highlight = {colors.bg, colors.section_bg}, - }, -} -gls.left[3] ={ - FileIcon = { - provider = 'FileIcon', - condition = buffer_not_empty, - highlight = { require('galaxyline.provider_fileinfo').get_file_icon_color, colors.section_bg }, - }, -} -gls.left[4] = { - FileName = { - provider = 'FileName', - condition = buffer_not_empty, - highlight = { colors.fg, colors.section_bg }, - separator = " ", - separator_highlight = {colors.section_bg, colors.bg}, - } -} -gls.left[5] = { - GitIcon = { - provider = function() return '  ' end, - condition = in_git_repo, - highlight = {colors.red,colors.bg}, - } -} -gls.left[6] = { - GitBranch = { - provider = function() - local vcs = require('galaxyline.provider_vcs') - local branch_name = vcs.get_git_branch() - if (string.len(branch_name) > 28) then - return string.sub(branch_name, 1, 25).."..." - end - return branch_name .. " " - end, - condition = in_git_repo, - highlight = {colors.fg,colors.bg}, - } -} -gls.left[7] = { - DiffAdd = { - provider = 'DiffAdd', - condition = checkwidth, - icon = ' ', - highlight = { colors.green, colors.bg }, - } -} -gls.left[8] = { - DiffModified = { - provider = 'DiffModified', - condition = checkwidth, - icon = ' ', - highlight = { colors.orange, colors.bg }, - } -} -gls.left[9] = { - DiffRemove = { - provider = 'DiffRemove', - condition = checkwidth, - icon = ' ', - highlight = { colors.red,colors.bg }, - } -} -gls.left[10] = { - LeftEnd = { - provider = function() return ' ' end, - condition = buffer_not_empty, - highlight = {colors.section_bg,colors.bg} - } -} -gls.left[11] = { - DiagnosticError = { - provider = 'DiagnosticError', - icon = '  ', - highlight = {colors.red,colors.section_bg} - } -} -gls.left[12] = { - Space = { - provider = function () return ' ' end, - highlight = {colors.section_bg,colors.section_bg}, - } -} -gls.left[13] = { - DiagnosticWarn = { - provider = 'DiagnosticWarn', - icon = '  ', - highlight = {colors.orange,colors.section_bg}, - } -} -gls.left[14] = { - Space = { - provider = function () return ' ' end, - highlight = {colors.section_bg,colors.section_bg}, - } -} -gls.left[15] = { - DiagnosticInfo = { - provider = 'DiagnosticInfo', - icon = '  ', - highlight = {colors.blue,colors.section_bg}, - separator = ' ', - separator_highlight = { colors.section_bg, colors.bg }, - } -} - --- Right side -gls.right[1]= { - FileFormat = { - provider = function() return vim.bo.filetype end, - highlight = { colors.fg,colors.section_bg }, - separator = ' ', - separator_highlight = { colors.section_bg,colors.bg }, - } -} -gls.right[2] = { - LineInfo = { - provider = 'LineColumn', - highlight = { colors.fg, colors.section_bg }, - separator = ' | ', - separator_highlight = { colors.bg, colors.section_bg }, - }, -} - --- Short status line -gls.short_line_left[1] = { - BufferType = { - provider = 'FileTypeName', - highlight = { colors.fg, colors.section_bg }, - separator = ' ', - separator_highlight = { colors.section_bg, colors.bg }, - } -} - -gls.short_line_right[1] = { - BufferIcon = { - provider= 'BufferIcon', - highlight = { colors.yellow, colors.section_bg }, - separator = ' ', - separator_highlight = { colors.section_bg, colors.bg }, - } -} - --- Force manual load so that nvim boots with a status line -gl.load_galaxyline() diff --git a/.config/nvim/lua/utils.lua b/.config/nvim/lua/utils.lua deleted file mode 100644 index 97316b6..0000000 --- a/.config/nvim/lua/utils.lua +++ /dev/null @@ -1,13 +0,0 @@ -local M = {} - -function M.is_buffer_empty() - -- Check whether the current buffer is empty - return vim.fn.empty(vim.fn.expand('%:t')) == 1 -end - -function M.has_width_gt(cols) - -- Check if the windows width is greater than a given number of columns - return vim.fn.winwidth(0) / 2 > cols -end - -return M