Atom版 language-hsp3 の更新終了時期について
2023/02/01 更新
上記リンク先が示す問題により、Atomを継続して使用するには、v1.60.0へダウングレードする必要があります。
以下2022/6/15付けの記事になります。
language-hsp3 for Atom の今後の方針としてHSP3.7の更新対応を行い、年内をもって主要な更新を終了する運びとなりました。
他Atom向けパッケージたちも同じ期間で主要な更新を終了します。
開発途中のautocomplete-hsp3は、language-hsp3 for VSCodeへ移植中です。
Atom向けに初めて投稿したパッケージで、感慨深いプロジェクトでした。
ご使用頂いた皆様、honobonosun/language-hsp3リポジトリ関係者様、Atom関係者様、感謝申し上げます。
Atom版終了までの間、姉妹のVSCode版と一緒に開発を続けます。
VSCodeへの移行後含め、今後もお役に立てられれば幸いです。
hspc v3.3.4 を HSP3プログラミングコンテスト2021 に応募しました。
寒くなっても麦茶を常備しています。最近はハンバーグや餃子が主食になっています。
今年も無事HSPコンテストに応募することができました。hspcのメジャーアップデートになります。変更点がいっぱいです。
hspc v3.3.4
hspc v2との互換性はそのままに、標準出力に手を加えました。
コンソールのコードページを取得して、内部のShift_JIS文字列をエンコード、出力します。これで文字化けを解決しました。
逆に、Shift_JISで表現できない文字を渡した場合、文字は?に置き換わります。hspc自身はUnicodeに対応していません。
コマンド機能はモジュール化して、お互いに機能を呼び出せるようにしました。lintコマンドがcompileコマンドを使用することで、スムーズな機能連携を行えるようになりました。
新機能のすべてはコンソールから利用可能です。
compile コマンド
HSP3.6対応化と同時に新機能を追加しました。オプションから使用できます。
オプション文字 | 概要 |
---|---|
--wait | -rで実行する子プロセスが終了するまでhspcを待機させます。 |
--iconins | iconinsツールを自動実行ファイル作成時に使用します。 iconinsを使用するには、HSP3.5以上の環境へインストールしてください。 |
--strmap | strmapファイルを作成します。hspc --strmap "out/app.strmap" app.hsp 同梱した環境もしくは、HSP3.6以上の環境へインストールしてください。 |
-R | -r --wait のエイリアスになる一文字オプション。 |
-M | iconinsツールを使用せずに自動実行ファイル作成を行う一文字オプション。 従来の-mオプションは、--iconinsオプションが有効になります。( -M --iconins のエイリアス) |
-S | --strmapオプションの一文字オプション版です。-oオプションと同じ方法で名前を指定できます。 |
-D | 中間ファイルを削除します。-rオプションを併用している場合、--waitオプションも併用することが必須になるよう仕様変更されました。 |
そのほかは、v2で相対パスを絶対パスへ変換していた工程をv3から省略しています。
lint コマンド
Atomのlinter-hsp3パッケージをhspcに移植しました。これでコンソールから構文エラーを見つけることができるようになりました。
データ管理にSQLeleを使用していますので、このコマンドを使用するには、hspc.exeと同じディレクトリ上にSQLite3.dllが必要です。
オプション文字 | 概要 |
---|---|
--watch | 指定したディレクトリを監視します。変更があれば診断結果を随時更新します。 |
--allow | MS-DOSのワイルドカードで監視対象に含めるファイルパス 既定値として、 *.hsp 、*.as が登録されます。 |
--ignore | MS-DOSのワイルドカードで無視対象に含めるファイルパス 既定値として、 *\.git\* が登録されています。 |
--ignorednoninitvar | 結果から未初期化変数を非表示にします。 |
--iniv | --ignorednoninitvarオプションのエイリアスです。 |
--onelineprint | 診断結果を一行で表示します。 |
--relativepath | ファイルパスを相対パスで表示します。 |
lintコマンドには、複数のオプションとファイルパスを指定することができます。
ファイルパスを指定した場合、最初の一回だけ診断します。
--watchオプションは、指定されたディレクトリ上の変化を監視します。ファイルを直接監視できないので、ファイルを監視したい場合、ファイルを置いているディレクトリを指定してください。一つのファイルを直接監視する機能はありません。
doc コマンド
hspc.exeを置いたhsphelpディレクトリを検索して一致したキーワードのドキュメントを閲覧します。
動作には、HSP3.6のhspcmp.dllが必要です。
完成度に思うところがあるので、テンプレート共々梃入れしたいです。
〆
寒い朝にはニンニクが食べたくなります。角切りにしてバターと溶き卵でスクランブルエッグにするとおいしいです。お好みで塩こしょうもかけちゃいます。
急な温度変化で体調を崩しやすい季節です。風邪を引かないよう、手洗いうがいをしっかりして感染予防します。寒いときは無理せずホッカイロや室内に退避しましょう。
VSCode と hspc v3 で構文エラーをエディタ上に表示する
本記事では、VSCodeのタスク機能を使用してhspc v3で実装されたhspc lint --background
コマンドによる構文エラー診断結果をエディタ上に表示させるタスク設定を説明します。
必要なもの
VSCodeのタスク機能を使用しますので、language-hsp3拡張機能の導入は任意になります。
簡単な設定方法
VSCodeのメニューバーから、"ターミナル">"タスク構成...">"テンプレートから tasks.json を生成">"Others"と進み、開かれたtasks.jsonファイルに下記を上書き、もしくは追記します。
必要に応じて、tasks.jsonファイルは編集できます。
hspcにpathを通していない場合、tasks[{"command"}]
の文字列にhspcの絶対パスを記入してください。
- "command": "hspc", + "command": "C:\\hsp36\\hspc.exe",
未初期化変数を診断結果に表示したい場合、"--iniv"を削除してください。
- "args": ["lint", "--background", "--iniv", "${workspaceFolder}\\src"], + "args": ["lint", "--background", "${workspaceFolder}\\src"],
診断する対象ディレクトリを指定するには、"${workspaceFolder}\src"を書き換えてください。プロジェクトディレクトリ直下を指定する場合は
- "args": ["lint", "--background", "--iniv", "${workspaceFolder}\\src"], + "args": ["lint", "--background", "--iniv", "${workspaceFolder}"],
に書き換えてください。
vscode/tasks.json
{ "version": "2.0.0", "tasks": [{ "label": "hspc lint", "type": "shell", "args": ["lint", "--background", "--iniv", "${workspaceFolder}\\src"], "command": "hspc", "group": "none", "problemMatcher": [ { "owner": "hsp3", "fileLocation": "autoDetect", "pattern": [ { "regexp": "^(.+)\\((\\d+)\\): (info|error) (?:\\d+)?(.+)$", "file": 1, "line": 2, "severity": 3, "message": 4 } ], "background": { "activeOnStart": true, "beginsPattern": "^\\d{1,2}:\\d{1,2}:\\d{1,2} - File change detected\\. Starting compilation\\.$", "endsPattern": "^\\d{1,2}:\\d{1,2}:\\d{1,2} - Compilation complete\\. Watching for file changes\\.$" } } ], "isBackground": true }] }
Wineについて
Ubuntu 21.04 のWine環境にて、子ディレクトリを監視できない症状を確認しました。解決予定はありませんが、迂回策として--nosubdirオプションの併用と、複数のタスク実行で補えます。
hspc v3 のリリースノートは執筆中なので、でき次第公開します。