diff --git a/init.lua b/init.lua index 8e34539..a8cf558 100644 --- a/init.lua +++ b/init.lua @@ -1,13 +1,13 @@ -require("globals") -require("options") -require("config.lazy") -require("mappings") -require("autocmd") -vim.cmd("source ~/.config/nvim/suda.vim") +require "globals" +require "options" +require "config.lazy" +require "mappings" +require "autocmd" +vim.cmd "source ~/.config/nvim/suda.vim" local time = tonumber(os.date "%H") -vim.filetype.add({ - pattern = {[".*/hypr/.*%.conf"] = "hyprlang", [".*/uwsm/env.*"] = "zsh"} -}) +vim.filetype.add { + pattern = { [".*/hypr/.*%.conf"] = "hyprlang", [".*/uwsm/env.*"] = "zsh" }, +} vim.cmd [[colorscheme catppuccin-macchiato]] diff --git a/lua/config/actions-preview.lua b/lua/config/actions-preview.lua index 90f1850..0d7efb1 100644 --- a/lua/config/actions-preview.lua +++ b/lua/config/actions-preview.lua @@ -1,2 +1 @@ -require'actions-preview'.setup{ -} +require("actions-preview").setup {} diff --git a/lua/config/autopairs.lua b/lua/config/autopairs.lua index 7d73a0a..6be9c78 100644 --- a/lua/config/autopairs.lua +++ b/lua/config/autopairs.lua @@ -1,3 +1,3 @@ -local npairs = require('nvim-autopairs') +local npairs = require "nvim-autopairs" -npairs.setup({}) +npairs.setup {} diff --git a/lua/config/autosession.lua b/lua/config/autosession.lua index b6d9306..3b27534 100644 --- a/lua/config/autosession.lua +++ b/lua/config/autosession.lua @@ -1,4 +1,4 @@ -require("auto-session").setup({ +require("auto-session").setup { { enabled = true, root_dir = vim.fn.stdpath "data" .. "/sessions/", @@ -24,14 +24,14 @@ require("auto-session").setup({ theme_conf = {}, previewer = false, mappings = { - delete_session = {"i", ""}, - alternate_session = {"i", ""}, - copy_session = {"i", ""} + delete_session = { "i", "" }, + alternate_session = { "i", "" }, + copy_session = { "i", "" }, }, session_control = { control_dir = vim.fn.stdpath "data" .. "/auto_session/", - control_filename = "session_control.json" - } - } - } -}) + control_filename = "session_control.json", + }, + }, + }, +} diff --git a/lua/config/barbar.lua b/lua/config/barbar.lua index ca5a8a7..d4dbc85 100644 --- a/lua/config/barbar.lua +++ b/lua/config/barbar.lua @@ -1,25 +1,25 @@ -require("bufferline").setup({ +require("bufferline").setup { options = { diagnostics = "coc", diagnostics_indicator = function(count, level, diagnostics_dict, context) local s = " " for e, n in pairs(diagnostics_dict) do - local sym = e == "error" and " " or - (e == "warning" and " " or " ") + local sym = e == "error" and " " or (e == "warning" and " " or " ") s = s .. n .. sym end return s end, always_show_bufferline = true, offsets = { - {filetype = "NvimTree", text = "Explorer", text_align = "center"}, - {filetype = "snacks_layout_box"} + { filetype = "NvimTree", text = "Explorer", text_align = "center" }, + { filetype = "snacks_layout_box" }, }, - vim.api.nvim_create_autocmd({"BufAdd", "BufDelete"}, - { + vim.api.nvim_create_autocmd({ "BufAdd", "BufDelete" }, { callback = function() - vim.schedule(function() pcall(nvim_bufferline) end) - end - }) - } -}) + vim.schedule(function() + pcall(nvim_bufferline) + end) + end, + }), + }, +} diff --git a/lua/config/cmp.lua b/lua/config/cmp.lua index 7651025..db05675 100644 --- a/lua/config/cmp.lua +++ b/lua/config/cmp.lua @@ -1,57 +1,55 @@ -local cmp = require("cmp") -local cmp_lsp = require("cmp_nvim_lsp") +local cmp = require "cmp" +local cmp_lsp = require "cmp_nvim_lsp" local M = {} -M.capabilities = vim.tbl_deep_extend( - "force", - {}, - vim.lsp.protocol.make_client_capabilities(), - cmp_lsp.default_capabilities() -) +M.capabilities = + vim.tbl_deep_extend("force", {}, vim.lsp.protocol.make_client_capabilities(), cmp_lsp.default_capabilities()) local cmp_kinds = { - Text = ' ', - Method = ' ', - Function = ' ', - Constructor = ' ', - Field = ' ', - Variable = ' ', - Class = ' ', - Interface = ' ', - Module = ' ', - Property = ' ', - Unit = ' ', - Value = ' ', - Enum = ' ', - Keyword = ' ', - Snippet = ' ', - Color = ' ', - File = ' ', - Reference = ' ', - Folder = ' ', - EnumMember = ' ', - Constant = ' ', - Struct = ' ', - Event = ' ', - Operator = ' ', - TypeParameter = ' ' + Text = " ", + Method = " ", + Function = " ", + Constructor = " ", + Field = " ", + Variable = " ", + Class = " ", + Interface = " ", + Module = " ", + Property = " ", + Unit = " ", + Value = " ", + Enum = " ", + Keyword = " ", + Snippet = " ", + Color = " ", + File = " ", + Reference = " ", + Folder = " ", + EnumMember = " ", + Constant = " ", + Struct = " ", + Event = " ", + Operator = " ", + TypeParameter = " ", } cmp.setup { formatting = { - fields = {'kind', 'abbr'}, + fields = { "kind", "abbr" }, format = function(entry, vim_item) - vim_item.kind = cmp_kinds[vim_item.kind] or '' + vim_item.kind = cmp_kinds[vim_item.kind] or "" if entry.completion_item.detail then vim_item.menu = entry.completion_item.detail end return vim_item - end + end, }, - completion = {completeopt = "menu,menuone"}, + completion = { completeopt = "menu,menuone" }, snippet = { - expand = function(args) require("luasnip").lsp_expand(args.body) end + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, }, mapping = { -- change later zach is ???? [""] = cmp.mapping.scroll_docs(-4), @@ -60,7 +58,7 @@ cmp.setup { [""] = cmp.mapping.close(), [""] = cmp.mapping.confirm { behavior = cmp.ConfirmBehavior.Insert, - select = true + select = true, }, [""] = cmp.mapping(function(fallback) if cmp.visible() then @@ -70,7 +68,7 @@ cmp.setup { else fallback() end - end, {"i", "s"}), + end, { "i", "s" }), [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() @@ -79,14 +77,16 @@ cmp.setup { else fallback() end - end, {"i", "s"}) + end, { "i", "s" }), }, - sources = cmp.config.sources({ - {name = "path"}, {name = "nvim_lsp"}, {name = "luasnip"}, -- snip snip - {name = "buffer"}, {name = "nvim_lua"} - }) + sources = cmp.config.sources { + { name = "path" }, + { name = "nvim_lsp" }, + { name = "luasnip" }, -- snip snip + { name = "buffer" }, + { name = "nvim_lua" }, + }, } return M - diff --git a/lua/config/colorizer.lua b/lua/config/colorizer.lua index ed68fe2..94c7d66 100644 --- a/lua/config/colorizer.lua +++ b/lua/config/colorizer.lua @@ -1,11 +1,10 @@ -require("colorizer").setup({ +require("colorizer").setup { user_default_options = { mode = "virtualtext", virtualtext = "■", css = true, tailwind = true, - sass = {enable = true, parsers = {"css"}}, - virtualtext_inline = 'before' - } -}) - + sass = { enable = true, parsers = { "css" } }, + virtualtext_inline = "before", + }, +} diff --git a/lua/config/cord.lua b/lua/config/cord.lua index 593dbd7..7351245 100644 --- a/lua/config/cord.lua +++ b/lua/config/cord.lua @@ -1,3 +1 @@ -require("cord").setup { -} - +require("cord").setup {} diff --git a/lua/config/dap.lua b/lua/config/dap.lua index cb2b211..2f8dd64 100644 --- a/lua/config/dap.lua +++ b/lua/config/dap.lua @@ -1,32 +1,31 @@ -local dap = require('dap') +local dap = require "dap" dap.adapters.python = function(cb, config) - if config.request == 'attach' then + if config.request == "attach" then ---@diagnostic disable-next-line: undefined-field local port = (config.connect or config).port ---@diagnostic disable-next-line: undefined-field - local host = (config.connect or config).host or '127.0.0.1' - cb({ - type = 'server', - port = assert(port, - '`connect.port` is required for a python `attach` configuration'), + local host = (config.connect or config).host or "127.0.0.1" + cb { + type = "server", + port = assert(port, "`connect.port` is required for a python `attach` configuration"), host = host, - options = {source_filetype = 'python'} - }) + options = { source_filetype = "python" }, + } else - cb({ - type = 'executable', - command = 'path/to/virtualenvs/debugpy/bin/python', - args = {'-m', 'debugpy.adapter'}, - options = {source_filetype = 'python'} - }) + cb { + type = "executable", + command = "path/to/virtualenvs/debugpy/bin/python", + args = { "-m", "debugpy.adapter" }, + options = { source_filetype = "python" }, + } end end dap.configurations.python = { { -- The first three options are required by nvim-dap - type = 'python', -- the type here established the link to the adapter definition: `dap.adapters.python` - request = 'launch', + type = "python", -- the type here established the link to the adapter definition: `dap.adapters.python` + request = "launch", name = "Launch file", -- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options @@ -37,35 +36,34 @@ dap.configurations.python = { -- The code below looks for a `venv` or `.venv` folder in the current directly and uses the python within. -- You could adapt this - to for example use the `VIRTUAL_ENV` environment variable. local cwd = vim.fn.getcwd() - if vim.fn.executable(cwd .. '/venv/bin/python') == 1 then - return cwd .. '/venv/bin/python' - elseif vim.fn.executable(cwd .. '/.venv/bin/python') == 1 then - return cwd .. '/.venv/bin/python' + if vim.fn.executable(cwd .. "/venv/bin/python") == 1 then + return cwd .. "/venv/bin/python" + elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then + return cwd .. "/.venv/bin/python" else - return '/home/zach/miniconda3/bin/python' + return "/home/zach/miniconda3/bin/python" end - end - } + end, + }, } dap.adapters.lldb = { - type = 'executable', - command = '/usr/bin/lldb-vscode', -- adjust as needed, must be absolute path - name = 'lldb' + type = "executable", + command = "/usr/bin/lldb-vscode", -- adjust as needed, must be absolute path + name = "lldb", } dap.configurations.cpp = { { - name = 'Launch', - type = 'lldb', - request = 'launch', + name = "Launch", + type = "lldb", + request = "launch", program = function() - return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', - 'file') + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") end, - cwd = '${workspaceFolder}', + cwd = "${workspaceFolder}", stopOnEntry = false, - args = {} + args = {}, -- 💀 -- if you change `runInTerminal` to true, you might need to change the yama/ptrace_scope setting: @@ -79,7 +77,7 @@ dap.configurations.cpp = { -- But you should be aware of the implications: -- https://www.kernel.org/doc/html/latest/admin-guide/LSM/Yama.html -- runInTerminal = false, - } + }, } dap.adapters["pwa-node"] = { @@ -91,9 +89,9 @@ dap.adapters["pwa-node"] = { -- 💀 Make sure to update this path to point to your installation args = { "%HOME/.config/nvim/java-dap/js-debug/src/dapDebugServer.js", - "${port}" - } - } + "${port}", + }, + }, } dap.configurations.javascript = { @@ -102,10 +100,10 @@ dap.configurations.javascript = { request = "launch", name = "Launch file", program = "${file}", - cwd = "${workspaceFolder}" - } + cwd = "${workspaceFolder}", + }, } dap.configurations.java = { - {type = "java", name = "Debug", request = "launch", program = "${file}"} + { type = "java", name = "Debug", request = "launch", program = "${file}" }, } diff --git a/lua/config/indent-blankline.lua b/lua/config/indent-blankline.lua index e6fb5c1..35c3c21 100644 --- a/lua/config/indent-blankline.lua +++ b/lua/config/indent-blankline.lua @@ -1,22 +1,26 @@ local highlight = { - "RainbowRed", "RainbowYellow", "RainbowBlue", "RainbowOrange", - "RainbowGreen", "RainbowViolet", "RainbowCyan" + "RainbowRed", + "RainbowYellow", + "RainbowBlue", + "RainbowOrange", + "RainbowGreen", + "RainbowViolet", + "RainbowCyan", } local hooks = require "ibl.hooks" -- create the highlight groups in the highlight setup hook, so they are reset -- every time the colorscheme changes hooks.register(hooks.type.HIGHLIGHT_SETUP, function() - vim.api.nvim_set_hl(0, "RainbowRed", {fg = "#E06C75"}) - vim.api.nvim_set_hl(0, "RainbowYellow", {fg = "#E5C07B"}) - vim.api.nvim_set_hl(0, "RainbowBlue", {fg = "#61AFEF"}) - vim.api.nvim_set_hl(0, "RainbowOrange", {fg = "#D19A66"}) - vim.api.nvim_set_hl(0, "RainbowGreen", {fg = "#98C379"}) - vim.api.nvim_set_hl(0, "RainbowViolet", {fg = "#C678DD"}) - vim.api.nvim_set_hl(0, "RainbowCyan", {fg = "#56B6C2"}) + vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" }) + vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" }) + vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" }) + vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" }) + vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" }) + vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" }) + vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" }) end) -vim.g.rainbow_delimiters = {highlight = highlight} -require("ibl").setup {indent = {char = "▏"}, scope = {highlight = highlight}} +vim.g.rainbow_delimiters = { highlight = highlight } +require("ibl").setup { indent = { char = "▏" }, scope = { highlight = highlight } } -hooks.register(hooks.type.SCOPE_HIGHLIGHT, - hooks.builtin.scope_highlight_from_extmark) +hooks.register(hooks.type.SCOPE_HIGHLIGHT, hooks.builtin.scope_highlight_from_extmark) diff --git a/lua/config/lazy.lua b/lua/config/lazy.lua index 7eeca95..87e977f 100644 --- a/lua/config/lazy.lua +++ b/lua/config/lazy.lua @@ -1,15 +1,20 @@ -- Bootstrap lazy.nvim -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then local lazyrepo = "https://github.com/folke/lazy.nvim.git" - local out = vim.fn.system({ - "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, - lazypath - }) + local out = vim.fn.system { + "git", + "clone", + "--filter=blob:none", + "--branch=stable", + lazyrepo, + lazypath, + } if vim.v.shell_error ~= 0 then vim.api.nvim_echo({ - {"Failed to clone lazy.nvim:\n", "ErrorMsg"}, {out, "WarningMsg"}, - {"\nPress any key to exit..."} + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, }, true, {}) vim.fn.getchar() os.exit(1) @@ -24,14 +29,14 @@ vim.g.mapleader = " " vim.g.maplocalleader = "\\" -- Setup lazy.nvim -require("lazy").setup({ +require("lazy").setup { spec = { -- import your plugins - {import = "plugins"} + { import = "plugins" }, }, -- Configure any other settings here. See the documentation for more details. -- colorscheme that will be used when installing plugins. - install = {colorscheme = {"habamax"}}, + install = { colorscheme = { "habamax" } }, -- automatically check for plugin updates - checker = {enabled = true} -}) + checker = { enabled = true }, +} diff --git a/lua/config/lspconfig.lua b/lua/config/lspconfig.lua index 4900d31..08a8b11 100644 --- a/lua/config/lspconfig.lua +++ b/lua/config/lspconfig.lua @@ -1,58 +1,32 @@ -local mason = require("mason") -local mason_lspconfig = require("mason-lspconfig") -local lspconfig = require("lspconfig") local cmp_cap = require("config.cmp").capabilities --- Fix this! -local lspenable = vim.lsp.enable -lspenable("") +local servers = { + "zls", + "ts_ls", + "yamlls", + "vimls", + "pyright", + "denols", + "lua_ls", + "qmlls", + "nil_ls", + "arduino_language_server", + "cmake", + "clangd", + "hyprls", + "nginx_language_server", + "docker_compose_language_service", + "dockerls", + "rust_analyzer", + "html", + "cssls", + "tailwindcss", + "jdtls", +} -mason.setup() - -mason_lspconfig.setup({ - handlers = { - function(server_name) - lspconfig[server_name].setup({capabilities = cmp_cap}) - end - } -}) - --- locally installed lsps -vim.lsp.enable('zls') -vim.lsp.enable('ts_ls') -vim.lsp.enable('yamlls') -vim.lsp.enable('vimls') -vim.lsp.enable('pyright') -vim.lsp.enable('denols') -vim.lsp.enable('lua_ls') -vim.lsp.enable('qmlls') -vim.lsp.enable('nil_ls') -vim.lsp.enable('arduino-langauge-server') -vim.lsp.enable('cmake') -vim.lsp.enable('clangd') -vim.lsp.enable('hyprls') -vim.lsp.enable('nginx_language_server') -vim.lsp.enable('docker_compose_language_service') -vim.lsp.enable('dockerls') -vim.lsp.enable('rust_analyzer') -vim.lsp.enable('html') -vim.lsp.enable('cssls') -vim.lsp.enable('tailwindcss') -vim.lsp.enable('jdtls') - -vim.diagnostic.config({ - virtual_text = true, - float = { - focusable = false, - style = "minimal", - border = "rounded", - source = "always", - header = "", - prefix = "" - } -}) - -vim.api.nvim_set_keymap("n", "gd", "lua vim.lsp.buf.definition()", - {noremap = true, silent = true}) -vim.api.nvim_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", - {noremap = true, silent = true}) +for _, server in ipairs(servers) do + vim.lsp.config(server, { + capabilities = cmp_cap, + }) + vim.lsp.enable(server) +end diff --git a/lua/config/lualine.lua b/lua/config/lualine.lua index b515bf1..18fc0a7 100644 --- a/lua/config/lualine.lua +++ b/lua/config/lualine.lua @@ -1,21 +1,22 @@ local fn = vim.fn local function get_coc_lsp_client() - local clients = vim.g.coc_service_initialized and - vim.fn['CocAction']('services') or {} + local clients = vim.g.coc_service_initialized and vim.fn["CocAction"] "services" or {} for _, client in pairs(clients) do - if client['state'] == 'running' then - local client_name = client['id'] + if client["state"] == "running" then + local client_name = client["id"] -- Remove 'languageserver.' prefix if it exists - client_name = client_name:gsub('^languageserver%.', '') + client_name = client_name:gsub("^languageserver%.", "") return client_name end end - return '' + return "" end local function spell() - if vim.o.spell then return string.format("[SPELL]") end + if vim.o.spell then + return string.format "[SPELL]" + end return "" end @@ -23,10 +24,11 @@ end --- show indicator for Chinese IME local function ime_state() if vim.g.is_mac then - local layout = fn.libcall(vim.g.XkbSwitchLib, "Xkb_Switch_getXkbLayout", - "") + local layout = fn.libcall(vim.g.XkbSwitchLib, "Xkb_Switch_getXkbLayout", "") local res = fn.match(layout, [[\v(Squirrel\.Rime|SCIM.ITABC)]]) - if res ~= -1 then return "[CN]" end + if res ~= -1 then + return "[CN]" + end end return "" @@ -34,23 +36,27 @@ end local diff = function() local git_status = vim.b.gitsigns_status_dict - if git_status == nil then return end + if git_status == nil then + return + end local modify_num = git_status.changed local remove_num = git_status.removed local add_num = git_status.added - local info = {added = add_num, modified = modify_num, removed = remove_num} + local info = { added = add_num, modified = modify_num, removed = remove_num } -- vim.print(info) return info end local virtual_env = function() -- only show virtual env for Python - if vim.bo.filetype ~= "python" then return "" end + if vim.bo.filetype ~= "python" then + return "" + end - local conda_env = os.getenv("CONDA_DEFAULT_ENV") - local venv_path = os.getenv("VIRTUAL_ENV") + local conda_env = os.getenv "CONDA_DEFAULT_ENV" + local venv_path = os.getenv "VIRTUAL_ENV" if venv_path == nil then if conda_env == nil then @@ -69,13 +75,13 @@ require("lualine").setup { icons_enabled = true, theme = "auto", globalstatus = false, - component_separators = '', - section_separators = {left = '', right = ''}, + component_separators = "", + section_separators = { left = "", right = "" }, disabled_filetypes = {}, - always_divide_middle = true + always_divide_middle = true, }, sections = { - lualine_a = {{"mode"}}, + lualine_a = { { "mode" } }, lualine_b = { { "branch", @@ -83,46 +89,48 @@ require("lualine").setup { -- truncate branch name in case the name is too long return string.sub(name, 1, 20) end, - color = {gui = "italic,bold"}, - separator = {right = ""} - }, {virtual_env, color = {fg = "black", bg = "#F1CA81"}} + color = { gui = "italic,bold" }, + separator = { right = "" }, + }, + { virtual_env, color = { fg = "black", bg = "#F1CA81" } }, }, lualine_c = { - {"filename", symbols = {readonly = "[🔒]"}}, - {"diff", source = diff}, - {"%S", color = {gui = "bold", fg = "cyan"}}, - {spell, color = {fg = "black", bg = "#a7c080"}} + { "filename", symbols = { readonly = "[🔒]" } }, + { "diff", source = diff }, + { "%S", color = { gui = "bold", fg = "cyan" } }, + { spell, color = { fg = "black", bg = "#a7c080" } }, }, lualine_x = { - {ime_state, color = {fg = "black", bg = "#f46868"}}, - {get_coc_lsp_client, icon = " LSP:"}, { + { ime_state, color = { fg = "black", bg = "#f46868" } }, + { get_coc_lsp_client, icon = " LSP:" }, + { "diagnostics", - sources = {"nvim_diagnostic"}, + sources = { "nvim_diagnostic" }, symbols = { error = "🆇 ", warn = "⚠️ ", info = "ℹ️ ", - hint = " " - } - } + hint = " ", + }, + }, }, lualine_y = { - {"encoding", fmt = string.upper}, - {"fileformat", symbols = {unix = "", dos = "", mac = ""}}, - "filetype" + { "encoding", fmt = string.upper }, + { "fileformat", symbols = { unix = "", dos = "", mac = "" } }, + "filetype", }, - lualine_z = {"progress"} + lualine_z = { "progress" }, }, inactive_sections = { lualine_a = {}, lualine_b = {}, - lualine_c = {"filename"}, - lualine_x = {"location"}, + lualine_c = { "filename" }, + lualine_x = { "location" }, lualine_y = {}, - lualine_z = {} + lualine_z = {}, }, tabline = {}, - extensions = {"quickfix", "fugitive", "nvim-tree"} + extensions = { "quickfix", "fugitive", "nvim-tree" }, } vim.o.laststatus = 0 -- required for some reason -> avoid two bar lualine /w tmux diff --git a/lua/config/neorg.lua b/lua/config/neorg.lua index aac932e..0bff7a4 100644 --- a/lua/config/neorg.lua +++ b/lua/config/neorg.lua @@ -1,5 +1,5 @@ -require("neorg").setup({ +require("neorg").setup { load = { ["core.defaults"] = {}, - } -}) + }, +} diff --git a/lua/config/notify.lua b/lua/config/notify.lua index bd975cb..37ba152 100644 --- a/lua/config/notify.lua +++ b/lua/config/notify.lua @@ -1,7 +1,7 @@ -vim.notify = require('notify') -local dap = require('dap') +vim.notify = require "notify" +local dap = require "dap" -require('notify').setup({ +require("notify").setup { render = "wrapped-default", timeout = 6000, max_width = 50, @@ -13,20 +13,22 @@ require('notify').setup({ WARN = "", INFO = "", DEBUG = "", - TRACE = "✎" + TRACE = "✎", }, on_open = function(win) -- vim.api.nvim_win_set_option(win, 'wrap', true) - vim.api.nvim_win_set_option(win, 'breakat', ' ') - end -}) + vim.api.nvim_win_set_option(win, "breakat", " ") + end, +} -- Utility functions shared between progress reports for LSP and DAP local client_notifs = {} local function get_notif_data(client_id, token) - if not client_notifs[client_id] then client_notifs[client_id] = {} end + if not client_notifs[client_id] then + client_notifs[client_id] = {} + end if not client_notifs[client_id][token] then client_notifs[client_id][token] = {} @@ -35,7 +37,7 @@ local function get_notif_data(client_id, token) return client_notifs[client_id][token] end -local spinner_frames = {"⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"} +local spinner_frames = { "⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷" } local function update_spinner(client_id, token) local notif_data = get_notif_data(client_id, token) @@ -47,10 +49,12 @@ local function update_spinner(client_id, token) notif_data.notification = vim.notify(nil, nil, { hide_from_history = true, icon = spinner_frames[new_spinner], - replace = notif_data.notification + replace = notif_data.notification, }) - vim.defer_fn(function() update_spinner(client_id, token) end, 100) + vim.defer_fn(function() + update_spinner(client_id, token) + end, 100) end end @@ -70,7 +74,9 @@ vim.lsp.handlers["$/progress"] = function(_, result, ctx) local val = result.value - if not val.kind then return end + if not val.kind then + return + end local notif_data = get_notif_data(client_id, result.token) @@ -78,29 +84,24 @@ vim.lsp.handlers["$/progress"] = function(_, result, ctx) local message = format_message(val.message, val.percentage) notif_data.notification = vim.notify(message, "info", { - title = format_title(val.title, - vim.lsp.get_client_by_id(client_id).name), + title = format_title(val.title, vim.lsp.get_client_by_id(client_id).name), icon = spinner_frames[1], timeout = false, - hide_from_history = false + hide_from_history = false, }) notif_data.spinner = 1 update_spinner(client_id, result.token) elseif val.kind == "report" and notif_data then - notif_data.notification = vim.notify( - format_message(val.message, val.percentage), - "info", { - replace = notif_data.notification, - hide_from_history = false - }) + notif_data.notification = vim.notify(format_message(val.message, val.percentage), "info", { + replace = notif_data.notification, + hide_from_history = false, + }) elseif val.kind == "end" and notif_data then - notif_data.notification = vim.notify(val.message and - format_message(val.message) or - "Complete", "info", { + notif_data.notification = vim.notify(val.message and format_message(val.message) or "Complete", "info", { icon = "", replace = notif_data.notification, - timeout = 6000 + timeout = 6000, }) notif_data.spinner = nil @@ -108,52 +109,43 @@ vim.lsp.handlers["$/progress"] = function(_, result, ctx) end -- table from lsp severity to vim severity. -local severity = {"error", "warn", "info"} +local severity = { "error", "warn", "info" } -vim.lsp.handlers["window/showMessage"] = - function(err, method, params, client_id) - vim.notify(method.message, severity[params.type]) - end +vim.lsp.handlers["window/showMessage"] = function(err, method, params, client_id) + vim.notify(method.message, severity[params.type]) +end -- DAP integration -- Make sure to also have the snippet with the common helper functions in your config! -dap.listeners.before['event_progressStart']['progress-notifications'] = - function(session, body) - local notif_data = get_notif_data("dap", body.progressId) +dap.listeners.before["event_progressStart"]["progress-notifications"] = function(session, body) + local notif_data = get_notif_data("dap", body.progressId) - local message = format_message(body.message, body.percentage) - notif_data.notification = vim.notify(message, "info", { - title = format_title(body.title, session.config.type), - icon = spinner_frames[1], - timeout = false, - hide_from_history = false - }) + local message = format_message(body.message, body.percentage) + notif_data.notification = vim.notify(message, "info", { + title = format_title(body.title, session.config.type), + icon = spinner_frames[1], + timeout = false, + hide_from_history = false, + }) - notif_data.notification.spinner = 1, update_spinner("dap", - body.progressId) - end + notif_data.notification.spinner = 1, update_spinner("dap", body.progressId) +end -dap.listeners.before['event_progressUpdate']['progress-notifications'] = - function(session, body) - local notif_data = get_notif_data("dap", body.progressId) - notif_data.notification = vim.notify( - format_message(body.message, - body.percentage), "info", { - replace = notif_data.notification, - hide_from_history = false - }) - end +dap.listeners.before["event_progressUpdate"]["progress-notifications"] = function(session, body) + local notif_data = get_notif_data("dap", body.progressId) + notif_data.notification = vim.notify(format_message(body.message, body.percentage), "info", { + replace = notif_data.notification, + hide_from_history = false, + }) +end -dap.listeners.before['event_progressEnd']['progress-notifications'] = function( - session, body) +dap.listeners.before["event_progressEnd"]["progress-notifications"] = function(session, body) local notif_data = client_notifs["dap"][body.progressId] - notif_data.notification = vim.notify(body.message and - format_message(body.message) or - "Complete", "info", { + notif_data.notification = vim.notify(body.message and format_message(body.message) or "Complete", "info", { icon = "", replace = notif_data.notification, - timeout = 6000 + timeout = 6000, }) notif_data.spinner = nil end diff --git a/lua/config/nvim-tree.lua b/lua/config/nvim-tree.lua index ae388f6..e3ed6c8 100644 --- a/lua/config/nvim-tree.lua +++ b/lua/config/nvim-tree.lua @@ -1,2 +1 @@ -require("nvim-tree").setup { -} +require("nvim-tree").setup {} diff --git a/lua/config/nvim-web-devicons.lua b/lua/config/nvim-web-devicons.lua index d26caba..a42373f 100644 --- a/lua/config/nvim-web-devicons.lua +++ b/lua/config/nvim-web-devicons.lua @@ -1,2 +1 @@ -require("nvim-web-devicons").setup{ -} +require("nvim-web-devicons").setup {} diff --git a/lua/config/nvimtree.lua b/lua/config/nvimtree.lua index 1a4b8ef..ed99950 100644 --- a/lua/config/nvimtree.lua +++ b/lua/config/nvimtree.lua @@ -1,6 +1,6 @@ -require("nvim-tree").setup({ - sort = {sorter = "case_sensitive"}, - view = {width = 45}, - renderer = {group_empty = true}, - filters = {dotfiles = true} -}) +require("nvim-tree").setup { + sort = { sorter = "case_sensitive" }, + view = { width = 45 }, + renderer = { group_empty = true }, + filters = { dotfiles = true }, +} diff --git a/lua/config/refactoring.lua b/lua/config/refactoring.lua index 13362b9..7c01082 100644 --- a/lua/config/refactoring.lua +++ b/lua/config/refactoring.lua @@ -1,3 +1 @@ -require('refactoring').setup({ - -}) +require("refactoring").setup {} diff --git a/lua/config/telescope.lua b/lua/config/telescope.lua index 1610b4c..3955512 100644 --- a/lua/config/telescope.lua +++ b/lua/config/telescope.lua @@ -1,2 +1 @@ -require("telescope").setup { -} +require("telescope").setup {} diff --git a/lua/config/themedark.lua b/lua/config/themedark.lua index db025a8..f05f6c1 100644 --- a/lua/config/themedark.lua +++ b/lua/config/themedark.lua @@ -1,5 +1,5 @@ -- Default options: -require("gruvbox").setup({ +require("gruvbox").setup { terminal_colors = true, -- add neovim terminal colors undercurl = true, underline = true, @@ -9,7 +9,7 @@ require("gruvbox").setup({ emphasis = true, comments = true, operators = false, - folds = true + folds = true, }, strikethrough = true, invert_selection = false, @@ -21,5 +21,5 @@ require("gruvbox").setup({ palette_overrides = {}, overrides = {}, dim_inactive = false, - transparent_mode = false -}) + transparent_mode = false, +} diff --git a/lua/config/themelight.lua b/lua/config/themelight.lua index 23e7764..d1ab089 100644 --- a/lua/config/themelight.lua +++ b/lua/config/themelight.lua @@ -1,2 +1,2 @@ -- Lua -require('onedarkpro').setup({}) +require("onedarkpro").setup {} diff --git a/lua/config/tiny-inline-diagnostics.lua b/lua/config/tiny-inline-diagnostics.lua index 1222a1e..2a26e34 100644 --- a/lua/config/tiny-inline-diagnostics.lua +++ b/lua/config/tiny-inline-diagnostics.lua @@ -1,3 +1 @@ -require'tiny-inline-diagnostic'.setup { - -} +require("tiny-inline-diagnostic").setup {} diff --git a/lua/config/treesitter.lua b/lua/config/treesitter.lua index 5c934e3..fc4f850 100644 --- a/lua/config/treesitter.lua +++ b/lua/config/treesitter.lua @@ -1,8 +1,8 @@ -require'nvim-treesitter.config'.setup { +require("nvim-treesitter.config").setup { ensure_installed = "all", sync_install = true, auto_install = true, - highlight = {enable = true, additional_vim_regex_highlighting = false}, - indent = {enable = true, disable = {}}, - autotag = {enable = true} + highlight = { enable = true, additional_vim_regex_highlighting = false }, + indent = { enable = true, disable = {} }, + autotag = { enable = true }, } diff --git a/lua/config/undotree.lua b/lua/config/undotree.lua index b0c277c..d4fa5a9 100644 --- a/lua/config/undotree.lua +++ b/lua/config/undotree.lua @@ -1,20 +1,24 @@ -require('undotree').setup({ +require("undotree").setup { float_diff = true, layout = "left_bottom", position = "left", ignore_filetype = { - 'undotree', 'undotreeDiff', 'qf', 'TelescopePrompt', 'spectre_panel', - 'tsplayground' + "undotree", + "undotreeDiff", + "qf", + "TelescopePrompt", + "spectre_panel", + "tsplayground", }, - window = {winblend = 30}, + window = { winblend = 30 }, keymaps = { - ['j'] = "move_next", - ['k'] = "move_prev", - ['gj'] = "move2parent", - ['J'] = "move_change_next", - ['K'] = "move_change_prev", - [''] = "action_enter", - ['p'] = "enter_diffbuf", - ['q'] = "quit" - } -}) + ["j"] = "move_next", + ["k"] = "move_prev", + ["gj"] = "move2parent", + ["J"] = "move_change_next", + ["K"] = "move_change_prev", + [""] = "action_enter", + ["p"] = "enter_diffbuf", + ["q"] = "quit", + }, +} diff --git a/lua/globals.lua b/lua/globals.lua index fa42745..0fc4544 100644 --- a/lua/globals.lua +++ b/lua/globals.lua @@ -4,8 +4,8 @@ vim.g.loaded_netrwPlugin = 1 vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/" vim.g.mapleader = " " vim.g.gruvbox_material_background = "medium" -vim.g.coq_settings = {keymap = {recommended = false}} +vim.g.coq_settings = { keymap = { recommended = false } } vim.g.gruvbox_material_foreground = "original" -vim.api.nvim_set_hl(0, 'GitGutterAdd', {fg = '#009900', ctermfg = 2}) -vim.api.nvim_set_hl(0, 'GitGutterChange', {fg = '#bbbb00', ctermfg = 3}) -vim.api.nvim_set_hl(0, 'GitGutterDelete', {fg = '#ff2222', ctermfg = 1}) +vim.api.nvim_set_hl(0, "GitGutterAdd", { fg = "#009900", ctermfg = 2 }) +vim.api.nvim_set_hl(0, "GitGutterChange", { fg = "#bbbb00", ctermfg = 3 }) +vim.api.nvim_set_hl(0, "GitGutterDelete", { fg = "#ff2222", ctermfg = 1 }) diff --git a/lua/mappings.lua b/lua/mappings.lua index 1fb2662..94095a0 100644 --- a/lua/mappings.lua +++ b/lua/mappings.lua @@ -1,37 +1,41 @@ local map = vim.keymap.set -local default_opts = {noremap = true} +local default_opts = { noremap = true } -map("n", "n", function() Snacks.notifier.show_history() end) +map("n", "n", function() + Snacks.notifier.show_history() +end) -map('n', 'ff', +map( + "n", + "ff", "lua require'telescope.builtin'.find_files({ find_command = {'rg', '--files', '--hidden', '-g', '!.git' }})", - default_opts) + default_opts +) -map({"n", "v"}, "ap", require("actions-preview").code_actions) +map({ "n", "v" }, "ap", require("actions-preview").code_actions) map("n", "", "BufferLineCycleNext") map("n", "", "BufferLineCyclePrev") -map("n", ";", ":", {desc = "CMD enter command mode"}) +map("n", ";", ":", { desc = "CMD enter command mode" }) -- Move selected text up -map("v", "", ":m '<-2gv=gv", {desc = "Move selected text up"}) -map("v", "", ":m '>+1gv=gv", {desc = "Move selected text down"}) +map("v", "", ":m '<-2gv=gv", { desc = "Move selected text up" }) +map("v", "", ":m '>+1gv=gv", { desc = "Move selected text down" }) -- Alt + Arrow Key to change buffer -map("n", "", "h", {desc = "Move to left split"}) -map("n", "", "j", {desc = "Move to bottom split"}) -map("n", "", "k", {desc = "Move to top split"}) -map("n", "", "l", {desc = "Move to right split"}) +map("n", "", "h", { desc = "Move to left split" }) +map("n", "", "j", { desc = "Move to bottom split" }) +map("n", "", "k", { desc = "Move to top split" }) +map("n", "", "l", { desc = "Move to right split" }) -map('n', 'e', vim.cmd.NvimTreeToggle) -map('n', 'u', require('undotree').toggle, - {noremap = true, silent = true}) +map("n", "e", vim.cmd.NvimTreeToggle) +map("n", "u", require("undotree").toggle, { noremap = true, silent = true }) map("n", "", ":bdelete") -- map("n", "", ":BufferRestore") -map("n", "", "ggVG", {noremap = true, silent = true}) +map("n", "", "ggVG", { noremap = true, silent = true }) map("n", "pv", vim.cmd.Ex) @@ -49,14 +53,16 @@ map("n", "zig", "LspRestart") map("x", "p", [["_dP]]) -- next greatest remap ever : asbjornHaland -map({"n", "v"}, "y", [["+y]]) +map({ "n", "v" }, "y", [["+y]]) map("n", "Y", [["+Y]]) -map({"n", "v"}, "d", "\"_d") +map({ "n", "v" }, "d", '"_d') -- This is going to get me cancelled map("i", "", "") -map("n", "mr", "CellularAutomaton make_it_rain"); +map("n", "mr", "CellularAutomaton make_it_rain") -map("n", "", function() vim.cmd("so") end) +map("n", "", function() + vim.cmd "so" +end) diff --git a/lua/options.lua b/lua/options.lua index fb81423..754ff7a 100644 --- a/lua/options.lua +++ b/lua/options.lua @@ -8,25 +8,24 @@ vim.opt.wrap = true vim.opt.linebreak = true vim.opt.swapfile = false vim.opt.backup = false -vim.opt.undodir = os.getenv("HOME") .. "/.nvim/undodir" +vim.opt.undodir = os.getenv "HOME" .. "/.nvim/undodir" vim.opt.undofile = true vim.opt.hlsearch = false vim.opt.incsearch = true vim.opt.termguicolors = true vim.opt.scrolloff = 8 vim.opt.signcolumn = "yes:1" -vim.opt.isfname:append("@-@") +vim.opt.isfname:append "@-@" vim.opt.updatetime = 50 vim.opt.textwidth = 0 vim.opt.colorcolumn = "100" vim.opt.formatoptions = "rqnj" -vim.o.sessionoptions = - "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions" +vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions" vim.o.laststatus = 0 vim.o.clipboard = "unnamedplus" vim.o.cursorline = true vim.o.cursorlineopt = "number" -vim.opt.fillchars = {eob = " "} +vim.opt.fillchars = { eob = " " } vim.o.ignorecase = true vim.o.smartcase = true vim.o.mouse = "a" @@ -46,7 +45,8 @@ vim.g.loaded_ruby_provider = 0 local is_windows = vim.fn.has "win32" ~= 0 local sep = is_windows and "\\" or "/" local delim = is_windows and ";" or ":" -vim.env.PATH = table.concat({vim.fn.stdpath "data", "mason", "bin"}, sep) .. - delim .. vim.env.PATH +vim.env.PATH = table.concat({ vim.fn.stdpath "data", "mason", "bin" }, sep) .. delim .. vim.env.PATH -vim.api.nvim_create_user_command('Nf', function() vim.cmd('Neoformat') end, {}) +vim.api.nvim_create_user_command("Nf", function() + vim.cmd "Neoformat" +end, {}) diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index cdf7e6b..ec3f597 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -1,93 +1,150 @@ return { - {"vimpostor/vim-tpipeline"}, { + { "vimpostor/vim-tpipeline" }, + { "aznhe21/actions-preview.nvim", - config = function() require("actions-preview") end - }, { + config = function() + require "actions-preview" + end, + }, + { "sbdchd/neoformat", init = function() - vim.cmd("source" .. vim.fn.stdpath "config" .. - "/lua/config/neoformat.vim") - end - }, { + vim.cmd("source" .. vim.fn.stdpath "config" .. "/lua/config/neoformat.vim") + end, + }, + { "rachartier/tiny-inline-diagnostic.nvim", event = "VeryLazy", priority = 1000, config = function() require("tiny-inline-diagnostic").setup() - vim.diagnostic.config({virtual_text = false}) - end - }, { + vim.diagnostic.config { virtual_text = false } + end, + }, + { "ThePrimeagen/refactoring.nvim", dependencies = { - "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter" + "nvim-lua/plenary.nvim", + "nvim-treesitter/nvim-treesitter", }, lazy = false, opts = {}, - config = function() require("config.refactoring") end - }, { + config = function() + require "config.refactoring" + end, + }, + { "folke/snacks.nvim", priority = 1000, lazy = false, ---@type snacks.Config opts = { - bigfile = {enabled = true}, - dashboard = {enabled = true}, - explorer = {enabled = true}, - indent = {enabled = true}, - input = {enabled = true}, - picker = {enabled = true}, - notifier = {enabled = true}, - quickfile = {enabled = true}, - scope = {enabled = true}, - scroll = {enabled = true}, - statuscolumn = {enabled = true}, - words = {enabled = true} - } - }, { + bigfile = { enabled = true }, + dashboard = { enabled = true }, + explorer = { enabled = true }, + indent = { enabled = true }, + input = { enabled = true }, + picker = { enabled = true }, + notifier = { enabled = true }, + quickfile = { enabled = true }, + scope = { enabled = true }, + scroll = { enabled = true }, + statuscolumn = { enabled = true }, + words = { enabled = true }, + }, + }, + { "neovim/nvim-lspconfig", dependencies = { - "williamboman/mason.nvim", "williamboman/mason-lspconfig.nvim", - "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-buffer", "hrsh7th/cmp-path", - "hrsh7th/cmp-cmdline", "hrsh7th/nvim-cmp", "L3MON4D3/LuaSnip", - "saadparwaiz1/cmp_luasnip", "j-hui/fidget.nvim" + "hrsh7th/nvim-cmp", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "hrsh7th/cmp-cmdline", + "L3MON4D3/LuaSnip", + "saadparwaiz1/cmp_luasnip", + "j-hui/fidget.nvim", }, - config = function() require("config.lspconfig") end - }, { - 'https://gitlab.com/itaranto/plantuml.nvim', - version = '*', - config = function() require('plantuml').setup() end - }, { + config = function() + require "config.lspconfig" + end, + }, + { + "https://gitlab.com/itaranto/plantuml.nvim", + version = "*", + config = function() + require("plantuml").setup() + end, + }, + { "nvim-treesitter/nvim-treesitter", - config = function() require("config.treesitter") end - }, { + config = function() + require "config.treesitter" + end, + }, + { "rmagatti/auto-session", - config = function() require("config.autosession") end - }, { + config = function() + require "config.autosession" + end, + }, + { "nvim-telescope/telescope.nvim", - dependencies = {"nvim-lua/plenary.nvim"}, - config = function() require("config.telescope") end - }, {"lambdalisue/vim-suda"}, {"nvim-tree/nvim-web-devicons"}, { + dependencies = { "nvim-lua/plenary.nvim" }, + config = function() + require "config.telescope" + end, + }, + { "lambdalisue/vim-suda" }, + { "nvim-tree/nvim-web-devicons" }, + { "nvim-tree/nvim-tree.lua", - cmd = {"NvimTreeToggle", "NvimTreeFocus"}, - config = function() require("config.nvimtree") end - }, { + cmd = { "NvimTreeToggle", "NvimTreeFocus" }, + config = function() + require "config.nvimtree" + end, + }, + { "akinsho/bufferline.nvim", event = "VeryLazy", - config = function() require("config.barbar") end - }, { + config = function() + require "config.barbar" + end, + }, + { "nvim-lualine/lualine.nvim", event = "VeryLazy", - config = function() require("config.lualine") end + config = function() + require "config.lualine" + end, }, - {"jiaoshijie/undotree", config = function() require("config.undotree") end}, - {"hiphish/rainbow-delimiters.nvim"}, { + { + "jiaoshijie/undotree", + config = function() + require "config.undotree" + end, + }, + { "hiphish/rainbow-delimiters.nvim" }, + { "windwp/nvim-autopairs", event = "InsertEnter", - config = function() require("config.autopairs") end - }, {"tpope/vim-fugitive"}, { + config = function() + require "config.autopairs" + end, + }, + { "tpope/vim-fugitive" }, + { "catgoose/nvim-colorizer.lua", - config = function() require("config.colorizer") end - }, {"catppuccin/nvim", name = "catppuccin", priority = 1000}, - {"ellisonleao/gruvbox.nvim", priority = 1000, config = true, opts = ...}, - {"mfussenegger/nvim-dap", config = function() require("config.dap") end} + config = function() + require "config.colorizer" + end, + }, + { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, + { "ellisonleao/gruvbox.nvim", priority = 1000, config = true, opts = ... }, + { + "mfussenegger/nvim-dap", + config = function() + require "config.dap" + end, + }, }