nvim: blink-cmp 0.5.1 + styling
This commit is contained in:
parent
1eb8637840
commit
b433ecef3c
7 changed files with 108 additions and 79 deletions
home/common/nvim
|
@ -46,23 +46,45 @@
|
|||
];
|
||||
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
friendly-snippets
|
||||
go-nvim
|
||||
rustaceanvim
|
||||
targets-vim
|
||||
ts-comments-nvim
|
||||
|
||||
{
|
||||
plugin = blink-cmp;
|
||||
plugin = nvim-lspconfig;
|
||||
type = "lua";
|
||||
config = lib.fileContents ./lsp.lua;
|
||||
}
|
||||
|
||||
{
|
||||
plugin = pkgs.nixpkgs-unstable.vimPlugins.blink-cmp;
|
||||
type = "lua";
|
||||
config = ''
|
||||
require'blink-cmp'.setup({
|
||||
keymap = 'super-tab',
|
||||
keymap = {
|
||||
preset = 'enter',
|
||||
["<PageDown>"] = { "scroll_documentation_down" },
|
||||
["<PageUp>"] = { "scroll_documentation_up" },
|
||||
},
|
||||
trigger = {
|
||||
completion = {
|
||||
show_in_snippet = true,
|
||||
},
|
||||
signature_help = {
|
||||
enabled = true,
|
||||
},
|
||||
},
|
||||
windows = {
|
||||
autocomplete = {
|
||||
border = 'none',
|
||||
selection = 'preselect',
|
||||
},
|
||||
documentation = {
|
||||
border = 'rounded',
|
||||
auto_show = false,
|
||||
auto_show_delay_ms = 800,
|
||||
},
|
||||
signature_help = {
|
||||
border = 'rounded',
|
||||
|
@ -88,7 +110,7 @@
|
|||
src = pkgs.fetchFromGitHub {
|
||||
owner = "monkoose";
|
||||
repo = "neocodeium";
|
||||
rev = "4da81528468b33585c411f31eb390dce573ccb14"; # v1.8.0
|
||||
rev = "4da81528468b33585c411f31eb390dce573ccb14"; # v1.8.0
|
||||
hash = "sha256-1n9nNqBNwNDSzbAkm8eB4HZLNy5HmMg25jPwQAnW5OU=";
|
||||
};
|
||||
};
|
||||
|
@ -141,12 +163,6 @@
|
|||
type = "lua";
|
||||
config = lib.fileContents ./mini.lua;
|
||||
}
|
||||
|
||||
{
|
||||
plugin = nvim-lspconfig;
|
||||
type = "lua";
|
||||
config = lib.fileContents ./lsp.lua;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -156,17 +156,25 @@ local theme = {
|
|||
InclineNormalNC = { bg = c.background },
|
||||
|
||||
WinSeparator = { bg = c.dialog_bg, fg = c.dialog_fg },
|
||||
NormalFloat = { bg = c.dialog_bg, fg = c.dialog_fg },
|
||||
NormalFloat = { bg = c.doc_bg, fg = c.doc_fg },
|
||||
FloatBorder = { fg = c.doc_fg },
|
||||
FloatTitle = { fg = c.doc_fg, bold = true },
|
||||
|
||||
Title = { fg = c.foreground, bold = true },
|
||||
|
||||
FloatBorder = { fg = c.dialog_fg },
|
||||
FloatTitle = { fg = c.dialog_fg, bold = true },
|
||||
|
||||
MiniPickNormal = { link = "Normal" },
|
||||
MiniPickBorder = { link = "MiniPickNormal" },
|
||||
MiniPickBorderText = { link = "MiniPickBorder" },
|
||||
MiniPickMatchCurrent = { bg = c.background, fg = c.foreground, reverse = true },
|
||||
MiniStarterCurrent = { link = "MiniPickMatchCurrent" },
|
||||
MiniClueNextKey = { bg = c.dialog_bg, fg = c.dialog_fg, bold = true },
|
||||
|
||||
MiniClueBorder = { link = "MiniPickNormal" },
|
||||
MiniClueTitle = { bg = c.background, fg = c.foreground, bold = true },
|
||||
MiniClueNextKey = { link = "MiniClueTitle" },
|
||||
MiniClueDescGroup = { bg = c.background, fg = c.foreground, italic = true },
|
||||
MiniClueSeparator = { link = "NormalFloat" },
|
||||
MiniClueDescSingle = { bg = c.background, fg = c.foreground },
|
||||
MiniClueSeparator = { link = "MiniClueBorder" },
|
||||
|
||||
MiniStarterCurrent = { link = "MiniPickMatchCurrent" },
|
||||
|
||||
BlinkCmpMenu = { bg = c.cmp_bg, fg = c.cmp_fg },
|
||||
BlinkCmpMenuSelection = { bg = c.cmp_selected_bg, fg = c.cmp_selected_fg, reverse = false },
|
||||
|
|
|
@ -86,6 +86,7 @@ vim.fn.sign_define(
|
|||
{ text = "", hl = "DiagnosticSignHint", texthl = "DiagnosticSignHint", culhl = "DiagnosticSignHintLine" }
|
||||
)
|
||||
|
||||
|
||||
-- Make <Tab> work for snippets
|
||||
vim.keymap.set({ "i", "s" }, "<Tab>", function()
|
||||
if vim.snippet.active({ direction = 1 }) then
|
||||
|
@ -128,11 +129,20 @@ vim.keymap.set("n", "<Leader>wv", "<C-w>v", opts("Vertical split"))
|
|||
vim.keymap.set('n', '<tab>', "<cmd>Pick buffers include_current=false<cr>", opts("Buffers"))
|
||||
vim.keymap.set("n", "zz", "zt", { remap = true })
|
||||
vim.keymap.set({ "n", "v" }, "<Leader>y", '"+y', opts("Yank to clipboard"))
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
|
||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts("Declaration"))
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts("Definition"))
|
||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts("Implementation"))
|
||||
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts("Buffer References"))
|
||||
vim.keymap.set("n", "gt", vim.lsp.buf.type_definition, opts("Type Definition"))
|
||||
vim.keymap.set({"n", "i"}, "<M-k>", vim.lsp.buf.signature_help, opts("Signature Help"))
|
||||
vim.keymap.set({ "n", "i" }, "<M-k>", vim.lsp.buf.signature_help, opts("Signature Help"))
|
||||
vim.keymap.set({ "n", "v" }, "<Leader>aa", vim.lsp.buf.code_action, opts("Code Action"))
|
||||
vim.keymap.set("n", "K", function()
|
||||
vim.lsp.buf.hover {
|
||||
border = 'rounded',
|
||||
max_height = 24,
|
||||
max_width = 80,
|
||||
offset_x = 2,
|
||||
}
|
||||
end, {})
|
||||
|
||||
|
||||
|
|
|
@ -1,26 +1,6 @@
|
|||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
|
||||
callback = function(ev)
|
||||
-- Enable completion triggered by <c-x><c-o>
|
||||
vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc"
|
||||
|
||||
-- Buffer local mappings.
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
local opts = function(str)
|
||||
return { buffer = ev.buf, desc = str }
|
||||
end
|
||||
|
||||
local client = vim.lsp.get_client_by_id(ev.data.client_id)
|
||||
if client.server_capabilities.codeLensProvider then
|
||||
vim.lsp.codelens.refresh({ bufnr = bufnr })
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
local configs = require('lspconfig.configs')
|
||||
local lspconfig = require("lspconfig")
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
|
||||
local servers = {
|
||||
'gopls',
|
||||
'nil_ls',
|
||||
|
@ -30,39 +10,36 @@ local servers = {
|
|||
for _, ls in ipairs(servers) do
|
||||
lspconfig[ls].setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = function(_, buf)
|
||||
vim.api.nvim_set_option_value('omnifunc', 'v:lua.MiniCompletion.completefunc_lsp', {buf = buf})
|
||||
end,
|
||||
}
|
||||
end
|
||||
|
||||
lspconfig.nixd.setup({
|
||||
capabilities = capabilities,
|
||||
cmd = { "nixd" },
|
||||
settings = {
|
||||
nixd = {
|
||||
nixpkgs = { expr = "import <nixpkgs> { }" },
|
||||
formatting = { command = { "nixfmt" } },
|
||||
options = {},
|
||||
},
|
||||
},
|
||||
cmd = { "nixd" },
|
||||
settings = {
|
||||
nixd = {
|
||||
nixpkgs = { expr = "import <nixpkgs> { }" },
|
||||
formatting = { command = { "nixfmt" } },
|
||||
options = {},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
version = "LuaJIT",
|
||||
path = vim.split(package.path, ";"),
|
||||
},
|
||||
diagnostics = { globals = { "vim", "hs" } },
|
||||
workspace = {
|
||||
library = {
|
||||
[vim.fn.expand("$VIMRUNTIME/lua")] = true,
|
||||
[vim.fn.expand("$VIMRUNTIME/lua/vim/lsp")] = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
version = "LuaJIT",
|
||||
path = vim.split(package.path, ";"),
|
||||
},
|
||||
diagnostics = { globals = { "vim", "hs" } },
|
||||
workspace = {
|
||||
library = {
|
||||
[vim.fn.expand("$VIMRUNTIME/lua")] = true,
|
||||
[vim.fn.expand("$VIMRUNTIME/lua/vim/lsp")] = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue