1
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?

More than 1 year has passed since last update.

はじめに

Hylangって何という話については、すでにいくつかの記事がありますので、そちらを参照してください。
簡単に言うとpythonの資産をフル活用できるLispです。

フォーマッターのインストール

HylangはClojureライクな記述スタイルなので、以下のClojure用のフォーマッターが利用できます。
Hylangが公式で提供している拡張機能だと保存時にファイル全体のフォーマットができないので、以下のコマンドをインストールします。

  • cljfmt

以下のコマンドを実行してインストールする

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/weavejester/cljfmt/HEAD/install.sh)"

実行環境構築

Hylangはpythonのライブラリとして公開されているので、venvを利用してライブラリ管理の仮想環境を構築してからインストールを行います。

まずhylangという名前でライブラリ管理の仮想環境を作成します。

python -m venv hylang

次にvenvの仮想環境を有効化します。
これはシェルを起動する度に実行する必要があるので注意してください。

. hylang/bin/activate

最後に以下のライブラリをインストールします。

  • hy
    • hylangの実体を提供するライブラリ
  • hyrule
    • hylangのユーティリティを提供するライブラリ
pip install hy
pip install hyrule

vscode拡張機能のインストール

vscodeで実行するに当たって以下の拡張機能をインストールします。

  • vscode-hy (hylang official)
    • hylangの公式が提供している全体的なサポート機能

スクリーンショット 2023-11-03 18.50.46.png

  • Save and Run (wk-j)
    • 保存時に特定のコマンドを実行するための拡張機能

スクリーンショット 2023-11-03 18.52.03.png

vscodeの設定ファイル変更

まず、設定ファイルは以下の手順で開きます。

  1. Command + Shift + pを押下する
  2. Preferences: Open User Settings (JSON)を選択する

以下の内容を追加して、ファイルの保存時にcljfmtを実行して、ファイル全体のフォーマットが行われるようにします。

  "saveAndRun": {
    "commands": [
      {
        "match": "\\.hy$",
        "cmd": "cljfmt fix ${file}",
        "useShortcut": false,
        "silent": true
      }
    ]
  }

ショートカットキーの追加設定

まず、ショートカットキーの設定ファイルを以下の手順で開きます。

  1. Command + Shift + pを押下する
  2. Preferences: Open Keyboard Shortcuts (JSON)を選択する

デフォルトの設定だと、コメント行でEnterを押下する度にコメント行が増えるので、以下の設定を追加して抑制します。

    {
        "key": "enter",
        "command": "-hy.continueComment",
        "when": "editorTextFocus && hy:cursorInComment && hy:keybindingsEnabled && editorLangId == 'hy'"
    }

実行ファイル

実行ファイルの拡張子は.hyにします。
以下の内容でtest.hyという名前でファイルを作成します。

(print "Hello world.")

コマンドラインから以下コマンドを実行するとHylangプログラムが実行されます。

hy test.hy

いちいちコマンドラインからプログラムを実行するのはめんどくさいので、vscodeの機能でデバッグ&実行を行いたいところなのですが、Hylangには対応するデバッガーが存在しないっぽいので自分で実行したほうが速いです。

また、関数単位の実行であれば、後述のREPL経由での実行が速くて便利です。

REPL経由での実行

まず、vscode上でREPL実行をするためには、以下の手順を踏む必要があるので注意してください。

  1. vscodeのターミナル上でvenvの仮想環境をアクティブにする
    • 今回の場合は . hylang/bin/activate で行います
  2. プログラムファイル上の実行したい関数にカーソルをあわせておく
  3. Alt + Enterを押下する

以下のように関数の上にカーソルをあわせておき、Alt + Enterを押下すると

スクリーンショット 2023-11-03 19.29.11.png

REPLに関数を読み込み、実行までを行ってくれます。
初回実行時はREPLのプロセスを起動するので時間がかかりますが、2回目以降の場合は、すでに起動しているREPLに対して関数の読み込み&実行を行うので、直ぐに実行結果を得ることができます。

スクリーンショット 2023-11-03 19.29.53.png

最後に

今回はHylangの環境構築までを行いました。
数年ぶりにHylangを触ったのですが、知らないうちに色々と変わっていたので、次回は、そのあたりをまとめられると良いかなと思っています。

参考

1
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
1
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?