SATySFi用Vimプラグインを作った

タイトルの通りふと思い立ってSATySFi用のVimプラグインを作ったので紹介します。 https://github.com/qnighy/satysfi.vim

SATySFi とは

SATySFiはgfn氏が未踏プロジェクトとして開発している組版システムです。LaTeXのような美しい組版を、一から設計しなおしたまともな言語で行うことができるのが特徴です。

SATySFiはプログラムパートにOCaml風の関数型言語組版パートにLaTeX風のマークアップ言語を使い、準クオートのような構文で両者を切り替えながら文書を記述します。組版結果はPDFとして直接出力されます。

satysfi.vimの機能

satysfi.vim は現在、シンタックスハイライトと自動インデントを提供します。

  • SATySFiの持つモードを正しく識別してハイライトします。例えば let はプログラムモードではハイライトされますが水平モードではハイライトされません。
  • 字句エラーをエラーとしてハイライトします。
  • SATySFiの構文に沿ってインデントします。例えば
    • | は対応する |, match, let-rec, type などにあわせてインデントされます。
    • let-rec は直前のトークンに応じて、 let-in式かトップレベル定義か判別され、トップレベル定義ならレベル0にインデントされます。
    • 水平モードでは、 ** のようなバレットを認識し、アスタリスクの個数に応じてインデントされます。

ちなみに

書いてから調べてみたら同名のVimプラグインを既に書いている人がいました