Изменить стиль If операторов в Emacs? - PullRequest
1 голос
/ 14 декабря 2010

Моя компания недавно добавила несколько новых правил стилизации кода, и мне было бы интересно узнать, есть ли простой способ с помощью emacs изменить пару вещей без замены регулярного выражения.

если теперь заявления должны выглядеть следующим образом:

if (expression) {

, где у меня много таких, которые выглядят так:

if(expression){   

не хватает пробелов. Есть ли простой способ исправить это?

Ответы [ 2 ]

2 голосов
/ 14 декабря 2010

Вы можете заменить его, если expression всегда в одной строке, но я бы использовал функцию выброса просто для безопасности:

(defun my-fix-style ()
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (while (re-search-forward "\\_<if(" nil t)
      (backward-char)
      (insert " ")
      (forward-sexp)
      (unless (looking-at "[ \t\n]")
        (insert " ")))))
1 голос
/ 15 декабря 2010

Просто мои два цента, но если бы я собирался сделать это с emacs, я бы, вероятно, избегал регулярных выражений и подходил к нему в двух частях. Сначала я бы сделал поиск, чтобы заменить if( на if (, выполнив мета-% "if (" "if (" Кавычки только для обозначения, они не принадлежат введенному тексту. Затем либо ответьте на каждый отдельный запрос на замену или дайте ему "!", чтобы он сказал, чтобы он выполнял все замены. Повторите процесс для закрытия ){ до ) {.

Вне головы, я ожидал бы, что первая замена будет работать без проблем. Второй также получит комбинации ") {" в циклах, но если ваш новый стандарт требует пробела для операторов if, я ожидаю, что он будет делать это и для циклов, так что, похоже, это должно быть хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...