{"id":14986794,"url":"https://github.com/lifeart/ember-language-server","last_synced_at":"2025-10-05T23:32:00.787Z","repository":{"id":36257897,"uuid":"170559146","full_name":"lifeart/ember-language-server","owner":"lifeart","description":"Language Server Protocol implementation for Ember.js and Glimmer projects","archived":false,"fork":true,"pushed_at":"2024-11-27T18:53:42.000Z","size":2150,"stargazers_count":32,"open_issues_count":73,"forks_count":16,"subscribers_count":4,"default_branch":"component-context-info-origin","last_synced_at":"2025-01-10T08:32:40.580Z","etag":null,"topics":["autocomplete","dx","emberjs","glimmerjs","hacktoberfest","handlebars","language-server","language-server-protocol","visual-studio-code"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=lifeart.vscode-ember-unstable","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"ember-tooling/ember-language-server","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lifeart.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null}},"created_at":"2019-02-13T18:37:48.000Z","updated_at":"2024-11-27T18:53:43.000Z","dependencies_parsed_at":"2023-01-17T00:01:16.173Z","dependency_job_id":null,"html_url":"https://github.com/lifeart/ember-language-server","commit_stats":{"total_commits":905,"total_committers":31,"mean_commits":"29.193548387096776","dds":0.4132596685082873,"last_synced_commit":"9ff3fe1a1ac5567e0692af29eb0956e46f9d1ee0"},"previous_names":[],"tags_count":77,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifeart%2Fember-language-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifeart%2Fember-language-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifeart%2Fember-language-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifeart%2Fember-language-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lifeart","download_url":"https://codeload.github.com/lifeart/ember-language-server/tar.gz/refs/heads/component-context-info-origin","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235019892,"owners_count":18923449,"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","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":["autocomplete","dx","emberjs","glimmerjs","hacktoberfest","handlebars","language-server","language-server-protocol","visual-studio-code"],"created_at":"2024-09-24T14:13:33.795Z","updated_at":"2025-10-05T23:31:55.413Z","avatar_url":"https://github.com/lifeart.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ember Language Server\n\n\n\u003e [!IMPORTANT]  \n\u003e This fork now merged to official language server, so, for actual codebase look at [ember-tooling/ember-language-server](https://github.com/ember-tooling/ember-language-server)\n\n\n[![Greenkeeper badge](https://badges.greenkeeper.io/lifeart/ember-language-server.svg)](https://greenkeeper.io/)\n\nThe Ember Language Server (ELS) implements the [Language Server Protocol](https://github.com/Microsoft/language-server-protocol) for Ember.js projects. ELS enables editors to provide features like auto complete, goto definition and diagnostics. To get these features, you have to install the plugin for your editor.\n\n## Features\n\nAll features currently only work in Ember CLI application that use the default classic structure, and are a rough first draft with a lot of room for improvements. Pods and addons are not supported yet.\n\n- Autocompletion\n  - `*.{js/ts}`: services, models, routes, transforms\n  - `*.hbs`: components, route names, helpers, modifiers, local paths, arguments\n  - Namespaces support (batman syntax)\n\n- Template linting\n  - works only if `ember-template-lint` dependency added into project.\n  - [ember-template-lint](https://github.com/ember-template-lint/ember-template-lint) (`v2`, `v3`, `v4`) integration, including documentation links and auto fixes\n  - template linting inside `.js` and `.ts` files (with `hbs` literal)\n  - experimental linting inside `.gjs` and `.gts` files (with `\u003ctemplate\u003e` tag)\n\n- Definition providers for (enable features like \"Go To Definition\" or \"Peek Definition\"):\n  - Components (in Templates)\n  - Helpers (in Templates)\n  - Modifiers (in Templates)\n  - Models\n  - Transforms\n  - Component imports (from addons)\n  - Namespace components (batman syntax)\n\n- Route autocompletion in `link-to` and `\u003cLinkTo\u003e` components.\n- Outlet jumping\n- Workspaces support\n- Supports Ignoring of LS initialization on unneeded projects by using `ignoredProjects` config option, if you need \"exclude except\" functionality, specify project name as `!my-project`.\n\n## Editor Plugins\n\n* VSCode: [Unstable Ember Language Server](https://github.com/lifeart/vscode-ember)\n* Neo (Vim): [coc-ember](https://github.com/NullVoxPopuli/coc-ember), [native LSP integration](https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#ember)\n* Emacs using [lsp-mode](https://github.com/emacs-lsp/lsp-mode)\n* GitPod, Onivim, Coder, VSCodium, and Theia using [Open VSX](https://open-vsx.org/extension/lifeart/vscode-ember-unstable)\n\n## Addons available for install\n\n* [els-addon-glint](https://github.com/lifeart/els-addon-glint) - Glint integration addon.\n* [els-a11y-addon](https://github.com/lifeart/els-a11y-addon) - Ember Language Server a11y addon.\n* [els-addon-typed-templates](https://github.com/lifeart/els-addon-typed-templates) - Typed Templates for Ember.\n* [els-addon-docs](https://github.com/lifeart/els-addon-docs) - Ember Language Server Addon Docs Completion Provider.\n* [ember-fast-cli](https://github.com/lifeart/ember-fast-cli) - Addon for Ember-cli commands execution.\n* [els-component-extraction-addon](https://github.com/lifeart/els-component-extraction-addon) - Component extraction addon.\n* [els-intl-addon](https://github.com/lifeart/els-intl-addon) - Ember-Intl, Ember-i18n autocomplete.\n\n## Addon notes:\n\n- all addons could be added as dev-dependency for a project\n- dev-dependency installation allow us to have independent versions of addons for different projects\n- for global addon installation check LS settings in your editor (you have to specify path to addon root in LS config)\n- you could [build](https://github.com/lifeart/ember-language-server/wiki/Addon-API) your project-specific addon\n\n---\n\n# Integration details\n\n## Server entrypoints\n\n`lib/start-server.js` - nodejs\n\n`lib/start-worker-server.js` - worker\n## Server options\n\n```js\nnew Server({fs, type})\n```\n\n\n`fs` - available options:\n  * `sync` - LS should use nodejs.fs logic\n  * `async` - LS should use client's fs provider\n\n`type` - available options:\n  * `node` - supported addons \u0026 require logic\n  * `worker` - addons and require logic not supported\n\n---\n\n### [Debugging](DEBUGGING.md)\n\n---\n### [Changelog](CHANGELOG.md)\n\n---\n\n## License\n\n[MIT](LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifeart%2Fember-language-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flifeart%2Fember-language-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifeart%2Fember-language-server/lists"}