JetBrains Fleet(Preview)を軽く触りました

# JetBrains Fleet(Preview)を軽く触りました

## Fleetってどんなソフト？

**JetBrains Fleet**はJetBrains社(IntelliJとかを開発している会社ですね)が発表した**多機能エディタ**です。 今回はこのFleetのPreview版が公開されたため、使用感や機能、感想を紹介したいと思います。

最近は開発に用いるエディタはEclipseやIntelliJのようなIDEのみならず、VSCodeに代表される多機能なエディタを使う機会が多くなりました。 Fleetも最初からVSCodeと同程度の編集機能が搭載されています。

これらのエディタはエディタと名がついていても、IDEとそん色ないか、ある種それよりも多様なファイルの編集に対応しており、私もとりあえずVSCodeを開くようになりました。

しかしVSCodeは非常に便利ですが、いくつか難点も存在します。

1. 拡張機能ベースであり、多くの拡張機能をインストールするとロード時間が増大する
2. Electronによって作られているので、(IDE程ではなくとも)メモリ使用量は多い
3. 拡張機能の開発に公式は関与しておらず、不正なコードの混入の危険やメンテナンスされているかが分かりにくい

最もユーザーが扱う上で体験する難点はこの辺でしょうか。 私としては、これらの問題が解決したエディタにFleetがなるのではないかと以前から期待しており、リリースを待ちわびていました。

よって今回の紹介ではこれらの問題がVSCodeと比較してどうかという観点から比較し、その他に特筆する機能も紹介したいと思います。 詳細は以下のセクションで説明したいと思います。

### Fleetの興味深い点

#### Smart Mode

まず先ほどの問題点の1.について考えます。これはVSCodeを別のPCにインストールするとわかりますが、素の状態のVSCodeは非常に軽快に動作します。 しかし、実用的に素の状態だけで使うには機能が足りないので拡張機能をインストールしていくと思います。

そして、Fleetが目指しているのはその軽快な動作が必要な場面と多機能さが必要な場面の切り替えです。 それをFleetをSmart Modeというアプローチを使って実現しており、Fleetの核となる機能です。 FleetをSmart Modeをオフにしてソースコードを開いてみると、シンタックスハイライト程度の機能はありますが、JetBrains製品の売りである予測変換は 動作していません。この状態はNotepad++やgedit程度の**基本的なエディタ**としてのモードになっています。簡単なファイル編集や、今回書いているMarkdown 程度のものならSmart Modeを使う必要もなく、軽快に編集できるでしょう。

対してSmart Modeを有効にした場合はですが、開いている言語に合わせてエラーや予測変換、リファクタリングなどを提供します。Rustならrust-analyzer、 Goならgoplsを使っているようですが、これによって従来のIntelliJなどのIDEと同レベルの精度の高い予測変換を提供しています。

大規模なプロジェクトや外部ライブラリなどを使っていて書くのに予測変換が欲しいような場面ではSmart Modeをオンにすることで、IDEレベルの多機能なエディタと して動作します。

#### Kotlin製でマルチプラットフォーム

JetBrains製品は大抵そうですが、JVMで動作しているので多くの環境で動作します。メモリ使用量についてはまだまだ最適化なども進んでいないと思うので今回は 期待していなかったのですが、やはりVSCodeより若干使用量は多いようです。

たまに例外が起きたことが通知欄に表示されますが、そこからKotlin製と判断しました。 エラーなどはPreviewなので許容して随時Reportボタンを押して送信しているので、正式版までに減ってくれることを期待しています。

#### WSL,SSH,Docker,Space対応

これは従来からJetbrains製の製品を利用したことのある方なら使ったことがあるかもしれませんが、SSH接続先のホストでエディタを開き、編集することが可能です。 従来のIntelliJなどでこれをすると結構なサイズの実行ファイルがサーバー側に残ってしまうのですが、Fleetは軽いようで展開もスムーズです。

この辺りでできることはほぼVSCodeと変わらないので軽く説明するにとどめますが、特徴的なのはやはりSpaceの存在でしょうか。

これはJetbrains社が提供しているソフトウェア開発プラットフォームで、GitHubのようなコード、Issue管理やCI/CD、プロジェクトの管理やチームコラボレーションの機能などを提供しています。GitHub,Jira,LiveShareなどの色々なサービスを使っていたものを一括で実現し、JetBrains製品との連携を高めた製品ですね。 クラウド版は料金がかかりますが、現在ベータ版のオンプレ用はDocker Composeで展開できて、無料ライセンスもあるのでこれからも注目していきたいポイントです。

#### 拡張機能について

ここまで長々Fleetの利点について書きましたが、似たようなエディタと比較すると最大の違いになるのが拡張機能が(まだ？)ないという点でしょう。

Smart Modeがその代替になっているので大して不便に感じる場面はないですが、拡張機能は安全性などの問題もあるので意図的に実装されていないのかもしれませんし、IntelliJなどには拡張機能は搭載されているので将来的に実装される可能性もあります。これはJetbrainsのみぞ知るところでしょう。

## Fleetを使って気になる点

これらの問題は正式版までに修正される可能性は高いですが、現状気になった点についても書いておきます。

### シンボリックリンクを読んでくれない

これは結構私には深刻な問題です。現在の開発環境はSSH先のLinuxサーバー上にあり、データ用HDDのディレクトリに向かってホームディレクトリからsymlinkを張っています。 よって、このリンクが機能していないとrootディレクトリからの絶対パスでしかファイル等を開けず面倒です。

さすがに正式版までには修正されると思っているのですがこれは早めに修正していただきたいです。

### Goの言語機能が一部環境で動作しない(?)

これは私も遭遇してTwitterでも見かけたのですが、GoのSmart Modeの処理が一部環境で動作しないようです。どの環境がダメなのかなど詳しいことは調べていないのですが、 私のLinuxマシンではエラーを吐いてしまいました。Rustは動作しているのでこれも正式版までに治ることを期待しています。

### Shiftx2のSearch Everywhereがない

JetBrainsのIDEといえばこれだと思われる方もいると思います。(私のことですが) 検索ボタンを押すと出てくる検索欄はほぼ似たようなものですが、これもカテゴリー分けされているので Search Everywhereという訳ではないようです。これが決め手でJetbrainsのIDEを使っている人はそこそこいると思うので出来れば実装してほしいですね。

## まとめ

色々書き連ねましたが、まとめると

* FleetのSmart Modeは期待通り軽快な動作と多機能モードで切り替えられる
* まだまだPreviewなので問題も多い
* VSCodeより優れているかは一概に言えないが、競合するくらいの能力はありそう

という感想です。Atomもなくなり、対抗馬がNeoVim辺りでVSCode一強な昨今のエディタ界隈ですが、Fleetは新しい風を吹き込んでくれそうなエディタでした。