styler~今年の汚れ、今年のうちに~
これはR Advent Calendar 2019 24日目の記事です。
(ネタ記事なのでヒマなときに読んでください。)
今年も早いものであと一週間となりました。
学校も仕事も忙しい季節ですが、今年の汚れは今年のうちに落としましょうね(ブーメラン)
リビング、部屋、キッチン、トイレ、お風呂、クローゼット、
ふだんからきれいに書いてる人がほとんどだと思いますが、
改行位置やインデントなどPythonほど厳しくないので、
気を付けないとすぐ汚くなってしまいますよね。
そんなあなたにぴったりのRパッケージがこちら
使い方はこちら
デフォルトの設定でも十分きれいに整形できますが、
{
の前で改行するか、インデントを右揃えにするか、
算術演算子前後にスペースを入れるかなど
細かくカスタマイズすることも出来ます。
パッケージはGitHubからもCRANからもインストールできますが、
開発が盛んなのでCRAN側の方が安全かと思います。
基本的な機能
よく使うであろう関数はこちら
style_text()
指定した文字列を整形するstyle_file()
指定した.R .Rmd .Rnw .Rprofile を整形するstyle_dir()
ディレクトリ内のすべての.R .Rmdファイルを整形する(指定ディレクトリ直下だけでなく、孫ディレクトリなども含む)style_pkg()
Rパッケージのソースファイルを整形する
このほかに上記の関数を応用したR Studioアドインがあります。
Set style
あらかじめ作成した整形定義関数をセットするStyle selection
選択した文字列を整形するStyle active file
アクティブファイルを整形するStyle active package
自作パッケージを作成してるときに使うとディレクトリ内にあるファイルが整形される
※スクリプトは上書きされるので開いていないファイルを
試しに整形する際はバックアップをとっておくことをお勧めします。
ショートカットキー設定
R Studioアドインに登録されているということはショートカットキー設定が出来ます。
※RStudioデフォルトの機能Ctrl+i
(Reindent Lines)を上書きしています。
それが嫌な方は別のショートカットキーを設定してください。
設定できましたら、あとは簡単。ワンタッチ。
整形したい行を選択してCtrl+i
を押せばキレイになります。
カスタマイズ
先ほどSet styleというアドインもショートカットキー設定しましたが、
これを使って自分でカスタマイズした整形機能を設定してみます。
santa <- " # / ̄ \ # __ 0⌒> ヽ # / ∩⊂ニニニニニニ⊃∩ # / | ノ ヽ # | / ● ● | メリークリスマース! # | | ( _●_) ミ | # | 彡、 |∪| 、`\ # | / __ ヽノ /´> ) # \ (___) / (_/ # \ | / #  ̄ ̄| /\ \ # | / ) ) # |_) ( \ # \ _) " Xmas <- function(pd_flat) { op <- pd_flat$token %in% "'{'" pd_flat$text[op] <- paste("{", santa) pd_flat$lag_newlines[op] <- 1L pd_flat } present <- styler::create_style_guide(token = tibble::lst(Xmas))
これを.Rprofileに書き込んでR起動時に毎回読み込むようにします。
そしたら、起動後にCtrl+Shift+i
を押して、present
を指定
=>そしてカッコ{
を含む行を選択して、Ctrl+i
!!
これであなたのプログラムにもクマサンタが現れます!!!!!!(ダレトク)
まとめ
{styler}のアドインをショートカットキー設定しておけば、簡単にきれいなコードになります。
styler::create_style_guide
は正しく使えば、「functionの中にちゃんと何をする関数か書きなさい。」といったおれおれstyleを社内に展開することができます。
ぜひ一度手元でお試しください!
最後のは私からのささやかなクリスマスプレゼントムダ知識です。
{
という煙突を探してはプレゼントを入れてあげるというスタイルです。
それでは、
.。゚+..。゚+.。゚+..。゚+.。゚+..。゚+.。゚+..。゚+
.。゚+..。゚+.メリークリスマス.。゚+..。゚+
.。゚+..。゚+.。゚+..。゚+.。゚+..。゚+.。゚+..。゚+