CI status | Download |
---|---|
EmmyLua-LS-all.jar |
Emmy lua Language server have lots of features for lua language, including:
- Find usages
- Go to definition
- Comment based type/class annotation
- Basic completion
For an exhaustive list of features see the intellij plugin description.
Run from root:
$ gradlew shadowJar
The EmmyLua-LS-all.jar
file will be created in EmmyLua-LanguageServer/EmmyLua-LS/build
.
To run the language server use:
$ java -cp EmmyLua-LS-all.jar com.tang.vscode.MainKt
Just pass the instantiating instruction to the LSP plugin.
Example: adding EmmyLua to SublimeText with Sublime-LSP:
- install the
LSP
plugin in sublime - add emmy as a client to
LSP.sublime-settings
:
{
"clients":
{
"emmy":
{
"command":
[
"java",
"-cp",
"<path to jar>/*",
"com.tang.vscode.MainKt"
],
"enabled": true,
"languageId": "lua",
"scopes":
[
"source.lua"
],
"syntaxes":
[
"Packages/Lua/Lua.sublime-syntax"
]
}
}
}
you can use lsp-lua-emmy as lsp client.
add following code to your ~/.emacs
or .emacs.d/init.el
.
(use-package lsp-mode
:ensure t
:commands lsp
:hook ((lua-mode) . lsp)
:config
)
(use-package company-lsp
:ensure t
:after lsp-mode
:config
(setq company-lsp-enable-recompletion t)
(setq lsp-auto-configure nil) ;该功能会自动执行(push company-lsp company-backends)
)
(use-package lsp-lua-emmy
:demand
:ensure nil
:load-path "~/github/lsp-lua-emmy"
:hook (lua-mode . lsp)
:config
(setq lsp-lua-emmy-jar-path (expand-file-name "EmmyLua-LS-all.jar" user-emacs-directory))
)
(defun set-company-backends-for-lua()
"Set lua company backend."
(setq-local company-backends '(
(
company-lsp
company-lua
company-keywords
company-gtags
company-yasnippet
)
company-capf
company-dabbrev-code
company-files
)))
(use-package lua-mode
:ensure t
:mode "\\.lua$"
:interpreter "lua"
:hook (lua-mode . set-company-backends-for-lua)
:config
(setq lua-indent-level 4)
(setq lua-indent-string-contents t)
(setq lua-prefix-key nil)
)
work with company-mode and lua-mode in Emacs 26.1:
Install Vim-EasyComplete. Run InstallLspServer
after opening a lua file with vim.