From 6fa677018a7c367220f9f633fb4e7331ebcca385 Mon Sep 17 00:00:00 2001 From: quak Date: Sat, 11 Jan 2025 22:26:53 +0100 Subject: [PATCH] tried to reset style before starship prompt .. changed various neovim floating windows to show a border removed contrast setting from ghostty, because it makes debugging ansi escape sequences rather difficult --- ghostty/.config/ghostty/config | 1 - .../nvim/lua/plugins/autocompletion.lua | 266 ++++++----- nvim/.config/nvim/lua/plugins/lsp.lua | 445 +++++++++--------- nvim/.config/nvim/lua/plugins/misc.lua | 8 +- starship/.config/starship.toml | 6 +- 5 files changed, 376 insertions(+), 350 deletions(-) diff --git a/ghostty/.config/ghostty/config b/ghostty/.config/ghostty/config index 21af0fd..f60062c 100644 --- a/ghostty/.config/ghostty/config +++ b/ghostty/.config/ghostty/config @@ -10,6 +10,5 @@ font-feature = -dlig background-opacity = 1.0 selection-invert-fg-bg = true -minimum-contrast = 2 theme = zegonix diff --git a/nvim/.config/nvim/lua/plugins/autocompletion.lua b/nvim/.config/nvim/lua/plugins/autocompletion.lua index 88ae2bd..cdee6eb 100644 --- a/nvim/.config/nvim/lua/plugins/autocompletion.lua +++ b/nvim/.config/nvim/lua/plugins/autocompletion.lua @@ -1,140 +1,146 @@ -- plugin for autocompletion return { - "hrsh7th/nvim-cmp", - dependencies = { - -- Snippet Engine & its associated nvim-cmp source - { - "L3MON4D3/LuaSnip", - build = (function() - -- Build Step is needed for regex support in snippets. - -- This step is not supported in many windows environments. - -- Remove the below condition to re-enable on windows. - if vim.fn.has("win32") == 1 or vim.fn.executable("make") == 0 then - return - end - return "make install_jsregexp" - end)(), - }, - "saadparwaiz1/cmp_luasnip", + "hrsh7th/nvim-cmp", + dependencies = { + -- Snippet Engine & its associated nvim-cmp source + { + "L3MON4D3/LuaSnip", + build = (function() + -- Build Step is needed for regex support in snippets. + -- This step is not supported in many windows environments. + -- Remove the below condition to re-enable on windows. + if vim.fn.has("win32") == 1 or vim.fn.executable("make") == 0 then + return + end + return "make install_jsregexp" + end)(), + }, + "saadparwaiz1/cmp_luasnip", - -- Adds other completion capabilities. - -- nvim-cmp does not ship with all sources by default. They are split - -- into multiple repos for maintenance purposes. - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-buffer", - "hrsh7th/cmp-path", + -- Adds other completion capabilities. + -- nvim-cmp does not ship with all sources by default. They are split + -- into multiple repos for maintenance purposes. + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", - -- adds a number of snippets - "rafamadriz/friendly-snippets", - }, - config = function() - local cmp = require("cmp") - local luasnip = require("luasnip") - luasnip.config.setup({}) + -- adds a number of snippets + "rafamadriz/friendly-snippets", + }, + config = function() + local cmp = require("cmp") + local luasnip = require("luasnip") + luasnip.config.setup({}) - local kind_icons = { - Text = "󰉿", - Method = "m", - Function = "󰊕", - Constructor = "", - Field = "", - Variable = "󰆧", - Class = "󰌗", - Interface = "", - Module = "", - Property = "", - Unit = "", - Value = "󰎠", - Enum = "", - Keyword = "󰌋", - Snippet = "", - Color = "󰏘", - File = "󰈙", - Reference = "", - Folder = "󰉋", - EnumMember = "", - Constant = "󰇽", - Struct = "", - Event = "", - Operator = "󰆕", - TypeParameter = "󰊄", - } + local kind_icons = { + Text = "󰉿", + Method = "m", + 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({ - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - completion = { completeopt = "menu,menuone,noinsert" }, + cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + completion = { completeopt = "menu,menuone,noinsert" }, - -- read `:help ins-completion` for explanation - mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping.select_next_item(), -- Select the [n]ext item - [""] = cmp.mapping.select_prev_item(), -- Select the [p]revious item - [""] = cmp.mapping.confirm({ select = true }), -- Accept the completion with Enter. - [""] = cmp.mapping.complete({}), -- Manually trigger a completion from nvim-cmp. + -- read `:help ins-completion` for explanation + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.select_next_item(), -- Select the [n]ext item + [""] = cmp.mapping.select_prev_item(), -- Select the [p]revious item + [""] = cmp.mapping.confirm({ select = true }), -- Accept the completion with Enter. + [""] = cmp.mapping.complete({}), -- Manually trigger a completion from nvim-cmp. - -- Think of as moving to the right of your snippet expansion. - -- So if you have a snippet that's like: - -- function $name($args) - -- $body - -- end - -- - -- will move you to the right of each of the expansion locations. - -- is similar, except moving you backwards. - [""] = cmp.mapping(function() - if luasnip.expand_or_locally_jumpable() then - luasnip.expand_or_jump() - end - end, { "i", "s" }), - [""] = cmp.mapping(function() - if luasnip.locally_jumpable(-1) then - luasnip.jump(-1) - end - end, { "i", "s" }), + -- Think of as moving to the right of your snippet expansion. + -- So if you have a snippet that's like: + -- function $name($args) + -- $body + -- end + -- + -- will move you to the right of each of the expansion locations. + -- is similar, except moving you backwards. + [""] = cmp.mapping(function() + if luasnip.expand_or_locally_jumpable() then + luasnip.expand_or_jump() + end + end, { "i", "s" }), + [""] = cmp.mapping(function() + if luasnip.locally_jumpable(-1) then + luasnip.jump(-1) + end + end, { "i", "s" }), - -- Select next/previous item with Tab / Shift + Tab - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_locally_jumpable() then - luasnip.expand_or_jump() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.locally_jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { "i", "s" }), - }), - sources = { - { name = "nvim_lsp" }, - { name = "luasnip" }, - { name = "buffer" }, - { name = "path" }, - }, - formatting = { - fields = { "kind", "abbr", "menu" }, - format = function(entry, vim_item) - -- Kind icons - vim_item.kind = string.format("%s", kind_icons[vim_item.kind]) - -- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind - vim_item.menu = ({ - nvim_lsp = "[LSP]", - luasnip = "[Snippet]", - buffer = "[Buffer]", - path = "[Path]", - })[entry.source.name] - return vim_item - end, - }, - }) - end, + -- Select next/previous item with Tab / Shift + Tab + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_locally_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.locally_jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }), + sources = { + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "buffer" }, + { name = "path" }, + }, + formatting = { + fields = { "kind", "abbr", "menu" }, + format = function(entry, vim_item) + -- Kind icons + vim_item.kind = string.format("%s", kind_icons[vim_item.kind]) + -- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind + vim_item.menu = ({ + nvim_lsp = "[LSP]", + luasnip = "[Snippet]", + buffer = "[Buffer]", + path = "[Path]", + })[entry.source.name] + return vim_item + end, + }, + view = { + entries = { + name = "custom", + -- selection_order = "near_cursor", + }, + }, + }) + end, } diff --git a/nvim/.config/nvim/lua/plugins/lsp.lua b/nvim/.config/nvim/lua/plugins/lsp.lua index d9b0827..b31f547 100644 --- a/nvim/.config/nvim/lua/plugins/lsp.lua +++ b/nvim/.config/nvim/lua/plugins/lsp.lua @@ -1,237 +1,258 @@ -- plugin for language servers return { - "neovim/nvim-lspconfig", - dependencies = { - -- Automatically install LSPs and related tools to stdpath for Neovim - { "williamboman/mason.nvim", config = true }, -- NOTE: Must be loaded before dependants - "williamboman/mason-lspconfig.nvim", - "WhoIsSethDaniel/mason-tool-installer.nvim", + "neovim/nvim-lspconfig", + dependencies = { + -- Automatically install LSPs and related tools to stdpath for Neovim + { "williamboman/mason.nvim", config = true }, -- NOTE: Must be loaded before dependants + "williamboman/mason-lspconfig.nvim", + "WhoIsSethDaniel/mason-tool-installer.nvim", - -- Useful status updates for LSP. - -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})` - { - "j-hui/fidget.nvim", - tag = "v1.4.0", - opts = { - progress = { - display = { - done_icon = "✓", -- Icon shown when all LSP progress tasks are complete - }, - }, - notification = { - window = { - winblend = 0, -- Background color opacity in the notification window - }, - }, - }, - }, - }, - config = function() - vim.api.nvim_create_autocmd("LspAttach", { - group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }), - -- Create a function that lets us more easily define mappings specific - -- for LSP related items. It sets the mode, buffer and description for us each time. - callback = function(event) - local map = function(keys, func, desc, mode) - mode = mode or "n" - vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc }) - end + -- Useful status updates for LSP. + -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})` + { + "j-hui/fidget.nvim", + tag = "v1.4.0", + opts = { + progress = { + display = { + done_icon = "✓", -- Icon shown when all LSP progress tasks are complete + }, + }, + notification = { + window = { + winblend = 0, -- Background color opacity in the notification window + }, + }, + }, + }, + }, + config = function() + vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }), + -- Create a function that lets us more easily define mappings specific + -- for LSP related items. It sets the mode, buffer and description for us each time. + callback = function(event) + local map = function(keys, func, desc, mode) + mode = mode or "n" + vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc }) + end - -- Jump to the definition of the word under your cursor. - -- This is where a variable was first declared, or where a function is defined, etc. - -- To jump back, press . - map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition") + -- Jump to the definition of the word under your cursor. + -- This is where a variable was first declared, or where a function is defined, etc. + -- To jump back, press . + map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition") - -- Find references for the word under your cursor. - map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences") + -- Find references for the word under your cursor. + map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences") - -- Jump to the implementation of the word under your cursor. - -- Useful when your language has ways of declaring types without an actual implementation. - map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation") + -- Jump to the implementation of the word under your cursor. + -- Useful when your language has ways of declaring types without an actual implementation. + map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation") - -- Jump to the type of the word under your cursor. - -- Useful when you're not sure what type a variable is and you want to see - -- the definition of its *type*, not where it was *defined*. - map("D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition") + -- Jump to the type of the word under your cursor. + -- Useful when you're not sure what type a variable is and you want to see + -- the definition of its *type*, not where it was *defined*. + map("D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition") - -- Fuzzy find all the symbols in your current document. - -- Symbols are things like variables, functions, types, etc. - map("ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols") + -- Fuzzy find all the symbols in your current document. + -- Symbols are things like variables, functions, types, etc. + map("ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols") - -- Fuzzy find all the symbols in your current workspace. - -- Similar to document symbols, except searches over your entire project. - map("ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols") + -- Fuzzy find all the symbols in your current workspace. + -- Similar to document symbols, except searches over your entire project. + map("ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols") - -- Rename the variable under your cursor. - -- Most Language Servers support renaming across files, etc. - map("rn", vim.lsp.buf.rename, "[R]e[n]ame") + -- Rename the variable under your cursor. + -- Most Language Servers support renaming across files, etc. + map("rn", vim.lsp.buf.rename, "[R]e[n]ame") - -- Execute a code action, usually your cursor needs to be on top of an error - -- or a suggestion from your LSP for this to activate. - map("ca", vim.lsp.buf.code_action, "[C]ode [A]ction", { "n", "x" }) + -- Execute a code action, usually your cursor needs to be on top of an error + -- or a suggestion from your LSP for this to activate. + map("ca", vim.lsp.buf.code_action, "[C]ode [A]ction", { "n", "x" }) - -- Opens a popup that displays documentation about the word under your cursor - -- See `:help K` for why this keymap - map("K", vim.lsp.buf.hover, "[K]ontext - Show Tooltip") + -- Opens a popup that displays documentation about the word under your cursor + -- See `:help K` for why this keymap + map("K", vim.lsp.buf.hover, "[K]ontext - Show Tooltip") - -- WARN: This is not Goto Definition, this is Goto Declaration. - -- For example, in C this would take you to the header. - map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration") + -- WARN: This is not Goto Definition, this is Goto Declaration. + -- For example, in C this would take you to the header. + map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration") - map("df", vim.diagnostic.open_float, "show diagnostic in floating window") + map("df", vim.diagnostic.open_float, "show diagnostic in floating window") - -- The following two autocommands are used to highlight references of the - -- word under your cursor when your cursor rests there for a little while. - -- See `:help CursorHold` for information about when this is executed - -- - -- When you move your cursor, the highlights will be cleared (the second autocommand). - local client = vim.lsp.get_client_by_id(event.data.client_id) - if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then - local highlight_augroup = vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false }) - vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { - buffer = event.buf, - group = highlight_augroup, - callback = vim.lsp.buf.document_highlight, - }) + -- The following two autocommands are used to highlight references of the + -- word under your cursor when your cursor rests there for a little while. + -- See `:help CursorHold` for information about when this is executed + -- + -- When you move your cursor, the highlights will be cleared (the second autocommand). + local client = vim.lsp.get_client_by_id(event.data.client_id) + if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then + local highlight_augroup = vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false }) + vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { + buffer = event.buf, + group = highlight_augroup, + callback = vim.lsp.buf.document_highlight, + }) - vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, { - buffer = event.buf, - group = highlight_augroup, - callback = vim.lsp.buf.clear_references, - }) + vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, { + buffer = event.buf, + group = highlight_augroup, + callback = vim.lsp.buf.clear_references, + }) - vim.api.nvim_create_autocmd("LspDetach", { - group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }), - callback = function(event2) - vim.lsp.buf.clear_references() - vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event2.buf }) - end, - }) - end + vim.api.nvim_create_autocmd("LspDetach", { + group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }), + callback = function(event2) + vim.lsp.buf.clear_references() + vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event2.buf }) + end, + }) + end - -- The following code creates a keymap to toggle inlay hints in your - -- code, if the language server you are using supports them - -- - -- This may be unwanted, since they displace some of your code - if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then - map("th", function() - vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf })) - end, "[T]oggle Inlay [H]ints") - end - end, - }) + -- The following code creates a keymap to toggle inlay hints in your + -- code, if the language server you are using supports them + -- + -- This may be unwanted, since they displace some of your code + if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then + map("th", function() + vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf })) + end, "[T]oggle Inlay [H]ints") + end + end, + }) - local capabilities = vim.lsp.protocol.make_client_capabilities() - capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities()) + local capabilities = vim.lsp.protocol.make_client_capabilities() + capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities()) - -- Enable the following language servers - local servers = { - clangd = {}, - lua_ls = { - -- cmd = {...}, - -- filetypes = { ...}, - -- capabilities = {}, - settings = { - Lua = { - completion = { - callSnippet = "Replace", - }, - runtime = { version = "LuaJIT" }, - workspace = { - checkThirdParty = false, - library = { - "${3rd}/luv/library", - unpack(vim.api.nvim_get_runtime_file("", true)), - }, - }, - diagnostics = { disable = { "missing-fields" } }, + -- Enable the following language servers + local servers = { + clangd = {}, + lua_ls = { + -- cmd = {...}, + -- filetypes = { ...}, + -- capabilities = {}, + settings = { + Lua = { + completion = { + callSnippet = "Replace", + }, + runtime = { version = "LuaJIT" }, + workspace = { + checkThirdParty = false, + library = { + "${3rd}/luv/library", + unpack(vim.api.nvim_get_runtime_file("", true)), + }, + }, + diagnostics = { disable = { "missing-fields" } }, - -- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings - -- diagnostics = { disable = { 'missing-fields' } }, - }, - }, - }, - pylsp = { - settings = { - pylsp = { - plugins = { - pyflakes = { enabled = false }, - pycodestyle = { enabled = false }, - autopep8 = { enabled = false }, - yapf = { enabled = false }, - mccabe = { enabled = false }, - pylsp_mypy = { enabled = false }, - pylsp_black = { enabled = false }, - pylsp_isort = { enabled = false }, - }, - }, - }, - }, - ruff = { - -- Notes on code actions: https://github.com/astral-sh/ruff-lsp/issues/119#issuecomment-1595628355 - -- Get isort like behavior: https://github.com/astral-sh/ruff/issues/8926#issuecomment-1834048218 - commands = { - RuffAutofix = { - function() - vim.lsp.buf.execute_command({ - command = "ruff.applyAutofix", - arguments = { - { uri = vim.uri_from_bufnr(0) }, - }, - }) - end, - description = "Ruff: Fix all auto-fixable problems", - }, - RuffOrganizeImports = { - function() - vim.lsp.buf.execute_command({ - command = "ruff.applyOrganizeImports", - arguments = { - { uri = vim.uri_from_bufnr(0) }, - }, - }) - end, - description = "Ruff: Format imports", - }, - }, - }, - rust_analyzer = { - ["rust-analyzer"] = { - cargo = { - features = "all", - }, - checkOnSave = true, - check = { - command = "clippy", - }, - }, - }, - } + -- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings + -- diagnostics = { disable = { 'missing-fields' } }, + }, + }, + }, + pylsp = { + settings = { + pylsp = { + plugins = { + pyflakes = { enabled = false }, + pycodestyle = { enabled = false }, + autopep8 = { enabled = false }, + yapf = { enabled = false }, + mccabe = { enabled = false }, + pylsp_mypy = { enabled = false }, + pylsp_black = { enabled = false }, + pylsp_isort = { enabled = false }, + }, + }, + }, + }, + ruff = { + -- Notes on code actions: https://github.com/astral-sh/ruff-lsp/issues/119#issuecomment-1595628355 + -- Get isort like behavior: https://github.com/astral-sh/ruff/issues/8926#issuecomment-1834048218 + commands = { + RuffAutofix = { + function() + vim.lsp.buf.execute_command({ + command = "ruff.applyAutofix", + arguments = { + { uri = vim.uri_from_bufnr(0) }, + }, + }) + end, + description = "Ruff: Fix all auto-fixable problems", + }, + RuffOrganizeImports = { + function() + vim.lsp.buf.execute_command({ + command = "ruff.applyOrganizeImports", + arguments = { + { uri = vim.uri_from_bufnr(0) }, + }, + }) + end, + description = "Ruff: Format imports", + }, + }, + }, + rust_analyzer = { + ["rust-analyzer"] = { + cargo = { + features = "all", + }, + checkOnSave = true, + check = { + command = "clippy", + }, + }, + }, + } - -- Ensure the servers and tools above are installed - require("mason").setup() + -- Ensure the servers and tools above are installed + require("mason").setup() - -- You can add other tools here that you want Mason to install - -- for you, so that they are available from within Neovim. - local ensure_installed = vim.tbl_keys(servers or {}) - vim.list_extend(ensure_installed, { - "stylua", -- Used to format Lua code - "clangd", - "rust-analyzer", - }) - require("mason-tool-installer").setup({ ensure_installed = ensure_installed }) + -- You can add other tools here that you want Mason to install + -- for you, so that they are available from within Neovim. + local ensure_installed = vim.tbl_keys(servers or {}) + vim.list_extend(ensure_installed, { + "stylua", -- Used to format Lua code + "clangd", + "rust-analyzer", + }) + require("mason-tool-installer").setup({ ensure_installed = ensure_installed }) - require("mason-lspconfig").setup({ - handlers = { - function(server_name) - local server = servers[server_name] or {} - -- This handles overriding only values explicitly passed - -- by the server configuration above. Useful when disabling - -- certain features of an LSP (for example, turning off formatting for ts_ls) - server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {}) - require("lspconfig")[server_name].setup(server) - end, - }, - }) - end, + -- vim.cmd([[autocmd! ColorScheme * highlight NormalFloat guibg=#1f2335]]) + -- vim.cmd([[autocmd! ColorScheme * highlight FloatBorder guifg=white guibg=#1f2335]]) + + local border = { + { "╭", "FloatBorder" }, + { "─", "FloatBorder" }, + { "╮", "FloatBorder" }, + { "│", "FloatBorder" }, + { "╯", "FloatBorder" }, + { "─", "FloatBorder" }, + { "╰", "FloatBorder" }, + { "│", "FloatBorder" }, + } + + local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview + function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...) + opts = opts or {} + opts.border = opts.border or border + return orig_util_open_floating_preview(contents, syntax, opts, ...) + end + + require("mason-lspconfig").setup({ + handlers = { + function(server_name) + local server = servers[server_name] or {} + -- This handles overriding only values explicitly passed + -- by the server configuration above. Useful when disabling + -- certain features of an LSP (for example, turning off formatting for ts_ls) + server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {}) + require("lspconfig")[server_name].setup(server) + end, + }, + }) + end, } diff --git a/nvim/.config/nvim/lua/plugins/misc.lua b/nvim/.config/nvim/lua/plugins/misc.lua index 1e62f78..feabb6b 100644 --- a/nvim/.config/nvim/lua/plugins/misc.lua +++ b/nvim/.config/nvim/lua/plugins/misc.lua @@ -22,13 +22,13 @@ return { opts = { win = { border = { - { "┌", "FloatBorder" }, + { "╭", "FloatBorder" }, { "─", "FloatBorder" }, - { "┐", "FloatBorder" }, + { "╮", "FloatBorder" }, { "│", "FloatBorder" }, - { "┘", "FloatBorder" }, + { "╯", "FloatBorder" }, { "─", "FloatBorder" }, - { "└", "FloatBorder" }, + { "╰", "FloatBorder" }, { "│", "FloatBorder" }, }, }, diff --git a/starship/.config/starship.toml b/starship/.config/starship.toml index 1dc2dfe..11bba1f 100755 --- a/starship/.config/starship.toml +++ b/starship/.config/starship.toml @@ -1,6 +1,6 @@ format = """ \n\ -[╭─ ](bold)[⟨](bold zx_light_magenta)\ +[╭─ ](bold fg:zx_white)[⟨](bold fg:zx_light_magenta)\ $username\ [//](bold zx_magenta)\ $directory\ @@ -22,8 +22,8 @@ palette = 'zegonix' [palettes.zegonix] zx_green = "#0CB653" zx_light_green = "#4BDD94" -zx_yellow = "#4EA33D" -zx_light_yellow = "#8CDF5A" +zx_yellow = "#4EA03D" +zx_light_yellow = "#94E85A" zx_blue = "#2050A0" zx_light_blue = "#72AFE3" zx_magenta = "#E02482"