doomemacs/modules/lang/lua/README.org
2021-11-21 20:04:28 +01:00

103 lines
4 KiB
Org Mode

← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang lua][Issues]] ↖ [[doom-module-source:lang/lua][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+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 ::
Enable LSP support for ~lua-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports EmmyLua, lua-language-server, and lua-lsp).
- +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]]
- 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
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
- 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