Pascalのプログラミング環境

VS CodeとWSLを使って、Borland Pascal風の開発環境をあつらえてみました。

コンパイラのインストール

最初にUbuntuにFreePascalをインストールします。

sudo apt update
sudo apt install fpc-3.2.2 

FreePascal Toolkit拡張機能のインストール

VS CodeにFreePascal Toolkit拡張機能をインストールします。WSLを使っている場合、VS CodeのWSL側へのインストールになります。

FreePascal Toolkit は入力補完などをしてくれる拡張機能です。ビルドタスクを登録することもできます。コンパイラのパスは自動的に探し出します。

コンパイル用のタスクは、メニューバー -> Terminal -> Configure Tasks … Create tasks.json file from template でtasks.jsonを作り、以下のように書き込みます。この設定は”Debug Build”という名前のタスクを登録します。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Debug Build",
            "file": "main.lpr",
            "type": "fpc",
            "buildOption": {
                "unitOutputDir": "./out",
                "customOptions": [
                    "-dDEBUG",
                    "-gw2"
                ]
            }
        },
    ]
}

タスクではソースファイル名を直接指定していることに注意してください。

なお、tasks.jsonファイルを保存した後、メニューバー -> Terminal -> Configure Default Build Task … を実行してすでに登録したDebug Build タスクを指定すると、Ctrl-Shift-Bでビルドできるようになります。

GDB Debugger – Beyond拡張機能のインストール

VS CodeにGDB Debugger – Beyond拡張機能をインストールします。

この拡張機能は各種言語のデバッグ機能を提供します。

拡張機能のインストールが終わったら、メニューバー -> Run -> Add Configuration … を使ってLaunch.jsonを開き、以下のようにLaunch(gdb) エントリーを追加します。

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
        {
            "type": "by-gdb",
            "request": "launch",
            "name": "Launch(gdb)",
            "program": "${fileBasenameNoExtension}",
            "cwd": "${workspaceRoot}"
        }
    ]
}

追加後はソースコードを開いた状態でF5キーを押すとデバッグを開始することができます。

スクリーンショット

ソースコードを見ながら以下のような機能を使えます。

  • ステップ実行
  • 実行
  • ブレークポイント
  • ローカル変数の表示
  • 式の表示
  • コールスタックの表示
  • マウスオーバーで変数内容の表示

おわりに

Pascalはコンパクトで良いです。

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください