diff --git a/after/ftplugin/cpp.lua b/after/ftplugin/cpp.lua new file mode 100644 index 0000000..268abf9 --- /dev/null +++ b/after/ftplugin/cpp.lua @@ -0,0 +1,5 @@ +local tab_spacing = 2 +vim.opt.tabstop = tab_spacing +vim.opt.softtabstop = tab_spacing +vim.opt.shiftwidth = tab_spacing +vim.opt_local.makeprg = 'msbuild .\\game.vcxproj /p:Configuration=Release /p:Platform=x64' diff --git a/after/ftplugin/php.lua b/after/ftplugin/php.lua new file mode 100644 index 0000000..e8f0c0c --- /dev/null +++ b/after/ftplugin/php.lua @@ -0,0 +1,4 @@ +vim.keymap.set("n", "pa", function() + package.loaded["php.artisan"] = nil + require("php.artisan").telescope_select_artisan() +end) diff --git a/after/plugin/colors.lua b/after/plugin/colors.lua new file mode 100644 index 0000000..c0ac275 --- /dev/null +++ b/after/plugin/colors.lua @@ -0,0 +1,10 @@ +function ColorMyPencils(color) + color = color or "catppuccin" + vim.cmd.colorscheme(color) + + -- make transparent BG + vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) + vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) +end + +ColorMyPencils() diff --git a/lua/barink/after/plugin/colors.lua b/lua/barink/after/plugin/colors.lua deleted file mode 100644 index 89836e9..0000000 --- a/lua/barink/after/plugin/colors.lua +++ /dev/null @@ -1,10 +0,0 @@ -function ColorMyPencils(color) - color = color or "tokyonight" - vim.cmd.colorscheme(color) - - -- make transparent BG - vim.api.nvim_set_hl(0, "Normal", {bg = "none"}) - vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none"}) -end - -ColorMyPencils() diff --git a/lua/barink/init.lua b/lua/barink/init.lua index 8ea29a6..ef37f23 100644 --- a/lua/barink/init.lua +++ b/lua/barink/init.lua @@ -1,5 +1,4 @@ require("barink.vim") -require("barink.keys") local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ @@ -12,13 +11,14 @@ if not vim.loop.fs_stat(lazypath) then }) end vim.opt.rtp:prepend(lazypath) -local opts = { - defaults = { - lazy = false, - }, - change_detection = { - enabled = true, - notify = false, - }, -} -require("lazy").setup("barink.plugins", opts) +require("barink.keys") +require("lazy").setup("barink.plugins" , { + root = vim.fn.stdpath("data") .. "/lazy", -- directory where plugins will be installed + -- leave nil when passing the spec as the first argument to setup() + change_detection = { + -- automatically check for config file changes and reload the ui + enabled = false, + notify = true, -- get a notification when changes are found + }, + +}) diff --git a/lua/barink/keys.lua b/lua/barink/keys.lua index 7c1786f..5cf7110 100644 --- a/lua/barink/keys.lua +++ b/lua/barink/keys.lua @@ -5,43 +5,70 @@ vim.keymap.set('n', '', vim.cmd.UndotreeToggle) vim.keymap.set('n', 'p', [["_dP]]) vim.keymap.set('n', 'fa', vim.lsp.buf.format) vim.keymap.set('n', 'm', ":Mason") -vim.keymap.set('n', 'e',':Explore', {noremap = false, silent=true}) -vim.keymap.set('n', 'le',':Lexplore', {noremap = false, silent=true}) -vim.keymap.set('n', 'l', ':Neotree', {noremap = false, silent= true}) --- Move lines while in visual mode -vim.keymap.set('v', '', ':m \'>+1gv=gv', {noremap = true}) -vim.keymap.set('v', '', ':m \'<-2gv=gv', {noremap = true}) +vim.keymap.set('n', 'e', ':Explore', { noremap = false, silent = true }) +vim.keymap.set('n', 'le', ':Lexplore', { noremap = false, silent = true }) +vim.keymap.set('n', 'l', ':Neotree', { noremap = false, silent = true }) +-- Move lines while in visual mode +vim.keymap.set('v', '', ':m \'>+1gv=gv', { noremap = true }) +vim.keymap.set('v', '', ':m \'<-2gv=gv', { noremap = true }) -- Move lines while in normal mode -vim.keymap.set("n", "", ":m .+1==", { noremap = true }) -vim.keymap.set("n", "", ":m .-2==", { noremap = true }) +vim.keymap.set('n', '', ':m .+1==', { noremap = true }) +vim.keymap.set('n', '', ':m .-2==', { noremap = true }) -- Move line in edit mode -vim.keymap.set("i", "", ":m .+1==gi", { noremap = true }) -vim.keymap.set("i", "", ":m .-2==gi", { noremap = true }) +vim.keymap.set('i', '', ':m .+1==gi', { noremap = true }) +vim.keymap.set('i', '', ':m .-2==gi', { noremap = true }) +-- Simplified split navigation +vim.keymap.set('n', '', '') +vim.keymap.set('n', '', '') +vim.keymap.set('n', '', '') +vim.keymap.set('n', '', '') -- Diagnostics ! -vim.keymap.set('n', '', function() require('trouble').toggle() end ) -vim.keymap.set('n', 'd', function () vim.diagnostic.open_float() end ) -vim.keymap.set('n', 'dn', function () vim.diagnostic.goto_next() end ) -vim.keymap.set('n', 'dp', function () vim.diagnostic.goto_prev() end ) -vim.keymap.set('n', '', function () vim.lsp.buf.code_action() end) - +vim.keymap.set('n', '', function() require('trouble').toggle('diagnostics') end) +vim.keymap.set('n', 'd', function() vim.diagnostic.open_float() end) +vim.keymap.set('n', 'dn', function() vim.diagnostic.goto_next() end) +vim.keymap.set('n', 'dp', function() vim.diagnostic.goto_prev() end) +vim.keymap.set('n', 'ca', function() vim.lsp.buf.code_action() end) -- Debugging -vim.keymap.set("n", "sb", function() - require("dap").toggle_breakpoint() +vim.keymap.set('n', 'b', function() require('dap').toggle_breakpoint() end) +vim.keymap.set('n', '', function() + print("Start debug session") + require('dap').continue() end) -vim.keymap.set("n", "db", function() - require("dapui").toggle() -end) -vim.keymap.set("n", "", function() - require("dap").continue() -end) -vim.keymap.set("n", "", function() - require("dap").step_over() -end) -vim.keymap.set("n", "", function() - require("dap").step_into() +vim.keymap.set('n', '', function() require('dap').step_over() end) +vim.keymap.set('n', '', function() require('dap').step_into() end) + +vim.keymap.set('n', '=', ":Gen Generate") + +-- Easily hit escape in terminal mode. +vim.keymap.set("t", "", "") + +-- Open a terminal at the bottom of the screen with a fixed height. +vim.keymap.set("n", ",st", function() + vim.cmd.new() + vim.cmd.wincmd "J" + vim.api.nvim_win_set_height(0, 12) + vim.wo.winfixheight = true + vim.cmd.term() end) -vim.keymap.set("n", "=", ":Gen Generate") +-- Open quickfix list +vim.keymap.set("n", "", "cnextzz") +vim.keymap.set("n", "", "cprevzz") + + +-- Go to next in location list +vim.keymap.set("n", "k", "lnextzz") +vim.keymap.set("n", "j", "lprevzz") + + +-- Highlight on yank +vim.api.nvim_create_autocmd("TextYankPost", { + desc = "Highlight when yanking text ", + group = vim.api.nvim_create_augroup('barink', { clear = true }), + callback = function() + vim.highlight.on_yank() + end +}) diff --git a/lua/barink/plugins/Oil.lua b/lua/barink/plugins/Oil.lua index a9acfc0..c878914 100644 --- a/lua/barink/plugins/Oil.lua +++ b/lua/barink/plugins/Oil.lua @@ -2,13 +2,13 @@ return { { "stevearc/oil.nvim", opt = { - default_file_explorer = false + default_file_explorer = true }, dependencies = { 'nvim-tree/nvim-web-devicons' }, - config = function () - vim.keymap.set("n", "-", "Oil", { desc= "Open parent directory"}) + config = function() + vim.keymap.set("n", "-", "Oil", { desc = "Open parent directory" }) end } } diff --git a/lua/barink/plugins/conform.lua b/lua/barink/plugins/conform.lua index fecf484..1a1b10a 100644 --- a/lua/barink/plugins/conform.lua +++ b/lua/barink/plugins/conform.lua @@ -1,35 +1,31 @@ return { "stevearc/conform.nvim", - event = { "BufWritePre"}, - cmd = { "ConformInfo"}, - opts = { - formatters_by_ft = { - php = { "pint"}, - lua = { "stylua"}, - javascript = { "prettierd", "prettier", stop_after_first = true }, - typescript = { "prettierd", "prettier", stop_after_first = true }, - }, - format_on_save = { timeout_ms = 500 }, - default_format_ops = { - lsp_format = "fallback" - }, - }, - config = function () - require("conform").setup() - -- Command to run async formatting - vim.api.nvim_create_user_command("Format", function(args) - local range = nil - if args.count ~= -1 then - local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1] - range = { - start = { args.line1, 0 }, - ["end"] = { args.line2, end_line:len() }, - } - end - require("conform").format({ async = true, lsp_format = "fallback", range = range }) - end, { range = true }) - - + config = function() + require("conform").setup( + { + formatters_by_ft = { + php = { "pint" }, + lua = { "stylua" }, + javascript = { "prettierd", "prettier", stop_after_first = true }, + typescript = { "prettierd", "prettier", stop_after_first = true }, + java = { "clang-format", }, + cpp = { "clang-format", }, + }, + format_on_save = { + lsp_fallback = true, + }, + }) + -- Command to run async formatting + vim.api.nvim_create_user_command("Format", function(args) + local range = nil + if args.count ~= -1 then + local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1] + range = { + start = { args.line1, 0 }, + ["end"] = { args.line2, end_line:len() }, + } + end + require("conform").format({ async = true, lsp_format = "fallback", range = range }) + end, { range = true }) end } - diff --git a/lua/barink/plugins/dap.lua b/lua/barink/plugins/dap.lua index 0552b34..5ec7d1e 100644 --- a/lua/barink/plugins/dap.lua +++ b/lua/barink/plugins/dap.lua @@ -22,21 +22,38 @@ return { }, config = function () local dap = require('dap') + -- Godot Config + dap.adapters.godot = { + type = "server", + host = "127.0.0.1", + port = 6006 + } + --dap.configurations.gdscript{ + -- type = "godot", + -- request = "launch", + -- name = "launch scene", + -- project = "${workspaceFolder}" + --} + -- C/C++ Config dap.configurations.cpp = { { name = "Launch", - type= "codelldb", + type= "lldb", request = "launch", program = function () return vim.fn.input('Path to executable: ', vim.fn.getcwd() , 'file') end, - cwd = '${workspaceFolder}/Framework', stopOnEntry = false, + runInTerminal = false, } } dap.adapters.lldb = { - type = 'executable', - command = "C:\\Program Files\\LLVM\\bin\\lldb-dap.exe", + type = 'server', + port= "${port}", + executable = { + command = "C:\\Users\\nigel\\AppData\\Local\\nvim-data\\mason\\bin\\codelldb.cmd", + args = { "--port", "${port}"} + }, name = 'lldb' } @@ -57,17 +74,7 @@ return { name = "Launch file", program = "java ${file}", }} - dap.configurations.cpp = {{ - name="launch", - type="lldb", - request="launch", - program = function () - return vim.fn.input('Path to executable: ', vim.fn.getcwd() ..'/', 'file') - end, - cwd = '${workspaceFolder}', - stopOnEntry = false, - args = {}, - }} + -- Golang config dap.configurations.go = { { type = "delve", @@ -99,14 +106,20 @@ return { args = {'dap', '-l', '127.0.0.1:${port}'}, } } - dap.adapters.codelldb = { - type= 'server', - port = '${port}', - executable = { - command = 'C:/Users/Nigel/Appdata/Local/nvim-data/mason/bin/codelldb.cmd', - args = {"--port", "${port}"} - } - } + local dap = require("dap") + local ui = require("dapui") + dap.listeners.before.attach.dapui_config = function() + ui.open() + end + dap.listeners.before.launch.dapui_config = function() + ui.open() + end + dap.listeners.before.event_terminated.dapui_config = function() + ui.close() + end + dap.listeners.before.event_exited.dapui_config = function() + ui.close() + end end } } diff --git a/lua/barink/plugins/fidget.lua b/lua/barink/plugins/fidget.lua new file mode 100644 index 0000000..b27cae3 --- /dev/null +++ b/lua/barink/plugins/fidget.lua @@ -0,0 +1,8 @@ +return { + "j-hui/fidget.nvim", + config = function() + local opts = { + } + require("fidget").setup(opts) + end +} diff --git a/lua/barink/plugins/gitsigns.lua b/lua/barink/plugins/gitsigns.lua index 4a7e525..0c57fd3 100644 --- a/lua/barink/plugins/gitsigns.lua +++ b/lua/barink/plugins/gitsigns.lua @@ -1,4 +1,29 @@ return { 'lewis6991/gitsigns.nvim', - opt = {} + config = function() + local opts = { + signs = { + add = { text = '+' }, + change = { text = "~" }, + delete = { text = "_" }, + topdelete = { text = "-" }, + changedelete = { text = "~" } + }, + signs_staged = { + add = { text = '+' }, + change = { text = "~" }, + delete = { text = "_" }, + topdelete = { text = "-" }, + changedelete = { text = "~" }, + untracked = { text = "*" }, + }, + signs_staged_enable = true, + signcolumn = true, + watch_gitdir = { + follow_files = true + }, + auto_attach = true + } + require("gitsigns").setup(opts) + end, } diff --git a/lua/barink/plugins/harpoon.lua b/lua/barink/plugins/harpoon.lua index 1816903..5a4c561 100644 --- a/lua/barink/plugins/harpoon.lua +++ b/lua/barink/plugins/harpoon.lua @@ -1,18 +1,37 @@ return { "ThePrimeagen/harpoon", branch= "harpoon2", - dependencies = {{"nvim-lua/plenary.nvim"}}, + dependencies = { + {"nvim-lua/plenary.nvim"}, + {"nvim-telescope/telescope.nvim"} + }, config = function() local harpoon = require("harpoon") harpoon.setup() vim.keymap.set("n", "ha", function() harpoon:list():add() end) vim.keymap.set("n", "hh", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end) + local conf = require("telescope.config").values + local function toggle_telescope(harpoon_files) + local file_paths = {} + for _, item in ipairs(harpoon_files.items) do + table.insert(file_paths, item.value) + end - vim.keymap.set("n", "1", function() harpoon:list():select(1) end) - vim.keymap.set("n", "2", function() harpoon:list():select(2) end) - vim.keymap.set("n", "3", function() harpoon:list():select(3) end) - vim.keymap.set("n", "4", function() harpoon:list():select(4) end) + require("telescope.pickers").new({}, { + result = file_paths, + previewer = conf.file_previewer({}), + sorter = conf.generic_sorter({}), + }):find() + end + + vim.keymap.set("n", "ha", function() harpoon:list():add() end) + vim.keymap.set("n", "hh", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end) + vim.keymap.set("n", "fe", function () toggle_telescope(harpoon:list()) end, { desc = "Open harpoon window"} ) + vim.keymap.set("n", "C-1", function() harpoon:list():select(1) end) + vim.keymap.set("n", "C-2", function() harpoon:list():select(2) end) + vim.keymap.set("n", "C-3", function() harpoon:list():select(3) end) + vim.keymap.set("n", "C-4", function() harpoon:list():select(4) end) vim.keymap.set("n", "", function() harpoon:list():prev() end) diff --git a/lua/barink/plugins/lsp.lua b/lua/barink/plugins/lsp.lua index 37d13d7..865baed 100644 --- a/lua/barink/plugins/lsp.lua +++ b/lua/barink/plugins/lsp.lua @@ -1,179 +1,202 @@ return - { - 'neovim/nvim-lspconfig', - dependencies = { - { - "folke/neoconf.nvim", - opts = {} - }, - "williamboman/mason-lspconfig", - "williamboman/mason.nvim", - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-buffer", - "hrsh7th/cmp-path", - "hrsh7th/cmp-cmdline", - "hrsh7th/nvim-cmp", - { - 'L3MON4D3/LuaSnip', - dependencies = 'hrsh7th/nvim-cmp', - version = "v2.*", - }, - {'mfussenegger/nvim-jdtls', dependencies = {'nvim-dap'}}, +{ + 'neovim/nvim-lspconfig', + dependencies = { + { + "folke/neoconf.nvim", + opts = {} }, - config = function() - require("mason").setup() - require("mason-lspconfig").setup({ - ensure_installed = { "lua_ls", "bashls", "rust_analyzer" } - }) - local cmp = require('cmp') - cmp.setup({ - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) - end, - }, - mapping = cmp.mapping.preset.insert({ - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.abort(), - [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + "williamboman/mason-lspconfig", + "williamboman/mason.nvim", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "hrsh7th/cmp-cmdline", + "hrsh7th/nvim-cmp", + { + 'L3MON4D3/LuaSnip', + dependencies = { + 'hrsh7th/nvim-cmp', + 'rafamadriz/friendly-snippets', + }, + version = "v2.*", + }, + { 'mfussenegger/nvim-jdtls', dependencies = { 'nvim-dap' } }, + "onsails/lspkind.nvim", + }, + config = function() + vim.opt.completeopt = { "menu", "menuone", "noselect", "preview" } + require("lspkind").init({}) + require("mason").setup() + require("mason-lspconfig").setup({ + ensure_installed = { "lua_ls", "bashls", "rust_analyzer" } + }) + local ls = require("luasnip") + ls.config.set_config({ + history = true, + updateevents = "TextChanged, TextChangedI", + enable_autosnippets = true, + }) + local cmp = require('cmp') + local lspkind = require("lspkind") + cmp.setup({ + formatting = { + format = lspkind.cmp_format({ + mode = 'symbol', + maxwidth = 60, + ellipsis_char = '...', + show_labelDetails = true, }), - sources = cmp.config.sources({ - { name = 'nvim_lsp', keyword_length = 1 }, - { name = 'luasnip', option = { show_autosnippets = true}}, - { name = 'path' }, - }, { - { name = 'buffer', keyword_length = 2 }, - }), - window = { - documentation = cmp.config.window.bordered() - }, + }, + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp', keyword_length = 1 }, + { name = 'luasnip' }, + { name = 'path' }, + { name = 'buffer', keyword_length = 2 }, + }), + window = { + documentation = cmp.config.window.bordered() + }, + }) + + -- Set configuration for specific filetype. + cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). + }, { + { name = 'buffer' }, }) + }) - -- Set configuration for specific filetype. - cmp.setup.filetype('gitcommit', { - sources = cmp.config.sources({ - { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). - }, { - { name = 'buffer' }, - }) - }) + cmp.setup.filetype({ "sql" }, { + sources = { + { name = "vim-dadbod-completion" }, + { name = "buffer" }, + } + }) + -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). + -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). + cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' }, + { name = 'buffer' } + }, { + { name = 'cmdline' } + }), + matching = { disallow_symbol_nonprefix_matching = false } + }) - -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). - cmp.setup.cmdline({ '/', '?' }, { - mapping = cmp.mapping.preset.cmdline(), - sources = { - { name = 'buffer' } + + vim.keymap.set({ "i", "s" }, "", function() ls.expand() end, { silent = true }) + vim.keymap.set({ "i", "s" }, "", function() ls.jump(1) end, { silent = true }) + vim.keymap.set({ "i", "s" }, "", function() ls.jump(-1) end, { silent = true }) + vim.keymap.set({ "i", "s" }, "", function() + if ls.choice_active() then + ls.change_choice(1) + end + end, { silent = true }) + + require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/lua/barink/snippets" }) + require("luasnip.loaders.from_vscode").lazy_load() + -- Set up lspconfig. + local capabilities = require("cmp_nvim_lsp").default_capabilities() + local lsp = require("lspconfig") + + local language_server = { + asm_lsp = true, + mojo = true, + zls = true, + emmet_language_server = true, + rust_analyzer = true, + --gdtoolkit = { flags = { debounce_text_changes = 150 }}, + jdtls = true, + pylsp = true, + phpactor = { + init_options = { + ["language_server_phpstan.enabled"] = false, + ["language_server_psalm.enabled"] = false, } - }) - - -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). - cmp.setup.cmdline(':', { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = 'path' } - }, { - { name = 'cmdline' } - }), - matching = { disallow_symbol_nonprefix_matching = false } - }) - - local ls = require("luasnip") - ls.config.set_config({ - history = true, - updateevents = "TextChanged, TextChangedI", - enable_autosnippets = true, - }) - - vim.keymap.set({"i", "s"}, "", function() ls.expand() end, {silent = true}) - vim.keymap.set({"i", "s"}, "", function() ls.jump(1) end, {silent = true }) - vim.keymap.set({"i", "s"}, "", function() ls.jump(-1) end, {silent = true}) - vim.keymap.set({"i", "s"}, "", function() - if ls.choice_active() then - ls.change_choice(1) - end - end, {silent = true}) - - require("luasnip.loaders.from_lua").load({paths= "~/.config/nvim/lua/barink/snippets"}) - - - -- Set up lspconfig. - local capabilities = require("cmp_nvim_lsp").default_capabilities() - local lsp = require("lspconfig") - - local language_server = { - asm_lsp= true, - zls = true, - kotlin_language_server = true, - emmet_language_server = true, - rust_analyzer = true, - jdtls = true, - pylsp = true, - phpactor = { - init_options = { - ["language_server_phpstan.enabled"] = false, - ["language_server_psalm.enabled"] = false, - } - }, - clangd = { + }, + clangd = { capabilities = capabilities, root_dir = require('lspconfig').util.root_pattern("compile_commands.json", "compile_flags.txt", ".git"), - cmd = {"clangd"}, - filetypes = { "c", "cpp", "objc", "objcpp"}, + cmd = { "clangd" }, + filetypes = { "c", "cpp", "objc", "objcpp" }, settings = { clangd = { compilationDatabasePath = "compile-commands.json", - }, - } - }, - ts_ls = true, - gopls = true, - intelephense = true, - lua_ls = { + }, + } + }, + ts_ls = true, + gopls = true, + intelephense = true, + lua_ls = { + config = { settings = { Lua = { + runtime = { + version = 'LuaJIT', + }, + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME + } + }, diagnostics = { - globals = { 'vim'} + globals = { 'vim' } } } } - }, - } + } + }, + } - for name, config in pairs(language_server) do - if config == true then - config = {} - end - config = vim.tbl_deep_extend("force", {}, { capabilities = capabilities }, config) - lsp[name].setup({}) + for name, config in pairs(language_server) do + if config == true then + config = {} end - vim.api.nvim_create_autocmd("LspAttach", { - callback = function (args) - local client = assert(vim.lsp.get_client_by_id(args.data.client_id), "must have valid client") - - local settings = language_server[client.name] - if type(settings) ~= "table" then - settings = {} - end - - local builtin = require "telescope.builtin" - - vim.opt_local.omnifunc = "v:lua.vim.lsp.omnifunc" - vim.keymap.set("n", "gd", builtin.lsp_definitions, {buffer = -1}) - vim.keymap.set("n", "gr", builtin.lsp_references, {buffer = -1}) - vim.keymap.set("n", "gD", vim.lsp.buf.declaration, {buffer = -1}) - vim.keymap.set("n", "gT", vim.lsp.buf.type_definition, {buffer = -1}) - vim.keymap.set("n", "K", vim.lsp.buf.hover, {buffer = -1}) - - vim.keymap.set("n", "cr", vim.lsp.buf.rename, {buffer =-1}) - vim.keymap.set("n", "ca", vim.lsp.buf.code_action, {buffer = -1}) - vim.keymap.set("n", "wd", builtin.lsp_document_symbols, {buffer = -1}) - + config = vim.tbl_deep_extend("force", {}, { capabilities = capabilities }, config) + lsp[name].setup({}) + end + vim.api.nvim_create_autocmd("LspAttach", { + callback = function(args) + local client = assert(vim.lsp.get_client_by_id(args.data.client_id), "must have valid client") + local settings = language_server[client.name] + if type(settings) ~= "table" then + settings = {} end + + local builtin = require "telescope.builtin" + + vim.opt_local.omnifunc = "v:lua.vim.lsp.omnifunc" + vim.keymap.set("n", "gd", builtin.lsp_definitions, { buffer = -1 }) + vim.keymap.set("n", "gr", builtin.lsp_references, { buffer = -1 }) + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { buffer = -1 }) + vim.keymap.set("n", "gT", vim.lsp.buf.type_definition, { buffer = -1 }) + vim.keymap.set("n", "K", vim.lsp.buf.hover, { buffer = -1 }) + + vim.keymap.set("n", "cr", vim.lsp.buf.rename, { buffer = -1 }) + vim.keymap.set("n", "ca", vim.lsp.buf.code_action, { buffer = -1 }) + vim.keymap.set("n", "wd", builtin.lsp_document_symbols, { buffer = -1 }) + end }) - end, + end, } diff --git a/lua/barink/plugins/oil.lua b/lua/barink/plugins/oil.lua index a9acfc0..c878914 100644 --- a/lua/barink/plugins/oil.lua +++ b/lua/barink/plugins/oil.lua @@ -2,13 +2,13 @@ return { { "stevearc/oil.nvim", opt = { - default_file_explorer = false + default_file_explorer = true }, dependencies = { 'nvim-tree/nvim-web-devicons' }, - config = function () - vim.keymap.set("n", "-", "Oil", { desc= "Open parent directory"}) + config = function() + vim.keymap.set("n", "-", "Oil", { desc = "Open parent directory" }) end } } diff --git a/lua/barink/plugins/telescope.lua b/lua/barink/plugins/telescope.lua index eaa0654..92e1f32 100644 --- a/lua/barink/plugins/telescope.lua +++ b/lua/barink/plugins/telescope.lua @@ -21,7 +21,7 @@ return { vim.keymap.set('n', '/', builtin.current_buffer_fuzzy_find) vim.keymap.set('n', 'gw', builtin.grep_string) vim.keymap.set('n', 'fp',function () - builtin.find_files { cwd = "~/AppData/Local/nvim/lua/barink/"} + builtin.find_files { cwd = "~/.config/nvim/lua/barink/"} end) end } diff --git a/lua/barink/plugins/theme.lua b/lua/barink/plugins/theme.lua index 6c5e379..d6d65de 100644 --- a/lua/barink/plugins/theme.lua +++ b/lua/barink/plugins/theme.lua @@ -1,30 +1,27 @@ --- return { --- "folke/tokyonight.nvim", --- lazy = false, --- priority = 1000, --- opts = {}, --- config = function() --- require("tokyonight").setup({ --- style = "night", --- light_style = "day", --- transparent = true, --- terminal_colors = true, --- dim_inactive = false, --- lualine_bold = false, --- }) --- --- vim.cmd [[colorscheme tokyonight]] --- end --- } - return { { - "catppuccin/nvim", - name="catppuccin", - priority=1000, - config = function () - require("catppuccin").setup() - vim.cmd.colorscheme('catppuccin') - end + "folke/tokyonight.nvim", + lazy = false, + priority = 1000, + opts = {}, + config = function() + require("tokyonight").setup({ + style = "night", + light_style = "day", + transparent = true, + terminal_colors = true, + dim_inactive = false, + lualine_bold = false, + }) + end + }, + { + "catppuccin/nvim", + name = "catppuccin", + priority = 1000, + config = function() + require("catppuccin").setup() + vim.cmd.colorscheme('catppuccin') + end } } diff --git a/lua/barink/plugins/which-key.lua b/lua/barink/plugins/which-key.lua deleted file mode 100644 index 4696062..0000000 --- a/lua/barink/plugins/which-key.lua +++ /dev/null @@ -1,15 +0,0 @@ -return { - "folke/which-key.nvim", - event = "VeryLazy", - opts = { - }, - keys = { - { - "?", - function() - require("which-key").show({global = false}) - end, - desc = "Buffer Local Keymaps (which-key)", - } - } -} diff --git a/lua/barink/vim.lua b/lua/barink/vim.lua index 4f5a67a..7d263c1 100644 --- a/lua/barink/vim.lua +++ b/lua/barink/vim.lua @@ -21,29 +21,27 @@ vim.opt.termguicolors = true vim.opt.scrolloff = 8 -vim.g.netrw_browse_split = 0 -vim.g.netrw_winsize = 25 - -vim.opt.completeopt = {'menu', 'menuone', 'noselect' } - +vim.opt.completeopt = { 'menu', 'menuone', 'noselect' } +vim.opt.inccommand = 'split' vim.api.nvim_create_autocmd('LspAttach', { - callback = function (args) + callback = function(args) local client = vim.lsp.get_client_by_id(args.data.client_id) if client.server_capabilities.hoverProvider then - vim.keymap.set('n', 'K', vim.lsp.buf.hover, {buffer = args.buf}) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, { buffer = args.buf }) end end, }) +vim.g.netrw_browse_split = 0 +vim.g.netrw_winsize = 25 + + --[[ --- Run zig test on save --- TODO: fix vim.cmd call --- TODO: only do this when a zig test file is open +-- Run zig test on save +-- TODO: fix vim.cmd call +-- TODO: only do this when a zig test file is open vim.api.nvim_create_autocmd('BufWritePost' , { callback = function () vim.cmd{cmd = '!zig' , args= {'test', vim.fn.expand('%')} } end -})]]-- - - - +})]] --