0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PICT】F5で実行し、結果を自動保存するデバッグ構成【VSCode】

Last updated at Posted at 2024-12-15

はじめに

複雑性の高い制約を指定したいときほど、
GUIツールよりもVSCode等で制約文を直接書いてしまったほうが楽だ。

ただ、これでも以下の4ステップを実施する必要があり、まあまあ面倒。

  1. PICTファイルの配置されたディレクトリまでcdコマンドで移動
  2. pictコマンド実行
  3. コンソール上の実行結果をコピー
  4. バックアップ的に、適当なテキストファイルに保存

これらをF5(デバッグ実行)で自動的に行なってもらうためのデバッグ構成を作った。

PICT向けデバッグ構成

前提条件

  • VSCodeがインストールされている
  • PICTがインストールされている。
  • PICTのPATHが通っている
  • 今回はWindoows(MacOSの場合、「script」の調整が必要)

こんなデバッグ構成をlaunch.jsonや*.code-workspaceファイルに記述した。

"launch": {
	"version": "0.2.0",
	"configurations": [
		{
			"name": "【PICT】現在",
			"type": "PowerShell",
			"request": "launch",
			"script": "pict ${file} > ${fileBasenameNoExtension}_result.txt && type ${fileBasenameNoExtension}_result.txt | clip && type ${fileBasenameNoExtension}_result.txt",
			"cwd": "${fileDirname}"
		}
	]
}

name : わかりやすい名称を指定
type : コマンドを実行したいので一旦PowerShell
cwd : エディタで開いているファイルのディレクトリを指定
script : commandプロパティが使えなかったので、scriptとしてコマンドを記述した。
   内容は以下の通り。

  • pict ${file} > ${fileBasenameNoExtension}_result.txt

    • エディタで開いているファイルをpictコマンドに渡す
    • 実行結果を同階層の「~_result.txt」として出力(上書き)
  • {type ${fileBasenameNoExtension}_result.txt | clip

    • 実行結果txtを読み込んでクリップボードにコピー
  • type ${fileBasenameNoExtension}_result.txt

    • 実行結果txtを読み込んでコンソールに出力

挙動イメージ

  1. 初期状態はこんな感じ

    • カレントディレクトリはデスクトップとする。
      image.png
  2. F5でデバッグ実行

  3. 実行結果はこんな感じ

    • カレントディレクトリとは無関係に、
      実行対象のpictファイルと同じディレクトリに結果が出力される
    • 実行結果が統合ターミナルにも出力される
      image.png

終わりに

便利なツールであっても認知資源が消費されやすいと、つい利用を避けてしまう。
いかにシームレスかつ気軽に利用できるようにするかが大切だ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?