Skip to main content

Overview

This configuration uses lazy.nvim as the package manager. The setup includes automatic bootstrapping, plugin organization, and performance optimizations. Configuration file: lua/core/lazy.lua:19

Bootstrap process

The configuration automatically bootstraps lazy.nvim if it’s not installed:
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
  local lazyrepo = "https://github.com/folke/lazy.nvim.git"
  vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
end
The bootstrap uses:
  • Blob-less clone for faster downloads
  • Stable branch for reliability
  • Error handling with user notification on failure

Configuration options

change_detection.enabled
boolean
default:"true"
Automatically detects changes to plugin files and reloads them.
change_detection.notify
boolean
default:"false"
Disables notifications when changes are detected to reduce noise.
dev.path
string
default:"~/myCodes"
Path for local plugin development. Plugins can be loaded from this directory during development.
The configuration imports plugins from multiple directories:
spec[1].import
string
default:"plugins"
Main plugins directory (lua/plugins/*.lua)
spec[2].import
string
default:"plugins.languages"
Language-specific plugins (lua/plugins/languages/*.lua)
spec[3].import
string
default:"plugins.lsp"
LSP-related plugins (lua/plugins/lsp/*.lua)
ui.border
string
default:"rounded"
Border style for lazy.nvim UI windows.
ui.backdrop
number
default:"80"
Backdrop opacity (0-100) for the lazy.nvim UI.
ui.title_pos
string
default:"left"
Position of the window title. Options: left, center, right.
install.colorscheme
string[]
default:"[\"gruvbox-material\"]"
Colorscheme to use during plugin installation. Falls back to habamax if not available.
checker.enabled
boolean
default:"true"
Automatically checks for plugin updates periodically.
checker.notify
boolean
default:"false"
Disables notifications for available updates.
checker.frequency
number
default:"360"
Check interval in minutes (360 = every 10 hours).
checker.check_pinned
boolean
default:"true"
Also checks for updates on pinned plugins.
git.throttle.enabled
boolean
default:"false"
Disables git operation throttling for faster plugin operations.
git.throttle.rate
number
default:"2"
Maximum git operations per duration window (when enabled).
git.throttle.duration
number
default:"5000"
Throttle window duration in milliseconds (when enabled).
git.cooldown
number
default:"300"
Cooldown period in milliseconds between git operations.
The configuration disables several built-in Neovim plugins that are not commonly used:
  • gzip - gzip file handling
  • tarPlugin - tar archive support
  • tohtml - HTML conversion
  • tutor - Neovim tutor
  • zipPlugin - zip archive support
performance = {
  rtp = {
    disabled_plugins = {
      "gzip",
      "tarPlugin",
      "tohtml",
      "tutor",
      "zipPlugin",
    },
  },
}
Disabling unused plugins reduces startup time and memory usage.

Plugin organization

Plugins are organized into three main categories:
Located in lua/plugins/ - includes UI, editor enhancements, and utilities.

Common commands

  • :Lazy - Open the lazy.nvim UI
  • :Lazy sync - Update and clean plugins
  • :Lazy install - Install missing plugins
  • :Lazy update - Update plugins
  • :Lazy clean - Remove unused plugins
  • :Lazy profile - Profile plugin loading times
The configuration automatically bootstraps on first launch. Simply start Neovim and lazy.nvim will install itself and all configured plugins.

Build docs developers (and LLMs) love