最近忙しくてよく見れておらず、いくつか見逃しがあるので適宜追加していくと思う
Helix Editorにアップデートが来た
今回も結構大きなポイントととなる機能が多くあった
PRを見ている感じとして非常に大変そうだなあと毎度ながら思いながら眺めていた
個人的なポイント
あくまでも私個人の注目していたPRを優先的にピックアップしているので全て見たい方はChange Logを参照すること
Soft Wrap/Virtual text
今回のアップデートの一番の目玉
ソフトラップによる改行とバーチャルテキスト(インラインテキスト)が実装・改修された
このPRのためにいろんな人が貢献していてOSSの凄さを感じた
これは様々な機能向上に使われる予定で,例えばエラーメッセージの表示、Gitのdiffなどに使われるかもしれない
なのでこれができるようになるというのはこれら拡張機能の基本となるため、機能以上に役立つ
設定は以下の通り
[editor.soft-wrap]
enable = true
max-wrap = 25 # increase value to reduce forced mid-word wrapping
max-indent-retain = 0
wrap-indicator = "" # set wrap-indicator to "" to hide it
Key | Description | Default |
---|---|---|
enable | ソフトラップを有効にするかどうか | false |
max-wrap | 行末に残った最大空きスペース | 20 |
max-indent-retain | 行をソフトラッピングするときに引き継がれる 最大のインデント |
40 |
wrap-indicator |
ui.virtual.wrap で強調表示されたソフトラップ行の前に挿入されるテキスト |
"↪" |
max-wrap
英語も翻訳したのでもmax-wrapの機能がいまいちわからない
0と20で設定したのを比較したのを下に載せる
感じとしては文字毎に区切るか単語で区切るかがどうかな感じなのだが,説明と違う気がするのでやっぱりわからない
- max-wrap = 0
- max-wrap = 20
max-indent-retain
これは便利な設定だと思う
ソフトラップされて改行になったときに,その改行にインデントを入れるかどうか
- max-indent-retain = 0
- max-indent-retain = 20
finish()
の位置が20個分のスペースでインデントされるようになる
:Rsult {
が4個分の改行になっている理由はよくわかっていない
Virtual text
今までの改行の文字や空白といった箇所に使われていたバーチャル文字の改修が行われた
- TODO: 調査が必要
わりと前なので定かではないが,このバーチャル文字自体に改行をできない問題があったのとレンダリングコストが高いせいだった気がする
- wrap-indicator
先ほどのソフトラップで改行された箇所に↪
が追加される
上記のだと""
で表示しないようになっている
Inlay Hints
個人的にめちゃくちゃ待ち望んていた機能の一つ
静的型付け言語はLSPが型を表示してくれる
それをバーチャルテキストを使って、コードの内部に入れ込むようになっている
これが出てきてくれたおかげでかなり、Rustのような型が厳密な言語を扱いやすくなった
LSP Snippets
これは地味に便利になった機能の一つ
LSPでの補完がより複雑なコマンドを使えるようになった
これはまだ初期段階の実装になっており将来的には変数補完とかのためにある感じ
まだまだ、改善改良の余地がある箇所になっている
Dynamic workspace symobol picker
もともとあったシンボルピッカーの改良した機能
このシンボルピッカーはLSPの機能なのだが、もともとのLSPの制限なのかHelixの制限なのか大きなプロジェクトやフレームワークではシンボルが多すぎて検索に時間がかかったりしていた
これによって動的に更新されるため、きちんと複数のシンボルがすぐに検索できるようになった
地味に早く検索できるようになっていたので不満点が減った
終わりに
前回はテーマの修正などが多かったが、今回は改良・改善のための基礎工事にあたる機能がたくさん実装された
そのため、今回は入らなかったが次回までにたくさんの機能の向上が見込める部分がたくさんあるので待ち遠しい
そろそろ本腰をいれてサブからメインエディタとして使っていこうとしているが...
これを使いこなすにはターミナルのアプリも、もう少し頑張って手入れが必要だなと思いつつ...
VSCodeから逃れられない
なにより、Pythonとの親和性もVSCodeは高いのでいかんともしがたい
config.toml
の更新された箇所
[editor.statusline]
left = ["mode", "spinner"]
center = ["file-name"]
right = ["version-control", "diagnostics", "selections", "position", "file-encoding", "file-type"]
separator = "|"
[editor.soft-wrap]
enable = true
max-wrap = 25 # increase value to reduce forced mid-word wrapping
max-indent-retain = 0
[editor.lsp]
display-inlay-hints = true
将来的に修正・改良される予定の注目機能
Command expansions
かなりすごい機能の一つ
今までコマンドを実行するとき,エディタで開いているファイル名,特定の行や列といった情報を取得することができなかった
これによりそれら情報を取得することができるので,今までよりも:sh command
による表現力を向上させることができるようになる
Key DiscussionやDiscussionでよく見かける「xxの機能はありますか?」に対して[":sh command" , "command", ...]
みたいなキーマッピングが解決方法としてしばしば提示されていた
これら特定の解決方法だったのが、より汎用的なコマンドとして扱えるようになる
多分これができてからDiscussionとかを眺めればかなり良いキーマッピングが得られると思う
Rainbow tree-sitter matches
括弧が虹色に色付けされる
個人的にVSCodeで使っているので欲しい機能の一つ
Multiple Language servers per language
現在は一つのLSPサーバーしか使えないので、これが実装されると複数のLSPが扱えるようになる
これによりweb系などのフレームワークで複数のLSPサーバーが必要な時に複数のLSPが扱えるようになる
などなど
すでにいくつかの記事で書いたPRも後々マージされるかもしれない
Helix Editorの今後に期待