{"id":19254824,"url":"https://github.com/sciss/dotterweide-exp-metals","last_synced_at":"2025-07-06T11:37:36.889Z","repository":{"id":186195392,"uuid":"674745782","full_name":"Sciss/dotterweide-exp-metals","owner":"Sciss","description":"Dotterweide experiments in using the Metals language server. Mirror of https://codeberg.org/sciss/dotterweide-exp-metals","archived":false,"fork":false,"pushed_at":"2023-09-03T11:38:18.000Z","size":97,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-23T17:22:47.139Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"dotterweide/dotterweide-exp-metals","license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sciss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2023-08-04T17:01:35.000Z","updated_at":"2023-08-15T15:38:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"75c727c0-9845-45f2-b33e-7d6dabe47006","html_url":"https://github.com/Sciss/dotterweide-exp-metals","commit_stats":null,"previous_names":["sciss/dotterweide-exp-metals"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Sciss/dotterweide-exp-metals","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sciss%2Fdotterweide-exp-metals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sciss%2Fdotterweide-exp-metals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sciss%2Fdotterweide-exp-metals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sciss%2Fdotterweide-exp-metals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sciss","download_url":"https://codeload.github.com/Sciss/dotterweide-exp-metals/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sciss%2Fdotterweide-exp-metals/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263895864,"owners_count":23526742,"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":[],"created_at":"2024-11-09T18:36:50.281Z","updated_at":"2025-07-06T11:37:36.872Z","avatar_url":"https://github.com/Sciss.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotterweide-exp-metals\r\n\r\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dotterweide/dotterweide-org?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\r\n[![Build Status](https://github.com/dotterweide/dotterweide-exp-metals/workflows/Scala%20CI/badge.svg?branch=main)](https://github.com/dotterweide/dotterweide-exp-metals/actions?query=workflow%3A%22Scala+CI%22)\r\n\r\nThe Dotterweide projects aims to develop an embeddable mini-IDE with support for the Scala programming language.\r\nPlease refer to the [organisational project](https://github.com/dotterweide/dotterweide-org) for further information.\r\n\r\nThis `-exp-metals` repository contains experimental code to understand potential interaction with\r\nthe [Metals](https://scalameta.org/metals/) language server.\r\nThis repository is covered by the\r\n[GNU Lesser General Public License v2.1](https://www.gnu.org/licenses/lgpl-2.1.txt) or higher.\r\n\r\nThe project build with [sbt](http://www.scala-sbt.org/) with the main Scala version being 2.13.x.\r\n\r\nThere was a first [demo video](https://peertube.social/videos/watch/3b142190-26b1-47f6-8950-0e0700e19883) showing that\r\nit works in principle (compiler error highlighting).\r\n\r\n## credits\r\n\r\nWe use knowledge from [intelli-lsp](https://github.com/gtache/intellij-lsp) by Guillaume Tâche,\r\nreleased under Apache 2.0 License.\r\n\r\nFile `Scala.tmLanguage.json`, while evaluating tm4s, is taken from https://github.com/scala/vscode-scala-syntax ,\r\nreleased under MIT License.\r\n\r\n## installation\r\n\r\nYou currently have to install Metals in the project's root directory:\r\n\r\n    coursier bootstrap org.scalameta:metals_2.13:1.0.1 -o metals -f\r\n\r\n(If using a snapshot version of metals, add `-r sonatype:snapshots`).\r\n\r\n## notes\r\n\r\nFor bundling Coursier to install Metals, see [Mellite-launcher project](https://github.com/Sciss/Mellite-launcher).\r\n\r\nPossible syntax parsers to replace scalariform. First, based on TextMate and VS Code:\r\n\r\n- https://github.com/scala/vscode-scala-syntax - reg-ex based type script file\r\n- https://github.com/Microsoft/vscode-textmate - the regex parser for textmate bundles used by vs code\r\n  (wraps Oniguruma C regex library via wasm)\r\n- https://github.com/jruby/joni - Java port of Oniguruma\r\n- https://github.com/eclipse/tm4e - Java port of vscode-textmate for use within eclipse, but core package seems\r\n  usable outside of eclipse\r\n\r\nÓlafur says \"you can populate the download cache by calling this dedicated main method \r\nhttps://github.com/scalameta/metals/blob/main/metals/src/main/scala/scala/meta/metals/DownloadDependencies.scala \"\r\n\r\nThen Ammonite:\r\n\r\n- https://github.com/com-lihaoyi/fastparse - Scala library that includes a parser example for Scala 2\r\n\r\nLH says \"Ammonite uses scalaparse for syntax highlighting without generating a token stream; you can look at the code\r\nand see how it's done with intercept and tracking character ranges\".\r\n\r\n## Current issues\r\n\r\nSome compiler errors are caught by bloop (`stale bloop error: ...`) instead of being communicated via LSP, see\r\nhttps://github.com/scalameta/metals/discussions/5527\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsciss%2Fdotterweide-exp-metals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsciss%2Fdotterweide-exp-metals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsciss%2Fdotterweide-exp-metals/lists"}