Tomasz Godzik
トマシュ ゴ ジ ク
@ VirtusLab
Yay!
team lead for Scala Ecosystem Team
It's not always clear what is the border between tools and libraries.
For this presentation, a tool is anything that will not be shipped with your code
I am not covering testing frameworks.
この発表での「ツール」は自分のコードと共にリリースされないもの全般を指す
no.
Why you might want to use it?
なぜそのツールを使いたいのか?
no.
What is it actually?
そのツールは何なのか?
no.
⚙️ Features if there is anything worth mentioning
⚙️また、各ツールの便利な機能についてお話します。
2010
Scala3に関する十分なIDE機能を自分の好きなエディタで使いたいときに使おう
2010
Language server for the Scala Programming language available to use in your favourite editor.
Metalsは好きなエディタで利用できるScalaの言語サーバー
2010
⚙️ Bazel support released
⚙️ Feature parity between Scala 2 and 3 released
⚙️ Implementations in dependencies released
⚙️ Inlay hints released
⚙️ Better support in broken workspaces in progress
⚙️ Work being done on opt in telemetry in progress
特筆すべき機能
1997
は依存関係を管理・検索したときに使う
1997
Library and command line tool for managing, caching and downloading artifacts.
Coursierは依存関係の管理・キャッシュ・ダウンロードするためのライブラリ・CLI
1997
⚙️ Search dependencies using complete-dep command
⚙️ Use coursier as simple package manager via coursier/apps
⚙️ Use Java API without Scala deps for maximum isolation
complete-depコマンド・パッケージマネージャとして利用・Java API
1395
チーム間でコーディングスタイルを統一したい・あらゆるScalaツールに対応
1395
Configurable formatter for Scala programming language
設定可能なScalaのコードフォーマッタ
1395
⚙️ Switch to optional or even fewer braces
⚙️ Automatically add end markers
⚙️ Use a wide choice of settings for optimal look
fewer bracesの設定・end marker追加など
1118
依存ライブラリなどのバージョンを最新に保ちたい
1118
Tool and bot to automatically update dependencies in maven, sbt, mill and Scala CLI projects
sbt/mill/scala-cliの依存を更新するツール・bot
1118
⚙️ Use it for Scala CLI!
⚙️ Public instance run by VirtusLab
⚙️ Can be run on github actions
scala-cliにも使える! ・VirtusLabが公開インスタンスを提供・github actions
1086
Scalaコードをパース・生成したい。semanticdbを利用したい
1086
Compiler independent parser for both Scala 2 and 3.
Also semanticdb plugin for Scala 2 that generates type information in protobuf format.
コンパイラに非依存なScala2/3のパーザー・semanticdb生成のプラグイン
1086
⚙️ Use it with AST explorer to understand parsers better
⚙️ Useful for a number of other tools for automatic refactorings
⚙️ Will be compiled with Scala 3 soon
AST explorer・他ツールが便利に利用可能・もうすぐScala3対応
1064
一般的なバグを避けたい・複雑なリントルールを使いたい
1064
Compiler plugin that provides a number of additional linting options as well as a way to create new ones.
たくさんのリント機能を備えたコンパイラプラグイン・ルール自作も可能
1064
⚙️ Create rules specific to your use case using the compiler based API.
⚙️ Take a look at existing rules to help eliminate bugs in your code.
compiler APIを使ったリントルールの自作・既存ルールもたくさん
796
自動的にコードベースを改善したい
796
Automatic refactoring and linting tool for Scala 2 and 3
Scala2とScala3対応の自動リファクタリングツール
796
⚙️Automatically add types to improve compilation speed
⚙️ Create new rules with a custom API without the need to know the compiler one
型アノテーションの自動追加・型情報を使った独自ルールの作成
488
Scalaの簡単なプロジェクトやscriptを作りたい・Scalaの学習に便利なツール
488
Command line tool for compiling, running, testing and packaging your Scala code.
Scalaコードをコンパイル・実行・テスト・パッケージするためのCLI
488
⚙️ Create scripts with shebang to be easily invoked
⚙️ Easily compile with Scala Native or Native Image
⚙️ Compile markdown files
⚙️ Experiment with ScalaPy and Spark
⚙️ Soon will be the default Scala runner!
shebangでscriptのようにScalaを実行・ネイティブイメージ生成・もうすぐscalaコマンドはscalacliに!
423
オンラインでScala環境を使いたい・コードを簡単に共有したい
423
Online web page environment to write and run your Scala code
Scalaコードを書いたり実行できるウェブページ
423
⚙️ Built-in Metals support for hover and completions
⚙️ Embed Scastie examples in your docs!
⚙️ Use tree sitter syntax highlighting
⚙️ Scala CLI support coming soon
IDEサポート・ドキュメントにscastieの埋め込み・treesitterによるシンタックスハイライト...
384
ドキュメント内のScalaコードに対する型チェックなど
384
Library for compiling or running Scala snippets in your documentation or outside.
ドキュメント内のScalaスニペットをコンパイル・実行するためのライブラリ
384
⚙️ Use it to make sure your docs are always up to date!
⚙️ Generate static website with Mdoc and Docusaurus
ドキュメントのコードが正しいかをチェック・docsaurusへの埋め込み
80
You want to have a ready set of libraries to use as an enhancement of the standard library
シュッと(httpやjsonなどの)便利なライブラリを使いたいとき
80
Set of libraries recommended to use, which support all possible Scala version and platform configurations.
推奨されるScalaライブラリのセット・あらゆるScalaバージョンとバックエンドに対応
80
⚙️ Useful for creating scripts for your CI
⚙️ There are other toolkits already such as Typelevel one
⚙️ Requires `//> using toolkit default` in Scala CLI
⚙️ Other tools require specific dependency
スクリプトのために便利・typelevel版・//> using toolkit default
x
We can come try and organize online sprees or knowledge shares together.
That can be a great way to share knowledge and start to work on the issues that bug you.
オンラインOSS開発会に参加・開催するのは開発に参加する良い方法