# @lifeart/ember-language-server

> A language server implementation for Ember.js projects.

Latest version **2.30.1** (published 2023-10-04) · MIT license · 0 weekly downloads

## Install

```sh
npm install @lifeart/ember-language-server
pnpm add @lifeart/ember-language-server
yarn add @lifeart/ember-language-server
bun add @lifeart/ember-language-server
```

Provides the command `ember-language-server`.

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; large bundle.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.30.1 |
| Published | 2023-10-04 |
| First published | 2021-01-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >= 14.21.1 |
| Dependencies | 19 |
| Unpacked size | 14.7 MB |
| Known vulnerabilities | 0 (+7 in 4 direct dependencies) |
| Install scripts | no |
| GitHub stars | 33 |
| Maintainers | lifeart |
| Keywords | ember, language-server, ember-language-server |

## Links

- npm: https://www.npmjs.com/package/@lifeart/ember-language-server
- Repository: https://github.com/lifeart/ember-language-server
- Homepage: https://github.com/lifeart/ember-language-server#readme
- Issues: https://github.com/lifeart/ember-language-server/issues
- npm.io page: https://npm.io/package/@lifeart/ember-language-server

## Dependencies (19)

- [flat](https://npm.io/package/flat.md) 5.0.2
- [yaml](https://npm.io/package/yaml.md) 2.2.2
- [lodash](https://npm.io/package/lodash.md) 4.17.21
- [semver](https://npm.io/package/semver.md) 7.3.5
- [dag-map](https://npm.io/package/dag-map.md) 2.0.2
- [find-up](https://npm.io/package/find-up.md) 6.3.0
- [memoizee](https://npm.io/package/memoizee.md) 0.4.15
- [picomatch](https://npm.io/package/picomatch.md) 2.3.1
- [fuzzaldrin](https://npm.io/package/fuzzaldrin.md) 2.1.0
- [vscode-uri](https://npm.io/package/vscode-uri.md) 3.0.3
- [json-parse-ast](https://npm.io/package/json-parse-ast.md) 1.0.8
- [vscode-jsonrpc](https://npm.io/package/vscode-jsonrpc.md) 6.0.0
- [@glimmer/syntax](https://npm.io/package/@glimmer/syntax.md) 0.84.3
- [ember-meta-explorer](https://npm.io/package/ember-meta-explorer.md) 1.3.0
- [ember-template-recast](https://npm.io/package/ember-template-recast.md) 6.1.4
- [vscode-languageserver](https://npm.io/package/vscode-languageserver.md) 7.0.0
- [vscode-languageserver-protocol](https://npm.io/package/vscode-languageserver-protocol.md) 3.16.0
- [vscode-languageserver-textdocument](https://npm.io/package/vscode-languageserver-textdocument.md) 1.0.4
- [@lifeart/ember-extract-inline-templates](https://npm.io/package/@lifeart/ember-extract-inline-templates.md) 2.2.0

## Recent versions

- 2.30.1 (latest) — 2023-10-04
- 2.30.0 — 2023-10-01
- 2.29.0 — 2023-05-30
- 2.28.0 — 2022-11-29
- 2.27.0 — 2022-08-19
- 2.26.1 — 2022-07-22
- 2.26.0 — 2022-07-22
- 2.25.0 — 2022-04-27
- 2.24.0 — 2022-04-26
- 2.23.0 — 2022-04-21
- 2.22.0 — 2022-04-21
- 2.21.0 — 2022-04-21
- 2.20.1 — 2022-04-15
- 2.20.0 — 2022-04-15
- 2.19.0 — 2022-03-29
- … 54 more at https://npm.io/package/@lifeart/ember-language-server/versions

## README

# Ember Language Server

[![Greenkeeper badge](https://badges.greenkeeper.io/lifeart/ember-language-server.svg)](https://greenkeeper.io/)

The 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.

## Features

All 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.

- Autocompletion
  - `*.{js/ts}`: services, models, routes, transforms
  - `*.hbs`: components, route names, helpers, modifiers, local paths, arguments
  - Namespaces support (batman syntax)

- Template linting
  - works only if `ember-template-lint` dependency added into project.
  - [ember-template-lint](https://github.com/ember-template-lint/ember-template-lint) (`v2`, `v3`, `v4`) integration, including documentation links and auto fixes
  - template linting inside `.js` and `.ts` files (with `hbs` literal)
  - experimental linting inside `.gjs` and `.gts` files (with `<template>` tag)

- Definition providers for (enable features like "Go To Definition" or "Peek Definition"):
  - Components (in Templates)
  - Helpers (in Templates)
  - Modifiers (in Templates)
  - Models
  - Transforms
  - Component imports (from addons)
  - Namespace components (batman syntax)

- Route autocompletion in `link-to` and `<LinkTo>` components.
- Outlet jumping
- Workspaces support
- 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`.

## Editor Plugins

* VSCode: [Unstable Ember Language Server](https://github.com/lifeart/vscode-ember)
* Neo (Vim): [coc-ember](https://github.com/NullVoxPopuli/coc-ember), [native LSP integration](https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#ember)
* Emacs using [lsp-mode](https://github.com/emacs-lsp/lsp-mode)
* GitPod, Onivim, Coder, VSCodium, and Theia using [Open VSX](https://open-vsx.org/extension/lifeart/vscode-ember-unstable)

## Addons available for install

* [els-addon-glint](https://github.com/lifeart/els-addon-glint) - Glint integration addon.
* [els-a11y-addon](https://github.com/lifeart/els-a11y-addon) - Ember Language Server a11y addon.
* [els-addon-typed-templates](https://github.com/lifeart/els-addon-typed-templates) - Typed Templates for Ember.
* [els-addon-docs](https://github.com/lifeart/els-addon-docs) - Ember Language Server Addon Docs Completion Provider.
* [ember-fast-cli](https://github.com/lifeart/ember-fast-cli) - Addon for Ember-cli commands execution.
* [els-component-extraction-addon](https://github.com/lifeart/els-component-extraction-addon) - Component extraction addon.
* [els-intl-addon](https://github.com/lifeart/els-intl-addon) - Ember-Intl, Ember-i18n autocomplete.

## Addon notes:

- all addons could be added as dev-dependency for a project
- dev-dependency installation allow us to have independent versions of addons for different projects
- for global addon installation check LS settings in your editor (you have to specify path to addon root in LS config)
- you could [build](https://github.com/lifeart/ember-language-server/wiki/Addon-API) your project-specific addon

---

# Integration details

## Server entrypoints

`lib/start-server.js` - nodejs

`lib/start-worker-server.js` - worker
## Server options

```js
new Server({fs, type})
```


`fs` - available options:
  * `sync` - LS should use nodejs.fs logic
  * `async` - LS should use client's fs provider

`type` - available options:
  * `node` - supported addons & require logic
  * `worker` - addons and require logic not supported

---

### [Debugging](DEBUGGING.md)

---
### [Changelog](CHANGELOG.md)

---

## License

[MIT](LICENSE.md)

---
_Source: https://npm.io/package/@lifeart/ember-language-server · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
