タグ別アーカイブ: Stan

Visual Studio Code で Stan 拡張を作ってみようとする

今日はVisual Studio Code Advent Calendar 24日目のはずです。さて、Visual Studio Codeを使っていて、はたと困ったのはStanの機能拡張がなかったことです。ないのならば作ってしまえホトドギスで作ってみようとしました。まず、開発環境を用意しようとしました、それほど長時間使うわけでもないし困ったらサクサク作り直したいので、Microsoft AzureからA1v2を1インスタンス用立てて作ります。Linux環境を作らないのは手っ取り早くリモートデスクトップでつなぎたいからです。

とりあえず、必要なものを考えてみます。まず、StanのテストはR上で行うことにして、RStanをベースにします。RのVisual Studio Codeの機能拡張は既にあるし、まあ、Visual StudioのR拡張でとりあえずなんとかなるだろうと。そして、qiitaのVisual Studio Code はじめての拡張機能開発を参考にして、以下の物を。

  • Windows Server 2016
  • Visual Studio 2017RC
  • Microsoft R Open
  • Visual Studio Code
  • node.js
  • git

さしあたり、コードのレポジトリをgithubに作って作業開始。

と思っていたら、以下の記述がLanguage Extension Guidelinesに。

Syntax highlighting, snippets, and smart bracket matching can be implemented declaratively with configuration files and don’t require writing any extension code.

どうやら、コードを書かずに目的を達成できそうである。今回は拡張機能を作るのが目的ではなく、あくまでStanのためのよりよい環境がほしいだけなので、楽ができるのは歓迎である。

さて、先ほどから語っているStanについて、少々触れておく。Stanはベイズ統計モデリングをするための一種のドメイン特化言語である。Rなどとことなり、ベイズ統計モデリングのためにあるので汎用の言語ではない。R用のStanパッケージであるRStanやPython用のPyStanと用いられることが多い。言語自体は最終的にCのコードになりコンパイルされる。

とりあえず、yeomanで雛形を出力させると、必要なファイルが入っているようなので無駄にはならなかった感じですね。あとは、ちまちまと予約語とかを整備していけばある程度使える形にできるのかな?

と、思ったら、Ivan Bocharov氏のstan-vscodeが。脱力感、漲る。