spacemacs/layers/+lang/lua/README.org
2019-11-30 22:55:35 +01:00

2.6 KiB

Lua layer

/TakeV/spacemacs/media/commit/cf376520ada3c87317aeec427964cb220bfb88c7/layers/+lang/lua/img/lua.gif

Description

This layer adds support for editing Lua.

Features:

  • LSP with EmmyLua-LS-all.
  • Editing lua files using lua-mode
  • Sending code to a lua REPL
  • Code linting using Luacheck

Install

Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add lua to the existing dotspacemacs-configuration-layers list in this file.

In order to enable code linting, install Luacheck.

Backends

Supported backends are:

  • lsp-emmy using clangd LSP server

LSP

LSP support is provided via the LSP layer, currently only EmmyLua is supported,

To use the lsp-emmy backend, please download the EmmyLua-LS-all.jar and put into ~/.emacs.d/, then set the layer variables lsp-backend for lua:

  (lua :variables lsp-backend 'lsp-emmy)

The complete layer variables are:

  (lua :variables
       lsp-backend 'lsp-emmy
       lua-lsp-emmy-jar-path "~/.emacs.d/EmmyLua-LS-all.jar" ; default path
       lua-lsp-emmy-enable-file-watchers t)                  ; enabled default
Features
  • Cross references (definitions, references, rename…)
  • Completion with company-lsp
  • Syntax checking via flycheck (lsp-ui-flycheck)
  • Cross-platform - functional on Windows, Linux and macOS.
  • Refer https://github.com/EmmyLua/EmmyLua-LanguageServer for details.

Key bindings

LSP

The default key bindings for the LSP implementations are defined and documented in the LSP layer.

Commands

Key binding Description
SPC m d lookup thing at point in lua documentation
SPC m s b send buffer contents to REPL
SPC m s f send current function to REPL
SPC m s l send current line to REPL
SPC m s r send current region to REPL