Files
lua-nvim/lua/cargdev/core/function/project_commands.lua
Carlos Gutierrez 06dbe4d892 chore: remove local/unused plugins and refactor core configs
- Remove locally-developed or rarely-used plugin packages (codetyper, curls, edgy, flash) to reduce maintenance surface, external deps, and startup cost; these were local/optional and caused complexity.
- Clean up stale/keymap docs and small duplicate or experimental files (keymaps/README.md, sudoku keymaps).
- Apply targeted refactors to core modules for readability, robustness, and to align Java/DAP/Copilot integrations with local environment.
- Removed plugin modules:
  - lua/cargdev/plugins/codetyper.lua (deleted)
  - lua/cargdev/plugins/curls.lua (deleted)
  - lua/cargdev/plugins/edgy.lua (deleted)
  - lua/cargdev/plugins/flash.lua (deleted)
  - Added .codetyper to .gitignore
- Java / JDTLS:
  - ftplugin/java.lua: pin jdtls java executable to JDK 25, switch to mac_arm config, enable LSP formatter and declare multiple runtimes (JavaSE-17, JavaSE-25).
- Notifications & startup UX:
  - lua/cargdev/core/function/notification_manager.lua: large refactor — use local aliases (api, cmd, loop, opt), improved docs, dashboard-aware handling, nvim-notify fallback, safer tracking and cleanup of notifications.
- Utilities & monitors:
  - lua/cargdev/core/function/performance_monitor.lua: use local references, better notify usage and docs.
  - lua/cargdev/core/function/project_commands.lua: add docs, use local api/fn/notify, clearer RunProject/DebugProject commands.
- Terminal helper:
  - lua/cargdev/core/function/openTerminal.lua: add module docs and small refactor to use local cmd/api aliases and expose keymap.
- Keymaps & docs:
  - Removed stale keymaps README (lua/cargdev/core/keymaps/README.md).
  - Reworked many keymap files: docstrings, renamed/moved mappings to avoid conflicts, moved DAP mappings into dap plugin config, removed/disabled experimental mappings (see files under lua/cargdev/core/keymaps/*).
  - Adjusted quick keybindings and prefixes to reduce overlaps.
- Plugins & integrations:
  - lua/cargdev/plugins/formatting.lua: disabled google-java-format fallback for java (prefer JDTLS).
  - lua/cargdev/plugins/dap.lua: added additional DAP configs (Bun launch, attach helper), moved/registered dap keymaps here.
  - lua/cargdev/plugins/copilot.lua: reorganized Copilot/Copilot-cmp/CopilotChat config and added copilot source to nvim-cmp.
  - lua/cargdev/plugins/nvim-cmp.lua: added copilot source and small formatting tweak.
2026-02-10 12:17:36 -05:00

44 lines
1.7 KiB
Lua

--- Project-level user commands for running and debugging.
--- Reads a per-project configuration file at `.nvim/project.lua` that should
--- return a table with `run` and/or `debug` keys containing shell commands.
--- Registers the `:RunProject` and `:DebugProject` user commands.
--- @module project_commands
local api = vim.api
local fn = vim.fn
local notify = vim.notify
--- Run the project using the `run` command from `.nvim/project.lua`.
--- Opens a vertical split terminal with the configured run command.
--- Notifies the user if the config file or run command is missing.
api.nvim_create_user_command("RunProject", function()
local config_path = ".nvim/project.lua"
if fn.filereadable(config_path) == 0 then
notify("No project config found. Run `:e` on any file to generate it.", vim.log.levels.WARN)
return
end
local config = loadfile(config_path)()
if config and config.run then
vim.cmd("vsplit | terminal " .. config.run)
else
notify("Run command not found in project config.", vim.log.levels.ERROR)
end
end, {})
--- Debug the project using the `debug` command from `.nvim/project.lua`.
--- Opens a vertical split terminal with the configured debug command.
--- Notifies the user if the config file or debug command is missing.
api.nvim_create_user_command("DebugProject", function()
local config_path = ".nvim/project.lua"
if fn.filereadable(config_path) == 0 then
notify("No project config found. Run `:e` on any file to generate it.", vim.log.levels.WARN)
return
end
local config = loadfile(config_path)()
if config and config.debug then
vim.cmd("vsplit | terminal " .. config.debug)
else
notify("Debug command not found in project config.", vim.log.levels.ERROR)
end
end, {})