proagents 1.6.20 → 1.6.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +3 -1
- package/.proagents/.cursorrules +1 -1
- package/.proagents/.windsurfrules +1 -1
- package/.proagents/AGENTS.md +1 -1
- package/.proagents/AI_INSTRUCTIONS.md +29 -1
- package/.proagents/BOLT.md +1 -1
- package/.proagents/CLAUDE.md +1 -1
- package/.proagents/GEMINI.md +1 -1
- package/.proagents/KIRO.md +1 -1
- package/.proagents/LOVABLE.md +1 -1
- package/.proagents/REPLIT.md +1 -1
- package/.proagents/custom-commands.yaml +1 -2
- package/.proagents/docs/command-details.md +1 -2
- package/.proagents/getting-started/ai-training-setup.md +0 -1
- package/.proagents/performance/README.md +59 -0
- package/.proagents/performance/bundle-analysis.md +375 -0
- package/.proagents/performance/load-testing.md +563 -0
- package/.proagents/performance/runtime-metrics.md +489 -0
- package/.proagents/performance/web-vitals.md +425 -0
- package/.proagents/proagents.config.yaml +55 -1
- package/.proagents/prompts/11-session-tracking.md +100 -0
- package/.proagents/prompts/13-commit.md +426 -0
- package/.proagents/workflow-modes/entry-modes.md +1 -6
- package/COMMANDS.md +19 -0
- package/lib/commands/init.js +62 -11
- package/package.json +1 -1
- package/.proagents/api-versioning/README.md +0 -257
- package/.proagents/api-versioning/changelog-template.md +0 -225
- package/.proagents/api-versioning/deprecation-workflow.md +0 -470
- package/.proagents/api-versioning/versioning-strategy.md +0 -291
- package/.proagents/automation/README.md +0 -38
- package/.proagents/automation/ai-behavior-rules.md +0 -339
- package/.proagents/automation/ai-prompt-injection.md +0 -331
- package/.proagents/automation/auto-decisions.md +0 -535
- package/.proagents/automation/decision-defaults.yaml +0 -317
- package/.proagents/cache/README.md +0 -110
- package/.proagents/cache/analysis-metadata.json +0 -76
- package/.proagents/cache/conventions.json +0 -125
- package/.proagents/cache/dependencies.json +0 -85
- package/.proagents/cache/features.json +0 -115
- package/.proagents/cache/patterns.json +0 -105
- package/.proagents/cache/schemas/conventions-schema.json +0 -138
- package/.proagents/cache/schemas/dependencies-schema.json +0 -95
- package/.proagents/cache/schemas/features-schema.json +0 -104
- package/.proagents/cache/schemas/metadata-schema.json +0 -83
- package/.proagents/cache/schemas/patterns-schema.json +0 -136
- package/.proagents/cache/schemas/structure-schema.json +0 -72
- package/.proagents/cache/structure.json +0 -109
- package/.proagents/checklists/README.md +0 -261
- package/.proagents/checklists/code-quality.md +0 -137
- package/.proagents/checklists/code-review.md +0 -148
- package/.proagents/checklists/pr-checklist.md +0 -78
- package/.proagents/checklists/pre-deployment.md +0 -132
- package/.proagents/checklists/pre-implementation.md +0 -80
- package/.proagents/checklists/testing.md +0 -120
- package/.proagents/checkpoints.json +0 -13
- package/.proagents/cicd/README.md +0 -338
- package/.proagents/cicd/azure-devops.md +0 -267
- package/.proagents/cicd/github-actions.md +0 -375
- package/.proagents/cicd/gitlab-ci.md +0 -278
- package/.proagents/cicd/jenkins.md +0 -317
- package/.proagents/collaboration/README.md +0 -143
- package/.proagents/collaboration/roles.md +0 -248
- package/.proagents/collaboration/sessions.md +0 -390
- package/.proagents/collaboration/sync.md +0 -358
- package/.proagents/cost/README.md +0 -48
- package/.proagents/cost/cost-template.md +0 -283
- package/.proagents/cost/estimation-framework.md +0 -287
- package/.proagents/database/README.md +0 -72
- package/.proagents/database/examples/001-create-users.sql +0 -129
- package/.proagents/database/examples/002-add-preferences.sql +0 -94
- package/.proagents/database/examples/003-add-index.sql +0 -105
- package/.proagents/database/examples/004-rename-column.sql +0 -122
- package/.proagents/database/examples/005-add-foreign-key.sql +0 -142
- package/.proagents/database/examples/006-data-migration.sql +0 -196
- package/.proagents/database/examples/007-drop-column.sql +0 -163
- package/.proagents/database/examples/README.md +0 -89
- package/.proagents/database/migration-workflow.md +0 -478
- package/.proagents/database/rollback-scripts.md +0 -487
- package/.proagents/database/safety-checks.md +0 -447
- package/.proagents/git/README.md +0 -68
- package/.proagents/git/branch-strategy.md +0 -164
- package/.proagents/git/commit-conventions.md +0 -241
- package/.proagents/git/pr-workflow.md +0 -286
- package/.proagents/git/rollback-procedures.md +0 -416
- package/.proagents/ide-integration/README.md +0 -124
- package/.proagents/ide-integration/cline-config.md +0 -429
- package/.proagents/ide-integration/continue-config.md +0 -380
- package/.proagents/ide-integration/cursor-rules.md +0 -280
- package/.proagents/ide-integration/github-copilot.md +0 -384
- package/.proagents/ide-integration/windsurf-rules.md +0 -314
- package/.proagents/integrations/README.md +0 -97
- package/.proagents/integrations/pm/README.md +0 -344
- package/.proagents/learning/README.md +0 -136
- package/.proagents/learning/adaptation.md +0 -305
- package/.proagents/learning/data-collection.md +0 -283
- package/.proagents/learning/implementation-guide.md +0 -865
- package/.proagents/learning/reports.md +0 -306
- package/.proagents/mcp/README.md +0 -133
- package/.proagents/mcp/context-providers.md +0 -442
- package/.proagents/mcp/server-config.md +0 -306
- package/.proagents/mcp/tools-definition.md +0 -513
- package/.proagents/pm-integration/README.md +0 -151
- package/.proagents/pm-integration/asana.md +0 -346
- package/.proagents/pm-integration/github-issues.md +0 -308
- package/.proagents/pm-integration/gitlab-issues.md +0 -482
- package/.proagents/pm-integration/jira.md +0 -364
- package/.proagents/pm-integration/linear.md +0 -409
- package/.proagents/pm-integration/notion.md +0 -275
- package/.proagents/pm-integration/sync-config.md +0 -533
- package/.proagents/pm-integration/trello.md +0 -159
- package/.proagents/rules/README.md +0 -179
- package/.proagents/rules/custom-rules-template.yaml +0 -286
- package/.proagents/rules/custom-rules.md +0 -754
- package/.proagents/rules/validation-rules-template.yaml +0 -517
- package/.proagents/runbooks/README.md +0 -219
- package/.proagents/runbooks/dependency-vulnerability.md +0 -505
- package/.proagents/runbooks/incident-response.md +0 -451
- package/.proagents/runbooks/performance-degradation.md +0 -584
- package/.proagents/runbooks/production-debugging.md +0 -489
- package/.proagents/sessions/README.md +0 -5
- package/.proagents/sprints/README.md +0 -58
- package/.proagents/team/README.md +0 -256
- package/.proagents/team/code-ownership.md +0 -306
- package/.proagents/team/communication-templates.md +0 -441
- package/.proagents/team/handoff-protocol.md +0 -380
- package/.proagents/team/ide-setup/README.md +0 -103
- package/.proagents/team/ide-setup/cursor.md +0 -276
- package/.proagents/team/ide-setup/jetbrains.md +0 -330
- package/.proagents/team/ide-setup/neovim.md +0 -640
- package/.proagents/team/ide-setup/vscode.md +0 -348
- package/.proagents/team/onboarding.md +0 -278
- package/.proagents/time-tracking.json +0 -19
- package/.proagents/troubleshooting/README.md +0 -730
- package/.proagents/troubleshooting/ai-issues.md +0 -601
- package/.proagents/troubleshooting/workflow-issues.md +0 -571
|
@@ -1,640 +0,0 @@
|
|
|
1
|
-
# Neovim Setup Guide
|
|
2
|
-
|
|
3
|
-
Configure Neovim for optimal ProAgents development.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
Neovim provides a powerful, extensible environment for ProAgents workflows. This guide covers setup with modern Lua-based configuration using lazy.nvim or Packer.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Prerequisites
|
|
14
|
-
|
|
15
|
-
- Neovim 0.9+ (0.10+ recommended)
|
|
16
|
-
- Node.js 18+ (for LSP servers)
|
|
17
|
-
- ripgrep (for Telescope)
|
|
18
|
-
- A Nerd Font (for icons)
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
# macOS
|
|
22
|
-
brew install neovim ripgrep fd
|
|
23
|
-
|
|
24
|
-
# Ubuntu/Debian
|
|
25
|
-
sudo apt install neovim ripgrep fd-find
|
|
26
|
-
|
|
27
|
-
# Verify installation
|
|
28
|
-
nvim --version
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Plugin Manager Setup
|
|
34
|
-
|
|
35
|
-
### Using lazy.nvim (Recommended)
|
|
36
|
-
|
|
37
|
-
Create `~/.config/nvim/init.lua`:
|
|
38
|
-
|
|
39
|
-
```lua
|
|
40
|
-
-- Bootstrap lazy.nvim
|
|
41
|
-
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
42
|
-
if not vim.fn.isdirectory(lazypath) then
|
|
43
|
-
vim.fn.system({
|
|
44
|
-
"git", "clone", "--filter=blob:none",
|
|
45
|
-
"https://github.com/folke/lazy.nvim.git",
|
|
46
|
-
"--branch=stable", lazypath,
|
|
47
|
-
})
|
|
48
|
-
end
|
|
49
|
-
vim.opt.rtp:prepend(lazypath)
|
|
50
|
-
|
|
51
|
-
-- Leader key (set before lazy)
|
|
52
|
-
vim.g.mapleader = " "
|
|
53
|
-
vim.g.maplocalleader = " "
|
|
54
|
-
|
|
55
|
-
-- Load plugins
|
|
56
|
-
require("lazy").setup("plugins")
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Using Packer (Alternative)
|
|
60
|
-
|
|
61
|
-
```lua
|
|
62
|
-
-- Bootstrap Packer
|
|
63
|
-
local ensure_packer = function()
|
|
64
|
-
local fn = vim.fn
|
|
65
|
-
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
|
|
66
|
-
if fn.empty(fn.glob(install_path)) > 0 then
|
|
67
|
-
fn.system({'git', 'clone', '--depth', '1',
|
|
68
|
-
'https://github.com/wbthomason/packer.nvim', install_path})
|
|
69
|
-
vim.cmd [[packadd packer.nvim]]
|
|
70
|
-
return true
|
|
71
|
-
end
|
|
72
|
-
return false
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
local packer_bootstrap = ensure_packer()
|
|
76
|
-
|
|
77
|
-
require('packer').startup(function(use)
|
|
78
|
-
use 'wbthomason/packer.nvim'
|
|
79
|
-
-- Add plugins here
|
|
80
|
-
if packer_bootstrap then
|
|
81
|
-
require('packer').sync()
|
|
82
|
-
end
|
|
83
|
-
end)
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Essential Plugins
|
|
89
|
-
|
|
90
|
-
Create `~/.config/nvim/lua/plugins/init.lua`:
|
|
91
|
-
|
|
92
|
-
```lua
|
|
93
|
-
return {
|
|
94
|
-
-- Core
|
|
95
|
-
{ "nvim-lua/plenary.nvim" },
|
|
96
|
-
|
|
97
|
-
-- File Explorer
|
|
98
|
-
{
|
|
99
|
-
"nvim-neo-tree/neo-tree.nvim",
|
|
100
|
-
dependencies = {
|
|
101
|
-
"nvim-lua/plenary.nvim",
|
|
102
|
-
"nvim-tree/nvim-web-devicons",
|
|
103
|
-
"MunifTanjim/nui.nvim",
|
|
104
|
-
},
|
|
105
|
-
config = function()
|
|
106
|
-
require("neo-tree").setup({
|
|
107
|
-
filesystem = {
|
|
108
|
-
filtered_items = {
|
|
109
|
-
hide_dotfiles = false,
|
|
110
|
-
hide_gitignored = false,
|
|
111
|
-
hide_by_name = { "node_modules", ".git" },
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
})
|
|
115
|
-
end,
|
|
116
|
-
},
|
|
117
|
-
|
|
118
|
-
-- Fuzzy Finder
|
|
119
|
-
{
|
|
120
|
-
"nvim-telescope/telescope.nvim",
|
|
121
|
-
dependencies = {
|
|
122
|
-
"nvim-lua/plenary.nvim",
|
|
123
|
-
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
|
|
124
|
-
},
|
|
125
|
-
config = function()
|
|
126
|
-
local telescope = require("telescope")
|
|
127
|
-
telescope.setup({
|
|
128
|
-
defaults = {
|
|
129
|
-
file_ignore_patterns = { "node_modules", ".git", ".next", "dist" },
|
|
130
|
-
},
|
|
131
|
-
})
|
|
132
|
-
telescope.load_extension("fzf")
|
|
133
|
-
end,
|
|
134
|
-
},
|
|
135
|
-
|
|
136
|
-
-- LSP
|
|
137
|
-
{
|
|
138
|
-
"neovim/nvim-lspconfig",
|
|
139
|
-
dependencies = {
|
|
140
|
-
"williamboman/mason.nvim",
|
|
141
|
-
"williamboman/mason-lspconfig.nvim",
|
|
142
|
-
},
|
|
143
|
-
},
|
|
144
|
-
|
|
145
|
-
-- Autocompletion
|
|
146
|
-
{
|
|
147
|
-
"hrsh7th/nvim-cmp",
|
|
148
|
-
dependencies = {
|
|
149
|
-
"hrsh7th/cmp-nvim-lsp",
|
|
150
|
-
"hrsh7th/cmp-buffer",
|
|
151
|
-
"hrsh7th/cmp-path",
|
|
152
|
-
"L3MON4D3/LuaSnip",
|
|
153
|
-
"saadparwaiz1/cmp_luasnip",
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
|
|
157
|
-
-- Treesitter
|
|
158
|
-
{
|
|
159
|
-
"nvim-treesitter/nvim-treesitter",
|
|
160
|
-
build = ":TSUpdate",
|
|
161
|
-
config = function()
|
|
162
|
-
require("nvim-treesitter.configs").setup({
|
|
163
|
-
ensure_installed = {
|
|
164
|
-
"typescript", "tsx", "javascript", "json",
|
|
165
|
-
"html", "css", "lua", "markdown", "yaml",
|
|
166
|
-
},
|
|
167
|
-
highlight = { enable = true },
|
|
168
|
-
indent = { enable = true },
|
|
169
|
-
})
|
|
170
|
-
end,
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
-- Formatting
|
|
174
|
-
{
|
|
175
|
-
"stevearc/conform.nvim",
|
|
176
|
-
config = function()
|
|
177
|
-
require("conform").setup({
|
|
178
|
-
formatters_by_ft = {
|
|
179
|
-
javascript = { "prettier" },
|
|
180
|
-
typescript = { "prettier" },
|
|
181
|
-
typescriptreact = { "prettier" },
|
|
182
|
-
javascriptreact = { "prettier" },
|
|
183
|
-
json = { "prettier" },
|
|
184
|
-
css = { "prettier" },
|
|
185
|
-
markdown = { "prettier" },
|
|
186
|
-
},
|
|
187
|
-
format_on_save = {
|
|
188
|
-
timeout_ms = 500,
|
|
189
|
-
lsp_fallback = true,
|
|
190
|
-
},
|
|
191
|
-
})
|
|
192
|
-
end,
|
|
193
|
-
},
|
|
194
|
-
|
|
195
|
-
-- Linting
|
|
196
|
-
{
|
|
197
|
-
"mfussenegger/nvim-lint",
|
|
198
|
-
config = function()
|
|
199
|
-
require("lint").linters_by_ft = {
|
|
200
|
-
javascript = { "eslint" },
|
|
201
|
-
typescript = { "eslint" },
|
|
202
|
-
typescriptreact = { "eslint" },
|
|
203
|
-
javascriptreact = { "eslint" },
|
|
204
|
-
}
|
|
205
|
-
end,
|
|
206
|
-
},
|
|
207
|
-
|
|
208
|
-
-- Git
|
|
209
|
-
{
|
|
210
|
-
"lewis6991/gitsigns.nvim",
|
|
211
|
-
config = function()
|
|
212
|
-
require("gitsigns").setup()
|
|
213
|
-
end,
|
|
214
|
-
},
|
|
215
|
-
|
|
216
|
-
-- Status Line
|
|
217
|
-
{
|
|
218
|
-
"nvim-lualine/lualine.nvim",
|
|
219
|
-
config = function()
|
|
220
|
-
require("lualine").setup({
|
|
221
|
-
options = { theme = "auto" },
|
|
222
|
-
})
|
|
223
|
-
end,
|
|
224
|
-
},
|
|
225
|
-
|
|
226
|
-
-- Terminal
|
|
227
|
-
{
|
|
228
|
-
"akinsho/toggleterm.nvim",
|
|
229
|
-
config = function()
|
|
230
|
-
require("toggleterm").setup({
|
|
231
|
-
open_mapping = [[<c-\>]],
|
|
232
|
-
direction = "horizontal",
|
|
233
|
-
size = 15,
|
|
234
|
-
})
|
|
235
|
-
end,
|
|
236
|
-
},
|
|
237
|
-
|
|
238
|
-
-- AI Integration (choose one)
|
|
239
|
-
{ "github/copilot.vim" },
|
|
240
|
-
-- OR
|
|
241
|
-
-- { "Exafunction/codeium.vim" },
|
|
242
|
-
|
|
243
|
-
-- Which Key (keybinding helper)
|
|
244
|
-
{
|
|
245
|
-
"folke/which-key.nvim",
|
|
246
|
-
config = function()
|
|
247
|
-
require("which-key").setup()
|
|
248
|
-
end,
|
|
249
|
-
},
|
|
250
|
-
|
|
251
|
-
-- Comments
|
|
252
|
-
{
|
|
253
|
-
"numToStr/Comment.nvim",
|
|
254
|
-
config = function()
|
|
255
|
-
require("Comment").setup()
|
|
256
|
-
end,
|
|
257
|
-
},
|
|
258
|
-
|
|
259
|
-
-- Autopairs
|
|
260
|
-
{
|
|
261
|
-
"windwp/nvim-autopairs",
|
|
262
|
-
config = function()
|
|
263
|
-
require("nvim-autopairs").setup()
|
|
264
|
-
end,
|
|
265
|
-
},
|
|
266
|
-
}
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
## LSP Configuration
|
|
272
|
-
|
|
273
|
-
Create `~/.config/nvim/lua/plugins/lsp.lua`:
|
|
274
|
-
|
|
275
|
-
```lua
|
|
276
|
-
return {
|
|
277
|
-
{
|
|
278
|
-
"williamboman/mason.nvim",
|
|
279
|
-
config = function()
|
|
280
|
-
require("mason").setup()
|
|
281
|
-
end,
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
"williamboman/mason-lspconfig.nvim",
|
|
285
|
-
config = function()
|
|
286
|
-
require("mason-lspconfig").setup({
|
|
287
|
-
ensure_installed = {
|
|
288
|
-
"tsserver", -- TypeScript
|
|
289
|
-
"eslint", -- ESLint
|
|
290
|
-
"tailwindcss", -- Tailwind CSS
|
|
291
|
-
"lua_ls", -- Lua
|
|
292
|
-
"jsonls", -- JSON
|
|
293
|
-
"html", -- HTML
|
|
294
|
-
"cssls", -- CSS
|
|
295
|
-
},
|
|
296
|
-
})
|
|
297
|
-
end,
|
|
298
|
-
},
|
|
299
|
-
{
|
|
300
|
-
"neovim/nvim-lspconfig",
|
|
301
|
-
config = function()
|
|
302
|
-
local lspconfig = require("lspconfig")
|
|
303
|
-
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
|
304
|
-
|
|
305
|
-
-- TypeScript
|
|
306
|
-
lspconfig.tsserver.setup({
|
|
307
|
-
capabilities = capabilities,
|
|
308
|
-
on_attach = function(client, bufnr)
|
|
309
|
-
-- Disable formatting (use Prettier instead)
|
|
310
|
-
client.server_capabilities.documentFormattingProvider = false
|
|
311
|
-
end,
|
|
312
|
-
})
|
|
313
|
-
|
|
314
|
-
-- ESLint
|
|
315
|
-
lspconfig.eslint.setup({
|
|
316
|
-
capabilities = capabilities,
|
|
317
|
-
})
|
|
318
|
-
|
|
319
|
-
-- Tailwind CSS
|
|
320
|
-
lspconfig.tailwindcss.setup({
|
|
321
|
-
capabilities = capabilities,
|
|
322
|
-
})
|
|
323
|
-
|
|
324
|
-
-- JSON
|
|
325
|
-
lspconfig.jsonls.setup({
|
|
326
|
-
capabilities = capabilities,
|
|
327
|
-
})
|
|
328
|
-
end,
|
|
329
|
-
},
|
|
330
|
-
}
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
## Autocompletion Configuration
|
|
336
|
-
|
|
337
|
-
Create `~/.config/nvim/lua/plugins/cmp.lua`:
|
|
338
|
-
|
|
339
|
-
```lua
|
|
340
|
-
return {
|
|
341
|
-
{
|
|
342
|
-
"hrsh7th/nvim-cmp",
|
|
343
|
-
config = function()
|
|
344
|
-
local cmp = require("cmp")
|
|
345
|
-
local luasnip = require("luasnip")
|
|
346
|
-
|
|
347
|
-
cmp.setup({
|
|
348
|
-
snippet = {
|
|
349
|
-
expand = function(args)
|
|
350
|
-
luasnip.lsp_expand(args.body)
|
|
351
|
-
end,
|
|
352
|
-
},
|
|
353
|
-
mapping = cmp.mapping.preset.insert({
|
|
354
|
-
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
|
355
|
-
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
|
356
|
-
["<C-Space>"] = cmp.mapping.complete(),
|
|
357
|
-
["<C-e>"] = cmp.mapping.abort(),
|
|
358
|
-
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
|
359
|
-
["<Tab>"] = cmp.mapping(function(fallback)
|
|
360
|
-
if cmp.visible() then
|
|
361
|
-
cmp.select_next_item()
|
|
362
|
-
elseif luasnip.expand_or_jumpable() then
|
|
363
|
-
luasnip.expand_or_jump()
|
|
364
|
-
else
|
|
365
|
-
fallback()
|
|
366
|
-
end
|
|
367
|
-
end, { "i", "s" }),
|
|
368
|
-
["<S-Tab>"] = cmp.mapping(function(fallback)
|
|
369
|
-
if cmp.visible() then
|
|
370
|
-
cmp.select_prev_item()
|
|
371
|
-
elseif luasnip.jumpable(-1) then
|
|
372
|
-
luasnip.jump(-1)
|
|
373
|
-
else
|
|
374
|
-
fallback()
|
|
375
|
-
end
|
|
376
|
-
end, { "i", "s" }),
|
|
377
|
-
}),
|
|
378
|
-
sources = cmp.config.sources({
|
|
379
|
-
{ name = "nvim_lsp" },
|
|
380
|
-
{ name = "luasnip" },
|
|
381
|
-
{ name = "buffer" },
|
|
382
|
-
{ name = "path" },
|
|
383
|
-
}),
|
|
384
|
-
})
|
|
385
|
-
end,
|
|
386
|
-
},
|
|
387
|
-
}
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
---
|
|
391
|
-
|
|
392
|
-
## Key Mappings
|
|
393
|
-
|
|
394
|
-
Create `~/.config/nvim/lua/config/keymaps.lua`:
|
|
395
|
-
|
|
396
|
-
```lua
|
|
397
|
-
local keymap = vim.keymap.set
|
|
398
|
-
local opts = { noremap = true, silent = true }
|
|
399
|
-
|
|
400
|
-
-- General
|
|
401
|
-
keymap("n", "<leader>w", ":w<CR>", { desc = "Save file" })
|
|
402
|
-
keymap("n", "<leader>q", ":q<CR>", { desc = "Quit" })
|
|
403
|
-
keymap("n", "<Esc>", ":noh<CR>", { desc = "Clear search" })
|
|
404
|
-
|
|
405
|
-
-- File Explorer
|
|
406
|
-
keymap("n", "<leader>e", ":Neotree toggle<CR>", { desc = "Toggle explorer" })
|
|
407
|
-
keymap("n", "<leader>o", ":Neotree focus<CR>", { desc = "Focus explorer" })
|
|
408
|
-
|
|
409
|
-
-- Telescope (Fuzzy Finding)
|
|
410
|
-
keymap("n", "<leader>ff", ":Telescope find_files<CR>", { desc = "Find files" })
|
|
411
|
-
keymap("n", "<leader>fg", ":Telescope live_grep<CR>", { desc = "Live grep" })
|
|
412
|
-
keymap("n", "<leader>fb", ":Telescope buffers<CR>", { desc = "Find buffers" })
|
|
413
|
-
keymap("n", "<leader>fh", ":Telescope help_tags<CR>", { desc = "Help tags" })
|
|
414
|
-
keymap("n", "<leader>fr", ":Telescope oldfiles<CR>", { desc = "Recent files" })
|
|
415
|
-
keymap("n", "<leader>fs", ":Telescope grep_string<CR>", { desc = "Grep string" })
|
|
416
|
-
|
|
417
|
-
-- LSP
|
|
418
|
-
keymap("n", "gd", vim.lsp.buf.definition, { desc = "Go to definition" })
|
|
419
|
-
keymap("n", "gr", vim.lsp.buf.references, { desc = "Go to references" })
|
|
420
|
-
keymap("n", "gi", vim.lsp.buf.implementation, { desc = "Go to implementation" })
|
|
421
|
-
keymap("n", "K", vim.lsp.buf.hover, { desc = "Hover documentation" })
|
|
422
|
-
keymap("n", "<leader>ca", vim.lsp.buf.code_action, { desc = "Code action" })
|
|
423
|
-
keymap("n", "<leader>rn", vim.lsp.buf.rename, { desc = "Rename" })
|
|
424
|
-
keymap("n", "<leader>d", vim.diagnostic.open_float, { desc = "Line diagnostics" })
|
|
425
|
-
keymap("n", "[d", vim.diagnostic.goto_prev, { desc = "Previous diagnostic" })
|
|
426
|
-
keymap("n", "]d", vim.diagnostic.goto_next, { desc = "Next diagnostic" })
|
|
427
|
-
|
|
428
|
-
-- Formatting
|
|
429
|
-
keymap("n", "<leader>fm", function()
|
|
430
|
-
require("conform").format({ async = true, lsp_fallback = true })
|
|
431
|
-
end, { desc = "Format file" })
|
|
432
|
-
|
|
433
|
-
-- Git
|
|
434
|
-
keymap("n", "<leader>gs", ":Telescope git_status<CR>", { desc = "Git status" })
|
|
435
|
-
keymap("n", "<leader>gc", ":Telescope git_commits<CR>", { desc = "Git commits" })
|
|
436
|
-
keymap("n", "<leader>gb", ":Telescope git_branches<CR>", { desc = "Git branches" })
|
|
437
|
-
|
|
438
|
-
-- Terminal
|
|
439
|
-
keymap("n", "<leader>tt", ":ToggleTerm<CR>", { desc = "Toggle terminal" })
|
|
440
|
-
keymap("t", "<Esc>", [[<C-\><C-n>]], { desc = "Exit terminal mode" })
|
|
441
|
-
|
|
442
|
-
-- Buffers
|
|
443
|
-
keymap("n", "<S-h>", ":bprevious<CR>", { desc = "Previous buffer" })
|
|
444
|
-
keymap("n", "<S-l>", ":bnext<CR>", { desc = "Next buffer" })
|
|
445
|
-
keymap("n", "<leader>bd", ":bdelete<CR>", { desc = "Delete buffer" })
|
|
446
|
-
|
|
447
|
-
-- Windows
|
|
448
|
-
keymap("n", "<C-h>", "<C-w>h", { desc = "Move to left window" })
|
|
449
|
-
keymap("n", "<C-j>", "<C-w>j", { desc = "Move to bottom window" })
|
|
450
|
-
keymap("n", "<C-k>", "<C-w>k", { desc = "Move to top window" })
|
|
451
|
-
keymap("n", "<C-l>", "<C-w>l", { desc = "Move to right window" })
|
|
452
|
-
|
|
453
|
-
-- ProAgents Commands (via terminal)
|
|
454
|
-
keymap("n", "<leader>ps", ":TermExec cmd='proagents status'<CR>", { desc = "ProAgents status" })
|
|
455
|
-
keymap("n", "<leader>pf", ":TermExec cmd='proagents feature list'<CR>", { desc = "ProAgents features" })
|
|
456
|
-
keymap("n", "<leader>pc", ":TermExec cmd='proagents checklist current'<CR>", { desc = "ProAgents checklist" })
|
|
457
|
-
```
|
|
458
|
-
|
|
459
|
-
---
|
|
460
|
-
|
|
461
|
-
## ProAgents Integration
|
|
462
|
-
|
|
463
|
-
### Custom Commands
|
|
464
|
-
|
|
465
|
-
Add to your config:
|
|
466
|
-
|
|
467
|
-
```lua
|
|
468
|
-
-- ProAgents custom commands
|
|
469
|
-
vim.api.nvim_create_user_command("ProAgentsStatus", function()
|
|
470
|
-
vim.cmd("TermExec cmd='proagents status'")
|
|
471
|
-
end, { desc = "Show ProAgents status" })
|
|
472
|
-
|
|
473
|
-
vim.api.nvim_create_user_command("ProAgentsFeature", function(opts)
|
|
474
|
-
local cmd = "proagents feature " .. opts.args
|
|
475
|
-
vim.cmd("TermExec cmd='" .. cmd .. "'")
|
|
476
|
-
end, { nargs = "+", desc = "ProAgents feature command" })
|
|
477
|
-
|
|
478
|
-
vim.api.nvim_create_user_command("ProAgentsAnalyze", function()
|
|
479
|
-
vim.cmd("TermExec cmd='proagents analyze'")
|
|
480
|
-
end, { desc = "Analyze codebase" })
|
|
481
|
-
|
|
482
|
-
vim.api.nvim_create_user_command("ProAgentsChecklist", function(opts)
|
|
483
|
-
local checklist = opts.args ~= "" and opts.args or "current"
|
|
484
|
-
vim.cmd("TermExec cmd='proagents checklist " .. checklist .. "'")
|
|
485
|
-
end, { nargs = "?", desc = "Run checklist" })
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
### Telescope Extension for ProAgents
|
|
489
|
-
|
|
490
|
-
Create `~/.config/nvim/lua/plugins/proagents.lua`:
|
|
491
|
-
|
|
492
|
-
```lua
|
|
493
|
-
-- ProAgents Telescope picker
|
|
494
|
-
local pickers = require("telescope.pickers")
|
|
495
|
-
local finders = require("telescope.finders")
|
|
496
|
-
local conf = require("telescope.config").values
|
|
497
|
-
local actions = require("telescope.actions")
|
|
498
|
-
local action_state = require("telescope.actions.state")
|
|
499
|
-
|
|
500
|
-
local proagents_commands = function(opts)
|
|
501
|
-
opts = opts or {}
|
|
502
|
-
pickers.new(opts, {
|
|
503
|
-
prompt_title = "ProAgents Commands",
|
|
504
|
-
finder = finders.new_table({
|
|
505
|
-
results = {
|
|
506
|
-
{ "status", "Show workflow status" },
|
|
507
|
-
{ "feature list", "List active features" },
|
|
508
|
-
{ "feature start", "Start new feature" },
|
|
509
|
-
{ "analyze", "Analyze codebase" },
|
|
510
|
-
{ "checklist current", "Current phase checklist" },
|
|
511
|
-
{ "checklist pre-deployment", "Pre-deployment checklist" },
|
|
512
|
-
{ "doc", "Generate documentation" },
|
|
513
|
-
{ "test", "Run tests" },
|
|
514
|
-
},
|
|
515
|
-
entry_maker = function(entry)
|
|
516
|
-
return {
|
|
517
|
-
value = entry[1],
|
|
518
|
-
display = entry[1] .. " - " .. entry[2],
|
|
519
|
-
ordinal = entry[1],
|
|
520
|
-
}
|
|
521
|
-
end,
|
|
522
|
-
}),
|
|
523
|
-
sorter = conf.generic_sorter(opts),
|
|
524
|
-
attach_mappings = function(prompt_bufnr, map)
|
|
525
|
-
actions.select_default:replace(function()
|
|
526
|
-
actions.close(prompt_bufnr)
|
|
527
|
-
local selection = action_state.get_selected_entry()
|
|
528
|
-
vim.cmd("TermExec cmd='proagents " .. selection.value .. "'")
|
|
529
|
-
end)
|
|
530
|
-
return true
|
|
531
|
-
end,
|
|
532
|
-
}):find()
|
|
533
|
-
end
|
|
534
|
-
|
|
535
|
-
-- Register command
|
|
536
|
-
vim.api.nvim_create_user_command("ProAgents", proagents_commands, {})
|
|
537
|
-
vim.keymap.set("n", "<leader>pa", proagents_commands, { desc = "ProAgents commands" })
|
|
538
|
-
```
|
|
539
|
-
|
|
540
|
-
---
|
|
541
|
-
|
|
542
|
-
## Editor Options
|
|
543
|
-
|
|
544
|
-
Create `~/.config/nvim/lua/config/options.lua`:
|
|
545
|
-
|
|
546
|
-
```lua
|
|
547
|
-
local opt = vim.opt
|
|
548
|
-
|
|
549
|
-
-- Line numbers
|
|
550
|
-
opt.number = true
|
|
551
|
-
opt.relativenumber = true
|
|
552
|
-
|
|
553
|
-
-- Tabs & Indentation
|
|
554
|
-
opt.tabstop = 2
|
|
555
|
-
opt.shiftwidth = 2
|
|
556
|
-
opt.softtabstop = 2
|
|
557
|
-
opt.expandtab = true
|
|
558
|
-
opt.smartindent = true
|
|
559
|
-
|
|
560
|
-
-- Line wrapping
|
|
561
|
-
opt.wrap = false
|
|
562
|
-
|
|
563
|
-
-- Search
|
|
564
|
-
opt.ignorecase = true
|
|
565
|
-
opt.smartcase = true
|
|
566
|
-
opt.hlsearch = true
|
|
567
|
-
opt.incsearch = true
|
|
568
|
-
|
|
569
|
-
-- Appearance
|
|
570
|
-
opt.termguicolors = true
|
|
571
|
-
opt.signcolumn = "yes"
|
|
572
|
-
opt.cursorline = true
|
|
573
|
-
opt.scrolloff = 8
|
|
574
|
-
opt.sidescrolloff = 8
|
|
575
|
-
|
|
576
|
-
-- Behavior
|
|
577
|
-
opt.splitright = true
|
|
578
|
-
opt.splitbelow = true
|
|
579
|
-
opt.clipboard = "unnamedplus"
|
|
580
|
-
opt.undofile = true
|
|
581
|
-
opt.updatetime = 250
|
|
582
|
-
opt.timeoutlen = 300
|
|
583
|
-
|
|
584
|
-
-- File handling
|
|
585
|
-
opt.backup = false
|
|
586
|
-
opt.swapfile = false
|
|
587
|
-
opt.fileencoding = "utf-8"
|
|
588
|
-
```
|
|
589
|
-
|
|
590
|
-
---
|
|
591
|
-
|
|
592
|
-
## Troubleshooting
|
|
593
|
-
|
|
594
|
-
### LSP Not Working
|
|
595
|
-
|
|
596
|
-
```vim
|
|
597
|
-
:LspInfo " Check LSP status
|
|
598
|
-
:Mason " Check/install LSP servers
|
|
599
|
-
:checkhealth lsp " Health check
|
|
600
|
-
```
|
|
601
|
-
|
|
602
|
-
### Treesitter Issues
|
|
603
|
-
|
|
604
|
-
```vim
|
|
605
|
-
:TSUpdate " Update parsers
|
|
606
|
-
:TSInstall <lang> " Install specific parser
|
|
607
|
-
:checkhealth nvim-treesitter
|
|
608
|
-
```
|
|
609
|
-
|
|
610
|
-
### Plugin Issues
|
|
611
|
-
|
|
612
|
-
```vim
|
|
613
|
-
:Lazy " Open plugin manager
|
|
614
|
-
:Lazy sync " Sync plugins
|
|
615
|
-
:Lazy clean " Remove unused plugins
|
|
616
|
-
```
|
|
617
|
-
|
|
618
|
-
### Performance
|
|
619
|
-
|
|
620
|
-
```vim
|
|
621
|
-
:checkhealth " Full health check
|
|
622
|
-
:StartupTime " Profile startup (with plugin)
|
|
623
|
-
```
|
|
624
|
-
|
|
625
|
-
---
|
|
626
|
-
|
|
627
|
-
## Quick Reference
|
|
628
|
-
|
|
629
|
-
| Keybinding | Action |
|
|
630
|
-
|------------|--------|
|
|
631
|
-
| `<Space>ff` | Find files |
|
|
632
|
-
| `<Space>fg` | Live grep |
|
|
633
|
-
| `<Space>e` | Toggle file explorer |
|
|
634
|
-
| `gd` | Go to definition |
|
|
635
|
-
| `gr` | Find references |
|
|
636
|
-
| `K` | Hover docs |
|
|
637
|
-
| `<Space>ca` | Code actions |
|
|
638
|
-
| `<Space>fm` | Format file |
|
|
639
|
-
| `<Space>pa` | ProAgents commands |
|
|
640
|
-
| `<C-\>` | Toggle terminal |
|