FStarLang/fstar-mode.el@6e5d3ea858 -> FStarLang/fstar-mode.el@36ffb46259 ProofGeneral/PG@d668946929 -> ProofGeneral/PG@e0ec3db200 Wilfred/helpful@4ba24cac9f -> Wilfred/helpful@5ad8a9ce57 agda/agda@3344ca8058 -> agda/agda@10a0ca0516 bastibe/org-journal@17b34ce8df -> bastibe/org-journal@115b9c0354 beancount/beancount-mode@452621fa1f -> beancount/beancount-mode@ddd4b87257 clojure-emacs/cider@f00e83d338 -> clojure-emacs/cider@a0d6169026 crystal-lang-tools/emacs-crystal-mode@ea89b108fa -> crystal-lang-tools/emacs-crystal-mode@d913fea6f0 emacs-ess/ESS@c72b911d70 -> emacs-ess/ESS@0eb240bcb6 emacs-geiser/geiser@74eed1669a -> emacs-geiser/geiser@c1c27072a4 emacs-lsp/lsp-haskell@6981f8d122 -> emacs-lsp/lsp-haskell@b2edf1a9f8 emacs-lsp/lsp-metals@6a6a345a8a -> emacs-lsp/lsp-metals@567089f7f4 emacs-rustic/rustic@e5c0271f1e -> emacs-rustic/rustic@fbbf0a7192 emacs-straight/auctex@f00256cbfd -> emacs-straight/auctex@53f80ba36c emacs-straight/org-mode@5a4686915e -> emacs-straight/org-mode@ff33d9ec2e emacs-typescript/typescript.el@dd10f702d4 -> emacs-typescript/typescript.el@481df3ad2c emacsorphanage/dart-mode@02e919c1cf -> emacsorphanage/dart-mode@88b6683f43 emacsorphanage/macrostep@44faf4f7bf -> emacsorphanage/macrostep@d0928626b4 erlang/otp@3e7f126fe4 -> erlang/otp@64185e73b0 fuxialexander/org-pdftools@4e420233a1 -> fuxialexander/org-pdftools@5613b7ae56 greghendershott/racket-mode@f2645aadd2 -> greghendershott/racket-mode@eef5e9ab2c hakimel/reveal.js@e15cf92ccd -> hakimel/reveal.js@2059d388f7 haskell/haskell-mode@1a285fc4c5 -> haskell/haskell-mode@7f452cc9e6 joaotavora/sly@742355f755 -> joaotavora/sly@c48defcf58 jorgenschaefer/emacs-buttercup@bf01a33f8b -> jorgenschaefer/emacs-buttercup@c467c659b2 jrblevin/markdown-mode@e100778594 -> jrblevin/markdown-mode@ee9d6de1d2 js-emacs/js2-refactor.el@a0977c4ce1 -> js-emacs/js2-refactor.el@e1177c728a kaushalmodi/ox-hugo@98421a1298 -> kaushalmodi/ox-hugo@e3365cb4e6 ljos/jq-mode@a0f79eba78 -> ljos/jq-mode@eeb86b4d5a magit/orgit@59d21fdb21 -> magit/orgit@3b6b34bd11 nonsequitur/inf-ruby@dad78a13f1 -> nonsequitur/inf-ruby@b8076aad10 ocaml/dune@098117d229 -> ocaml/dune@b74586e909 ocaml/merlin@3a806ef87f -> ocaml/merlin@92c3ba9473 oer/org-re-reveal@ab1422c163 -> oer/org-re-reveal@88e9d9e679 org-roam/org-roam@cad3518788 -> org-roam/org-roam@0037daaf3e purescript-emacs/purescript-mode@07e4d6ecfe -> purescript-emacs/purescript-mode@b076bafe94 pythonic-emacs/anaconda-mode@f900bd7656 -> pythonic-emacs/anaconda-mode@5c6eff4645 pythonic-emacs/company-anaconda@169252fca7 -> pythonic-emacs/company-anaconda@0f7984b3be pythonic-emacs/pyenv-mode@76787ea44f -> pythonic-emacs/pyenv-mode@f7d53796d6 seagle0128/grip-mode@df0ba7589d -> seagle0128/grip-mode@ffce7f78eb swift-emacs/swift-mode@ab189d6e89 -> swift-emacs/swift-mode@2c0b2b72dc technomancy/fennel-mode@3632cc77de -> technomancy/fennel-mode@4ccb6d5944 weijiangan/flycheck-golangci-lint@91c59b128a -> weijiangan/flycheck-golangci-lint@424ba1b3a1
:lang lua
Description unfold
This module adds Lua support to Doom Emacs.
- REPL
- Love2D specific functions
- Moonscript support
- Fennel support
Maintainers
Module flags
- +fennel
- Enable support for the Fennel language.
- +lsp
-
Enable LSP support for
lua-mode
. Requires doom-module::tools lsp and a langserver (supports EmmyLua, lua-language-server, and lua-lsp). - +tree-sitter
- Leverages tree-sitter for better syntax highlighting and structural text editing. Requires doom-module::tools tree-sitter. Has support for both Lua and Fennel.
- +moonscript
- Enable support for the Moonscript language.
Packages
- doom-package:company-lua if doom-module::completion company
- doom-package:fennel-mode if doom-module:+fennel
- doom-package:lua-mode
-
- doom-package:flycheck-moonscript if doom-module::checkers syntax
- doom-package:moonscript-mode
Hacks
No hacks documented for this module.
TODO Changelog
This module does not have a changelog yet.
Installation
Enable this module in your doom!
block.
This module requires Lua 5.1+ for most of its capabilities and, optionally, the fennel and moonscript transpilers. An LSP server is also required for LSP support.
Language Server Protocol servers
LSP server support depends on which flavor of the doom-module::tools lsp module you have installed (doom-package:eglot or doom-package:lsp-mode).
LSP-mode
Three servers are supported, ordered from highest to lowest priority:
- EmmyLua-LanguageServer
- Must be in
$EMACSDIR/.local/etc/lsp/EmmyLua-LS-all.jar
. Seelsp-clients-emmy-lua-jar-path
variable to change this. - Sumneko language server (lua-language-server)
- Must be in
$EMACSDIR/.local/etc/lsp/lua-language-server/
. Seelsp-clients-lua-language-server-bin
variable to change this. - lua-lsp
- Must be available in
~/.luarocks/bin/lua-lsp
. Seelsp-clients-lua-lsp-server-install-dir
variable to change this.
LSP-mode documentation has more information about setting up the server and the configuration variables correctly.
Eglot
Eglot currently only supports one of the above servers out of the box:
- Sumneko language server (lua-language-server)
- Must be in
$EMACSDIR/.local/etc/lsp/lua-language-server/
. See+lua-lsp-dir
variable to change this.
Formatter
Formatting is handled using the doom-module::editor format module via Stylua.
TODO Usage
This module has no usage documentation yet. Write some?
TODO Configuration
This module's configuration documentation is incomplete. Complete it?
- lua-lsp-dir
- This must be set when using doom-module:+lsp and using lua-language-server. This controls where the repository has been cloned and built to finish the configuration of the server.
Troubleshooting
Install lua-language-server
A catch-all issue has been created to gather help for installing lua-language-server on non-VSCode platforms.
Frequently asked questions
This module has no FAQs yet. Ask one?
TODO Appendix
This module has no appendix yet. Write one?