Skip to content

Latest commit

 

History

History
270 lines (222 loc) · 7.62 KB

modules.md

File metadata and controls

270 lines (222 loc) · 7.62 KB

Doom Nvim Modules

Introduction

Doom Nvim consists of around 5 modules with ~40 plugins and growing. A Doom Nvim module is a bundle of plugins, configurations and commands, organized into a unit that can be toggled easily.

NOTE: Doom Nvim uses packer.nvim as its plugins manager.

Tweaking Doom Nvim Modules

You can easily tweak Doom Nvim Modules by tweaking your doomrc.lua file (found in ~/.config/doom-nvim).

List of modules

First of all, we must know which modules are there and their plugins.

NOTE: all plugins can be disabled, including the UI ones.

Essentials

This ones are implicit plugins so the end user cannot disable them. But why?

That is because these plugins are the core of Doom so in fact, things can break without them. These plugins are the following:

  • packer.nvim
    • A use-package inspired plugin manager for Neovim.
  • treesitter
    • An incremental parsing system for programming tools.

UI

Doom

  • neorg
    • Life Organization Tool.
  • runner (built-in)
    • A code runner for your interpreted code.
  • compiler (built-in)
    • Compile and run your projects with only a few keystrokes.

Editor

Langs

The languages module entries has some flags that improves their experience and makes your life easier.

The currently available flags are the following:

  • +lsp - enables and installs the Language Server Protocol for the language. e.g. rust +lsp will automatically install rust-analyzer.
  • +debug - enables and installs the Debug Adapter Protocol client for the language. e.g. python +debug will automatically install debugpy.

NOTE: when the language entry is not commented, doom-nvim will automatically install the TreeSitter parser for that language too.

Web development

  • html
    • HTML support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: no.
  • css
    • CSS support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: no.
  • javascript
    • JavaScript support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes, by using TSServer.
    • DAP client: yes.
  • typescript
    • TypeScript support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: no.

Scripting

  • bash
    • BASH support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: no.
  • python
    • Python support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: yes.
  • ruby
    • Ruby support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: yes.
  • lua
    • Lua support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: no (it has but isn't supported by Doom yet, requires extra setup).
  • elixir
    • Elixir support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.

Compiled

  • haskell
    • Haskell support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: no.
  • rust
    • Rust support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: yes (not supported yet by Doom for automatic installation).
  • go
    • Golang support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: yes.
  • cpp
    • CPP support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: yes (not supported yet by Doom for automatic installation).
  • java
    • Java support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.
    • DAP client: no.

Configs & DevOps

  • config
    • Configuration languages support (JSON, YAML, TOML).
    • TreeSitter based syntax highlighting: yes.
    • LSP: not yet.
  • dockerfile
    • Docker support.
    • TreeSitter based syntax highlighting: yes.
    • LSP: yes.

NOTE: this group requires the lsp installed for the +lsp flags.

Utilities

  • suda
    • Write and read files without sudo permissions.
  • lazygit
    • LazyGit integration for neovim, requires LazyGit.
  • neogit
    • Magit for Neovim.
  • colorizer
    • Fastest colorizer for Neovim.
  • range-highlight
    • Highlights ranges you have entered in commandline

Managing modules

Since version 3.0.0 managing the modules plugins is really easy because you don't need to learn nothing anymore. Just comment the plugins that you don't want to use and uncomment the ones that you are going to use!

So by example, if you want to disable the tree explorer you can simply comment it.

-- Before, the plugin is enabled
'explorer',    -- Tree explorer

-- After, the plugin is disabled
-- 'explorer', -- Tree explorer

After doing the changes, just restart Neovim and Doom Nvim will handle the plugins changes for you!