Skip to content

Bundles

Organized plugin managements

In rocks-config.nvim, bundles represent a modular and organized way to group related plugins and configurations, allowing users to enable or disable entire sets of functionality with ease.
This approach simplifies plugin management by reducing the complexity of handling individual plugins, making it easier to keep a clean and efficient Neovim environment, providing everything needed for a streamlined documentation workflow.

Bundles use a declarative format in rocks.toml, ensuring configurations stay consistent and reproducible across machines and projects. Developers, writers, and power users benefit from a flexible, scalable approach to Neovim setup management. This reduces manual plugin overhead and supports focus on core tasks.

LSP Bundle

# Plugins for language server support
# and auto completion
[bundles.lsp]
items = [
    "mason.nvim",
    "mason-lspconfig.nvim",
    "nvim-lspconfig",
    "blink.cmp",
    "mason-tool-installer.nvim",
    "luasnip",
]

The bundles.lsp section unifies LSP support tools, enabling advanced code analysis, autocompletion, and language-specific features within Neovim.
It streamlines language server, completion engine, and tool setup, delivering intelligent code navigation, real-time diagnostics, and context-aware autocompletion without manual intervention.

The bundle accommodates many programming languages and file types, improving efficiency for coding, scripting, and structured documentation, such as Markdown with embedded code.
Rocksmarker centralizes LSP plugins, guaranteeing automatic loading and proper configuration. This approach reduces setup time and eliminates conflicts.

Diagnostics bundle

# Plugin for diagnostics and related code display 
[bundles.diagnostics]
items = ["conform.nvim", "nvim-lint", "trouble.nvim"]

The bundles.diagnostics section consolidates tools for code quality, linting, and diagnostic feedback, ensuring clean, consistent, and error-free projects.
Instant feedback on syntax errors, style inconsistencies, and potential problems maintains high standards in both code and documentation.
Automation reduces manual effort, allowing users to concentrate on development and content creation rather than corrections.

This bundle enforces standards and best practices, making it valuable for developers, technical writers, and structured content workflows.
A dedicated interface simplifies diagnostic navigation and resolution, enabling real-time issue detection and efficient fixes. The result is a proactive editing environment that minimizes disruptions and maximizes productivity.

UI bundle

# Plugins for the implementation of the graphical
# user interface
[bundles.ui]
items = [
    "min-theme.nvim",
    "snacks.nvim",
    "lualine.nvim",
    "bufferline.nvim",
    "persisted.nvim",
    "gitsigns.nvim",
    "rainbow-delimiters.nvim",
    "which-key.nvim",
    "nvim-highlight-colors",
]

The bundles.ui section improves Neovim's visual clarity and usability by integrating plugins that optimize the editor's appearance, navigation, and interaction.

A minimalist colorscheme minimizes distractions, while a customizable statusline and intuitive buffer management boost workflow efficiency. Git tools, visual code structure indicators, and keybinding guides simplify user interaction, resulting in a unified and visually consistent workspace.

Additional utilities give real-time feedback and session management, maintaining continuity between editing sessions. This bundle combines aesthetic refinement with functional performance to reduce friction and enhance the editing experience for users who rank both design and productivity.

Markdown bundle

# Plugins for specific functionality of Markdown code
[bundles.markdown]
items = [
    "markdown-plus.nvim",
    "render-markdown.nvim",
]

The bundles.markdown section provides a complete toolset for writing, editing, and previewing Markdown documentation in Neovim. Dedicated editing features and shortcuts accelerate Markdown composition, and live in-editor previews deliver immediate visual feedback.

These tools optimize content production and formatting, enabling professional documentation workflows without leaving Neovim. Technical writers, developers, and regular Markdown users gain a streamlined, efficient environment that emphasizes content creation while maintaining document clarity and structure.

Plugin management architecture

Rocksmarker organizes plugins by using a modular system. The rocks.toml file serves as the central manifest, where each bundle declares its dependencies and core parameters.
Dedicated Lua files in the lua/plugins/ directory contain all plugin-specific configurations, keybindings, and advanced settings.

Key advantages

  • Logical Organization: Each bundle definition targets dependencies only.
  • Customization Control: Lua files enable detailed adjustments without altering the manifest.
  • Efficient Maintenance: Separation of concerns simplifies updates and debugging.

This architecture ensures rapid initial setup and supports precise, long-term customization.

Bundle configuration files

LSP
lua/plugins/lsp.lua
Manages LSP server settings, autocompletion behavior, and keybindings.

Diagnostics
lua/plugins/diagnostics.lua
Defines linting rules, formatting options, and diagnostic display settings.

UI
lua/plugins/ui.lua
Controls themes, status line layouts, and buffer management.

Markdown
lua/plugins/markdown.lua
Configures Markdown rendering, table editing, and related features.

Each bundle uses a dedicated Lua file for its settings, mappings, and customizations. This design ensures an organized, scalable, and maintainable configuration system.

Customization and extensibility

Rocksmarker's bundle system provides a structured yet flexible foundation for Neovim customization. Users change plugin behavior directly in each bundle's Lua configuration file, keeping core settings intact.
The modular design simplifies maintenance and encourages experimentation with LSP server priorities, diagnostic severity levels, or UI elements.

Advanced users can extend existing bundles or create new ones by following a consistent pattern:

  1. Declare dependencies in rocks.toml.
  2. Implement settings in a corresponding Lua file.

This approach centralizes related functionality, reduces configuration overhead, and accelerates the move from setup to productive editing.