Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5710e2a2fd | ||
|
|
2227b0b584 |
@@ -1,3 +0,0 @@
|
||||
./pack
|
||||
./nvim-pack-lock.json
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
This is my nvim setup
|
||||
|
||||
Check the branches for which version you want.
|
||||
|
||||
These are the base plugins:
|
||||
|
||||
Nvim-treesitter - https://github.com/nvim-treesitter/nvim-treesitter
|
||||
|
||||
Blink - https://github.com/saghen/blink.cmp</br>
|
||||
A completion plugin
|
||||
|
||||
Conform - https://github.com/stevearc/conform.nvim</br>
|
||||
A formatter
|
||||
|
||||
Diffview - https://github.com/sindrets/diffview.nvim</br>
|
||||
Single tabpage interface for easily cycling through diffs for all modified files for any git rev.
|
||||
|
||||
fzf-lua - https://github.com/ibhagwan/fzf-lua
|
||||
- Need to install FZF globally on the machine for this to work.
|
||||
|
||||
GitSigns - https://github.com/lewis6991/gitsigns.nvim</br>
|
||||
Deep buffer integration for Git
|
||||
|
||||
-
|
||||
- Language servers
|
||||
-
|
||||
LSP-config - https://github.com/neovim/nvim-lspconfig
|
||||
Mason-lspconfig - https://github.com/mason-org/mason-lspconfig.nvim
|
||||
Mason - https://github.com/mason-org/mason.nvim
|
||||
|
||||
Autopairs - https://github.com/windwp/nvim-autopairs
|
||||
- automatically adds pair to (){}"" etc
|
||||
|
||||
AutoTag - https://github.com/windwp/nvim-ts-autotag
|
||||
- closes html tags, makes it easier to rename/change tags
|
||||
|
||||
Plenary - https://github.com/nvim-lua/plenary.nvim.git
|
||||
- required by other plugins
|
||||
|
||||
CopilotChat - https://github.com/CopilotC-Nvim/CopilotChat.nvim</br>
|
||||
AI chatbox for Copilot or any other AI provider
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
require("options")
|
||||
require("keymaps")
|
||||
require("floating-terminal")
|
||||
require("package-installs")
|
||||
require("myplugs")
|
||||
@@ -1,86 +0,0 @@
|
||||
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" })
|
||||
@@ -1,34 +0,0 @@
|
||||
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" })
|
||||
@@ -1,83 +0,0 @@
|
||||
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",
|
||||
})
|
||||
@@ -1,10 +0,0 @@
|
||||
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
@@ -1,252 +0,0 @@
|
||||
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,
|
||||
})
|
||||
@@ -1,49 +0,0 @@
|
||||
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 +0,0 @@
|
||||
require("nvim-autopairs").setup({})
|
||||
@@ -1,16 +0,0 @@
|
||||
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,
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,23 +0,0 @@
|
||||
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 },
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,16 +0,0 @@
|
||||
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",
|
||||
},
|
||||
})
|
||||
@@ -1,39 +0,0 @@
|
||||
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" })
|
||||
@@ -1,5 +0,0 @@
|
||||
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>")
|
||||
@@ -1,23 +0,0 @@
|
||||
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" })
|
||||
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
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
|
||||
})
|
||||
@@ -1,57 +0,0 @@
|
||||
{
|
||||
"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 deleted from a12fd56721
Reference in New Issue
Block a user