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
45
flake.lock
45
flake.lock
|
@ -103,11 +103,11 @@
|
||||||
"zig": "zig"
|
"zig": "zig"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730931741,
|
"lastModified": 1731023348,
|
||||||
"narHash": "sha256-UMqGcC+14MCiTdyMrUrVX/4wJvOBXhCNdR/bt6mTank=",
|
"narHash": "sha256-9k2ynQywm8AWi27C2o+/KAFpqV6PwZgaSyqhSqW8ZOs=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "444cf3b402f658f33b76a05b9e43dfc2df89f892",
|
"rev": "75fe0b2dfb200dda2622b0fbc790e9451ffff236",
|
||||||
"revCount": 7904,
|
"revCount": 7916,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://git@github.com/ghostty-org/ghostty"
|
"url": "ssh://git@github.com/ghostty-org/ghostty"
|
||||||
},
|
},
|
||||||
|
@ -232,11 +232,11 @@
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730914682,
|
"lastModified": 1731111231,
|
||||||
"narHash": "sha256-UHFvVeJY64rA5HKoeKCLuJET224GEDGdj7/m1PuShgw=",
|
"narHash": "sha256-8u8k3hnU5OxlXfhDLD3XEwAqv/M9Tb5USLCEPvXCPcM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "neovim-nightly-overlay",
|
"repo": "neovim-nightly-overlay",
|
||||||
"rev": "59630b2edb91b71ac0a60b865aaa91cd39946577",
|
"rev": "702364e6ec794961483eba5220ca531917d03784",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -248,11 +248,11 @@
|
||||||
"neovim-src": {
|
"neovim-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730893053,
|
"lastModified": 1731083384,
|
||||||
"narHash": "sha256-ifiJfPkhyg/9I9aJSbtcHy3jRV4CLig7iF9ACQUycPU=",
|
"narHash": "sha256-0uH8SSP6/eqCuDvUCV+s1ZwjLg6512Vj9dgKKO0iEmE=",
|
||||||
"owner": "neovim",
|
"owner": "neovim",
|
||||||
"repo": "neovim",
|
"repo": "neovim",
|
||||||
"rev": "f7e32fb6e626ab198bf401765236783890f3a0d6",
|
"rev": "ad3472e291694b6c589d8a664459b03962eaac95",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -263,11 +263,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730831018,
|
"lastModified": 1730958623,
|
||||||
"narHash": "sha256-2S0HwIFRxYp+afuoFORcZA9TjryAf512GmE0MTfEOPU=",
|
"narHash": "sha256-JwQZIGSYnRNOgDDoIgqKITrPVil+RMWHsZH1eE1VGN0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8c4dc69b9732f6bbe826b5fbb32184987520ff26",
|
"rev": "85f7e662eda4fa3a995556527c87b2524b691933",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -293,6 +293,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730958623,
|
||||||
|
"narHash": "sha256-JwQZIGSYnRNOgDDoIgqKITrPVil+RMWHsZH1eE1VGN0=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "85f7e662eda4fa3a995556527c87b2524b691933",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730785428,
|
"lastModified": 1730785428,
|
||||||
|
@ -316,7 +332,8 @@
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"neovim-nightly-overlay": "neovim-nightly-overlay",
|
"neovim-nightly-overlay": "neovim-nightly-overlay",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
|
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
|
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||||
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
|
|
||||||
home-manager.url = "github:nix-community/home-manager";
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
|
@ -46,23 +46,45 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
|
friendly-snippets
|
||||||
go-nvim
|
go-nvim
|
||||||
rustaceanvim
|
rustaceanvim
|
||||||
targets-vim
|
targets-vim
|
||||||
ts-comments-nvim
|
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";
|
type = "lua";
|
||||||
config = ''
|
config = ''
|
||||||
require'blink-cmp'.setup({
|
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 = {
|
windows = {
|
||||||
autocomplete = {
|
autocomplete = {
|
||||||
border = 'none',
|
border = 'none',
|
||||||
|
selection = 'preselect',
|
||||||
},
|
},
|
||||||
documentation = {
|
documentation = {
|
||||||
border = 'rounded',
|
border = 'rounded',
|
||||||
|
auto_show = false,
|
||||||
|
auto_show_delay_ms = 800,
|
||||||
},
|
},
|
||||||
signature_help = {
|
signature_help = {
|
||||||
border = 'rounded',
|
border = 'rounded',
|
||||||
|
@ -141,12 +163,6 @@
|
||||||
type = "lua";
|
type = "lua";
|
||||||
config = lib.fileContents ./mini.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 },
|
InclineNormalNC = { bg = c.background },
|
||||||
|
|
||||||
WinSeparator = { bg = c.dialog_bg, fg = c.dialog_fg },
|
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 },
|
Title = { fg = c.foreground, bold = true },
|
||||||
|
|
||||||
FloatBorder = { fg = c.dialog_fg },
|
MiniPickNormal = { link = "Normal" },
|
||||||
FloatTitle = { fg = c.dialog_fg, bold = true },
|
MiniPickBorder = { link = "MiniPickNormal" },
|
||||||
|
MiniPickBorderText = { link = "MiniPickBorder" },
|
||||||
MiniPickMatchCurrent = { bg = c.background, fg = c.foreground, reverse = true },
|
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 },
|
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 },
|
BlinkCmpMenu = { bg = c.cmp_bg, fg = c.cmp_fg },
|
||||||
BlinkCmpMenuSelection = { bg = c.cmp_selected_bg, fg = c.cmp_selected_fg, reverse = false },
|
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" }
|
{ text = "", hl = "DiagnosticSignHint", texthl = "DiagnosticSignHint", culhl = "DiagnosticSignHintLine" }
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
-- Make <Tab> work for snippets
|
-- Make <Tab> work for snippets
|
||||||
vim.keymap.set({ "i", "s" }, "<Tab>", function()
|
vim.keymap.set({ "i", "s" }, "<Tab>", function()
|
||||||
if vim.snippet.active({ direction = 1 }) then
|
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', '<tab>', "<cmd>Pick buffers include_current=false<cr>", opts("Buffers"))
|
||||||
vim.keymap.set("n", "zz", "zt", { remap = true })
|
vim.keymap.set("n", "zz", "zt", { remap = true })
|
||||||
vim.keymap.set({ "n", "v" }, "<Leader>y", '"+y', opts("Yank to clipboard"))
|
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.declaration, opts("Declaration"))
|
||||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts("Definition"))
|
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", "gi", vim.lsp.buf.implementation, opts("Implementation"))
|
||||||
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts("Buffer References"))
|
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", "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", "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 configs = require('lspconfig.configs')
|
||||||
local lspconfig = require("lspconfig")
|
local lspconfig = require("lspconfig")
|
||||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
|
||||||
local servers = {
|
local servers = {
|
||||||
'gopls',
|
'gopls',
|
||||||
'nil_ls',
|
'nil_ls',
|
||||||
|
@ -30,9 +10,6 @@ local servers = {
|
||||||
for _, ls in ipairs(servers) do
|
for _, ls in ipairs(servers) do
|
||||||
lspconfig[ls].setup {
|
lspconfig[ls].setup {
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
on_attach = function(_, buf)
|
|
||||||
vim.api.nvim_set_option_value('omnifunc', 'v:lua.MiniCompletion.completefunc_lsp', {buf = buf})
|
|
||||||
end,
|
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
system = final.system;
|
system = final.system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
};
|
};
|
||||||
unstable = import inputs.nixpkgs-unstable {
|
nixpkgs-unstable = import inputs.nixpkgs-unstable {
|
||||||
system = final.system;
|
system = final.system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue