All Projects → elm-tooling → Elm Language Client Vscode

elm-tooling / Elm Language Client Vscode

Licence: mit
Improving your Elm experience since 2019

Programming Languages

typescript
32286 projects
elm
856 projects

Projects that are alternatives of or similar to Elm Language Client Vscode

Kotlin Language Server
Intelligent Kotlin support for any editor/IDE using the Language Server Protocol
Stars: ✭ 650 (+301.23%)
Mutual labels:  hacktoberfest, vscode, lsp, language-server
Elm Language Server
Language server implementation for Elm
Stars: ✭ 298 (+83.95%)
Mutual labels:  hacktoberfest, lsp, language-server-protocol, language-server
Monaco Languageclient
NPM module to connect Monaco editor with language servers
Stars: ✭ 419 (+158.64%)
Mutual labels:  vscode, lsp, language-server-protocol, language-server
Typescript Language Server
TypeScript & JavaScript Language Server
Stars: ✭ 462 (+185.19%)
Mutual labels:  hacktoberfest, lsp, language-server-protocol, language-server
Langserver Swift
A Swift implementation of the open Language Server Protocol.
Stars: ✭ 171 (+5.56%)
Mutual labels:  vscode, language-server-protocol, language-server
Protocol Buffers Language Server
[WIP] Protocol Buffers Language Server
Stars: ✭ 44 (-72.84%)
Mutual labels:  lsp, language-server-protocol, language-server
typescript-language-server
TypeScript & JavaScript Language Server
Stars: ✭ 1,118 (+590.12%)
Mutual labels:  language-server, language-server-protocol, lsp
camel-language-server
The Apache Camel LSP server implementation
Stars: ✭ 31 (-80.86%)
Mutual labels:  language-server, language-server-protocol, lsp
Dockerfile Language Server Nodejs
A language server for Dockerfiles powered by Node.js, TypeScript, and VSCode technologies.
Stars: ✭ 170 (+4.94%)
Mutual labels:  lsp, language-server-protocol, language-server
atom-ide-scala
Scala & Dotty support for Atom IDE (🧟‍♂️ zombie repo)
Stars: ✭ 47 (-70.99%)
Mutual labels:  language-server, language-server-protocol, lsp
Nvim Lspconfig
Quickstart configurations for the Nvim LSP client
Stars: ✭ 3,410 (+2004.94%)
Mutual labels:  lsp, language-server-protocol, language-server
Glsl Language Server
Language server implementation for GLSL
Stars: ✭ 53 (-67.28%)
Mutual labels:  lsp, language-server-protocol, language-server
Csharp Language Server Protocol
Language Server Protocol in C#
Stars: ✭ 230 (+41.98%)
Mutual labels:  lsp, language-server-protocol, language-server
groovy-language-server
A language server for Groovy
Stars: ✭ 132 (-18.52%)
Mutual labels:  language-server, language-server-protocol, lsp
Fsautocomplete
F# language server using Language Server Protocol
Stars: ✭ 208 (+28.4%)
Mutual labels:  lsp, language-server-protocol, language-server
toy-language-server
Example language server (LSP) implementation for a toy language
Stars: ✭ 54 (-66.67%)
Mutual labels:  language-server, language-server-protocol, lsp
Erlang ls
The Erlang Language Server
Stars: ✭ 363 (+124.07%)
Mutual labels:  lsp, language-server-protocol, language-server
Powershelleditorservices
A common platform for PowerShell development support in any editor or application!
Stars: ✭ 394 (+143.21%)
Mutual labels:  hacktoberfest, language-server-protocol, language-server
Vscode Intelephense
PHP intellisense for Visual Studio Code
Stars: ✭ 872 (+438.27%)
Mutual labels:  vscode, language-server-protocol, language-server
Tenkawa Php Language Server
Language server for PHP, with powerful static analysis and type inference.
Stars: ✭ 78 (-51.85%)
Mutual labels:  lsp, language-server

Elm Plugin for Visual Studio Code (VSCode)

Version Downloads Rating Compile

Supports elm 0.19 and up

Install

  1. Install VSCode from here
  2. Follow this link to install the plugin
  3. Make sure you have nodejs and therefore npm installed
  4. Make sure you have Elm installed
  5. Install elm-test and elm-format by running npm install -g elm-test elm-format in a terminal

Highlighted Features

  • Errors and informations when changing code and when saving (Control + S)
  • Format on save (Control + S)
  • Suggests completions and snippets (Control + Space)

Additional Features

  • Lists all references to a type alias, module, custom type or function (Alt + Shift + F12)
  • Jump to the definition of a type alias, module, custom type or function
  • Shows type annotations and documentation on hover for type alia, module, custom type or function
  • Rename a type alias, module, custom type or function (F2)
  • Browse file by symbols (Control + Shift + O)
  • Browse workspace by symbols (Control + Shift + R)
  • Codelenses show how many times you calling a function and if it's exposed or not
  • Code folding
  • Type inference
  • Some more

Extension Settings

This extension contributes the following settings:

  • elmLS.trace.server: Enable/disable trace logging of client and server communication
  • elmLS.elmPath: The path to your elm executable.
  • elmLS.elmFormatPath: The path to your elm-format executable.
  • elmLS.elmTestPath: The path to your elm-test executable.
  • elmLS.disableElmLSDiagnostics: Disable linting diagnostics from the language server.
  • elmLS.skipInstallPackageConfirmation: Skip confirmation for the Install Package code action.
  • elmLS.onlyUpdateDiagnosticsOnSave: Only update compiler diagnostics on save, not on document change.

Configuration

Create an elm-tooling.json file next to your elm.json to configure your project.

Currently there’s just one thing that you can configure: entrypoints. We run elm make to get errors. Without this elm make is run on the current file only. To get errors for the entire project you can specify your entrypoint files – basically, those with main = in them. Then the language server will run elm make on those instead.

Example:

{
  "entrypoints": ["./src/Main.elm"]
}

The entrypoints are relative to the directory where your elm.json and elm-tooling.json is and must start with ./.

Check out the elm-tooling CLI for creating and validating your elm-tooling.json!

FAQ

  • How to get a logfile?

    • F1 -> Type Output: Focus on Output View -> In the now open panel, use the drop down on the right to choose Elm (your project name)
  • Most features don't seem to work for me?

    • This tool needs a valid elm project, please check if you have an elm.json. You can easily initialize your project with elm init. If it still does work, please try if you get the same behavior with the elm-spa-example.
  • What's the relation to the language server?

  • Why do I need to install elm, elm-test and elm-format?

    • You will need to install elm and elm-test to get all diagnostics and elm-format for formatting. If your setup fails to find the global installations of those, you can use the settings panel in VSCode to set the paths to the executable manually. Alternatively you can also just install these to your local npm package.json.
  • I don't like the inserted lines for "X references" (CodeLenses)

    • You can configure VSCode to not show them, just look for "Editor: Code Lens" in your settings.
  • I'm using glsl and the extension is not helpful

Contributing / Debugging

git clone --recursive [email protected]:elm-tooling/elm-language-client-vscode.git
cd elm-language-client-vscode
npm install

Open VSCode with this project (code .) and press F5 to start debugging the plugin.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].