Превратите комментарии строки Java в комментарии блока автоматически - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть куча java-файлов с несколькими последовательностями комментариев:

// blah blah blah
// blah blah blah 
// blah blah blah 

, который я хочу преобразовать в комментарии к блоку с дополнительной строкой открытия и окончания:

/**
 * blah blah blah 
 * blah blah blah 
 * blah blah blah 
 */

Есть ли простой способ сделать это автоматически для всех комментариев? Предпочтительно с Vim или Eclipse? Конечно, я могу написать свой собственный сценарий, но надеюсь, что есть более простое решение.

Ответы [ 4 ]

0 голосов
/ 17 сентября 2018

В затмении вы можете сделать это: Выбор строк для комментария и Ctrl + Shift + / - (сгенерировать комментарий к строке блока)

Ctrl + Shift + F (запустить форматирование затмения). запуск eclipse formatter добавит * к каждой строке комментария.

Чтобы удалить комментарии, Ctrl + Shift + \

0 голосов
/ 17 сентября 2018

Для Vim вы можете легко сделать это с более или менее сложным макросом (в зависимости от того, насколько надежным он должен быть, должен ли он поддерживать нормальный режим с подсчетом, визуальный режим или дажеавтоматическое ранжирование существующих комментариев).

Но есть несколько плагинов для комментариев, которые делают это очень хорошо, и они являются общими (и часто расширяемыми), поэтому они работают для любого типа файла:

С первым плагином вам нужно применить два сопоставления: сначала 3<Leader>cu, чтобы раскомментировать (3 строки), затем 3<Leader>cs, чтобы использовать «сексуальные» разделители комментариев из нескольких частей.Это почти даст вам то, что вы хотите;вам просто нужно вставить еще один * для комментариев JavaDoc:

/*
 * blah blah blah
 * blah blah blah 
 * blah blah blah
 */

автоматизация

Чтобы найти последующие строки комментариев строки (предполагается, что здесь начинается в первом столбце), вы можетеиспользуйте :help :range.Начните диапазон со следующей закомментированной строки и продолжайте до следующей строки, которая не начинается с комментария или не является пустой.Чтобы это разработать, удобно использовать команду :print:

:/^\/\/ /;/\%(^$\|^[^\/]\)/-1print

Как только это сработает, мы можем запустить отображение uncomment (через :normal):

:/^\/\/ /;/\%(^$\|^[^\/]\)/-1normal \cu

Это раскомментирует каждую строку отдельно;для (блочного) комментирования нам нужно обработать блок целиком, передав [count] отображению.К счастью, метки изменения теперь разграничивают весь незакомментированный блок, поэтому мы можем использовать их для:

  • перехода обратно к началу
  • для вычисления числа последующихлинии
  • вызывают сексуальный комментарий отображение
:execute line("'[") | execute 'normal' (line("']") - line("'[") + 1) . '\cs'

Если бы не последний шаг, изменение могло бы быть применено ко всему файлу через :global.Вместо этого вам нужно многократно запускать вышеуказанные шаги, пока не будет достигнут конец буфера. рекурсивный макрос может сделать это за вас.Затем вы можете применить этот макрос к нескольким файлам с помощью :bufdo или :argdo.Но вы должны быть уверены, что макрос надежен и не наносит ущерба некоторым угловым случаям.Таким образом, это компромисс в зависимости от количества случаев, с которыми вы сталкиваетесь.

0 голосов
/ 17 сентября 2018

Да. Есть простой способ. Вы можете использовать следующие ярлыки ...

Ctrl + /
Добавить / Удалить комментариев к строке (//…) из текущей строки.

Ctrl + Shift + /
Обернуть выделенные строки в комментарии блока (/ *… * /).

0 голосов
/ 17 сентября 2018

Вы можете выбрать несколько строк и нажать Ctrl + / для размещения / во всех строках.

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