Инструменты реформатирования / рефакторинга кода на языке R?

Недавно я обнаружил, что работаю с кодом R, который находится по всей карте с точки зрения стиля кодирования - несколько авторов и отдельные авторы, которые не строго придерживаются единой структуры. Есть определенные задачи, которые я хотел бы автоматизировать лучше, чем сейчас.

Я ищу инструмент (или инструменты), который управляет следующими задачами - перечислены в порядке возрастания желания, а также в порядке возрастания скептицизма существования.

Основное форматирование. Такие вещи, как преобразование «if (foo)» в «if (foo)» и достижение однородности с точки зрения местоположения фигурной скобки и тому подобное.

Преобразование "foo $ blah" в "foo [[" blah "]]" для доступа к списку. В идеале было бы возможно, по крайней мере, сделать предположение, если бы объект был действительно списком, а не data.frame, а только конвертировал списки.

Преобразование '=' в '<-'. Да, это простой поиск и замена - но не совсем. Инструмент (или regexp) должен знать язык так, чтобы он мог преобразовать «x = 5», но не «foo (x = 5)». Также было бы неплохо не просто заменить символ, но и обеспечить один пробел с обеих сторон оператора присваивания.

Переименование переменных, особенно для разных функций и файлов. Например, предположим, что в списке есть элемент «foo», я хотел бы иметь возможность изменить его на «foobar» один раз и не отслеживать каждый случай использования этого списка во всем потоке кода. Я предполагаю, что для этого потребуется инструмент, чтобы иметь возможность управлять всем потоком управления, чтобы идентифицировать такие вещи, как этот список, существующий как другое имя в другой функции.

Соглашения об именах. Я хотел бы иметь возможность определить некоторые стандартные правила именования (например,Google-х или что-то еще) и пусть он идентифицирует все функции, переменные и т. д. и преобразует их. Обратите внимание, что это связано с предыдущей записью для таких вещей, как элементы списка.

Не стесняйтесь перечислять основные команды обработки Unix (например, Sed), если он действительно будет достаточно умным, чтобы, по крайней мере, обычно не облажаться (например, преобразование "foo (x = 5)" в "foo (x <-5)) «).

Я предполагаю, что если бы такой инструмент уже существовал в идеальном состоянии, о котором я бы уже слышал, и я также понимаю, что с таким языком, как R, некоторые из этих видов изменений трудно сделать автоматически, но можно мечтать, верно? У кого-нибудь есть указатели на некоторые / все из них?

Ответы на вопрос(2)

Ваш ответ на вопрос