1 Commits

Author SHA1 Message Date
6bc0b1a0da wip: copilot.lua 2025-10-19 20:51:23 +02:00
12 changed files with 120 additions and 124 deletions

View File

@@ -63,14 +63,11 @@ vim.g.clipboard = {
vim.o.completeopt = "menuone,noselect,fuzzy,nosort"
-- default plus added dash
vim.o.iskeyword = "@,48-57,_,192-255,-"
vim.api.nvim_create_autocmd("TextYankPost", {
desc = "highlight when yanking text",
group = vim.api.nvim_create_augroup("CustomHighlightYank", { clear = true }),
callback = function() vim.highlight.on_yank() end,
})
-- filetype overrides
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
pattern = vim.fn.expand("~") .. "/.config/sway/**/*.conf",
callback = function() vim.bo.filetype = "swayconfig" end,
})

View File

@@ -1,28 +1,79 @@
local now_if_args = vim.fn.argc(-1) > 0 and MiniDeps.now or MiniDeps.later
MiniDeps.later(function()
MiniDeps.add("zbirenbaum/copilot.lua")
-- TODO:(@janezicmatej) setup lsp nes
-- MiniDeps.add("copilotlsp-nvim/copilot-lsp")
now_if_args(function()
MiniDeps.add("github/copilot.vim")
vim.g.copilot_filetypes = {
-- disable all and only allow specific filetyps
["*"] = false,
--
c = true,
cpp = true,
dockerfile = true,
go = true,
javascript = true,
lua = true,
nix = true,
python = true,
rust = true,
typescript = true,
}
-- remap default <M-\> to first close pumenu if open
local function suggest()
if vim.fn.pumvisible() == 1 then vim.fn.complete(vim.fn.col("."), {}) end
return vim.fn["copilot#Suggest"]()
local function no_attach_for_env()
if string.match(vim.fs.basename(vim.api.nvim_buf_get_name(0)), "^%.env.*") then
return false
end
return true
end
vim.keymap.set("i", "<M-\\>", suggest)
local opts = {
panel = {
keymap = {
jump_prev = false,
jump_next = false,
accept = false,
refresh = false,
open = false,
},
},
suggestion = {
-- auto_trigger = true,
keymap = {
accept = false,
accept_word = false,
accept_line = false,
next = false,
prev = false,
dismiss = false,
},
},
filetypes = {
-- disable all and only allow specific filetyps
["*"] = false,
--
c = true,
cpp = true,
dockerfile = true,
go = true,
javascript = true,
lua = true,
nix = true,
python = true,
rust = true,
sh = no_attach_for_env,
bash = no_attach_for_env,
typescript = true,
},
}
require("copilot").setup(opts)
local suggestion = require("copilot.suggestion")
local function accept_if_visible()
vim.notify("is visible " .. (suggestion.is_visible() or "nil"))
if suggestion.is_visible() ~= nil then
suggestion.accept()
else
return "<Tab>"
end
end
local function close_pum_if_open(func)
return function()
if vim.fn.pumvisible() == 1 then vim.fn.complete(vim.fn.col("."), {}) end
return func()
end
end
-- stylua: ignore start
vim.keymap.set({ "i" }, "<Tab>", accept_if_visible, { desc = "copilot: accept suggestion", expr = true })
vim.keymap.set({ "n", "i" }, "<M-j>", suggestion.accept_line, { desc = "copilot: accept line" })
vim.keymap.set({ "n", "i" }, "<M-l>", close_pum_if_open(suggestion.next), { desc = "copilot: next suggestion" })
vim.keymap.set({ "n", "i" }, "<M-h>", close_pum_if_open(suggestion.prev), { desc = "copilot: previous suggestion" })
-- stylua: ignore start
end)

View File

@@ -1,11 +0,0 @@
MiniDeps.now(function()
MiniDeps.add("j-hui/fidget.nvim")
local opts = {
notification = {
override_vim_notify = true,
},
}
require("fidget").setup(opts)
end)

View File

@@ -1,8 +1,8 @@
MiniDeps.later(function()
MiniDeps.add("ibhagwan/fzf-lua")
local fzf_lua = require("fzf-lua")
fzf_lua.setup({
local fzf = require("fzf-lua")
fzf.setup({
files = {
no_ignore = true,
toggle_ignore_flag = "--no-ignore-vcs",
@@ -13,12 +13,11 @@ MiniDeps.later(function()
},
})
vim.keymap.set("n", "<leader>sf", fzf_lua.files)
vim.keymap.set("n", "<leader>sg", fzf_lua.live_grep)
vim.keymap.set("n", "<leader>sw", fzf_lua.grep_cword)
vim.keymap.set("v", "<leader>sg", fzf_lua.grep_visual)
vim.keymap.set("n", "<leader>sj", fzf_lua.jumps)
vim.keymap.set("n", "<leader>sh", fzf_lua.helptags)
vim.keymap.set("n", "<leader>sr", fzf_lua.resume)
vim.keymap.set("n", "<leader>sb", fzf_lua.builtin)
vim.keymap.set("n", "<leader>sf", fzf.files)
vim.keymap.set("n", "<leader>sg", fzf.live_grep)
vim.keymap.set("n", "<leader>sw", fzf.grep_cword)
vim.keymap.set("v", "<leader>sg", fzf.grep_visual)
vim.keymap.set("n", "<leader>sr", fzf.resume)
vim.keymap.set("n", "<leader>sb", fzf.builtin)
end)

View File

@@ -1,8 +1,6 @@
MiniDeps.later(function()
MiniDeps.add({
source = "ruifm/gitlinker.nvim",
depends = { "nvim-lua/plenary.nvim" },
})
MiniDeps.add("nvim-lua/plenary.nvim")
MiniDeps.add("ruifm/gitlinker.nvim")
require("gitlinker").setup({
callbacks = {
["git.aflabs.org"] = require("gitlinker.hosts").get_gitlab_type_url,

View File

@@ -11,10 +11,10 @@ MiniDeps.later(function()
})
-- blame
vim.keymap.set({ "n", "v" }, "<leader>gb", ":Gitsigns blame<CR>")
vim.keymap.set({ "n", "v" }, "<leader>gt", ":Gitsigns blame_line<CR>")
vim.keymap.set({"n", "v"}, "<leader>gb", ":Gitsigns blame<CR>")
vim.keymap.set({"n", "v"}, "<leader>gt", ":Gitsigns blame_line<CR>")
-- hunks
vim.keymap.set({ "n", "v" }, "<leader>ga", ":Gitsigns stage_hunk<CR>")
vim.keymap.set({ "n", "v" }, "<leader>gr", ":Gitsigns reset_hunk<CR>")
vim.keymap.set({"n", "v"}, "<leader>ga", ":Gitsigns stage_hunk<CR>")
vim.keymap.set({"n", "v"}, "<leader>gr", ":Gitsigns reset_hunk<CR>")
end)

View File

@@ -0,0 +1,4 @@
MiniDeps.now(function()
require("mini.notify").setup()
vim.notify = MiniNotify.make_notify()
end)

View File

@@ -0,0 +1 @@
MiniDeps.later(function() require("mini.pairs").setup() end)

View File

@@ -12,60 +12,25 @@ local function reinstall_treesitter()
ts.install(ts.get_installed(), { force = true })
end
local function deps_section()
local mini_deps = require("mini.deps")
local nr_deps = #vim.iter(mini_deps):enumerate():totable()
local items = {
{
name = "number of dependencies " .. nr_deps,
action = "",
section = "dependencies",
},
}
local function mk_dep_item(name, action)
return { name = name, action = action, section = "dependencies" }
end
local deps_actions = {
mk_dep_item("update dependencies", "DepsUpdate"),
mk_dep_item("snap dependencies", "DepsSnapSave"),
mk_dep_item("load dependencies", "DepsSnapLoad"),
mk_dep_item("clean dependencies", "DepsClean"),
}
if vim.fn.getcwd() == vim.fn.stdpath("config") then
for _, item in ipairs(deps_actions) do
table.insert(items, item)
end
end
return items
end
MiniDeps.now(function()
local builtins = {
{ name = "edit new buffer", action = "enew", section = "builtin actions" },
{ name = "quit neovim", action = "qall", section = "builtin actions" },
}
require("mini.starter").setup({
query_updaters = "abcdefghijklmnopqrstuvwxyz0123456789_.",
evaluate_single = true,
header = default_header,
footer = "",
items = {
--stylua: ignore start
-- builtins
builtins,
{ name = "edit new buffer", action = "enew", section = "builtin actions" },
{ name = "quit neovim", action = "qall", section = "builtin actions" },
-- dependencies
deps_section,
{ name = "update dependencies", action = "DepsUpdate", section = "dependencies" },
{ name = "snap dependencies", action = "DepsSnapSave", section = "dependencies" },
{ name = "load dependencies", action = "DepsSnapLoad", section = "dependencies" },
{ name = "clean dependencies", action = "DepsClean", section = "dependencies" },
-- debug
{
name = "reinstall treesitter parsers",
action = reinstall_treesitter,
section = "debug",
},
{ name = "reinstall treesitter parsers", action = reinstall_treesitter, section = "debug" },
--stylua: ignore end
},
})
end)

View File

@@ -1,4 +0,0 @@
MiniDeps.later(function()
MiniDeps.add("windwp/nvim-autopairs")
require("nvim-autopairs").setup()
end)

View File

@@ -1,7 +1,5 @@
MiniDeps.now(function()
MiniDeps.add({
source = "folke/todo-comments.nvim",
depends = { "nvim-lua/plenary.nvim" },
})
MiniDeps.add("folke/todo-comments.nvim")
MiniDeps.add("nvim-lua/plenary.nvim")
require("todo-comments").setup()
end)

View File

@@ -1,17 +1,15 @@
return {
["copilot.vim"] = "a12fd5672110c8aa7e3c8419e28c96943ca179be",
["fidget.nvim"] = "7fa433a83118a70fe24c1ce88d5f0bd3453c0970",
["fzf-lua"] = "fb8c50ba62a0daa433b7ac2b78834f318322b879",
["copilot.lua"] = "3123983d00ae6859f8bc987d14ebb524bb41b618",
["fzf-lua"] = "db3ccffe79480543d8e0f7b0cac0d9b220f9486e",
["gitlinker.nvim"] = "cc59f732f3d043b626c8702cb725c82e54d35c25",
["gitsigns.nvim"] = "1ce96a464fdbc24208e24c117e2021794259005d",
["gruvbox-material"] = "790afe9dd085aa04eccd1da3626c5fa05c620e53",
["gitsigns.nvim"] = "1ee5c1fd068c81f9dd06483e639c2aa4587dc197",
["gruvbox-material"] = "834dbf21836862300ced7444db4262b796330ab7",
["guess-indent.nvim"] = "84a4987ff36798c2fc1169cbaff67960aed9776f",
["mini.nvim"] = "8c40d95931cbe6138391af9180e59439ed2e69df",
["nvim-autopairs"] = "59bce2eef357189c3305e25bc6dd2d138c1683f5",
["nvim-lspconfig"] = "66fd02ad1c7ea31616d3ca678fa04e6d0b360824",
["nvim-treesitter"] = "45a07f869b0cffba342276f2c77ba7c116d35db8",
["oil.nvim"] = "f55b25e493a7df76371cfadd0ded5004cb9cd48a",
["mini.nvim"] = "5e1dd6e3d5f758eccf6c51461559da785dba688c",
["nvim-lspconfig"] = "ac98db2f9f06a56498ec890a96928774eae412c3",
["nvim-treesitter"] = "0606c7a9dcaa5c5beee0b0f09043e9fdd1ba0a68",
["oil.nvim"] = "919e155fdf38e9148cdb5304faaaf53c20d703ea",
["plenary.nvim"] = "b9fd5226c2f76c951fc8ed5923d85e4de065e509",
["rainbow-delimiters.nvim"] = "d6b802552cbe7d643a3b6b31f419c248d1f1e220",
["todo-comments.nvim"] = "31e3c38ce9b29781e4422fc0322eb0a21f4e8668"
["rainbow-delimiters.nvim"] = "3277ad5f96eb03c9d618c88e24f683e4364e578c",
["todo-comments.nvim"] = "19d461ddd543e938eb22505fb03fa878800270b6"
}