Skip to content

Exagone313/nvim-config

Repository files navigation

Neovim configuration

This repository hosts my Neovim configuration.

Configuration files

Lua configuration files are loaded in this order (see init.lua):

  • vim.lua: general Vim options
  • colors.lua: colorscheme configuration
  • treesitter.lua: Tree-sitter configuration
  • lsp.lua: configuration for Language Server Protocol and completion
  • directory.lua: configuration for file/directory manager
  • above.lua: configuration for plugins that are displayed above buffer
  • bars.lua: configuration for bars displayed on top or bottom of the buffer
  • buffer.lua: configuration for buffer mapping and plugins that interact with the buffer

Some modules can be loaded on demand:

  • menu.lua: custom menu opened with <leader><Space>
  • ide.lua: IDE mode, togglable from the menu
  • terminal.lua: terminal popup, opened from the menu

Plugins

Colors

Tree-sitter

  • nvim-treesitter: installs Tree-sitter parsers and manages their configuration

LSP

Directory

  • Neo-tree: file manager, replaces netrw, configured to open in a pop-up

Above

  • nvim-notify: library for displaying notifications in pop-ups, used by Noice
  • Noice (fork): enter commands and searches from a pop-up in the middle of the editor, show messages in pop-ups
  • Which Key: pop-up for listing key maps as I type
  • Fzf-lua: fuzzy finder

Bars

  • lualine: improved statusline
  • Dropbar: breadcrumbs for source code context

Buffer

Other

  • Friendly Snippets: collection of code snippets, integrated in Blink Completion
  • nui: UI library, used by Neo-tree and Noice
  • plenary: utility function library, used by Neo-tree and nvim-notify

System dependencies

Main dependencies

  • Neovim 0.12+
  • fzf: for fzf-lua
  • curl: for downloads made by nvim-treesitter and Blink Completion
  • ripgrep (rg): for fzf-lua (optional)
  • fd: for fzf-lua (optional)

LSP

Minimal list of recommended servers. All servers are optional.

Formatting

  • ShellCheck: Bash, sh
  • clang (comes with clang-format): C, C++
  • Go (comes with gofmt): Go
  • Deno: JavaScript, TypeScript, Markdown
    • for JavaScript and TypeScript, LSP is used over Deno
  • Ruff: Python
  • Zig (comes with zig fmt): Zig

AI-usage disclosure

Some files or parts of files were written using an AI model. This is indicated in file headers.

License

Unless otherwise stated, software in this repository is released under the 3-Clause BSD License (see COPYING).

About

Neovim configuration

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages