From a1b412b7b9531765fe23a9393704353ac8f5e075 Mon Sep 17 00:00:00 2001 From: "Richard V.H" Date: Wed, 10 Sep 2025 10:47:47 -0700 Subject: [PATCH] Enabled debug plugin --- .gitignore | 1 - CLAUDE.md | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ init.lua | 8 +---- lazy-lock.json | 37 ++++++++++++++++++++++ 4 files changed, 122 insertions(+), 8 deletions(-) create mode 100644 CLAUDE.md create mode 100644 lazy-lock.json diff --git a/.gitignore b/.gitignore index 005b535b..8a192cab 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,3 @@ test.sh nvim spell/ -lazy-lock.json diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..005953aa --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,84 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Overview + +This is a Neovim configuration based on kickstart.nvim, a minimal starting point for Neovim configuration. The codebase is primarily single-file (init.lua) with modular plugin extensions. + +## Commands + +### Formatting and Linting +- **Format Lua code**: Use stylua via Mason tool installer (automatically configured) +- **Lint files**: Configured through nvim-lint plugin with markdownlint for markdown files +- **Check formatting**: GitHub Actions workflow runs stylua formatting checks + +### Development Workflow +- **Start Neovim**: `nvim` +- **Plugin management**: `:Lazy` (view plugin status, updates, etc.) +- **Health check**: `:checkhealth` (verify external dependencies) +- **Mason management**: `:Mason` (manage LSP servers, formatters, linters) + +### Key External Dependencies +- `git`, `make`, `unzip`, C Compiler (`gcc`) +- `ripgrep` (for Telescope search functionality) +- Clipboard tool (xclip/xsel/win32yank) +- Optional: Nerd Font (set `vim.g.have_nerd_font = true` in init.lua) + +## Architecture + +### File Structure +``` +init.lua # Main configuration file (single-file approach) +lua/ +├── kickstart/ # Kickstart.nvim optional plugins +│ ├── health.lua # Health check functionality +│ └── plugins/ # Modular plugin configurations +│ ├── autopairs.lua +│ ├── debug.lua +│ ├── gitsigns.lua +│ ├── indent_line.lua +│ ├── lint.lua +│ └── neo-tree.lua +└── custom/ # User custom plugins and configurations + └── plugins/ + ├── init.lua # Custom plugin loader (sets relativenumber) + ├── dap.lua # Debug adapter protocol + ├── hardtime.lua + └── codium.lua # Codeium AI completion +``` + +### Plugin Management +- **Plugin manager**: lazy.nvim +- **LSP management**: Mason + mason-lspconfig + mason-tool-installer +- **Automatic installation**: Tools specified in `ensure_installed` table are auto-installed via Mason + +### Core Plugin Categories +1. **LSP & Completion**: nvim-lspconfig, nvim-cmp, mason ecosystem +2. **Fuzzy Finding**: Telescope with fzf-native extension +3. **Syntax**: nvim-treesitter with auto-update +4. **Formatting**: conform.nvim with stylua for Lua +5. **Git**: gitsigns for git integration +6. **UI**: which-key, neo-tree (file explorer) +7. **Debugging**: nvim-dap with UI extensions + +### Configuration Philosophy +- Single init.lua file keeps configuration simple and readable +- Modular plugins in separate files for organization +- Lazy loading for performance +- Format-on-save enabled with LSP fallback +- Automatic tool installation via Mason + +### Custom Extensions +- Relative line numbers enabled by default +- Codeium AI completion integration +- Additional debugging capabilities with nvim-dap +- Hard time plugin for Vim training + +## Development Notes + +- The configuration follows kickstart.nvim principles: readable, documented, and minimal +- LSP servers and tools are automatically installed via Mason +- Format-on-save is configured with LSP fallback for unsupported file types +- Plugin lazy-loading is used extensively for performance +- Custom plugins should be added to `lua/custom/plugins/` directory \ No newline at end of file diff --git a/init.lua b/init.lua index 4a824489..dd6a23ff 100644 --- a/init.lua +++ b/init.lua @@ -980,16 +980,12 @@ require('lazy').setup({ -- Here are some example plugins that I've included in the Kickstart repository. -- Uncomment any of the lines below to enable them (you will need to restart nvim). -- - -- require 'kickstart.plugins.debug', + require 'kickstart.plugins.debug', require 'kickstart.plugins.indent_line', require 'kickstart.plugins.lint', - -- require 'kickstart.plugins.indent_line', - -- require 'kickstart.plugins.lint', -- require 'kickstart.plugins.autopairs', -- require 'kickstart.plugins.neo-tree', -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps - require 'kickstart.plugins.indent_line', - require 'kickstart.plugins.lint', -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` -- This is the easiest way to modularize your config. @@ -997,14 +993,12 @@ require('lazy').setup({ -- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going. -- For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins` { import = 'custom.plugins' }, - -- { import = 'custom.plugins' }, -- -- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec` -- Or use telescope! -- In normal mode type `sh` then write `lazy.nvim-plugin` -- you can continue same window with `sr` which resumes last telescope search -- For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins` - { import = 'custom.plugins' }, }, { ui = { -- If you are using a Nerd Font: set icons to an empty table which will use the diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 00000000..f4f02794 --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,37 @@ +{ + "LuaSnip": { "branch": "master", "commit": "21f74f7ba8c49f95f9d7c8293b147c2901dd2d3a" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" }, + "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, + "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, + "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, + "codeium.vim": { "branch": "main", "commit": "a8d47ec54fe82df920b2545559f767003e8a7f8d" }, + "conform.nvim": { "branch": "master", "commit": "b4aab989db276993ea5dcb78872be494ce546521" }, + "fidget.nvim": { "branch": "main", "commit": "4d5858bd4c471c895060e1b9f3575f1551184dc5" }, + "gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" }, + "hardtime.nvim": { "branch": "main", "commit": "6d7664d5bdfaea44c5f50b29f5239fab7b00c273" }, + "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "5e085efe67fccb13372d54331d849219662a7e93" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "86389a3dd687cfaa647b6f44731e492970034baa" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, + "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" }, + "mini.nvim": { "branch": "main", "commit": "6bf9eccaf2a5395b254bc031f9812cf163ca4187" }, + "monokai-pro.nvim": { "branch": "master", "commit": "1ac671f6da720cba967d28d25c2f16b8b4e18808" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, + "nvim-dap": { "branch": "master", "commit": "7523676a4be17644587aa47e4d42f6f7646d4727" }, + "nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" }, + "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" }, + "nvim-lint": { "branch": "master", "commit": "f126af5345c7472e9a0cdbe1d1a29209be72c4c4" }, + "nvim-lspconfig": { "branch": "master", "commit": "c8b90ae5cbe21d547b342b05c9266dcb8ca0de8f" }, + "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, + "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, + "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } +}