Semantic Coloring - ChenCMD/datapack-helper-plus-JP GitHub Wiki

はじめに

セマンティックカラーリングは、コマンド引数に意味のあるさまざまな色で強調表示できる機能です。

semantic-coloring

切り替え

datapack.features.semanticColoring設定を切り替えて、DHPのセマンティックカラーリングを有効/無効にすることができます。

また、VSCodeを使用している場合はeditor.semanticHighlighting.enabledtrueに設定されていることを確認してください trueにしないとエディターはこれらの色をレンダリングしません。

技術的な情報

凡例

セマンティックトークンタイプ

  • annotation
  • boolean
  • comment
  • entity
  • keyword
  • literal
  • namespacedID
  • number
  • operator
  • property
  • string
  • type
  • variable
  • vector

セマンティックトークン修飾子

  • declaration
  • deprecated
  • documentation
  • firstArgument

推奨されるデフォルトスタイル

Semantic Token Selector TextMate Scope 備考
annotation markup.heading.annotation.mcfunction docコメントのアノテーション
boolean constant.language.boolean.mcfunction boolean値
comment N/A
entity support.class.entity.mcfunction entityもしくはscore保持者
keyword N/A 数値範囲を指定する..とtimeの単位
literal keyword.other.mcfunction リテラル引数
literal.firstArgument keyword.control.mcfunction 最初のリテラル引数
namespacedID entity.name.function 名前空間ID
number N/A
operator N/A matches, =, /=など
property N/A エンティティセレクタ引数キー, ブロックプロパティキー, NBT複合タグキー, およびNBTパスキー
string N/A
type N/A アイテムのslots, スコアボードのslots, スコアボードのcriteria
variable N/A Objectives, teams, tags
vector constant.numeric.vector.mcfunction 座標
  • N/Aは、このトークンが言語サーバープロトコルに組み込まれたトークンであり、すでにデフォルトのスタイルを持っているはずであることを意味します。

FAQ

Q: 私はVSCodeを使っているのですが、mcfunctionへのシンタックスハイライトを行うArcensoth氏の'language-mcfunction'はまだ使用可能ですか?

ぜひどうぞ。私達はArcensoth氏のlanguage-mcfunction拡張機能を使うことをおすすめします。language-mcfunction拡張機能では正規表現に基づいてクライアント側で処理されるTextMate文法を使用していますが、言語サーバーのセマンティックカラーリングはセマンティックトークンに基づいてサーバー側で処理されます。 その結果、language-mcfunctionの処理速度はDHPよりもはるかに高速です。language-mcfunctionとDHP両方を使うことでコマンドを入力している間にlanguage-mcfunctionよりフィードバックをすぐに得ることができ、その後言語サーバーより提供される正確な色に置換されるかもしれません。

また、言語サーバが提供するセマンティックカラーリングにはいくつかの欠点がありますが、これは主に設計上の問題です。

  • テキストコンポーネントの色付け をArcensothのlanguage-mcfunctionは提供していますが、言語サーバは提供していません。これは、言語サーバーがVSCodeのvscode-json-languageserviceパッケージを使用してテキストコンポーネントの補完と検証を提供しているためで、セマンティックカラーリングをサポートしていないからです。
  • エンティティセレクタの括弧やコンマのような句読点の色付け をArcensothのlanguage-mcfunction は提供していますが、言語サーバーは提供していません。

Q: 私はVSCodeを使っているのですが、色のカスタムはできますか?デフォルトの色はちょっと…

もちろん! 実際のところ、言語サーバーが提供している色は抽象的です。VSCodeのテーマのセマンティックトークンに基づいた色を使用しています。

色の変更方法については、VSCodeの ドキュメント を参照してください。 言語サーバーで使用されているセマンティックトークンの種類/修飾子はこのページで確認できます。

Q: セマンティックカラーリングをオフにできますか?

もちろん! editor.semanticHighlighting.enableddatapack.features.semanticColoring を設定からオフにしましょう。

History

Version 説明
1.13.0 セマンティックカラーリングを実装
2.0.0 セマンティックカラーリングを追加
⚠️ **GitHub.com Fallback** ⚠️