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

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

hspc 配布zipのハッシュ一覧

本稿は、ファイルのハッシュ値比較を行う方法と、過去にリリースされたhspcバージョン毎のハッシュ値一覧を記載しています。

Windowsでファイルのハッシュ値を求める

ファイルからハッシュ値を求めるには、以下のPowerShellコマンドを使用します。

certutil -hashfile <ファイルの絶対パス> SHA1

C:\hsp36\hspc.exeハッシュ値を求めるには、certutil -hashfile "C:\hsp36\hspc.exe" SHA1 と書きます。

hspc ハッシュ一覧

FileName Version SHA1
hspc372.exe v3.7.2 896989fcb60eb1a0e371233fb49ea04f0f1c8313
hspc362.exe v3.6.2 9b148353ad226c0073346cd30a559da95b62756a
hspc361.exe v3.6.1 0382ea07bc520585d9c84348535c7325f55660ce
hspc360.exe v3.6.0 5eb6d2a7ba0b1372a8d57c627649f01b931f7c1b
hspc351.exe v3.5.1 5a856f087e69909c714ba7bfdaec066aa84cb58f
hspc343.exe v3.4.3 987ae0d2b52b185271f5baf3f363b6580599b6bf
hspc342.exe v3.4.2 46f3d45a16dd6c7db0c93a16f7bc2691f47209df
hspc334.exe v3.3.4 1017b357f34eb847c655ae160fe8539bdcf43cb2
hspc211.exe v2.1.1 cab0160bb172e4fd982e79322cc488a6b848cc8f
hspc143.exe v1.4.3 68181d5b3ec7f51cd1375b2556ae55c19195d076

hspc v3.6.0 をHSP3プログラミングコンテストに応募、公開されました。

圧力鍋で作る豚汁を常食しています。ピーマンにんじん椎茸ジャガイモを細切れにして、圧力鍋で豚肉を表面の色が変わる程度に焼き入れて、野菜を投入して湯がいてあく抜きしたら、料理酒を小さじ2杯ほど入れて5分間加圧、その後自然減圧したら味噌を溶いて、白ご飯と一緒に頂きます。ウマーイ!

hspc v3.6.0

本年度も無事に応募できました。機能を一つ追加しました。

追加した機能は、--newwndオプションになります。

今まで新しいコンソールでhsp3cl.exeを実行するには、新しいコンソールでhspcコマンドを実行する必要がありました。--newwndオプションを使用することで、hspcは新しいコンソールで-R実行を行います。

一文字オプションによる略記は-R2になります。

--newwndオプションは、--waitオプションを自動で使用します。そのため、-rオプションと併用しても、--waitオプションが自動で有効化されます。

language-hsp3の進捗ですが、試験的にWeb版を主体に開発を進めています。

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対応を行っていきます。