LoginSignup
4
1

More than 1 year has passed since last update.

Helix Editor23.03アップデート概要

Last updated at Posted at 2023-03-31

:point_right: Next
:point_right: github
:point_right: web

最近忙しくてよく見れておらず、いくつか見逃しがあるので適宜追加していくと思う

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

wrap-max-0.png

  • max-wrap = 20

max-wrap-20.png

max-indent-retain

これは便利な設定だと思う

ソフトラップされて改行になったときに,その改行にインデントを入れるかどうか

  • max-indent-retain = 0

indent_zero.png

  • max-indent-retain = 20

finish()の位置が20個分のスペースでインデントされるようになる

:Rsult {が4個分の改行になっている理由はよくわかっていない

indent_twenty.png

Virtual text

今までの改行の文字や空白といった箇所に使われていたバーチャル文字の改修が行われた

  • TODO: 調査が必要

わりと前なので定かではないが,このバーチャル文字自体に改行をできない問題があったのとレンダリングコストが高いせいだった気がする

  • wrap-indicator

先ほどのソフトラップで改行された箇所にが追加される

上記のだと""で表示しないようになっている

virtual_indent.png

Inlay Hints

個人的にめちゃくちゃ待ち望んていた機能の一つ

静的型付け言語はLSPが型を表示してくれる

それをバーチャルテキストを使って、コードの内部に入れ込むようになっている

スクリーンショット 2023-03-31 220123.png

これが出てきてくれたおかげでかなり、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の今後に期待

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1