# m00p1ng/nvim architecture

> Architecture diagram of the GitHub repository m00p1ng/nvim, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/m00p1ng/nvim
- Repository: https://github.com/m00p1ng/nvim

## Overview

This repository is a personal Neovim configuration. The principal workflow is a user opening Neovim to edit a project, with configured language support providing completion, diagnostics, and formatting; the configuration also adds navigation, search, Git, debugging, and interface features. Relationships below follow the README’s documented setup and capabilities; source excerpts were unavailable, so internal call wiring is not inferred.

Main entry points: [`lua/plugins`](https://github.com/m00p1ng/nvim/tree/main/lua/plugins) (Plugin manager), [`init.lua`](https://github.com/m00p1ng/nvim/blob/main/init.lua) (Configuration entry), [`lua/config/lazy.lua`](https://github.com/m00p1ng/nvim/blob/main/lua/config/lazy.lua) (Plugin setup), [`lua/plugins/lsp`](https://github.com/m00p1ng/nvim/tree/main/lua/plugins/lsp) (LSP configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Startup and settings"]
  node_entry["Configuration entry<br/>[init.lua]"]
  node_settings["Core settings"]
  node_plugin_config["Plugin setup<br/>[lazy.lua]"]
  node_plugin_manager["Plugin manager"]
end

subgraph group_language["Language tooling"]
  node_language_specs["Language configurations"]
  node_lsp_config["LSP configuration"]
  node_server_configs["Server settings"]
  node_completion["Completion<br/>[blink-cmp.lua]"]
  node_ai_completion["AI completion"]
  node_formatting["Formatting and linting<br/>[conform.lua]"]
  node_treesitter["Syntax features<br/>[treesitter.lua]"]
end

subgraph group_editing["Editing and navigation"]
  node_editing_tools["Editing tools"]
  node_navigation["Navigation<br/>[navigator.lua]"]
  node_search["Picker and search<br/>[picker.lua]"]
  node_file_navigation["File navigation<br/>[nvim-tree.lua]"]
end

subgraph group_workflow["Project workflow"]
  node_git_tools["Git tools<br/>[neogit.lua]"]
  node_debugging["Debugging<br/>[dap.lua]"]
  node_task_runner["Task runner<br/>[overseer.lua]"]
end

subgraph group_interface["Interface"]
  node_statusline["Statusline<br/>[init.lua]"]
  node_messages["Messages and notifications<br/>[noice.lua]"]
end

node_user(("User"))
node_nvim["Neovim"]

node_user -->|"opens and edits"| node_nvim
node_nvim -->|"loads configuration"| node_entry
node_entry -->|"loads settings"| node_settings
node_entry -->|"sets up plugins"| node_plugin_config
node_plugin_config -->|"configures plugins"| node_plugin_manager
node_plugin_manager -->|"loads language support"| node_language_specs
node_plugin_manager -->|"loads LSP tools"| node_lsp_config
node_plugin_manager -->|"loads completion"| node_completion
node_plugin_manager -->|"loads AI completion"| node_ai_completion
node_plugin_manager -->|"loads formatters"| node_formatting
node_plugin_manager -->|"loads syntax features"| node_treesitter
node_lsp_config -->|"configures servers"| node_server_configs
node_plugin_manager -->|"loads editing tools"| node_editing_tools
node_plugin_manager -->|"loads navigation"| node_navigation
node_plugin_manager -->|"loads picker"| node_search
node_plugin_manager -->|"loads file navigation"| node_file_navigation
node_plugin_manager -->|"loads Git tools"| node_git_tools
node_plugin_manager -->|"loads debugging"| node_debugging
node_plugin_manager -->|"loads task runner"| node_task_runner
node_plugin_manager -->|"loads statusline"| node_statusline
node_plugin_manager -->|"loads message UI"| node_messages

click node_entry "https://github.com/m00p1ng/nvim/blob/main/init.lua"
click node_settings "https://github.com/m00p1ng/nvim/tree/main/lua/config"
click node_plugin_config "https://github.com/m00p1ng/nvim/blob/main/lua/config/lazy.lua"
click node_plugin_manager "https://github.com/m00p1ng/nvim/tree/main/lua/plugins"
click node_language_specs "https://github.com/m00p1ng/nvim/tree/main/lua/plugins/lang"
click node_lsp_config "https://github.com/m00p1ng/nvim/tree/main/lua/plugins/lsp"
click node_server_configs "https://github.com/m00p1ng/nvim/tree/main/after/lsp"
click node_completion "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/blink-cmp.lua"
click node_ai_completion "https://github.com/m00p1ng/nvim/tree/main/lua/plugins/ai"
click node_formatting "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/lsp/conform.lua"
click node_treesitter "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/treesitter.lua"
click node_editing_tools "https://github.com/m00p1ng/nvim/tree/main/lua/plugins"
click node_navigation "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/navigator.lua"
click node_search "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/snacks/picker.lua"
click node_file_navigation "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/nvim-tree.lua"
click node_git_tools "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/neogit.lua"
click node_debugging "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/dap.lua"
click node_task_runner "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/overseer.lua"
click node_statusline "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/lualine/init.lua"
click node_messages "https://github.com/m00p1ng/nvim/blob/main/lua/plugins/noice.lua"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_settings,node_plugin_config,node_plugin_manager,node_user toneBlue
class node_language_specs,node_lsp_config,node_server_configs,node_completion,node_ai_completion,node_formatting,node_treesitter toneAmber
class node_editing_tools,node_navigation,node_search,node_file_navigation toneMint
class node_git_tools,node_debugging,node_task_runner toneRose
class node_statusline,node_messages,node_nvim toneIndigo
```

## Components

### Startup and settings

- [Configuration entry](https://github.com/m00p1ng/nvim/blob/main/init.lua): `init.lua`
- [Core settings](https://github.com/m00p1ng/nvim/tree/main/lua/config): `lua/config`
- [Plugin setup](https://github.com/m00p1ng/nvim/blob/main/lua/config/lazy.lua): `lua/config/lazy.lua`
- [Plugin manager](https://github.com/m00p1ng/nvim/tree/main/lua/plugins): `lua/plugins`

### Language tooling

- [Language configurations](https://github.com/m00p1ng/nvim/tree/main/lua/plugins/lang): `lua/plugins/lang`
- [LSP configuration](https://github.com/m00p1ng/nvim/tree/main/lua/plugins/lsp): `lua/plugins/lsp`
- [Server settings](https://github.com/m00p1ng/nvim/tree/main/after/lsp): `after/lsp`
- [Completion](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/blink-cmp.lua): `lua/plugins/blink-cmp.lua`
- [AI completion](https://github.com/m00p1ng/nvim/tree/main/lua/plugins/ai): `lua/plugins/ai`
- [Formatting and linting](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/lsp/conform.lua): `lua/plugins/lsp/conform.lua`
- [Syntax features](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/treesitter.lua): `lua/plugins/treesitter.lua`

### Editing and navigation

- [Editing tools](https://github.com/m00p1ng/nvim/tree/main/lua/plugins): `lua/plugins`
- [Navigation](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/navigator.lua): `lua/plugins/navigator.lua`
- [Picker and search](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/snacks/picker.lua): `lua/plugins/snacks/picker.lua`
- [File navigation](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/nvim-tree.lua): `lua/plugins/nvim-tree.lua`

### Project workflow

- [Git tools](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/neogit.lua): `lua/plugins/neogit.lua`
- [Debugging](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/dap.lua): `lua/plugins/dap.lua`
- [Task runner](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/overseer.lua): `lua/plugins/overseer.lua`

### Interface

- [Statusline](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/lualine/init.lua): `lua/plugins/lualine/init.lua`
- [Messages and notifications](https://github.com/m00p1ng/nvim/blob/main/lua/plugins/noice.lua): `lua/plugins/noice.lua`

### Other components

- **User**
- **Neovim**

## Connections

- User → Neovim: opens and edits
- Neovim → Configuration entry: loads configuration
- Configuration entry → Core settings: loads settings
- Configuration entry → Plugin setup: sets up plugins
- Plugin setup → Plugin manager: configures plugins
- Plugin manager → Language configurations: loads language support
- Plugin manager → LSP configuration: loads LSP tools
- Plugin manager → Completion: loads completion
- Plugin manager → AI completion: loads AI completion
- Plugin manager → Formatting and linting: loads formatters
- Plugin manager → Syntax features: loads syntax features
- LSP configuration → Server settings: configures servers
- Plugin manager → Editing tools: loads editing tools
- Plugin manager → Navigation: loads navigation
- Plugin manager → Picker and search: loads picker
- Plugin manager → File navigation: loads file navigation
- Plugin manager → Git tools: loads Git tools
- Plugin manager → Debugging: loads debugging
- Plugin manager → Task runner: loads task runner
- Plugin manager → Statusline: loads statusline
- Plugin manager → Messages and notifications: loads message UI
