kickstart.nvim/memory-bank/systemPatterns.md

1.9 KiB

Neovim Configuration System Patterns

Architecture Overview

.
├── init.lua                 # Main configuration entry point
└── lua/
    └── kickstart/
        └── plugins/        # Plugin-specific configurations
            ├── debug.lua   # DAP debugging setup
            ├── lint.lua    # nvim-lint configuration
            └── autopairs.lua # Auto-pairing setup

Core Patterns

Plugin Organization

  • Lazy.nvim for plugin management and lazy loading
  • Modular plugin configuration files
  • Clear separation of concerns per plugin
  • Event-based plugin loading for better startup time

LSP Integration

  • Mason.nvim for LSP server management
  • Comprehensive language server configurations
  • Integrated completion with nvim-cmp
  • Automatic server installation and setup

Development Tools Integration

  1. Debugging System

    • nvim-dap for debug adapter protocol support
    • Language-specific debug configurations (Go, Python)
    • Integrated debug UI with nvim-dap-ui
    • Custom keymaps for debug operations
  2. Linting Framework

    • File-type specific linters
    • Automatic lint on events (BufEnter, BufWritePost, InsertLeave)
    • Configurable linter selection per filetype
    • Integration with LSP diagnostics
  3. Code Completion

    • nvim-cmp as completion engine
    • LSP-based completions
    • Snippet integration
    • Auto-pairs integration for brackets/quotes

Component Relationships

  1. Plugin Manager (lazy.nvim) → Plugin Configurations
  2. LSP Layer → Language Servers → Code Intelligence
  3. Debug Adapters → DAP UI → User Interface
  4. Linters → Diagnostic Framework → Error Reporting

Design Decisions

  1. Event-driven plugin loading for performance
  2. Modular configuration for maintainability
  3. Extensive use of built-in LSP capabilities
  4. Integration between complementary tools (LSP, DAP, Linters)
  5. Custom keymaps for efficient workflow