Skip to content

Plugins

Your complete arsenal of Neovim superpowers

This configuration includes a carefully selected set of plugins that work together to create a cohesive, powerful development environment. Every plugin has been chosen for a specific purpose and configured to integrate seamlessly with the SilkCircuit aesthetic.

Core Framework

The foundation that makes everything else possible:

PluginPurpose
AstroNvimDistribution providing sensible defaults and structure
lazy.nvimUltra-fast plugin manager with lazy loading
astrocoreCore options, mappings, and autocommands
astrouiUI configuration and statusline
astrolspLSP configuration and server management

Theme & Visual Polish

Make your editor a joy to look at:

PluginPurpose
silkcircuitCustom neon colorscheme matching terminal
nvim-web-deviconsFile type icons with custom SilkCircuit colors
rainbow-delimitersColor-coded bracket pairs for visual clarity
indent-blanklineVisual indent guides (via snacks.nvim)

The rainbow delimiter colors are specifically tuned to the SilkCircuit palette:

  • Electric purple, neon cyan, coral pink, electric yellow
  • Each nesting level gets a distinct, vibrant color

UI Components

Modern interface elements that stay out of your way:

PluginPurpose
snacks.nvimAll-in-one: dashboard, picker, terminal, more
neo-tree.nvimFile explorer with git integration
trouble.nvimBeautiful diagnostics and symbol navigation
which-key.nvimPopup showing available keybindings
nvim-notifyFancy notification system
dressing.nvimImproved UI for vim.ui.input and vim.ui.select

Snacks.nvim is the star here - it provides:

  • Startup dashboard with ASCII art and quick actions
  • Fuzzy file picker (replaces Telescope for most tasks)
  • Integrated terminal with proper window management
  • Smart indent guides and word highlighting
  • Notification system with smooth animations

Editing Experience

Make typing feel like magic:

PluginPurpose
nvim-cmpCompletion engine with multiple sources
LuaSnipSnippet engine with custom snippet support
nvim-autopairsAuto-close brackets, quotes, and tags
Comment.nvimToggle comments with gc motions
nvim-treesitterSyntax highlighting and code understanding
nvim-ts-autotagAuto-close HTML/JSX tags

Pro tip: Treesitter provides accurate syntax highlighting by actually parsing your code. It's like having a compiler-level understanding of every language.

LSP & Code Intelligence

Transform Neovim into a full IDE:

PluginPurpose
mason.nvimOne-stop shop for LSP servers and tools
nvim-lspconfigLSP client configuration
none-ls.nvimBridge for formatters/linters without LSP
lsp_signature.nvimFunction signature hints as you type
lazydev.nvimNeovim Lua API completion for config files

Mason automatically installs and manages:

  • Language servers (ts_ls, lua_ls, rust-analyzer, etc.)
  • Formatters (prettier, stylua, biome)
  • Linters (eslint)
  • Debug adapters

Git Integration

Work with git without leaving Neovim:

PluginPurpose
gitsigns.nvimGit change indicators in sign column
octo.nvimManage GitHub issues and PRs from Neovim

Gitsigns shows you:

  • Added, changed, and removed lines
  • Inline blame information
  • Quick git hunk operations (stage, reset, preview)

AI Superpowers

Your intelligent pair programming partners:

PluginPurpose
avante.nvimClaude AI assistant with beautiful UI
claude-code.nvimTerminal integration for Claude Code CLI

Avante brings Claude directly into your editor with:

  • Side panel for AI conversations
  • Inline code suggestions
  • Diff view for proposed changes
  • Context-aware assistance based on your selection

Claude Code integration provides:

  • Full terminal window at 40% screen height
  • Auto-refresh on file changes
  • Git root detection for project context

Move around your code effortlessly:

PluginPurpose
telescope.nvimFuzzy finder for files, grep, and more
smart-splits.nvimSeamless window navigation
nvim-window-pickerVisual window selection for split operations
toggleterm.nvimManage multiple terminal windows

Note: Snacks picker is used for most fuzzy finding, but Telescope is available for advanced use cases.

Debugging

Full Debug Adapter Protocol support:

PluginPurpose
nvim-dapDebug Adapter Protocol client
nvim-dap-uiBeautiful debugging UI
mason-nvim-dapAuto-install debug adapters

Set breakpoints, step through code, inspect variables - all from Neovim.

Language Packs

Pre-configured language support from AstroCommunity:

PackProvides
pack.luaLua development (lua_ls, lazydev)
pack.rustRust tools (rustaceanvim, crates.io)
pack.typescriptTypeScript/JavaScript (vtsls, tsc.nvim)
pack.tailwindcssTailwind CSS IntelliSense
pack.html-cssHTML/CSS language servers
pack.jsonJSON with schema validation
pack.yamlYAML support with schema validation
pack.markdownEnhanced markdown editing

Each pack includes:

  • Language server configuration
  • Treesitter parser
  • Common tools and utilities
  • Sensible defaults

Treesitter Parsers

Syntax parsing for 25+ languages:

Core: lua, vim, vimdoc, query, regex
Web: html, css, javascript, typescript, tsx, vue
Data: json, yaml, toml, xml
Systems: c, cpp, rust, go, python, java
Shell: bash, fish, zsh
DevOps: dockerfile, terraform
Markup: markdown, markdown_inline
Git: git_config, git_rebase, gitcommit, gitignore

Treesitter provides:

  • Accurate syntax highlighting
  • Smart indentation
  • Code folding
  • Incremental selection

Additional Plugins

Extra tools that enhance the experience:

PluginPurpose
presence.nvimDiscord Rich Presence
lsp_signatureFunction signatures while typing

Managing Plugins

Adding New Plugins

Create a file in nvim/lua/plugins/:

lua
-- nvim/lua/plugins/my-awesome-plugin.lua
return {
  "author/plugin-name",
  -- Lazy load on event
  event = "VeryLazy",

  -- Or load on specific file types
  ft = { "python", "javascript" },

  -- Or load on command
  cmd = { "MyCommand" },

  -- Or load on keypress
  keys = {
    { "<leader>mp", "<cmd>MyPlugin<cr>", desc = "My Plugin" },
  },

  -- Plugin configuration
  opts = {
    setting = "value",
  },

  -- Or use config function for more control
  config = function()
    require("my-plugin").setup({
      -- settings here
    })
  end,

  -- Dependencies
  dependencies = {
    "required/plugin",
  },
}

Updating Plugins

vim
:Lazy update    " Update all plugins
:Lazy sync      " Update and clean plugins

Or use the dashboard shortcut when you first open Neovim.

Disabling Plugins

To temporarily disable a plugin, add enabled = false:

lua
return {
  "author/plugin-name",
  enabled = false,
}

Plugin Performance

Check startup time and plugin loading:

vim
:Lazy profile   " View plugin load times

Use the profiler from snacks.nvim:

vim
:lua Snacks.profiler.start()  " Start profiling
" ... do some actions ...
:lua Snacks.profiler.stop()   " Stop and view results

Plugin Philosophy

This configuration follows these principles:

  1. Lazy loading everywhere - Plugins load only when needed
  2. One tool, one job - Avoid plugin overlap
  3. Sensible defaults - Minimal configuration required
  4. Visual consistency - Everything matches SilkCircuit theme
  5. Performance first - Fast startup and responsive editing

Every plugin has earned its place by either:

  • Solving a specific problem exceptionally well
  • Enhancing the core editing experience
  • Integrating seamlessly with other tools
  • Looking absolutely beautiful while doing it

The result is a cohesive system where everything works together naturally.

Released under the MIT License