[小ネタ] RStudio がこっそりサポートしている言語一覧
初めに

RStudio の新規作成ボタンを押して現れるリストには R Script (.R
) や R Markdown (.Rmd
) 以外にも, いろいろなタイプのファイルがある. たとえば C/C++, Python, SQL, Stan など. これらの「サポート」の充実度合いは差があるが, とりあえず, シンタックスハイライトとコンパイルまたは対話的な実行をするボタンくらいはある.
実は RStudio はこの一覧にもない言語をいくつかサポートしているので紹介する. RStudio は R 言語とそのパッケージのエコシステムを支援する目的で作られているので, VS Code のようなあらゆる言語をメインに使える IDE とかではないことに注意. しかしR をメインに使いつつも, それ以外の言語もそこそこの頻度で別の IDE やエディタで使っている人はなにか使えるものがあるかもしれない.
現時点での安定版 1.4.1103 と開発版 1.4.1666 で確認.
こっそりサポートしている言語一覧
「こっそりサポートしている」言語として, 基本的に新規作成リストにないものだけを挙げる. RStudio はエディタの右下で認識する言語を変えることができるが, それに含まれていないものも一部ある.
Markdown
R Markdown を使っている人は知っているだろうが, 素の Markdown にも対応している. .md
に反応する. なお, Pandoc を使って HTML に変換することもできる (コードチャンクは使えない).
LaTeX (TeX)
これも R Markdown 関係. コンパイルもできるが, 現時点では pdfLaTeX か XeLaTeX でしかコンパイルしてれない*1ので日本語ユーザーにはそこまでありがたくない.
シェルスクリプト (Shell)
.sh
で保存するとシェルスクリプトとして使えるようになる. R のように Ctrl + Enter でターミナルに流したりもできる. デフォルトでは bash のようだが, グローバル/プロジェクトオプションで設定すれば多分 zsh とかも使える. Windows 版はコマンドプロンプトや Powershell もターミナルタブで扱えるので対応してそうなのだが, .bat
や .ps1
には反応しない.
JavsScript (D3 Script)
D3 Script が新規作成リストにあるから気づいている人もいるだろうが, .js
で保存すると JavaScript として扱われる. シンタックスハイライトと, D3.js による描画のプレビュー機能がある (r2d3 パッケージの関数が呼び出される)
CSS/SASS/SCSS
.css
だけでなく, .sass
, .scss
も対応している. もちろんこれらはプログラムではないので実行することはできないが, シンタックスハイライトや入力補完機能がある.
Lua スクリプト
右下の言語リストにもないが, .lua
もシンタックスハイライトやブロック単位の折りたたみに対応している. ただし R Markdown で使用する Pandoc フィルタとしての利用を想定しているのか, 単独で実行することはできない.
DOT 言語 (Graphviz)
グラフィカルモデルやネットワーク図を記述するのに使える DOT言語もサポートされている. .dot
で保存すればシンタックスハイライトしてくれるし, [preview] ボタンを押せばグラフも描画してくれる. 描画には diagrammeR パッケージの grViz()
関数を呼び出している. なお適当に書いた例 (ソースは https://www.programmersought.com/article/12981121025/ のコピペ)

2021/5/7 追記: R Markdown クックブックの4.15節には Graphviz (.gv
) と, Mermaid (.mdd
) をサポートしているとも書かれている.
YAML/XML/JSON
これは bookdown とか使っている人は知っているだろうが, .yml
(.yaml
) /.xml
/.json
で保存するとシンタックスハイライトしてくれる. YAML や XML や JSON はプログラミング言語ではないので実行できない (json のアイコンが js と同じになっているが問題なく動く).
CSV
これは言語……? かは怪しいが, 今はテキストファイルとして開くかデータフレームとして読み込むかを選択できるようになっている.
その他設定ファイル
これらをカウントしていいのかは怪しいが, .ini
や MAKEFILE
や .gitgnore
のような一般的な設定ファイルも認識している. R パッケージのメタデータを記述する DESCRIPTION
もシンタックスハイライトする. renv の設定とか書くのに使われる DCF も対応している.
matlab
2022/1/17 追記: 仲田・藤井両先生の疫学マクロモデルをRで書き換えようとしてるときに発見したのだが, matlab (.m ファイル)もシンタックスハイライトしてくれる. もちろん実行まではしてくれない.
github.com
*1:グローバルオプションまたはプロジェクトオプションの sweave の項目で変更可能