initial: with copilot addon

This commit is contained in:
squarePotatoe
2026-08-26 12:59:09 +08:00
parent 94997c4f9f
commit 1008568c39
18 changed files with 779 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
./pack
./nvim-pack-lock.json
+5
View File
@@ -0,0 +1,5 @@
require("options")
require("keymaps")
require("floating-terminal")
require("package-installs")
require("myplugs")
+86
View File
@@ -0,0 +1,86 @@
vim.api.nvim_create_autocmd("TermClose", {
group = augroup,
callback = function()
if vim.v.event.status == 0 then
vim.api.nvim_buf_delete(0, {})
end
end,
})
vim.api.nvim_create_autocmd("TermOpen", {
group = augroup,
callback = function()
vim.opt_local.number = false
vim.opt_local.relativenumber = false
vim.opt_local.signcolumn = "no"
end,
})
local terminal_state = { buf = nil, win = nil, is_open = false }
local function FloatingTerminal()
if terminal_state.is_open and terminal_state.win and vim.api.nvim_win_is_valid(terminal_state.win) then
vim.api.nvim_win_close(terminal_state.win, false)
terminal_state.is_open = false
return
end
if not terminal_state.buf or not vim.api.nvim_buf_is_valid(terminal_state.buf) then
terminal_state.buf = vim.api.nvim_create_buf(false, true)
vim.bo[terminal_state.buf].bufhidden = "hide"
end
local width = math.floor(vim.o.columns * 0.8)
local height = math.floor(vim.o.lines * 0.8)
local row = math.floor((vim.o.lines - height) / 2)
local col = math.floor((vim.o.columns - width) / 2)
terminal_state.win = vim.api.nvim_open_win(terminal_state.buf, true, {
relative = "editor",
width = width,
height = height,
row = row,
col = col,
style = "minimal",
border = "rounded",
})
vim.wo[terminal_state.win].winblend = 0
vim.wo[terminal_state.win].winhighlight = "Normal:FloatingTermNormal,FloatBorder:FloatingTermBorder"
vim.api.nvim_set_hl(0, "FloatingTermNormal", { bg = "none" })
vim.api.nvim_set_hl(0, "FloatingTermBorder", { bg = "none" })
local has_terminal = false
local lines = vim.api.nvim_buf_get_lines(terminal_state.buf, 0, -1, false)
for _, line in ipairs(lines) do
if line ~= "" then
has_terminal = true
break
end
end
if not has_terminal then
vim.fn.termopen(os.getenv("SHELL"))
end
terminal_state.is_open = true
vim.cmd("startinsert")
vim.api.nvim_create_autocmd("BufLeave", {
buffer = terminal_state.buf,
callback = function()
if terminal_state.is_open and terminal_state.win and vim.api.nvim_win_is_valid(terminal_state.win) then
vim.api.nvim_win_close(terminal_state.win, false)
terminal_state.is_open = false
end
end,
once = true,
})
end
vim.keymap.set("n", "<leader>t", FloatingTerminal, { noremap = true, silent = true, desc = "Toggle floating terminal" })
vim.keymap.set("t", "<Esc>", function()
if terminal_state.is_open and terminal_state.win and vim.api.nvim_win_is_valid(terminal_state.win) then
vim.api.nvim_win_close(terminal_state.win, false)
terminal_state.is_open = false
end
end, { noremap = true, silent = true, desc = "Close floating terminal" })
+34
View File
@@ -0,0 +1,34 @@
vim.g.mapleader = " "
vim.keymap.set('i', 'jj', '<Esc>', { desc = 'Exit Insert mode' })
vim.keymap.set('n', '<leader>w', ':w<CR>', { desc = 'Write changes' })
vim.keymap.set('n', '<leader>c', ':nohlsearch<CR>', { desc = 'Clear search highlights' })
vim.keymap.set('n', '<leader>x', '"_d', { desc = 'Delete without yanking' })
vim.keymap.set('n', '<leader>bp', ':bprevious<CR>', { desc = 'Previous buffet' })
vim.keymap.set('n', '<leader>bn', ':bnext<CR>', { desc = 'Next buffer' })
vim.keymap.set('n', '<leader>bd', ':bdelete<CR>', { desc = 'Remove current buffer' })
vim.keymap.set('n', '<C-h>', '<C-w>h', { desc = 'Move between windows left' })
vim.keymap.set('n', '<C-j>', '<C-w>j', { desc = 'Move between windows bottom' })
vim.keymap.set('n', '<C-k>', '<C-w>k', { desc = 'Move between windows up' })
vim.keymap.set('n', '<C-l>', '<C-w>l', { desc = 'Move between windows rigth' })
vim.keymap.set('n', '<leader>sv', ':vsplit<CR>', { desc = 'Split vertically' })
vim.keymap.set('n', '<leader>sh', ':split<CR>', { desc = 'Split window horizontally' })
vim.keymap.set('n', '<C-Up>', ':resize +2<CR>', { desc = 'Split window horizontally' })
vim.keymap.set('n', '<C-Down>', ':resize -2<CR>', { desc = 'Split window horizontally' })
vim.keymap.set('n', '<C-Left>', ':vertical resize -2<CR>', { desc = 'Split window horizontally' })
vim.keymap.set('n', '<C-Right>', ':vertical resize +2<CR>', { desc = 'Split window horizontally' })
vim.keymap.set('n', '<A-j>', ":m .+1<CR>==", { desc = 'Split window horizontally' })
vim.keymap.set('n', '<A-k>', ":m .-2<CR>==", { desc = 'Split window horizontally' })
vim.keymap.set('v', '<A-j>', ":m '>+1<CR>gv=gv", { desc = 'Split window horizontally' })
vim.keymap.set('v', '<A-k>', ":m '<-2<CR>gv=gv", { desc = 'Split window horizontally' })
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Show diagnostic" })
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Prev diagnostic" })
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Next diagnostic" })
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Diagnostic list" })
+83
View File
@@ -0,0 +1,83 @@
require("mason").setup()
require("mason-lspconfig").setup({
ensure_installed = { "eslint", "stylua", "vue_ls", "ts_ls" },
})
local function on_attach(_, bufnr)
vim.keymap.set("n", "gd", vim.lsp.buf.definition, { buffer = bufnr, desc = "Go to definition" })
end
vim.lsp.config("eslint", {
settings = {
workingDirectories = { mode = "auto" },
format = true, -- Disable if using null-ls or Prettier
},
on_attach = function(client, bufnr)
on_attach(client, bufnr)
vim.api.nvim_create_autocmd("BufWritePre", {
buffer = bufnr,
callback = function(args)
require("conform").format({ bufnr = args.buf })
end,
})
end,
})
vim.lsp.config("lua_ls", {
settings = {
Lua = {
runtime = { verstion = "LuaJIT" },
workspace = {
checkThirdParty = false,
library = vim.api.nvim_get_runtime_file("", true),
},
diagnostics = {
globals = { "vim" },
},
},
},
})
vim.lsp.config("intelephense", {
settings = {
intelephense = {
files = {
maxSize = 2000000,
},
},
},
on_attach = on_attach(),
})
vim.lsp.config("vue_ls", {})
vim.lsp.config("ts_ls", {
init_options = {
plugins = {
{
name = "@vue/typescript-plugin",
location = vim.fn.expand(
"$HOME/.local/share/nvim/mason/packages/vue-language-server/node_modules/@vue/language-server"
),
languages = { "vue" },
},
},
},
filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue" },
on_attach = on_attach(),
})
vim.diagnostic.config({
virtual_text = true,
underlin = true,
})
vim.lsp.enable({
"eslint",
"lua_ls",
"tailwindcss",
"intelephense",
"laravel_ls",
"vue_ls",
"ts_ls",
})
+10
View File
@@ -0,0 +1,10 @@
require("plugins/fzf")
require("plugins/gitsigns")
require("plugins/blink")
require("plugins/conform")
require("plugins/autotag")
require("plugins/autopair")
require("plugins/diffview")
require("plugins/copilot")
require("lsp/lsp-setup")
+252
View File
@@ -0,0 +1,252 @@
vim.cmd(":colorscheme catppuccin")
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.splitbelow = true
vim.opt.splitright = true
-- Treat hyphens as word separators so this-word becomes two words
vim.opt.iskeyword:remove("-")
-- Set tab width and use spaces instead of tabs
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.expandtab = true
-- Enable copying to clipboard
vim.opt.clipboard = "unnamedplus"
vim.opt.scrolloff = 999
-- Enable syntax highlighting and smart indentation
vim.opt.syntax = "on"
vim.opt.smartindent = true
-- Highlight the current line
vim.opt.cursorline = true
-- Makes the virtual edit move and select where there is no character
vim.opt.virtualedit = "block"
vim.opt.inccommand = "split"
vim.opt.ignorecase = true
vim.opt.termguicolors = true
vim.opt.smartindent = true
vim.opt.autoindent = true
vim.opt.signcolumn = "yes"
vim.opt.colorcolumn = "100"
-- vim.opt.showmatch = true
vim.opt.cmdheight = 1
vim.opt.completeopt = "menuone,noinsert,noselect"
vim.opt.showmode = false
local undodir = vim.fn.expand("~/.vim/undodir")
if vim.fn.isdirectory(undodir) == 0 then
vim.fn.mkdir(undodir, "p")
end
vim.opt.undodir = undodir
vim.opt.updatetime = 300
vim.opt.timeoutlen = 500
vim.opt.ttimeoutlen = 0
vim.opt.autoread = true
vim.opt.autowrite = false
vim.opt.hidden = true -- allow hidden buffers
vim.opt.errorbells = false
--vim.opt.backspace = "indent,eal,start" -- better backspace behaviour
vim.opt.autochdir = false
vim.opt.selection = "inclusive"
vim.opt.wrap = false
-- ============================================================================
-- STATUSLINE
-- ============================================================================
-- Git branch function with caching and Nerd Font icon
local cached_branch = ""
local last_check = 0
local function git_branch()
local now = vim.loop.now()
if now - last_check > 5000 then -- Check every 5 seconds
cached_branch = vim.fn.system("git branch --show-current 2>/dev/null | tr -d '\n'")
last_check = now
end
if cached_branch ~= "" then
return " \u{e725} " .. cached_branch .. " " -- nf-dev-git_branch
end
return ""
end
-- File type with Nerd Font icon
local function file_type()
local ft = vim.bo.filetype
local icons = {
lua = "\u{e620} ", -- nf-dev-lua
python = "\u{e73c} ", -- nf-dev-python
javascript = "\u{e74e} ", -- nf-dev-javascript
typescript = "\u{e628} ", -- nf-dev-typescript
javascriptreact = "\u{e7ba} ",
typescriptreact = "\u{e7ba} ",
html = "\u{e736} ", -- nf-dev-html5
css = "\u{e749} ", -- nf-dev-css3
scss = "\u{e749} ",
json = "\u{e60b} ", -- nf-dev-json
markdown = "\u{e73e} ", -- nf-dev-markdown
vim = "\u{e62b} ", -- nf-dev-vim
sh = "\u{f489} ", -- nf-oct-terminal
bash = "\u{f489} ",
zsh = "\u{f489} ",
rust = "\u{e7a8} ", -- nf-dev-rust
go = "\u{e724} ", -- nf-dev-go
c = "\u{e61e} ", -- nf-dev-c
cpp = "\u{e61d} ", -- nf-dev-cplusplus
java = "\u{e738} ", -- nf-dev-java
php = "\u{e73d} ", -- nf-dev-php
ruby = "\u{e739} ", -- nf-dev-ruby
swift = "\u{e755} ", -- nf-dev-swift
kotlin = "\u{e634} ",
dart = "\u{e798} ",
elixir = "\u{e62d} ",
haskell = "\u{e777} ",
sql = "\u{e706} ",
yaml = "\u{f481} ",
toml = "\u{e615} ",
xml = "\u{f05c} ",
dockerfile = "\u{f308} ", -- nf-linux-docker
gitcommit = "\u{f418} ", -- nf-oct-git_commit
gitconfig = "\u{f1d3} ", -- nf-fa-git
vue = "\u{fd42} ", -- nf-md-vuejs
svelte = "\u{e697} ",
astro = "\u{e628} ",
}
if ft == "" then
return " \u{f15b} " -- nf-fa-file_o
end
return ((icons[ft] or " \u{f15b} ") .. ft)
end
-- File size with Nerd Font icon
local function file_size()
local size = vim.fn.getfsize(vim.fn.expand("%"))
if size < 0 then
return ""
end
local size_str
if size < 1024 then
size_str = size .. "B"
elseif size < 1024 * 1024 then
size_str = string.format("%.1fK", size / 1024)
else
size_str = string.format("%.1fM", size / 1024 / 1024)
end
return " \u{f016} " .. size_str .. " " -- nf-fa-file_o
end
-- Mode indicators with Nerd Font icons
local function mode_icon()
local mode = vim.fn.mode()
local modes = {
n = " \u{f121} NORMAL",
i = " \u{f11c} INSERT",
v = " \u{f0168} VISUAL",
V = " \u{f0168} V-LINE",
["\22"] = " \u{f0168} V-BLOCK",
c = " \u{f120} COMMAND",
s = " \u{f0c5} SELECT",
S = " \u{f0c5} S-LINE",
["\19"] = " \u{f0c5} S-BLOCK",
R = " \u{f044} REPLACE",
r = " \u{f044} REPLACE",
["!"] = " \u{f489} SHELL",
t = " \u{f120} TERMINAL",
}
return modes[mode] or (" \u{f059} " .. mode)
end
_G.mode_icon = mode_icon
_G.git_branch = git_branch
_G.file_type = file_type
_G.file_size = file_size
vim.cmd([[
highlight StatusLineBold gui=bold cterm=bold
]])
-- Function to change statusline based on window focus
local function setup_dynamic_statusline()
vim.api.nvim_create_autocmd({ "WinEnter", "BufEnter" }, {
callback = function()
vim.opt_local.statusline = table.concat({
" ",
"%#StatusLineBold#",
"%{v:lua.mode_icon()}",
"%#StatusLine#",
" \u{e0b1} %f %h%m%r", -- nf-pl-left_hard_divider
"%{v:lua.git_branch()}",
"\u{e0b1} ", -- nf-pl-left_hard_divider
"%{v:lua.file_type()}",
"\u{e0b1} ", -- nf-pl-left_hard_divider
"%{v:lua.file_size()}",
"%=", -- Right-align everything after this
" \u{f017} %l:%c %P ", -- nf-fa-clock_o for line/col
})
end,
})
vim.api.nvim_set_hl(0, "StatusLineBold", { bold = true })
vim.api.nvim_create_autocmd({ "WinLeave", "BufLeave" }, {
callback = function()
vim.opt_local.statusline = " %f %h%m%r \u{e0b1} %{v:lua.file_type()} %= %l:%c %P "
end,
})
end
setup_dynamic_statusline()
-- highlight yanked text
vim.api.nvim_create_autocmd("TextYankPost", {
group = augroup,
callback = function()
vim.hl.on_yank()
end,
})
-- return to last cursor position
vim.api.nvim_create_autocmd("BufReadPost", {
group = augroup,
desc = "Restore last cursor position",
callback = function()
if vim.o.diff then -- except in diff mode
return
end
local last_pos = vim.api.nvim_buf_get_mark(0, '"') -- {line, col}
local last_line = vim.api.nvim_buf_line_count(0)
local row = last_pos[1]
if row < 1 or row > last_line then
return
end
pcall(vim.api.nvim_win_set_cursor, 0, last_pos)
end,
})
-- wrap, linebreak and spellcheck on markdown and text files
vim.api.nvim_create_autocmd("FileType", {
group = augroup,
pattern = { "markdown", "text", "gitcommit" },
callback = function()
vim.opt_local.wrap = true
vim.opt_local.linebreak = true
vim.opt_local.spell = true
end,
})
+49
View File
@@ -0,0 +1,49 @@
vim.pack.add({
"https://github.com/ibhagwan/fzf-lua",
{
src = "https://github.com/nvim-treesitter/nvim-treesitter",
branch = "main",
build = ":TSUpdate",
},
"https://github.com/mason-org/mason.nvim",
"https://github.com/neovim/nvim-lspconfig",
"https://github.com/lewis6991/gitsigns.nvim",
"https://github.com/mason-org/mason-lspconfig.nvim",
{
src = "https://github.com/saghen/blink.cmp",
version = vim.version.range("^1"),
},
"https://github.com/stevearc/conform.nvim",
"https://github.com/windwp/nvim-ts-autotag",
"https://github.com/nvim-lua/plenary.nvim.git",
"https://github.com/CopilotC-Nvim/CopilotChat.nvim",
"https://github.com/windwp/nvim-autopairs",
"https://github.com/sindrets/diffview.nvim",
-- Color schemes
})
local function packadd(name)
vim.cmd("packadd " .. name)
end
packadd("fzf-lua")
packadd("nvim-treesitter")
packadd("mason.nvim")
packadd("nvim-lspconfig")
packadd("gitsigns.nvim")
packadd("mason-lspconfig.nvim")
packadd("blink.cmp")
packadd("nvim-ts-autotag")
packadd("plenary.nvim")
packadd("CopilotChat.nvim")
packadd("nvim-autopairs")
packadd("diffview.nvim")
-----------------
-- CONFORM added directly to .local/share/nvim/site/pack/conform/start/conform.nvim
-- from Git repo
--
-- git clone --depth=1 https://github.com/stevearc/conform.nvim.git "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/pack/conform/start/conform.nvim
--
-----------------
-- Color schemes
+1
View File
@@ -0,0 +1 @@
require("nvim-autopairs").setup({})
+16
View File
@@ -0,0 +1,16 @@
require("nvim-ts-autotag").setup({
opts = {
-- Defaults
enable_close = true, -- Auto close tags
enable_rename = true, -- Auto rename pairs of tags
enable_close_on_slash = false, -- Auto close on trailing </
},
-- Also override individual filetype configs, these take priority.
-- Empty by default, useful if one of the "opts" global settings
-- doesn't work well in a specific filetype
per_filetype = {
["html"] = {
enable_close = false,
},
},
})
+23
View File
@@ -0,0 +1,23 @@
local cmp = require("blink.cmp")
cmp.setup({
keymap = {
preset = "default",
["<Tab>"] = { "accept", "fallback" },
["<C><leader>"] = { "show" },
},
appearance = {
nerd_font_variant = "mono",
},
sources = {
default = { "lsp", "path", "snippets", "buffer" },
},
completion = {
documentation = {
auto_show = true,
auto_show_delay_ms = 200,
},
accept = {
auto_brackets = { enabled = true },
},
},
})
+16
View File
@@ -0,0 +1,16 @@
require("conform").setup({
formatter_by_ft = {
lua = { "stylua" },
javascript = { "prettierd", "prettier", stop_after_first = true },
json = { "prettierd", "prettier", stop_after_first = true },
vue = { "prettierd", "prettier", stop_after_first = true },
php = { "pint" },
},
format_on_save = {
timeout_ms = 500,
lsp_format = "fallback",
},
default_format_ops = {
lsp_format = "fallback",
},
})
+39
View File
@@ -0,0 +1,39 @@
require("CopilotChat").setup({
providers = {
my_mac = {
get_url = function(otps)
return "http://192.168.8.10:11434/v1"
end,
get_models = function()
return { { id = "qwen2.5:14b" } }
end,
prepare_input = require("CopilotChat.config.providers").copilot.prepare_input,
prepare_output = require("CopilotChat.config.providers").copilot.prepare_output,
},
},
})
vim.g.copilot_no_tab_map = true
vim.g.copilot_enabled = false
vim.keymap.set("n", "<leader>cc", ":CopilotChat<CR>", { desc = "Open Copilot Chat" })
vim.keymap.set("n", "<leader>cr", ":CopilotChatRestart<CR>", { desc = "Restart Copilot Chat" })
vim.keymap.set("n", "<leader>cs", ":CopilotChatStop<CR>", { desc = "Stop Copilot Chat" })
vim.keymap.set("n", "<leader>ca", ":CopilotChatAccept<CR>", { desc = "Accept Copilot Chat Suggestion" })
vim.keymap.set("n", "<leader>cn", ":CopilotChatNext<CR>", { desc = "Next Copilot Chat Suggestion" })
vim.keymap.set("n", "<leader>cp", ":CopilotChatPrev<CR>", { desc = "Previous Copilot Chat Suggestion" })
vim.keymap.set("n", "<leader>cd", ":CopilotChatClose<CR>", { desc = "Dismiss Copilot Chat" })
local function toggle_copilot()
local copilot_enabled = vim.g.copilot_enabled
if copilot_enabled == 1 then
vim.cmd("Copilot disable")
print("Copilot disabled")
else
vim.cmd("Copilot enable")
print("Copilot enabled")
end
end
vim.keymap.set("n", "<leader>ct", toggle_copilot, { desc = "Toggle Copilot" })
+5
View File
@@ -0,0 +1,5 @@
require("diffview").setup({})
vim.keymap.set("n", "<leader>do", ":DiffviewOpen<CR>")
vim.keymap.set("n", "<leader>dc", ":DiffviewClose<CR>")
vim.keymap.set("n", "<leader>dh", ":DiffviewFileHistory<CR>")
+23
View File
@@ -0,0 +1,23 @@
require("fzf-lua").setup({})
-- FZF-KEYMAPS
vim.keymap.set("n", "<leader>ff", function()
require("fzf-lua").files()
end, { desc = "FZF Files" })
vim.keymap.set("n", "<leader>fg", function()
require("fzf-lua").live_grep()
end, { desc = "FZF Live Grep" })
vim.keymap.set("n", "<leader>fb", function()
require("fzf-lua").buffers()
end, { desc = "FZF Buffers" })
vim.keymap.set("n", "<leader>fh", function()
require("fzf-lua").help_tags()
end, { desc = "FZF Help Tags" })
vim.keymap.set("n", "<leader>fx", function()
require("fzf-lua").diagnostics_document()
end, { desc = "FZF Diagnostics Document" })
vim.keymap.set("n", "<leader>fX", function()
require("fzf-lua").diagnostics_workspace()
end, { desc = "FZF Diagnostics Workspace" })
+76
View File
@@ -0,0 +1,76 @@
require("gitsigns").setup({
signs = {
add = { text = "\u{2590}" }, -- ▏
change = { text = "\u{2590}" }, -- ▐
delete = { text = "\u{2590}" }, -- ◦
topdelete = { text = "\u{25e6}" }, -- ◦
changedelete = { text = "\u{25cf}" }, -- ●
untracked = { text = "\u{25cb}" }, -- ○
},
signcolumn = true,
current_line_blame = false,
on_attach = function(bufnr)
local gitsigns = require('gitsigns')
local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts)
end
-- Navigation
map('n', ']c', function()
if vim.wo.diff then
vim.cmd.normal({']c', bang = true})
else
gitsigns.nav_hunk('next')
end
end)
map('n', '[c', function()
if vim.wo.diff then
vim.cmd.normal({'[c', bang = true})
else
gitsigns.nav_hunk('prev')
end
end)
-- Actions
map('n', '<leader>hs', gitsigns.stage_hunk)
map('n', '<leader>hr', gitsigns.reset_hunk)
map('v', '<leader>hs', function()
gitsigns.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') })
end)
map('v', '<leader>hr', function()
gitsigns.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') })
end)
map('n', '<leader>hS', gitsigns.stage_buffer)
map('n', '<leader>hR', gitsigns.reset_buffer)
map('n', '<leader>hp', gitsigns.preview_hunk)
map('n', '<leader>hi', gitsigns.preview_hunk_inline)
map('n', '<leader>hb', function()
gitsigns.blame_line({ full = true })
end)
map('n', '<leader>hd', gitsigns.diffthis)
map('n', '<leader>hD', function()
gitsigns.diffthis('~')
end)
map('n', '<leader>hQ', function() gitsigns.setqflist('all') end)
map('n', '<leader>hq', gitsigns.setqflist)
-- Toggles
map('n', '<leader>tb', gitsigns.toggle_current_line_blame)
map('n', '<leader>tw', gitsigns.toggle_word_diff)
-- Text object
map({'o', 'x'}, 'ih', gitsigns.select_hunk)
end
})
+57
View File
@@ -0,0 +1,57 @@
{
"plugins": {
"CopilotChat.nvim": {
"rev": "137d3bc527518f5ea982c43c43084496732365c3",
"src": "https://github.com/CopilotC-Nvim/CopilotChat.nvim"
},
"blink.cmp": {
"rev": "78336bc89ee5365633bcf754d93df01678b5c08f",
"src": "https://github.com/saghen/blink.cmp",
"version": "1.0.0 - 2.0.0"
},
"conform.nvim": {
"rev": "18aeab3d63d350dcf44d64c462cc489a3412af40",
"src": "https://github.com/stevearc/conform.nvim"
},
"diffview.nvim": {
"rev": "4516612fe98ff56ae0415a259ff6361a89419b0a",
"src": "https://github.com/sindrets/diffview.nvim"
},
"fzf-lua": {
"rev": "311a630292310ea3bfe46dd616e17f283e975801",
"src": "https://github.com/ibhagwan/fzf-lua"
},
"gitsigns.nvim": {
"rev": "dd3f588bacbeb041be6facf1742e42097f62165d",
"src": "https://github.com/lewis6991/gitsigns.nvim"
},
"mason-lspconfig.nvim": {
"rev": "7b01e2974a47d489bb92f47a41e4c0088ea8f86e",
"src": "https://github.com/mason-org/mason-lspconfig.nvim"
},
"mason.nvim": {
"rev": "8e921c2b68571e978db5d4d3fef9c9a7f8755473",
"src": "https://github.com/mason-org/mason.nvim"
},
"nvim-autopairs": {
"rev": "7b9923abad60b903ece7c52940e1321d39eccc79",
"src": "https://github.com/windwp/nvim-autopairs"
},
"nvim-lspconfig": {
"rev": "8f7e64066e2641d5e7d494962a9c7051e3d38dd5",
"src": "https://github.com/neovim/nvim-lspconfig"
},
"nvim-treesitter": {
"rev": "4916d6592ede8c07973490d9322f187e07dfefac",
"src": "https://github.com/nvim-treesitter/nvim-treesitter"
},
"nvim-ts-autotag": {
"rev": "88c1453db4ba7dd24131086fe51fdf74e587d275",
"src": "https://github.com/windwp/nvim-ts-autotag"
},
"plenary.nvim": {
"rev": "74b06c6c75e4eeb3108ec01852001636d85a932b",
"src": "https://github.com/nvim-lua/plenary.nvim.git"
}
}
}
Submodule pack/github/start/copilot.vim added at a12fd56721