VSCode で BveTrainsim5/6 構文をサポートするための拡張です。
本拡張では、以下の機能をサポートしています。
- シンタックスハイライト
- コード補完
- ホバー表示
- 構文のヒント表示(シグネチャヘルプ)
- スニペット挿入
- マップファイルの距離程表示
なお、ファイルの種別によって対応する機能が異なります。 現在対応しているファイル種別と機能を以下の通りです。
ファイル種別 | vscode 上での文法名 | シンタックスハイライト | コード補完 | ホバー | シグネチャヘルプ | スニペット |
---|---|---|---|---|---|---|
マップファイル | BveTs Map | ○ | ○ | ○ | ○ | △ |
車両ファイル | BveTs Vehicle | ○ | - | ○ | - | ○ |
凡例:○
...全構文に対応, △
...一部構文に対応, -
...非対応
- VSCode 1.24 以上
- Visual Studio Codeをインストールして起動し、
Ctrl+Shift+X
、もしくはCmd+Shift+X
を入力して拡張機能パネルを開いてください。 - Marketplaceから
Bve5 Language Support
を検索してインストールします。 - エディタ右下の
言語モードの選択
をクリックしてBveTs Map
orBveTs Vehicle
を選択することで拡張を有効化することが出来ます。
以下の条件でコード補完を行います。
- 要素名(
Curve
,Gradient
など)を入力した直後、`.(DOT)
`を入力することで、マップ要素に対応する関数名の候補を表示します。 - 構文内のトラックキー、ストラクチャーキー、連続ストラクチャーキーを入力する際にキーの候補を表示します。
トラックキー、連続ストラクチャーキーの補完候補は、現在開いているファイル内で使用されているキーから取得します。 ストラクチャーキーの補完候補は、以下の2種類の方法のうち、どちらかを用いて取得します。
- VSCode 上でフォルダを開いている場合は、そのフォルダに含まれる全てのストラクチャーリストファイルから取得します。
- VSCode 上でフォルダを開いていない場合は、現在開いているファイル内のロード構文で読み込まれているストラクチャーリストファイルから取得します。
開いているファイル内でストラクチャーリストを読み込んでいない場合、ストラクチャーキーのコード補完が行えないため、Bve の路線編集中は VSCode 上でフォルダを開いておくことをおすすめします。
構文にカーソルを重ねた際に、その構文のヒントを表示します。
構文を入力する際に、引数のヘルプを表示します。
このヘルプは`(
`の入力にトリガーされて表示されるので、スニペット挿入等で`(
`の入力を省略した際は表示されません。これに関しては後々改良するかもしれません。
スニペット挿入とは繰り返し入力する記述を自動で入力してくれる機能です。
スニペット挿入に対応している構文を入力するとスニペットの候補が出てくるので、TAB
を押すことで構文を自動で入力、引数の位置へとカーソルを移動してくれます。
なお、マップファイルのスニペット挿入は個人的によく使う、もしくは他の構文と被らないと考えた以下の構文にのみ対応しています。
- Curve.BeginTransition
- Curve.Begin
- Gradient.BeginTransition
- Gradient.Begin
- Track[].X.Interpolate
- Track[].Y.Interpolate
- Track[].Position
- Structure[].Put
- Structure[].Put0
- Structure[].PutBetween
- Repeater[].Begin
- Repeater[].Begin0
- Section.Begin
- Signal[].Put
- Beacon.Put
- CabIlluminance.Interpolate
- Sound[].Play
- Sound3D[].Play
- RollingNoise.Change
- FlangeNoise.Change
- JointNoise.Play
もしスニペットが鬱陶しいと感じたら、設定からスニペットを非表示にしてください。
マップファイル文法において、VSCode のステータスバーにカーソル位置の距離程を表示します。
変数や数式が含まれる距離程には未対応ですが、数式に関しては今後サポートするかもしれません。
バグの報告や質問、要望等は Issue、もしくはこちらへどうぞ。
詳細はCHANGELOGを見てください。
- 依存関係を更新
- 依存パッケージのアップデート
- 各種キーでのコード補完に対応
- マップファイル文法定義の改良
- 車両ファイルに対応
- ドキュメント等の軽微な修正
- ホバー表示の実装
- 一部抜けていた構文を追加
- Initial release.
The MIT License(MIT)
Copyright(c) 2018-2021 aoisupersix