diff --git a/src_files/.config/git/config b/src_files/.config/git/config index a74b861..53acd0a 100644 --- a/src_files/.config/git/config +++ b/src_files/.config/git/config @@ -3,3 +3,5 @@ [user] name = david email = david@pinewoods.xyz +[push] + autoSetupRemote = true diff --git a/src_files/.config/nvim/init.lua b/src_files/.config/nvim/init.lua index c1a2a49..2281c9e 100644 --- a/src_files/.config/nvim/init.lua +++ b/src_files/.config/nvim/init.lua @@ -1 +1,13 @@ -require("david_standard") +local csGroup = vim.api.nvim_create_augroup("coreSettingsGroup", { clear = true }) +local csgAutocmd = vim.api.nvim_create_autocmd + +require("settings") +require("plugin_manager") +require("key_mappings") +require("colorscheme_settings") + +csgAutocmd({"BufWritePre"}, { + group = csGroup, + pattern = "*", + command = [[%s/\s\+$//e]], +}) diff --git a/src_files/.config/nvim/lsp/clangd.lua b/src_files/.config/nvim/lsp/clangd.lua new file mode 100644 index 0000000..8d88b78 --- /dev/null +++ b/src_files/.config/nvim/lsp/clangd.lua @@ -0,0 +1,5 @@ +return { + cmd = { 'clangd' }, + root_markers = { '.clangd', 'compile_commands.json' }, + filetypes = { 'c', 'cpp' }, +} diff --git a/src_files/.config/nvim/lua/david_standard/lsp/ruby.lua b/src_files/.config/nvim/lsp/ruby.lua similarity index 100% rename from src_files/.config/nvim/lua/david_standard/lsp/ruby.lua rename to src_files/.config/nvim/lsp/ruby.lua diff --git a/src_files/.config/nvim/lua/david_standard/colorscheme_settings.lua b/src_files/.config/nvim/lua/colorscheme_settings.lua similarity index 95% rename from src_files/.config/nvim/lua/david_standard/colorscheme_settings.lua rename to src_files/.config/nvim/lua/colorscheme_settings.lua index 2b23f68..9a85b23 100644 --- a/src_files/.config/nvim/lua/david_standard/colorscheme_settings.lua +++ b/src_files/.config/nvim/lua/colorscheme_settings.lua @@ -6,7 +6,7 @@ function SetColorSchemeWrapper(scheme) vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) end -SetColorSchemeWrapper() +SetColorSchemeWrapper("tokyonight-night") -- TODO: get this working as desired for different file types -- local dsGroup = vim.api.nvim_create_augroup("DavidStandardGroup", { clear = false }) diff --git a/src_files/.config/nvim/lua/david_standard/init.lua b/src_files/.config/nvim/lua/david_standard/init.lua deleted file mode 100644 index bb91b75..0000000 --- a/src_files/.config/nvim/lua/david_standard/init.lua +++ /dev/null @@ -1,33 +0,0 @@ -local dsGroup = vim.api.nvim_create_augroup("DavidStandardGroup", { clear = true }) -local dsgAutocmd = vim.api.nvim_create_autocmd - -require("david_standard.settings") -require("david_standard.key_mappings") -require("david_standard.plugin_config") -require("david_standard.plugin_key_mappings") -require("david_standard.colorscheme_settings") -require("david_standard.lsp_enables") - -dsgAutocmd({"BufWritePre"}, { - group = dsGroup, - pattern = "*", - command = [[%s/\s\+$//e]], -}) - --- TODO: put this into separate file(s) for lsp stuff? if so, pass in or make new autocmd -dsgAutocmd('LspAttach', { - group = dsGroup, - callback = function(e) - local opts = { buffer = e.buf } - vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) - vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) - vim.keymap.set("i", "", function() vim.lsp.buf.signature_help() end, opts) - vim.keymap.set("n", "vdv", function() vim.diagnostic.open_float() end, opts) - vim.keymap.set("n", "vdn", function() vim.diagnostic.goto_next() end, opts) - vim.keymap.set("n", "vdp", function() vim.diagnostic.goto_prev() end, opts) - vim.keymap.set("n", "vws", function() vim.lsp.buf.workspace_symbol() end, opts) - vim.keymap.set("n", "vca", function() vim.lsp.buf.code_action() end, opts) - vim.keymap.set("n", "vrl", function() vim.lsp.buf.references() end, opts) - vim.keymap.set("n", "vrn", function() vim.lsp.buf.rename() end, opts) - end -}) diff --git a/src_files/.config/nvim/lua/david_standard/key_mappings.lua b/src_files/.config/nvim/lua/david_standard/key_mappings.lua deleted file mode 100644 index 4f016c8..0000000 --- a/src_files/.config/nvim/lua/david_standard/key_mappings.lua +++ /dev/null @@ -1,55 +0,0 @@ --- explore the directory of the current file (using netrw) -vim.keymap.set("n", "n", vim.cmd.Ex) - --- move selected lines up or down -vim.keymap.set("v", "J", ":m '>+1gv") -vim.keymap.set("v", "K", ":m '<-2gv") - --- vertically center cursor with half-page jumps -vim.keymap.set("n", "", "zz") -vim.keymap.set("n", "", "zz") - --- open folds when iterating search results -vim.keymap.set("n", "n", "nzv") -vim.keymap.set("n", "N", "Nzv") - --- maintain cursor position after paragraph formatting -vim.keymap.set("n", "=ap", "ma=ap'a") - --- shortcuts for deleting into the void register -vim.keymap.set({ "n", "v" }, "d", "\"_d") -vim.keymap.set("x", "P", [["_dP]]) -- replace selected text, keep main register - --- shortcuts for using + register (system clipboard) -vim.keymap.set({ "n", "v" }, "y", [["+y]]) -vim.keymap.set("n", "Y", [["+Y]]) -vim.keymap.set("n", "D", [["+D]]) -vim.keymap.set("n", "p", [["+p]]) - --- search-and-replace shortcuts -vim.keymap.set("n", "rw", [[:%s/\<\>//gI]]) -vim.keymap.set("n", "ra", [[:%s//g]]) - --- toggle expandtab and show message -vim.keymap.set("n", "tab", function() - if vim.opt.expandtab:get() then - vim.opt.expandtab = false - print("using actual tabs") - else - vim.opt.expandtab = true - print("using spaces in place of tabs") - end -end) - --- quicker switching between panes/splits -vim.keymap.set("n", "", [[h]]) -vim.keymap.set("n", "", [[j]]) -vim.keymap.set("n", "", [[k]]) -vim.keymap.set("n", "", [[l]]) - --- TODO: learn about quickfix (:help quickfix), then maybe use these --- vim.keymap.set("n", "", "cnextzz") --- vim.keymap.set("n", "", "cprevzz") --- vim.keymap.set("n", "k", "lnextzz") --- vim.keymap.set("n", "j", "lprevzz") - diff --git a/src_files/.config/nvim/lua/david_standard/lsp_enables.lua b/src_files/.config/nvim/lua/david_standard/lsp_enables.lua deleted file mode 100644 index c7473d1..0000000 --- a/src_files/.config/nvim/lua/david_standard/lsp_enables.lua +++ /dev/null @@ -1,10 +0,0 @@ --- c - --- c++ - --- ruby -vim.lsp.enable('ruby_lsp') --- vim.lsp.enable('typeprof') -- ruby builtin/official (but still labled experimental) --- vim.lsp.enable('standardrb') --- vim.lsp.enable('solargraph') --- vim.lsp.enable('herb_ls') -- targets html + ruby (erb files) diff --git a/src_files/.config/nvim/lua/david_standard/plugin_key_mappings.lua b/src_files/.config/nvim/lua/david_standard/plugin_key_mappings.lua deleted file mode 100644 index dd21bb1..0000000 --- a/src_files/.config/nvim/lua/david_standard/plugin_key_mappings.lua +++ /dev/null @@ -1,54 +0,0 @@ --- telescope -local builtin = require('telescope.builtin') -local custom_tscope_grep = function() - builtin.grep_string({ search = vim.fn.input("grep > ")}) -end -vim.keymap.set('n', 'ft', builtin.live_grep, { - desc = 'Telescope find text (live_grep)' -}) -vim.keymap.set('n', 'fT', custom_tscope_grep, { - desc = 'Telescope find text (grep_string)' -}) -vim.keymap.set('n', 'fg', builtin.git_files, { - desc = 'Telescope find git-tracked files' -}) -vim.keymap.set('n', 'ff', builtin.find_files, { desc = 'Telescope find files' }) -vim.keymap.set('n', 'fb', builtin.buffers, { desc = 'Telescope buffers' }) -vim.keymap.set('n', 'fh', builtin.help_tags, { desc = 'Telescope help tags' }) - --- harpoon -local harpoon = require("harpoon") -vim.keymap.set("n", "hl", function() - harpoon.ui:toggle_quick_menu(harpoon:list()) -end) -vim.keymap.set("n", "ha", function() harpoon:list():add() end) -vim.keymap.set("n", "hA", function() harpoon:list():prepend() end) -vim.keymap.set("n", "hn", function() harpoon:list():next() end) -vim.keymap.set("n", "hp", function() harpoon:list():prev() end) -vim.keymap.set("n", "hz", function() harpoon:list():select(1) end) -vim.keymap.set("n", "hx", function() harpoon:list():select(2) end) -vim.keymap.set("n", "hc", function() harpoon:list():select(3) end) -vim.keymap.set("n", "hv", function() harpoon:list():select(4) end) -vim.keymap.set("n", "hZ", function() harpoon:list():replace_at(1) end) -vim.keymap.set("n", "hX", function() harpoon:list():replace_at(2) end) -vim.keymap.set("n", "hC", function() harpoon:list():replace_at(3) end) -vim.keymap.set("n", "hV", function() harpoon:list():replace_at(4) end) - --- undotree -vim.keymap.set("n", "u", vim.cmd.UndotreeToggle) - --- treesitter and treesitter-context -vim.keymap.set("n", "tc", function() vim.cmd.TSContext({ "toggle" }) end) - --- fugitive (git integration) -vim.keymap.set("n", "gG", vim.cmd.Git) -vim.keymap.set("n", "gg", ":Git ") -- shortcut, arbitrary git commands -vim.keymap.set("n", "ga", function() vim.cmd.Git({ "add %"}) end) -vim.keymap.set("n", "gs", function() vim.cmd.Git({ "-p status" }) end) -vim.keymap.set("n", "gc", function() vim.cmd.Git({ "commit -a" }) end) - --- conform (formatter) -vim.keymap.set("n", "fmt", function() - require("conform").format({ bufnr = 0 }) -end) - diff --git a/src_files/.config/nvim/lua/key_mappings.lua b/src_files/.config/nvim/lua/key_mappings.lua new file mode 100644 index 0000000..d132dae --- /dev/null +++ b/src_files/.config/nvim/lua/key_mappings.lua @@ -0,0 +1,140 @@ +local kmGroup = vim.api.nvim_create_augroup("KeymappingsGroup", { clear = true }) +local kmgAutocmd = vim.api.nvim_create_autocmd + +------------------------------------------------------------------------------------------ +-- core + +-- explore the directory of the current file (using netrw) +vim.keymap.set("n", "n", vim.cmd.Ex) + +-- move selected lines up or down +vim.keymap.set("v", "J", ":m '>+1gv") +vim.keymap.set("v", "K", ":m '<-2gv") + +-- vertically center cursor with half-page jumps +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "", "zz") + +-- open folds when iterating search results +vim.keymap.set("n", "n", "nzv") +vim.keymap.set("n", "N", "Nzv") + +-- maintain cursor position after paragraph formatting +vim.keymap.set("n", "=ap", "ma=ap'a") + +-- shortcuts for deleting into the void register +vim.keymap.set({ "n", "v" }, "d", "\"_d") +vim.keymap.set("x", "P", [["_dP]]) -- replace selected text, keep main register + +-- shortcuts for using + register (system clipboard) +vim.keymap.set({ "n", "v" }, "y", [["+y]]) +vim.keymap.set("n", "Y", [["+Y]]) +vim.keymap.set("n", "D", [["+D]]) +vim.keymap.set("n", "p", [["+p]]) + +-- search-and-replace shortcuts +vim.keymap.set("n", "rw", [[:%s/\<\>//gI]]) +vim.keymap.set("n", "ra", [[:%s//g]]) + +-- toggle expandtab and show message +vim.keymap.set("n", "tab", function() + if vim.opt.expandtab:get() then + vim.opt.expandtab = false + print("using actual tabs") + else + vim.opt.expandtab = true + print("using spaces in place of tabs") + end +end) + +-- quicker switching between panes/splits +vim.keymap.set("n", "", [[h]]) +vim.keymap.set("n", "", [[j]]) +vim.keymap.set("n", "", [[k]]) +vim.keymap.set("n", "", [[l]]) + +------------------------------------------------------------------------------------------ +-- quickfix TODO: learn about quickfix (:help quickfix), then maybe use these + +-- vim.keymap.set("n", "", "cnextzz") +-- vim.keymap.set("n", "", "cprevzz") +-- vim.keymap.set("n", "k", "lnextzz") +-- vim.keymap.set("n", "j", "lprevzz") + +------------------------------------------------------------------------------------------ +-- lsp + +kmgAutocmd('LspAttach', { + group = kmGroup, + callback = function(e) + local opts = { buffer = e.buf } + vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) + vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) + vim.keymap.set("i", "", function() vim.lsp.buf.signature_help() end, opts) + vim.keymap.set("n", "vdv", function() vim.diagnostic.open_float() end, opts) + vim.keymap.set("n", "vdn", function() vim.diagnostic.goto_next() end, opts) + vim.keymap.set("n", "vdp", function() vim.diagnostic.goto_prev() end, opts) + vim.keymap.set("n", "vws", function() vim.lsp.buf.workspace_symbol() end, opts) + vim.keymap.set("n", "vca", function() vim.lsp.buf.code_action() end, opts) + vim.keymap.set("n", "vrl", function() vim.lsp.buf.references() end, opts) + vim.keymap.set("n", "vrn", function() vim.lsp.buf.rename() end, opts) + end +}) + +------------------------------------------------------------------------------------------ +-- plugins + +-- telescope +local builtin = require('telescope.builtin') +local custom_tscope_grep = function() + builtin.grep_string({ search = vim.fn.input("grep > ")}) +end +vim.keymap.set('n', 'ft', builtin.live_grep, { + desc = 'Telescope find text (live_grep)' +}) +vim.keymap.set('n', 'fT', custom_tscope_grep, { + desc = 'Telescope find text (grep_string)' +}) +vim.keymap.set('n', 'fg', builtin.git_files, { + desc = 'Telescope find git-tracked files' +}) +vim.keymap.set('n', 'ff', builtin.find_files, { desc = 'Telescope find files' }) +vim.keymap.set('n', 'fb', builtin.buffers, { desc = 'Telescope buffers' }) +vim.keymap.set('n', 'fh', builtin.help_tags, { desc = 'Telescope help tags' }) + +-- harpoon +local harpoon = require("harpoon") +vim.keymap.set("n", "hl", function() + harpoon.ui:toggle_quick_menu(harpoon:list()) +end) +vim.keymap.set("n", "ha", function() harpoon:list():add() end) +vim.keymap.set("n", "hA", function() harpoon:list():prepend() end) +vim.keymap.set("n", "hn", function() harpoon:list():next() end) +vim.keymap.set("n", "hp", function() harpoon:list():prev() end) +vim.keymap.set("n", "hz", function() harpoon:list():select(1) end) +vim.keymap.set("n", "hx", function() harpoon:list():select(2) end) +vim.keymap.set("n", "hc", function() harpoon:list():select(3) end) +vim.keymap.set("n", "hv", function() harpoon:list():select(4) end) +vim.keymap.set("n", "hZ", function() harpoon:list():replace_at(1) end) +vim.keymap.set("n", "hX", function() harpoon:list():replace_at(2) end) +vim.keymap.set("n", "hC", function() harpoon:list():replace_at(3) end) +vim.keymap.set("n", "hV", function() harpoon:list():replace_at(4) end) + +-- undotree +vim.keymap.set("n", "u", vim.cmd.UndotreeToggle) + +-- treesitter and treesitter-context +vim.keymap.set("n", "tc", function() vim.cmd.TSContext({ "toggle" }) end) + +-- fugitive (git integration) +vim.keymap.set("n", "gG", vim.cmd.Git) +vim.keymap.set("n", "gg", ":Git ") -- shortcut, arbitrary git commands +vim.keymap.set("n", "ga", function() vim.cmd.Git({ "add %"}) end) +vim.keymap.set("n", "gs", function() vim.cmd.Git({ "-p status" }) end) +vim.keymap.set("n", "gc", function() vim.cmd.Git({ "commit -a" }) end) + +-- conform (formatter) +vim.keymap.set("n", "fmt", function() + require("conform").format({ bufnr = 0 }) +end) + diff --git a/src_files/.config/nvim/lua/david_standard/plugin_config.lua b/src_files/.config/nvim/lua/plugin_manager.lua similarity index 93% rename from src_files/.config/nvim/lua/david_standard/plugin_config.lua rename to src_files/.config/nvim/lua/plugin_manager.lua index 4934154..e3a3b6b 100644 --- a/src_files/.config/nvim/lua/david_standard/plugin_config.lua +++ b/src_files/.config/nvim/lua/plugin_manager.lua @@ -22,7 +22,7 @@ vim.opt.rtp:prepend(path_lazy_nvim) require("lazy").setup({ spec = { - { import = "david_standard.plugins_lazy" }, + { import = "plugins_lazy" }, }, checker = { enabled = false }, change_detection = { notify = false }, diff --git a/src_files/.config/nvim/lua/david_standard/plugins_lazy/colorschemes.lua b/src_files/.config/nvim/lua/plugins_lazy/colorschemes.lua similarity index 100% rename from src_files/.config/nvim/lua/david_standard/plugins_lazy/colorschemes.lua rename to src_files/.config/nvim/lua/plugins_lazy/colorschemes.lua diff --git a/src_files/.config/nvim/lua/david_standard/plugins_lazy/conform_formatter.lua b/src_files/.config/nvim/lua/plugins_lazy/conform_formatter.lua similarity index 100% rename from src_files/.config/nvim/lua/david_standard/plugins_lazy/conform_formatter.lua rename to src_files/.config/nvim/lua/plugins_lazy/conform_formatter.lua diff --git a/src_files/.config/nvim/lua/david_standard/plugins_lazy/fugitive_git.lua b/src_files/.config/nvim/lua/plugins_lazy/fugitive_git.lua similarity index 100% rename from src_files/.config/nvim/lua/david_standard/plugins_lazy/fugitive_git.lua rename to src_files/.config/nvim/lua/plugins_lazy/fugitive_git.lua diff --git a/src_files/.config/nvim/lua/david_standard/plugins_lazy/harpoon.lua b/src_files/.config/nvim/lua/plugins_lazy/harpoon.lua similarity index 100% rename from src_files/.config/nvim/lua/david_standard/plugins_lazy/harpoon.lua rename to src_files/.config/nvim/lua/plugins_lazy/harpoon.lua diff --git a/src_files/.config/nvim/lua/david_standard/plugins_lazy/lsp.lua b/src_files/.config/nvim/lua/plugins_lazy/lsp.lua similarity index 89% rename from src_files/.config/nvim/lua/david_standard/plugins_lazy/lsp.lua rename to src_files/.config/nvim/lua/plugins_lazy/lsp.lua index 720d53a..6d1c4a4 100644 --- a/src_files/.config/nvim/lua/david_standard/plugins_lazy/lsp.lua +++ b/src_files/.config/nvim/lua/plugins_lazy/lsp.lua @@ -28,9 +28,10 @@ return { require("mason").setup() require("mason-lspconfig").setup({ ensure_installed = { + "clangd", "lua_ls", - -- "gopls", "ruby_lsp", + -- "gopls", -- "tailwindcss", }, handlers = { @@ -68,7 +69,7 @@ return { [''] = cmp.mapping.select_next_item(cmp_select), [''] = cmp.mapping.select_prev_item(cmp_select), [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.scroll_docs(4), }), snippet = { expand = function(args) @@ -86,6 +87,9 @@ return { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered(), }, + performance = { + max_view_entries = 14, + }, }) -- `/` cmdline setup. @@ -110,5 +114,11 @@ return { prefix = "", }, }) - end + + -- TODO: enables needed? or does neovim/nvim-lspconfig cover by default? + -- vim.lsp.enable('clangd') + -- vim.lsp.enable('ruby_lsp') + -- vim.lsp.enable('standardrb') + -- vim.lsp.enable('herb_ls') -- targets html + ruby (erb files) + end, } diff --git a/src_files/.config/nvim/lua/david_standard/plugins_lazy/telescope.lua b/src_files/.config/nvim/lua/plugins_lazy/telescope.lua similarity index 59% rename from src_files/.config/nvim/lua/david_standard/plugins_lazy/telescope.lua rename to src_files/.config/nvim/lua/plugins_lazy/telescope.lua index 66427b0..10e0c94 100644 --- a/src_files/.config/nvim/lua/david_standard/plugins_lazy/telescope.lua +++ b/src_files/.config/nvim/lua/plugins_lazy/telescope.lua @@ -8,10 +8,21 @@ local glob_patterns_live_grep = { } return { - 'nvim-telescope/telescope.nvim', - tag = '0.1.8', - dependencies = { 'nvim-lua/plenary.nvim' }, + "nvim-telescope/telescope.nvim", + tag = "0.1.8", + dependencies = { "nvim-lua/plenary.nvim" }, opts = { + defaults = { + layout_strategy = "horizontal", + layout_config = { + horizontal = { + width = 0.98, + height = 0.98, + preview_width = 0.45, + }, + }, + path_display = { "truncate", }, + }, pickers = { find_files = { find_command = { @@ -23,7 +34,7 @@ return { additional_args = { "--no-ignore", "--hidden", unpack(glob_patterns_live_grep), - } + } }, }, }, diff --git a/src_files/.config/nvim/lua/david_standard/plugins_lazy/treesitter.lua b/src_files/.config/nvim/lua/plugins_lazy/treesitter.lua similarity index 100% rename from src_files/.config/nvim/lua/david_standard/plugins_lazy/treesitter.lua rename to src_files/.config/nvim/lua/plugins_lazy/treesitter.lua diff --git a/src_files/.config/nvim/lua/david_standard/plugins_lazy/undotree.lua b/src_files/.config/nvim/lua/plugins_lazy/undotree.lua similarity index 100% rename from src_files/.config/nvim/lua/david_standard/plugins_lazy/undotree.lua rename to src_files/.config/nvim/lua/plugins_lazy/undotree.lua diff --git a/src_files/.config/nvim/lua/david_standard/settings.lua b/src_files/.config/nvim/lua/settings.lua similarity index 100% rename from src_files/.config/nvim/lua/david_standard/settings.lua rename to src_files/.config/nvim/lua/settings.lua