{"id":20040993,"url":"https://github.com/emmylua/emmylua-languageserver","last_synced_at":"2025-09-25T17:34:04.235Z","repository":{"id":30882388,"uuid":"126278783","full_name":"EmmyLua/EmmyLua-LanguageServer","owner":"EmmyLua","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-03T21:32:26.000Z","size":2163,"stargazers_count":155,"open_issues_count":2,"forks_count":28,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-09T23:36:30.487Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EmmyLua.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-22T04:19:30.000Z","updated_at":"2025-01-21T02:53:33.000Z","dependencies_parsed_at":"2024-11-13T10:45:00.069Z","dependency_job_id":"32f5005f-fa31-4edc-8dc4-35442559674c","html_url":"https://github.com/EmmyLua/EmmyLua-LanguageServer","commit_stats":null,"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"purl":"pkg:github/EmmyLua/EmmyLua-LanguageServer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmyLua%2FEmmyLua-LanguageServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmyLua%2FEmmyLua-LanguageServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmyLua%2FEmmyLua-LanguageServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmyLua%2FEmmyLua-LanguageServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmmyLua","download_url":"https://codeload.github.com/EmmyLua/EmmyLua-LanguageServer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmyLua%2FEmmyLua-LanguageServer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271778236,"owners_count":24819265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T10:44:51.704Z","updated_at":"2025-09-25T17:33:59.174Z","avatar_url":"https://github.com/EmmyLua.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Emmy Lua Language Server\n\nUse [EmmyLuaAnalyzer](https://github.com/CppCXY/EmmyLuaAnalyzer) Please\n\nCI status  | Download\n---------- | ----------\n[![Build status](https://ci.appveyor.com/api/projects/status/djgeh5fq4jhe5xc2?svg=true)](https://ci.appveyor.com/project/EmmyLua/emmylua-languageserver)|[EmmyLua-LS-all.jar](https://ci.appveyor.com/project/EmmyLua/emmylua-languageserver/build/artifacts)\n\n\nEmmy lua Language server have lots of features for lua language, including:\n* Find usages\n* Go to definition\n* Comment based type/class annotation\n* Basic completion\n\nFor an exhaustive list of features see the [intellij plugin description](https://github.com/EmmyLua/IntelliJ-EmmyLua).\n\n## Requirements\n\n* [install JDK](https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK_Howto.html)\n\n## Building\n\nRun from root:\n\n    $ gradlew shadowJar\n\n\nThe `EmmyLua-LS-all.jar` file will be created in `EmmyLua-LanguageServer/EmmyLua-LS/build` .\n\n## Running Server\n\nTo run the language server use:\n\n    $ java -cp EmmyLua-LS-all.jar com.tang.vscode.MainKt\n\n## Adding to an Sublime\n\nJust pass the instantiating instruction to the LSP plugin.\n\nExample: adding EmmyLua to [SublimeText](https://www.sublimetext.com/) with [Sublime-LSP](https://github.com/tomv564/LSP):\n* install the `LSP` plugin in sublime\n* add emmy as a client to `LSP.sublime-settings`:\n```json\n{\n    \"clients\":\n    {\n        \"emmy\":\n        {\n            \"command\":\n            [\n                \"java\",\n                \"-cp\",\n                \"\u003cpath to jar\u003e/*\",\n                \"com.tang.vscode.MainKt\"\n            ],\n            \"enabled\": true,\n            \"languageId\": \"lua\",\n            \"scopes\":\n            [\n                \"source.lua\"\n            ],\n            \"syntaxes\":\n            [\n                \"Packages/Lua/Lua.sublime-syntax\"\n            ]\n        }\n    }\n}\n```\n\n## Adding to Emacs\nyou can use [lsp-lua-emmy](https://github.com/phenix3443/lsp-lua-emmy) as lsp client.\n\nadd following code to your `~/.emacs` or `.emacs.d/init.el` .\n\n``` emacs-lisp\n(use-package lsp-mode\n  :ensure t\n  :commands lsp\n  :hook ((lua-mode) . lsp)\n  :config\n  )\n\n(use-package company-lsp\n  :ensure t\n  :after lsp-mode\n  :config\n  (setq company-lsp-enable-recompletion t)\n  (setq lsp-auto-configure nil)         ;该功能会自动执行(push company-lsp company-backends)\n  )\n\n(use-package lsp-lua-emmy\n  :demand\n  :ensure nil\n  :load-path \"~/github/lsp-lua-emmy\"\n  :hook (lua-mode . lsp)\n  :config\n  (setq lsp-lua-emmy-jar-path (expand-file-name \"EmmyLua-LS-all.jar\" user-emacs-directory))\n  )\n\n(defun set-company-backends-for-lua()\n  \"Set lua company backend.\"\n  (setq-local company-backends '(\n                                 (\n                                  company-lsp\n                                  company-lua\n                                  company-keywords\n                                  company-gtags\n                                  company-yasnippet\n                                  )\n                                 company-capf\n                                 company-dabbrev-code\n                                 company-files\n                                 )))\n\n(use-package lua-mode\n  :ensure t\n  :mode \"\\\\.lua$\"\n  :interpreter \"lua\"\n  :hook (lua-mode . set-company-backends-for-lua)\n  :config\n  (setq lua-indent-level 4)\n  (setq lua-indent-string-contents t)\n  (setq lua-prefix-key nil)\n  )\n\n```\nwork with company-mode and lua-mode in Emacs 26.1:\n\n![work-with-emacs](img/work-with-emacs.png)\n\n## Adding to Vim/NeoVim\n\nInstall [Vim-EasyComplete](https://github.com/jayli/vim-easycomplete). Run `InstallLspServer` after opening a lua file with vim.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmylua%2Femmylua-languageserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femmylua%2Femmylua-languageserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmylua%2Femmylua-languageserver/lists"}