{"id":16129181,"url":"https://github.com/laughedelic/atom-sbt-client","last_synced_at":"2025-03-18T14:30:32.740Z","repository":{"id":141989738,"uuid":"109058981","full_name":"laughedelic/atom-sbt-client","owner":"laughedelic","description":":wrench:sbt server integration with Atom IDE UI","archived":false,"fork":false,"pushed_at":"2018-02-02T03:08:19.000Z","size":29,"stargazers_count":9,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-16T20:51:19.431Z","etag":null,"topics":["atom","atom-ide","atom-language-support","atom-package","atom-plugin","language-server","language-server-protocol","sbt","sbt-server","scala"],"latest_commit_sha":null,"homepage":"https://atom.io/packages/atom-sbt-client","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/laughedelic.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-31T22:31:21.000Z","updated_at":"2018-09-27T14:10:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"21ba6475-2bd9-47ae-b4d5-7ab3b3cf1651","html_url":"https://github.com/laughedelic/atom-sbt-client","commit_stats":{"total_commits":31,"total_committers":1,"mean_commits":31.0,"dds":0.0,"last_synced_commit":"af4928e88b84633e8455f5e770d02cdf29c88dc6"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laughedelic%2Fatom-sbt-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laughedelic%2Fatom-sbt-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laughedelic%2Fatom-sbt-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laughedelic%2Fatom-sbt-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/laughedelic","download_url":"https://codeload.github.com/laughedelic/atom-sbt-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244239960,"owners_count":20421372,"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":["atom","atom-ide","atom-language-support","atom-package","atom-plugin","language-server","language-server-protocol","sbt","sbt-server","scala"],"created_at":"2024-10-09T22:09:24.383Z","updated_at":"2025-03-18T14:30:32.734Z","avatar_url":"https://github.com/laughedelic.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Atom sbt client\n\n[![](https://img.shields.io/github/release/laughedelic/atom-sbt-client/all.svg)](https://github.com/laughedelic/atom-sbt-client/releases/latest)\n[![](https://img.shields.io/badge/license-MPL--2.0-blue.svg)](https://www.tldrlegal.com/l/mpl-2.0)\n[![](https://img.shields.io/badge/contact-gitter_chat-dd1054.svg)](https://gitter.im/laughedelic/atom-sbt-client)\n\nThis is an Atom plugin integrating [sbt server](https://developer.lightbend.com/blog/2017-11-30-sbt-1-1-0-RC1-sbt-server/#sbt-server) with the [Atom IDE](https://ide.atom.io) interface.\n\nIt connects to a running sbt instance and communicates with it using [Language Server Protocol](https://github.com/Microsoft/language-server-protocol). Atom sends event notifications to sbt (like `didSave`), in response sbt recompiles the project and sends back information about warnings and errors which are displayed in Atom:\n\n\u003cimg src=\"https://user-images.githubusercontent.com/766656/32409435-015c59b0-c1ac-11e7-9de7-c3c45ae5e44e.png\"\u003e\n\n## Installation\n\nYou can install it using Atom interface or by running this command:\n\n```\napm install atom-sbt-client\n```\n\nOn the first launch it will automatically install its dependencies if needed:\n+ [language-scala](https://github.com/atom-community/language-scala) for basic Scala syntax highlighting\n+ [atom-ide-ui](https://github.com/facebook-atom/atom-ide-ui) for the Atom IDE interface\n\n\n## Usage\n\n1. Go to a Scala project and launch sbt (`project/build.properties` should set sbt version to 1.1.0 or higher)\n2. Open this project in Atom, open any Scala file and save it.\n\nIt should trigger compilation and if there are any errors, you should see them in the gutter and in the diagnostics panel.\n\nAnother feature is jump-to-definition, which works for _some_ types in the project.\n\nNote that despite the debug logging in the sbt shell, you can still use it directly. It's just a normal sbt shell which additionally communicates with Atom.\n\n## Related links\n\n* sbt server support in other editors:\n    + [VS Code](https://developer.lightbend.com/blog/2017-11-30-sbt-1-1-0-RC1-sbt-server/#vs-code-extension)\n    + [Sublime Text 3](http://eed3si9n.com/sbt-server-with-sublime-text3)\n    + [Neovim](http://eed3si9n.com/sbt-server-with-neovim)\n* [atom-ide-scala](https://github.com/laughedelic/atom-ide-scala) is a similar plugin integrating Atom IDE UI with the [metals](https://github.com/scalameta/metals) language server\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaughedelic%2Fatom-sbt-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaughedelic%2Fatom-sbt-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaughedelic%2Fatom-sbt-client/lists"}