feat: update nvim plugins and configurations
Update Neovim plugins and keybindings for an improved development experience . Changes include the addition of `toggleterm.nvim` for better terminal support , `conform.nvim` for easier configurations, new themes, AI assistance with ` neoai.nvim`, version control enhancements, and more. Removed unused themes and plugins to streamline the setup. Refactored keybindings for better navigation and usability. ChatGPT is taking its job seriously
This commit is contained in:
parent
ad7936435e
commit
36df2834e5
12 changed files with 156 additions and 106 deletions
|
|
@ -1,22 +0,0 @@
|
||||||
require("cloak").setup({
|
|
||||||
enabled = false,
|
|
||||||
cloak_character = "*",
|
|
||||||
-- The applied highlight group (colors) on the cloaking, see `:h highlight`.
|
|
||||||
highlight_group = "Comment",
|
|
||||||
patterns = {
|
|
||||||
{
|
|
||||||
-- Match any file starting with ".env".
|
|
||||||
-- This can be a table to match multiple file patterns.
|
|
||||||
file_pattern = {
|
|
||||||
".env*",
|
|
||||||
"wrangler.toml",
|
|
||||||
".dev.vars",
|
|
||||||
},
|
|
||||||
-- Match an equals sign and any character after it.
|
|
||||||
-- This can also be a table of patterns to cloak,
|
|
||||||
-- example: cloak_pattern = { ":.+", "-.+" } for yaml files.
|
|
||||||
cloak_pattern = "=.+"
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
require('Comment').setup()
|
|
||||||
3
after/plugin/conform.lua
Normal file
3
after/plugin/conform.lua
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
require("conform").setup{
|
||||||
|
javascript = { { "prettierd", "prettier" } },
|
||||||
|
}
|
||||||
|
|
@ -2,7 +2,7 @@ local lsp = require("lsp-zero")
|
||||||
local lspconfig = require('lspconfig')
|
local lspconfig = require('lspconfig')
|
||||||
local home = vim.fn.expand('$HOME')
|
local home = vim.fn.expand('$HOME')
|
||||||
|
|
||||||
-- Activate intelephense
|
-- Activate intelephense because I paid for it, yes
|
||||||
lspconfig.intelephense.setup {
|
lspconfig.intelephense.setup {
|
||||||
cmd = { "intelephense", "--stdio" },
|
cmd = { "intelephense", "--stdio" },
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
6
after/plugin/lualine.lua
Normal file
6
after/plugin/lualine.lua
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
require('lualine').setup{
|
||||||
|
options = {
|
||||||
|
theme = 'auto',
|
||||||
|
icons_enabled = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
4
after/plugin/mini.lua
Normal file
4
after/plugin/mini.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
require('mini.comment').setup()
|
||||||
|
require('mini.surround').setup()
|
||||||
|
require('mini.pairs').setup()
|
||||||
|
require('mini.clue').setup()
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
require("neoai").setup({
|
require('neoai').setup({
|
||||||
models = {
|
models = {
|
||||||
{
|
{
|
||||||
name = "openai",
|
name = "openai",
|
||||||
|
|
@ -8,8 +8,6 @@ require("neoai").setup({
|
||||||
},
|
},
|
||||||
open_ai = {
|
open_ai = {
|
||||||
api_key = {
|
api_key = {
|
||||||
env = "OPENAI_API_KEY",
|
|
||||||
value = nil,
|
|
||||||
get = function()
|
get = function()
|
||||||
local key = vim.fn.system("pass show openai/api_key")
|
local key = vim.fn.system("pass show openai/api_key")
|
||||||
key = string.gsub(key, "\n", "")
|
key = string.gsub(key, "\n", "")
|
||||||
|
|
@ -17,6 +15,16 @@ require("neoai").setup({
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
prompts = {
|
||||||
|
context_prompt = function(context)
|
||||||
|
return "You are a senior software developer."
|
||||||
|
.. "You always answer question with short, straight to the point answers."
|
||||||
|
.. "You only provide the code snippet and without the code block."
|
||||||
|
.. "Only provide explaination if the user asks for it"
|
||||||
|
.. "Here is the user's problem:"
|
||||||
|
.. context
|
||||||
|
end,
|
||||||
|
},
|
||||||
shortcuts = {
|
shortcuts = {
|
||||||
{
|
{
|
||||||
name = "textify",
|
name = "textify",
|
||||||
|
|
@ -62,9 +70,8 @@ require("neoai").setup({
|
||||||
=========================================
|
=========================================
|
||||||
ci: use pulumi common new kubernetes helpers
|
ci: use pulumi common new kubernetes helpers
|
||||||
=========================================
|
=========================================
|
||||||
Using the following git diff generate a consise and
|
Using the following git diff in order to generate
|
||||||
clear git commit message, with a short title summary
|
a consise and clear git commit message:
|
||||||
that is 75 characters or less.
|
|
||||||
]] .. vim.fn.system("git diff --cached")
|
]] .. vim.fn.system("git diff --cached")
|
||||||
end,
|
end,
|
||||||
modes = { "n" },
|
modes = { "n" },
|
||||||
|
|
@ -72,3 +79,17 @@ require("neoai").setup({
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- Keybindings
|
||||||
|
vim.keymap.set("n", "<leader>at", "<cmd>NeoAIToggle<cr>",
|
||||||
|
{silent = true, noremap = true}
|
||||||
|
)
|
||||||
|
vim.keymap.set("n", "<leader>ai", ":NeoAIInject YOUR MAY ONLY PROVIDE ONLY THE CODE SNIPPET AND WITHOUT THE CODE BLOCK",
|
||||||
|
{silent = true, noremap = true}
|
||||||
|
)
|
||||||
|
vim.keymap.set("v", "<leader>ac", "<cmd>'<,'>NeoAIContext<cr>iPlease explain shortly",
|
||||||
|
{silent = true, noremap = true}
|
||||||
|
)
|
||||||
|
vim.keymap.set("n", "<leader>ap", "<cmd>put c<cr><cmd>let @c=''<cr>",
|
||||||
|
{silent = true, noremap = true}
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,65 @@
|
||||||
require("nvim-tree").setup({
|
require("nvim-tree").setup({
|
||||||
sort_by = "case_sensitive",
|
sort_by = "case_sensitive",
|
||||||
view = { width = 40, },
|
view = { width = 40, },
|
||||||
renderer = { group_empty = true, },
|
|
||||||
filters = { dotfiles = true, },
|
filters = { dotfiles = true, },
|
||||||
|
actions = {
|
||||||
|
open_file = {
|
||||||
|
quit_on_open = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
renderer = {
|
||||||
|
group_empty = true,
|
||||||
|
icons = {
|
||||||
|
web_devicons = {
|
||||||
|
file = {
|
||||||
|
enable = true,
|
||||||
|
color = true,
|
||||||
|
},
|
||||||
|
folder = {
|
||||||
|
enable = false,
|
||||||
|
color = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
git_placement = "before",
|
||||||
|
modified_placement = "after",
|
||||||
|
diagnostics_placement = "signcolumn",
|
||||||
|
bookmarks_placement = "signcolumn",
|
||||||
|
padding = " ",
|
||||||
|
symlink_arrow = " ➛ ",
|
||||||
|
show = {
|
||||||
|
file = true,
|
||||||
|
folder = true,
|
||||||
|
folder_arrow = true,
|
||||||
|
git = true,
|
||||||
|
modified = true,
|
||||||
|
diagnostics = true,
|
||||||
|
bookmarks = true,
|
||||||
|
},
|
||||||
|
glyphs = {
|
||||||
|
default = "",
|
||||||
|
symlink = "",
|
||||||
|
bookmark = "",
|
||||||
|
modified = "●",
|
||||||
|
folder = {
|
||||||
|
arrow_closed = "",
|
||||||
|
arrow_open = "",
|
||||||
|
default = "",
|
||||||
|
open = "",
|
||||||
|
empty = "",
|
||||||
|
empty_open = "",
|
||||||
|
symlink = "",
|
||||||
|
symlink_open = "",
|
||||||
|
},
|
||||||
|
git = {
|
||||||
|
unstaged = "✗",
|
||||||
|
staged = "✓",
|
||||||
|
unmerged = "",
|
||||||
|
renamed = "➜",
|
||||||
|
untracked = "★",
|
||||||
|
deleted = "",
|
||||||
|
ignored = "◌",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,5 @@ vim.keymap.set('n', '<leader>ps', function() builtin.live_grep() end)
|
||||||
vim.keymap.set('n', '<leader>vh', builtin.help_tags, {})
|
vim.keymap.set('n', '<leader>vh', builtin.help_tags, {})
|
||||||
vim.keymap.set('n', '<leader>fa', function() builtin.find_files({ follow = true, no_ignore = true, hidden = true }) end)
|
vim.keymap.set('n', '<leader>fa', function() builtin.find_files({ follow = true, no_ignore = true, hidden = true }) end)
|
||||||
vim.keymap.set('n', '<leader>fb', function() builtin.buffers() end)
|
vim.keymap.set('n', '<leader>fb', function() builtin.buffers() end)
|
||||||
vim.keymap.set('n', '<leader>cm', function() builtin.git_commits() end)
|
vim.keymap.set('n', '<leader>fc', function() builtin.git_commits() end)
|
||||||
vim.keymap.set('n', '<leader>gt', function() builtin.git_status() end)
|
vim.keymap.set('n', '<leader>gt', function() builtin.git_status() end)
|
||||||
|
|
||||||
|
|
|
||||||
4
after/plugin/toggleterm.lua
Normal file
4
after/plugin/toggleterm.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
require("toggleterm").setup()
|
||||||
|
|
||||||
|
-- floating terminal
|
||||||
|
vim.keymap.set("n", "<leader>\\", "<cmd>ToggleTerm direction=float<CR>")
|
||||||
|
|
@ -1,31 +1,38 @@
|
||||||
-- This file can be loaded by calling `lua require('plugins')` from your init.vim
|
|
||||||
|
|
||||||
-- Only required if you have packer configured as `opt`
|
|
||||||
vim.cmd.packadd("packer.nvim")
|
vim.cmd.packadd("packer.nvim")
|
||||||
|
|
||||||
return require("packer").startup(function(use)
|
return require("packer").startup(function(use)
|
||||||
-- Packer can manage itself
|
-- Packer can manage itself
|
||||||
use "wbthomason/packer.nvim"
|
use "wbthomason/packer.nvim"
|
||||||
|
|
||||||
|
-- gF but better (and real)
|
||||||
use "wsdjeg/vim-fetch"
|
use "wsdjeg/vim-fetch"
|
||||||
|
|
||||||
|
-- terminal in neovim which already exists but is pretty bad and this one is better
|
||||||
|
use { "akinsho/toggleterm.nvim", tag = '*' }
|
||||||
|
|
||||||
|
-- find everything, maybe too much
|
||||||
use {
|
use {
|
||||||
"nvim-telescope/telescope.nvim",
|
"nvim-telescope/telescope.nvim",
|
||||||
requires = { { "nvim-lua/plenary.nvim" } }
|
requires = { { "nvim-lua/plenary.nvim" } }
|
||||||
}
|
}
|
||||||
|
|
||||||
use 'numToStr/Comment.nvim'
|
-- easy mode
|
||||||
|
use("stevearc/conform.nvim")
|
||||||
use("tpope/vim-surround")
|
use { 'stevearc/dressing.nvim' }
|
||||||
|
use("rafamadriz/friendly-snippets")
|
||||||
|
use({ 'echasnovski/mini.nvim', branch = 'stable' })
|
||||||
|
use("ThePrimeagen/refactoring.nvim")
|
||||||
|
|
||||||
|
-- theme stuff
|
||||||
|
use {
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
requires = { 'nvim-tree/nvim-web-devicons', opt = true }
|
||||||
|
}
|
||||||
use("rebelot/kanagawa.nvim")
|
use("rebelot/kanagawa.nvim")
|
||||||
use("felipeagc/fleet-theme-nvim")
|
use("felipeagc/fleet-theme-nvim")
|
||||||
use { "catppuccin/nvim", as = "catppuccin" }
|
|
||||||
use({ 'rose-pine/neovim', as = 'rose-pine' })
|
|
||||||
use("folke/tokyonight.nvim")
|
|
||||||
|
|
||||||
use("lukas-reineke/indent-blankline.nvim")
|
use("lukas-reineke/indent-blankline.nvim")
|
||||||
|
|
||||||
|
-- do I need this ?
|
||||||
use({
|
use({
|
||||||
"folke/trouble.nvim",
|
"folke/trouble.nvim",
|
||||||
config = function()
|
config = function()
|
||||||
|
|
@ -35,6 +42,7 @@ return require("packer").startup(function(use)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- I'm not a netrw fan
|
||||||
use {
|
use {
|
||||||
'nvim-tree/nvim-tree.lua',
|
'nvim-tree/nvim-tree.lua',
|
||||||
requires = {
|
requires = {
|
||||||
|
|
@ -42,10 +50,6 @@ return require("packer").startup(function(use)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
use("lewis6991/gitsigns.nvim")
|
|
||||||
|
|
||||||
use("ThePrimeagen/refactoring.nvim")
|
|
||||||
|
|
||||||
use {
|
use {
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
run = function()
|
run = function()
|
||||||
|
|
@ -53,19 +57,28 @@ return require("packer").startup(function(use)
|
||||||
ts_update()
|
ts_update()
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
use("nvim-treesitter/nvim-treesitter-context");
|
||||||
use("nvim-treesitter/playground")
|
use("nvim-treesitter/playground")
|
||||||
|
|
||||||
|
-- versionning
|
||||||
use("mbbill/undotree")
|
use("mbbill/undotree")
|
||||||
use("tpope/vim-fugitive")
|
use("tpope/vim-fugitive")
|
||||||
use("nvim-treesitter/nvim-treesitter-context");
|
use("lewis6991/gitsigns.nvim")
|
||||||
use("jacoborus/tender.vim")
|
|
||||||
|
|
||||||
|
-- important
|
||||||
|
use("folke/zen-mode.nvim")
|
||||||
|
use("eandrju/cellular-automaton.nvim")
|
||||||
|
|
||||||
|
-- AI stuff
|
||||||
|
use("github/copilot.vim")
|
||||||
use {
|
use {
|
||||||
"Bryley/neoai.nvim",
|
"Bryley/neoai.nvim",
|
||||||
requires = {
|
requires = {
|
||||||
"MunifTanjim/nui.nvim",
|
"MunifTanjim/nui.nvim",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- making neovim actually usable
|
||||||
use {
|
use {
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"VonHeikemen/lsp-zero.nvim",
|
||||||
branch = 'v1.x',
|
branch = 'v1.x',
|
||||||
|
|
@ -91,9 +104,4 @@ return require("packer").startup(function(use)
|
||||||
{ "folke/lsp-colors.nvim" },
|
{ "folke/lsp-colors.nvim" },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
use("folke/zen-mode.nvim")
|
|
||||||
use("github/copilot.vim")
|
|
||||||
use("eandrju/cellular-automaton.nvim")
|
|
||||||
use("laytan/cloak.nvim")
|
|
||||||
end)
|
end)
|
||||||
|
|
|
||||||
|
|
@ -10,16 +10,13 @@ vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||||
vim.keymap.set("n", "n", "nzzzv")
|
vim.keymap.set("n", "n", "nzzzv")
|
||||||
vim.keymap.set("n", "N", "Nzzzv")
|
vim.keymap.set("n", "N", "Nzzzv")
|
||||||
|
|
||||||
-- greatest remap ever
|
|
||||||
vim.keymap.set("x", "<leader>p", [["_dP]])
|
vim.keymap.set("x", "<leader>p", [["_dP]])
|
||||||
|
|
||||||
-- next greatest remap ever : asbjornHaland
|
|
||||||
vim.keymap.set({"n", "v"}, "<leader>y", [["+y]])
|
vim.keymap.set({"n", "v"}, "<leader>y", [["+y]])
|
||||||
vim.keymap.set("n", "<leader>Y", [["+Y]])
|
vim.keymap.set("n", "<leader>Y", [["+Y]])
|
||||||
|
|
||||||
vim.keymap.set({"n", "v"}, "<leader>d", [["_d]])
|
vim.keymap.set({"n", "v"}, "<leader>d", [["_d]])
|
||||||
|
|
||||||
-- This is going to get me cancelled
|
|
||||||
vim.keymap.set("i", "<C-c>", "<Esc>")
|
vim.keymap.set("i", "<C-c>", "<Esc>")
|
||||||
|
|
||||||
vim.keymap.set("n", "Q", "<nop>")
|
vim.keymap.set("n", "Q", "<nop>")
|
||||||
|
|
@ -38,14 +35,17 @@ vim.keymap.set("n", "<leader><leader>", function()
|
||||||
vim.cmd("so")
|
vim.cmd("so")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Keybindings for navigating tabs
|
-- get out of terminal mode
|
||||||
vim.keymap.set("n", "<leader>.", function()
|
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>")
|
||||||
|
|
||||||
|
-- tab stuff
|
||||||
|
vim.keymap.set("n", "<leader>tn", function()
|
||||||
vim.cmd("tabn")
|
vim.cmd("tabn")
|
||||||
end, {})
|
end, {})
|
||||||
vim.keymap.set("n", "<Tab>", function()
|
vim.keymap.set("n", "<Tab>", function()
|
||||||
vim.cmd("tabn")
|
vim.cmd("tabn")
|
||||||
end, {})
|
end, {})
|
||||||
vim.keymap.set("n", "<leader>,", function()
|
vim.keymap.set("n", "<leader>tp", function()
|
||||||
vim.cmd("tabp")
|
vim.cmd("tabp")
|
||||||
end, {})
|
end, {})
|
||||||
vim.keymap.set("n", "<leader>tc", function()
|
vim.keymap.set("n", "<leader>tc", function()
|
||||||
|
|
@ -54,19 +54,11 @@ end, {})
|
||||||
vim.keymap.set("n", "<leader>tt", function()
|
vim.keymap.set("n", "<leader>tt", function()
|
||||||
vim.cmd("tabnew")
|
vim.cmd("tabnew")
|
||||||
end, {})
|
end, {})
|
||||||
vim.keymap.set("n", "<leader><", function()
|
|
||||||
vim.cmd("tabfirst")
|
|
||||||
end, {})
|
|
||||||
vim.keymap.set("n", "<leader>>", function()
|
|
||||||
vim.cmd("tablast")
|
|
||||||
end, {})
|
|
||||||
|
|
||||||
-- Keybinding for deleting the current buffer using :bd
|
-- buffer stuff
|
||||||
vim.keymap.set("n", "<leader>bd", function()
|
vim.keymap.set("n", "<leader>bd", function()
|
||||||
vim.cmd("bd")
|
vim.cmd("bd")
|
||||||
end, {})
|
end, {})
|
||||||
|
|
||||||
-- Keybding for cycling through the list of buffers
|
|
||||||
vim.keymap.set("n", "<leader>bn", function()
|
vim.keymap.set("n", "<leader>bn", function()
|
||||||
vim.cmd("bn")
|
vim.cmd("bn")
|
||||||
end, {})
|
end, {})
|
||||||
|
|
@ -74,26 +66,3 @@ vim.keymap.set("n", "<leader>bp", function()
|
||||||
vim.cmd("bp")
|
vim.cmd("bp")
|
||||||
end, {})
|
end, {})
|
||||||
|
|
||||||
-- Define a function to execute the appropriate program based on file type
|
|
||||||
vim.keymap.set("n", "<leader>/", function()
|
|
||||||
local filetype = vim.bo.filetype
|
|
||||||
local app = ""
|
|
||||||
if filetype == "javascript" then
|
|
||||||
app = "node"
|
|
||||||
elseif filetype == "typescript" then
|
|
||||||
app = "ts-node"
|
|
||||||
elseif filetype == "lua" then
|
|
||||||
app = "lua"
|
|
||||||
elseif filetype == "python" then
|
|
||||||
app = "python"
|
|
||||||
elseif filetype == "rust" then
|
|
||||||
app = "cargo run"
|
|
||||||
elseif filetype == "go" then
|
|
||||||
app = "go run"
|
|
||||||
else
|
|
||||||
print("Unsupported file type: " .. filetype)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
vim.cmd("terminal " .. app .. " %")
|
|
||||||
end, { noremap = true, silent = true })
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue