最近、コーディング スタイルの点であらゆる場所にある R コードを扱っていることに気付きました。単一の構造に固執することについて厳密でない複数の作成者と個々の作成者です。現在よりも自動化したい特定のタスクがあります。
私は、次のタスクを管理するツール (またはツール) を探しています。リストは、希望の昇順でリストされていますが、存在に対する懐疑論の昇順でもあります。
基本的なフォーマット。「if( foo )」を「if (foo)」に変換したり、ブレースの位置を統一したりとか。
リストアクセスのために "foo$blah" を "foo[["blah"]]" に変換します。理想的には、オブジェクトが実際にリストであり、data.frame ではないかどうかを少なくとも推測し、リストのみを変換できるようにすることができます。
「=」を「<-」に変換しています。はい、これは単純な検索と置換ですが、実際にはそうではありません。ツール (または正規表現) は、"x = 5" を変換するが "foo(x=5)" を変換しないことを認識できるように、言語を認識する必要があります。また、単に記号を置き換えるだけでなく、代入演算子の両側に単一の空白を確保することも非常に便利です。
特に関数とファイル間での変数の名前変更。たとえば、リストに要素「foo」があるとします。一度「foobar」に変更できれば、コード フロー全体でそのリストのすべての使用を追跡する必要がなくなります。これには、別の関数で別の名前として存在するリストなどを識別するために、ツールが制御フロー全体を実行できる必要があると思います。
命名規則。標準的な命名規則 ( Googleなど) を定義し、すべての関数、変数などを識別して変換できるようにしたいと考えています。これは、リスト要素などの前のエントリと関連していることに注意してください。
基本的な unix 処理コマンド (例: sed) を自由にリストしてください。ただし、少なくとも通常は問題を起こさないほど十分にスマートである限り (例: "foo(x=5)" を "foo(x<-5)" に変換) 」)。
そのようなツールがすでに完璧な状態で存在していたとしたら、今では聞いたことがあると思います.Rのような言語では、これらの種類の変更を自動的に行うのは難しいことも認識しています.でも、夢は叶うよね?誰かがこれらのいくつか/すべてについての指針を持っていますか?