ill-identified diary

所属組織の見解などとは一切関係なく小難しい話しかしません

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

この記事は最終更新日から3年以上が経過しています

初めに

f:id:ill-identified:20210420000253p:plain

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 で確認.

f:id:ill-identified:20210419234732p:plain

こっそりサポートしている言語一覧

「こっそりサポートしている」言語として, 基本的に新規作成リストにないものだけを挙げる. RStudio はエディタの右下で認識する言語を変えることができるが, それに含まれていないものも一部ある.

f:id:ill-identified:20210419234735p:plain

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/ のコピペ)

f:id:ill-identified:20210420000159p:plain
dot 言語で書いたグラフィカルモデル

2021/5/7 追記: R Markdown クックブックの4.15節には Graphviz (.gv) と, Mermaid (.mdd) をサポートしているとも書かれている.

YAML/XML/JSON

これは bookdown とか使っている人は知っているだろうが, .yml (.yaml) /.xml /.json で保存するとシンタックスハイライトしてくれる. YAMLXMLJSONプログラミング言語ではないので実行できない (json のアイコンが js と同じになっているが問題なく動く).

CSV

これは言語……? かは怪しいが, 今はテキストファイルとして開くかデータフレームとして読み込むかを選択できるようになっている.

その他設定ファイル

これらをカウントしていいのかは怪しいが, .iniMAKEFILE.gitgnore のような一般的な設定ファイルも認識している. R パッケージのメタデータを記述する DESCRIPTIONシンタックスハイライトする. renv の設定とか書くのに使われる DCF も対応している. とかも対応している.

*1:グローバルオプションまたはプロジェクトオプションの sweave の項目で変更可能