AleksMeshkov/dotfiles

โ˜… 0Forks 0LuaGitHub โ†—Compare

README

๐Ÿ’ค My Neovim Configuration

A customized LazyVim setup with enhanced debugging, task running, and development tools.

โœจ Features

  • Full Debugging Support - DAP configuration for JavaScript/TypeScript, Python, and Rust
  • Task Runner - Run npm scripts and project tasks with Overseer
  • Smart File Explorer - Shows hidden files by default
  • Enhanced Search - Hidden files included in file search
  • Stable Debugging UI - No flickering during log streaming
  • VS Code-like Experience - Familiar debugging and task running workflow

๐Ÿš€ Quick Start

Prerequisites

  • Neovim >= 0.9.0 with LuaJIT
  • Git >= 2.19.0
  • Node.js (for JavaScript/TypeScript debugging)
  • Python (for Python debugging)
  • Rust (for Rust debugging)
  • A Nerd Font (optional, for icons)

Installation

  1. Backup existing config (if any):

    mv ~/.config/nvim ~/.config/nvim.backup
    mv ~/.local/share/nvim ~/.local/share/nvim.backup
  2. Clone this repository:

    git clone https://github.com/yourusername/nvim-config.git ~/.config/nvim
  3. Start Neovim:

    nvim
  4. Install debuggers (after Neovim loads):

    :Mason

    Then install:

    • js-debug-adapter (JavaScript/TypeScript)
    • debugpy (Python)
    • codelldb (Rust)

๐Ÿ”ง Key Bindings

Debugging

  • <leader>dc - Start/Continue debugging
  • <leader>db - Toggle breakpoint
  • <leader>du - Toggle DAP UI
  • <leader>dO - Step over
  • <leader>di - Step into
  • <leader>do - Step out
  • <leader>dt - Terminate debugging
  • K - Hover over variable (during debugging)

Task Running

  • <leader>oo - Run task (npm scripts, etc.)
  • <leader>ow - Toggle task list
  • <leader>oq - Quick actions

File Management

  • <leader>e - Toggle file explorer
  • <space><space> - Find files (includes hidden)
  • <leader>/ - Search in files

๐Ÿ“ Structure

โ”œโ”€โ”€ init.lua                    # Entry point
โ”œโ”€โ”€ lua/
โ”‚   โ”œโ”€โ”€ config/                # Core configuration
โ”‚   โ”‚   โ”œโ”€โ”€ lazy.lua          # Lazy.nvim setup
โ”‚   โ”‚   โ”œโ”€โ”€ options.lua       # Neovim options
โ”‚   โ”‚   โ”œโ”€โ”€ keymaps.lua       # Custom keymaps
โ”‚   โ”‚   โ”œโ”€โ”€ autocmds.lua      # Auto commands
โ”‚   โ”‚   โ”œโ”€โ”€ lsp-fix.lua       # LSP error handling
โ”‚   โ”‚   โ””โ”€โ”€ dap-stability.lua # Debug UI stability
โ”‚   โ””โ”€โ”€ plugins/              # Plugin configurations
โ”‚       โ”œโ”€โ”€ dap.lua          # Debugging setup
โ”‚       โ”œโ”€โ”€ overseer.lua     # Task runner
โ”‚       โ”œโ”€โ”€ snacks.lua       # File explorer & picker
โ”‚       โ”œโ”€โ”€ npm-tasks.lua    # npm script debugging
โ”‚       โ””โ”€โ”€ eslint-fix.lua   # ESLint configuration
โ”œโ”€โ”€ stylua.toml              # Lua formatting
โ”œโ”€โ”€ lazyvim.json            # LazyVim extras
โ””โ”€โ”€ CLAUDE.md               # Development guidance

๐ŸŽฏ Debugging Workflow

  1. Set breakpoints: <leader>db in your code
  2. Start debugging: <leader>dc (UI opens automatically)
  3. Debug controls: Step through code with <leader>dO, <leader>di, <leader>do
  4. Inspect variables: Hover with K or use DAP UI panels
  5. Close UI: <leader>du when done

๐Ÿ”„ Task Running

  1. Run npm scripts: <leader>oo โ†’ select script
  2. Debug npm scripts: <leader>dc โ†’ select npm script from debug configs
  3. View output: <leader>ow for task list and output

๐Ÿค Contributing

This is a personal configuration, but feel free to fork and adapt it to your needs!

๐Ÿ“„ License

MIT License - see LICENSE file for details.

Contributors

AleksMeshkov

Issues