doomemacs/modules/lang/lua/README.org

106 lines
3.9 KiB
Org Mode
Raw Normal View History

#+title: :lang lua
#+subtitle: One-based indices? one-based indices
#+created: Jun 03, 2020
#+since: 21.12.0
* Description :unfold:
This module adds Lua support to Doom Emacs.
- REPL
- Love2D specific functions
- Moonscript support
- Fennel support
** Maintainers
- [[doom-user:][@hlissner]]
[[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +fennel ::
Enable support for the Fennel language.
- +lsp ::
2022-09-26 02:19:42 +08:00
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
2023-02-21 16:20:22 +00:00
editing. Requires [[doom-module::tools tree-sitter]]. Has support for both Lua and
Fennel.
- +moonscript ::
Enable support for the Moonscript language.
** Packages
2022-09-26 02:19:42 +08:00
- [[doom-package:company-lua]] if [[doom-module::completion company]]
- [[doom-package:fennel-mode]] if [[doom-module:+fennel]]
- [[doom-package:lua-mode]]
- if [[doom-module:+moonscript]]
- [[doom-package:flycheck-moonscript]] if [[doom-module::checkers syntax]]
- [[doom-package:moonscript-mode]]
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][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
2022-09-26 02:19:42 +08:00
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:
- [[https://github.com/EmmyLua/EmmyLua-LanguageServer][EmmyLua-LanguageServer]] :: Must be in
=$EMACSDIR/.local/etc/lsp/EmmyLua-LS-all.jar=. See
~lsp-clients-emmy-lua-jar-path~ variable to change this.
- [[https://github.com/sumneko/lua-language-server][Sumneko language server]] (lua-language-server) :: Must be in
=$EMACSDIR/.local/etc/lsp/lua-language-server/=. See
~lsp-clients-lua-language-server-bin~ variable to change this.
- [[https://github.com/Alloyed/lua-lsp][lua-lsp]] :: Must be available in =~/.luarocks/bin/lua-lsp=. See
~lsp-clients-lua-lsp-server-install-dir~ variable to change this.
[[https://emacs-lsp.github.io/lsp-mode/page/lsp-emmy-lua/][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:
+ [[https://github.com/sumneko/lua-language-server][Sumneko language server]] (lua-language-server) :: Must be in
=$EMACSDIR/.local/etc/lsp/lua-language-server/=. See ~+lua-lsp-dir~ variable
to change this.
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
2022-09-26 02:19:42 +08:00
- lua-lsp-dir :: This must be set when using [[doom-module:+lsp]] and using [[https://github.com/sumneko/lua-language-server][lua-language-server]].
This controls where the repository has been cloned and built to finish the
configuration of the server.
* Troubleshooting
[[doom-report:][Report an issue?]]
** Install lua-language-server
A [[https://github.com/sumneko/lua-language-server/issues/60][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./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote