All Projects → laughedelic → atom-ide-scala

laughedelic / atom-ide-scala

Licence: MIT license
Scala & Dotty support for Atom IDE (🧟‍♂️ zombie repo)

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to atom-ide-scala

ide-yaml
Atom-IDE support for YAML language
Stars: ✭ 16 (-65.96%)
Mutual labels:  language-server-protocol, atom-package, atom-plugin, atom-ide
atom-ide-crystal
Crystal IDE package for Atom using the Scry Language Server
Stars: ✭ 24 (-48.94%)
Mutual labels:  atom, language-server-protocol, atom-package, atom-ide
ide-go
Go language support for Atom-IDE, powered by Sourcegraph's Go Language Server
Stars: ✭ 39 (-17.02%)
Mutual labels:  language-server-protocol, atom-package, lsp, atom-ide
Atom Languageclient
Language Server Protocol support for Atom (the basis of Atom-IDE)
Stars: ✭ 385 (+719.15%)
Mutual labels:  atom, ide, language-server-protocol, lsp
Erlang ls
The Erlang Language Server
Stars: ✭ 363 (+672.34%)
Mutual labels:  language-server, ide, language-server-protocol, lsp
ide-css
Atom-IDE for CSS, LESS and SCSS language
Stars: ✭ 18 (-61.7%)
Mutual labels:  language-server-protocol, atom-package, atom-plugin, atom-ide
Metals
Scala language server with rich IDE features 🚀
Stars: ✭ 1,605 (+3314.89%)
Mutual labels:  language-server, ide, scalameta, lsp
atom-ide-d
Adds D language support for Atom
Stars: ✭ 33 (-29.79%)
Mutual labels:  atom, atom-package, lsp, atom-ide
vscode
The Visual Studio Code Extension for the Erlang Language Server
Stars: ✭ 62 (+31.91%)
Mutual labels:  ide, language-server-protocol, lsp
language-mjml
Atom Editor package providing syntax support for MJML
Stars: ✭ 48 (+2.13%)
Mutual labels:  atom, atom-package, atom-plugin
atom-zurb-foundation
Zurb Foundation 6 for sites snippets.
Stars: ✭ 31 (-34.04%)
Mutual labels:  atom, atom-package, atom-plugin
Fsautocomplete
F# language server using Language Server Protocol
Stars: ✭ 208 (+342.55%)
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 (+261.7%)
Mutual labels:  language-server, language-server-protocol, lsp
atom-ide-definitions
Definitions for Atom IDE
Stars: ✭ 26 (-44.68%)
Mutual labels:  atom, atom-package, atom-ide
Elm Language Client Vscode
Improving your Elm experience since 2019
Stars: ✭ 162 (+244.68%)
Mutual labels:  language-server, language-server-protocol, lsp
atom-ide-cpp
C/C++ language support for Atom-IDE
Stars: ✭ 34 (-27.66%)
Mutual labels:  atom, ide, language-server-protocol
Nvim Lspconfig
Quickstart configurations for the Nvim LSP client
Stars: ✭ 3,410 (+7155.32%)
Mutual labels:  language-server, language-server-protocol, lsp
Csharp Language Server Protocol
Language Server Protocol in C#
Stars: ✭ 230 (+389.36%)
Mutual labels:  language-server, language-server-protocol, lsp
typescript-language-server
TypeScript & JavaScript Language Server
Stars: ✭ 1,118 (+2278.72%)
Mutual labels:  language-server, language-server-protocol, lsp
Glsl Language Server
Language server implementation for GLSL
Stars: ✭ 53 (+12.77%)
Mutual labels:  language-server, language-server-protocol, lsp

Atom IDE Scala language client

Scala & Dotty support for Atom IDE, powered by Metals, Dotty and Ensime language servers.

(The screenshot above is outdated, the set of features depends on the language server you're going to use)

🚧 WORK IN PROGRESS 🚧

The project is in active development and may have some rough edges. You are welcome to try it out and provide any feedback in the Gitter chat or Github issues.

This plugin is written in Scala.js, so if you are a Scala developer looking for better development experience in Atom, you're encouraged to contribute. Check the contributing guide and open issues especially the ones marked with help wanted label.

The work of this plugin is to launch the language server and wire communication with it to the Atom IDE services. Most of the interesting stuff is happening on the server side, so check also the scalameta/metals project.

During development some reusable parts were split into separate repos:

  • scalajs-atom-api: Scala.js facades for Atom-related APIs (including atom-languageclient)
  • sbt-atom-package: an sbt plugin wraping apm and simplifying development of Scala.js-based Atom plugins

Installation

First, you need to install language-scala for basic Scala syntax highlighting. Then you can open the package page and click the green Install button.

Or you can run this command:

apm install language-scala ide-scala

On the first launch it will automatically install its dependencies if needed:

Usage

This plugin can work with different Scala language servers: Metals for Scala 2 projects or Dotty for Scala 3 projects. The plugin tries to determine which server to launch depending on the project setup.

Plugin gets activated only when you open a .scala file.

⚠️ Notice that when you close all tabs with Scala files, language server will be stopped. See atom-languageclient#141 for discussion on this behavior.

Metals

Metals project setup is completely automatic: when you open a new project, it will ask you if you want to import the build definition. If something goes wrong or doesn't work as expected, run Metals Doctor through the command palette.

More details on the Metals website.

Dotty

Setup a Dotty sbt project and run sbt configureIDE in it, then just open the project in Atom.

Official instructions may tell you to run launchIDE in sbt, but this command can only launch VS Code, so just use configureIDE instead and open the project in Atom.

Ensime

🚧 Ensime support is removed for now because the LSP implementation of the Ensime server is quite unstable at the moment and Ensime is not actively maintained. So even if the client works well, the server might be broken and you won't see any features working. 🚧

Follow ensime-server#1951 for more information and get involved if you want to use Ensime LSP server.

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