doom-emacs/docs/modules.org
iyefrat d41cff489f
module: add :input bidi
* module: add :input bidi

Co-authored-by: Yoav Marco <yoavm448@gmail.com>

* docs(bidi): flesh out README.org

Co-authored-by: Itai Y. Efrat <itai3397@gmail.com>

* feat(bidi): add +bidi-global-mode

* docs(bidi): improve font setting instructions

* feat(bidi): add +bidi-(hebrew|arabic)-font

Since the Hebrew and Arabic unicode blocks cover the vast majority of
RTL languages used today, we provide these fonts so end users don't have
to bother with setting up the hooks themselves.

* feat(bidi): add smart fontify

Adds support for using the bidi fonts on surrounding whitespace and
punctuation through. On by default, customizable through
+bidi-want-smart-fontify and +bidi-smart-fontify-keywords.

Also adds face versions of the bidi fonts.

* docs(bidi): recommend known good nastaliq fonts

* fix(bidi): re-set bidi faces after changing fonts

* feat(bidi): add +bidi-paragraph-direction

This allows users to choose what bidi-paragraph-direction is set to when
+bidi-mode is on, so they can choose if they want per paragraph
alignment (the default) or to force everything to be aligned RTL

* docs(bidi): conform to verbatim/code conventions

* docs(bidi): add font overview to Features

* docs(bidi): warn on rtl forced alignment footgun

+bidi-paragraph-direction is a nice variable to have if you primarily
use +bidi-mode for rtl text buffers, but it shouldn't be used in
conjunction with +bidi-global-mode since it messes up English buffers.

Co-authored-by: Yoav Marco <yoavm448@gmail.com>
2022-04-22 00:21:32 +02:00

11 KiB

Module Index

Functionality in Doom is divided into collections of code called modules (à la Spacemacs' layers). A module is a bundle of packages, configuration and commands, organized into a unit that can be enabled or disabled by adding or removing them from your doom! block in $DOOMDIR/init.el.

:app

Application modules are complex and opinionated modules that transform Emacs toward a specific purpose. They may have additional dependencies and should be loaded last, before :config modules.

:checkers

  • syntax +childframe - Live error/warning highlights
  • spell +aspell +flyspell +enchant +everywhere +hunspell - Spell checking
  • grammar - TODO

:completion

Modules that provide new interfaces or frameworks for completion, including code completion.

  • company +childframe +tng - The ultimate code completion backend
  • helm +fuzzy +childframe - Another search engine for love and life
  • ido - The other other search engine for love and life
  • ivy +fuzzy +prescient +childframe +icons - The search engine for love and life
  • vertico +icons - The search engine of the future

:config

Modules that configure Emacs one way or another, or focus on making it easier for you to customize it yourself. It is best to load these last.

  • literate - For users with literate configs. This will tangle+compile a config.org in your doom-private-dir when it changes.
  • default +bindings +smartparens - The default module sets reasonable defaults for Emacs. It also provides a Spacemacs-inspired keybinding scheme and a smartparens config. Use it as a reference for your own modules.

:editor

Modules that affect and augment your ability to manipulate or insert text.

  • evil +everywhere - transforms Emacs into Vim
  • file-templates - Auto-inserted templates in blank new files
  • fold - universal code folding
  • format +onsave - TODO
  • god - TODO
  • lispy - TODO
  • multiple-cursors - TODO
  • objed +manual - TODO
  • parinfer - TODO
  • rotate-text - TODO
  • snippets - Snippet expansion for lazy typists
  • word-wrap - soft wrapping with language-aware indent

:emacs

Modules that reconfigure or augment packages or features built into Emacs.

  • dired +ranger +icons - TODO
  • electric - TODO
  • ibuffer +icons - TODO
  • undo +tree - A smarter, more intuitive & persistent undo history
  • vc - TODO

:email

  • mu4e +org +gmail - TODO
  • notmuch - TODO
  • wanderlust +gmail - TODO

:input

:lang

Modules that bring support for a language or group of languages to Emacs.

  • agda +local - TODO
  • beancount +lsp - TODO
  • cc +lsp - TODO
  • clojure +lsp - TODO
  • common-lisp - TODO
  • coq - TODO
  • crystal - TODO
  • csharp +lsp +unity - TODO
  • dart +lsp +flutter
  • data - TODO
  • elixir +lsp - TODO
  • elm +lsp - TODO
  • emacs-lisp - TODO
  • erlang +lsp - TODO
  • ess +lsp - TODO
  • factor - TODO
  • faust - TODO
  • fsharp +lsp - TODO
  • fstar - F* support
  • gdscript +lsp - TODO
  • go +lsp - TODO
  • haskell +lsp - TODO
  • hy - TODO
  • idris - TODO
  • java +meghanada +eclim +lsp - TODO
  • javascript +lsp - JavaScript, TypeScript, and CoffeeScript support
  • json +lsp - TODO
  • julia +lsp - TODO
  • kotlin +lsp - TODO
  • latex +latexmk +cdlatex +fold +lsp - TODO
  • lean - TODO
  • ledger - TODO
  • lua +fennel +moonscript - TODO
  • markdown +grip - TODO
  • nim - TODO
  • nix - TODO
  • ocaml +lsp - TODO
  • org +brain +dragndrop +gnuplot +hugo +ipython +journal +jupyter +noter +pandoc +pomodoro +present +pretty +roam - TODO
  • php +hack +lsp - TODO
  • plantuml - TODO
  • purescript +lsp - TODO
  • python +cython +lsp +pyright +pyenv +conda +poetry - TODO
  • qt - TODO
  • racket +lsp +xp - TODO
  • raku - TODO
  • rest - TODO
  • rst - TODO
  • ruby +lsp +rvm +rbenv +rails +chruby
  • rust +lsp - TODO
  • scala +lsp - TODO
  • scheme +chez +chibi +chicken +gambit +gauche +guile +kawa +mit +racket - TODO
  • sh +fish +lsp +powershell - TODO
  • sml - TODO
  • solidity - TODO
  • swift +lsp - TODO
  • terra - TODO
  • web +lsp - HTML and CSS (SCSS/SASS/LESS/Stylus) support.
  • yaml +lsp - TODO
  • zig +lsp - Zig support.

:os

Modules to improve integration into your OS, system, or devices.

  • macos - Improve Emacs' compatibility with macOS
  • tty +osc - Improves the terminal Emacs experience.

:term

Modules that offer terminal emulation.

:tools

Small modules that give Emacs access to external tools & services.

  • ansible - TODO
  • debugger +lsp - A (nigh-)universal debugger in Emacs
  • direnv - TODO
  • docker +lsp - TODO
  • editorconfig - TODO
  • ein - TODO
  • eval +overlay - REPL & code evaluation support for a variety of languages
  • gist - TODO
  • lookup +dictionary +docsets +offline - Universal jump-to & documentation lookup backend
  • lsp +peek +eglot - Installation and configuration of language server protocol client (lsp-mode or eglot)
  • magit +forge - TODO
  • make - TODO
  • pass +auth - TODO
  • pdf - TODO
  • prodigy - TODO
  • rgb - TODO
  • taskrunner - TODO
  • terraform - TODO
  • tmux - TODO
  • upload - TODO

:ui

Aesthetic modules that affect the Emacs interface or user experience.