ほのぼのとまったりアプリ開発日誌

ほのぼのがまったりとデスクトップアプリを作る開発日誌

toolset-hsp3 v1.1.0 を公開しました。

このたびの災害により被災された皆様に心よりお見舞い申し上げます。

toolset-hsp3 v1.1.0

プレビュー版から脱するメジャーアップデートになります。

ホスト側VSCodeで既定のインストール先にインストールされているHSP3開発環境をglobで検索して、言語バーから選択可能にします。選択された環境をhsp3rootとして保存して、他の拡張機能VSCodeのターミナルに情報を提供することが主な機能となります。

使い方

拡張機能は、「language-hsp3 for VSCode」は事前にインストールされていること、HSP3開発環境が3.51以降のバージョンであり、この説明は、インストーラー既定のインストール先(Cドライブ)にインストールされていることを前提とします。

拡張機能は、hspファイル、asファイルが存在するディレクトリやファイルそのものを開くことで起動します。

事前にHSP3_ROOT環境変数を設定すれば、全自動で適用されます。

HSP3_ROOT環境変数には、HSP3開発環境のディレクトリパスを記述してください。

Windowsはhsp3cl.exe、WSL2と、Ubuntuは、OpenHSPのhsp3clで動作確認しております。

また、以前から表示言語の日本語と英語の両対応を試用を行っており、今回のアップデートで成果物を導入しました。

他の拡張機能へ設定を上書きする

v1から、「他の拡張機能の設定を上書きする」機能を持つ、Overrideモジュールを実装しました。既定では無効化されています。

Readme.mdには、vain0x様作成の拡張機能の設定方法を記述しております。

いつも素晴らしいソフトウェアを開発していただき、誠にありがとうございます。

ログシステム

ログ出力を専用のモジュールでまとめることで、各モジュールごとにバラバラで実装されている構造を改良しました。

これにより、出力ペインに複数のログ出力が分かれて表示されなくなり、ログの更新通知や、下記記事の「処理後に強制的に出力ウィンドウにフォーカスされる」の改善を行うことができました。

qiita.com

記事の公開、ご意見ありがとうございます。励みになります。

このモジュールは、language-hsp3 for VSCode へ移植予定です。

開発小話

表示言語

表示言語を切り替える機能がVSCodeにあります。今まで作成してきた拡張機能は、その機能に対応していなかったため、英語表記のみに限定していました。これは、日本語フォントが無い環境で、設定画面が読めなくなることを防ぐためでした。

今回、vscode.l10nと、i18n、i18nextの試用比較を行いました。

  • 導入方法が既存の枠組みに入れられること。
  • 引数を付与できること。
  • VSCode拡張機能i18n Ally」の設定が簡単で、プレビュー表示ができたこと。
  • TypeScriptの型システムを活用して、コード内の存在しないキーをエラーにすること。

これらを評価して、i18nextを採択しました。

VSCodeスクリーンショット、エディタ上のtメソッドのキー文字が、「i18n Ally」により、実際に表示される文字で試写されている。

特に、存在しないキーをコンパイルエラーにする点です。型システムによる入力補完も使用できるので、誤記する心配が無くなりました。キーのプレビューも、ソースの可読性に寄与しました。

オブジェクト型の上書き設定方法

v1.1.0で追加された「オブジェクト型な設定の上書き機能」は、従来と設定方法が違います。

コマンドラインを記述する性質上、空白文字とパスの結合を考慮した結果、valuesプロパティは、(string | string)型になりました。(例:`[["%HSP3_ROOT%", "hspc"], "-v"])

{
  "toolset-hsp3.override.objects": [
    {
      "id": "toolset-hsp3.test.object",
      "path": "neko.koneko",
      "values": [["%HSP3_ROOT%", "hspc"], "-v"],
      "platform": "win32",
      "scope": "Global"
    }
  ]
}
  • idプロパティには、上書き対象の設定IDを記述します。
  • pathプロパティには、オブジェクトのプロパティの親子関係をドットで繋げて記述します。
  • valuesプロパティには、上書きする文字列を記述します。最初の配列は空白文字で結合されます。さらに配列にすると、プラットフォームに合わせたファイルシステムのセパレーターで結合されます。空白文字があればダブルクォーテーションで囲まれます。
  • platformプロパティには、動作するプラットフォームを記述します。省略することで制限なしになります。
  • scopeプロパティには、設定の上書き先を記述します。

pathプロパティの仕様については、下記のサイトを参照してください。

mrodrig.github.io

(配列のサポート関係で、他のモジュールに移行を検討するかもしれません。)

更新内容は以上となります。本年度は、language-hsp3 for VSCode の OpenHSP対応を行っていきます。