GitHub - immerrr/lua-mode: Emacs major mode for editing Lua
source link: https://github.com/immerrr/lua-mode
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Lua mode
lua-mode is a major mode for editing Lua sources in Emacs.
If you have a problem or a suggestion about lua-mode, please, let me know about it via github's Issue Tracker.
INSTALLATION
MELPA INSTALLATION
lua-mode's officially supported installation method is from MELPA archive.
To get started, enable installing packages from MELPA:
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
To fetch the list of packages you can do
<M-x> package-refresh-contents
And after that lua-mode can be installed with
<M-x> package-install "lua-mode"
Please, refer to MELPA documentation and Emacs documentation on packages for further information.
EL-GET INSTALLATION
El-get is a package manager which greatly simplifies adding modules to your Emacs and keeping them up-to-date. Once you have el-get set up, lua-mode can also be installed with
<M-x> el-get-install "lua-mode"
and updating is no more than
<M-x> el-get-update "lua-mode"
Please, consult with el-get documentation for further information.
MANUAL INSTALLATION
To install, you need to make sure that lua-mode.el
is on your load-path (and optionally byte-compile
it) and to set up Emacs to automatically enable lua-mode for *.lua
files or ones that contain lua
hash-bang line (#!/usr/bin/lua
). Putting this snippet to .emacs
should be enough in most cases:
;;;; This snippet enables lua-mode
;; This line is not necessary, if lua-mode.el is already on your load-path
(add-to-list 'load-path "/path/to/directory/where/lua-mode-el/resides")
(autoload 'lua-mode "lua-mode" "Lua editing mode." t)
(add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode))
(add-to-list 'interpreter-mode-alist '("lua" . lua-mode))
FEATURES
- syntactic indentation & highlighting (including multiline literals/comments)
- evaluation of lines/regions/functions/files in Lua subprocess or direct interaction with its REPL
- documentation lookup (using online/offline reference manual, e.g. string.find)
- imenu integration
- HideShow integration
- Flymake integration for on-the-fly linting. The luacheck program is required for this. It can be installed e.g. via luarocks.
CUSTOMIZATION
The following variables are available for customization (see more via M-x customize-group lua
):
- Var
lua-indent-level
(default3
): indentation offset in spaces - Var
lua-indent-string-contents
(defaultnil
): set tot
if you like to have contents of multiline strings to be indented like comments - Var
lua-indent-nested-block-content-align
(defaultt
) set tonil
to stop aligning the content of nested blocks with the open parenthesis - Var
lua-indent-close-paren-align
(defaultt
) set tot
to align close parenthesis with the open parenthesis rather than with the beginning of the line - Var
lua-mode-hook
: list of functions to execute when lua-mode is initialized - Var
lua-documentation-url
(default"http://www.lua.org/manual/5.1/manual.html#pdf-"
): base URL for documentation lookup - Var
lua-documentation-function
(defaultbrowse-url
): function used to show documentation (eww
is a viable alternative for Emacs 25)
LUA SUBPROCESS CREATION
- Var
lua-default-application
(default"lua"
): command to start up the subprocess (REPL) - Var
lua-default-command-switches
(default"-i"
): arguments to pass to the subprocess on startup (make sure-i
is there if you expect working with Lua shell interactively) - Cmd
lua-start-process
: start new REPL process, usually happens automatically - Cmd
lua-kill-process
: kill current REPL process
LUA SUBPROCESS INTERACTION
- Cmd
lua-show-process-buffer
: switch to REPL buffer - Cmd
lua-hide-process-buffer
: hide window showing REPL buffer - Var
lua-always-show
: show REPL buffer after sending something - Cmd
lua-send-buffer
: send whole buffer - Cmd
lua-send-current-line
: send current line - Cmd
lua-send-defun
: send current top-level function - Cmd
lua-send-region
: send active region - Cmd
lua-restart-with-whole-file
: restart REPL and send whole buffer
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK