Объемное пространство с кавычками

Как возможно в Eclipse JDT преобразовать многострочный выбор в String. Как показано ниже

From:

xxxx
yyyy
zzz

To:

"xxxx " +
"yyyy " +
"zzz"

Я попробовал следующий шаблон

"${line_selection}${cursor}"+

но таким образом я получаю только весь блок, окруженный не каждой строкой отдельно. Как я могу достичь многострочной обработки, например, комментируя выбранный блок?

Ответ 1

Возможно, это не то, что вы имеете в виду, но...

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

"xxxx\n" +   
"yyyy\n" +  
"zzz"

Тогда вы могли бы просто найти/заменить в выборе для "\n" до "", если вы не предполагали новые строки.

Я думаю, что опция включения этого параметра находится в Window/Preferences, в разделе Java/Editor/Typing/ установите флажок рядом с "Escape text when pasting into a string literal". (Eclipse 3.4 Ganymede)

Ответ 2

Найти/Заменить с включенной опцией регулярного выражения. Найти:

^(.*)$

Заменить на:

"$1" +

Ну, последняя строка будет иметь избыток +, вы должны удалить ее вручную.

Ответ 3

Я бы пошел с затмением Find/Replace в режиме regexp:

  • Поиск:

    ^ ((:?\S()\S) ((?:?!\S ([\ г\п])))

  • Замените

    \ 1 "\ 2" \3 +

Сохраняет ровно любое пространство или вкладки, которые у вас есть до и после каждой строки, и будет окружать их необходимыми двойными кавычками. (последний '+' нужно удалить)

Ответ 4

Это может быть не совсем тот ответ, который вы ищете. Вы можете легко достичь того, что вы просите, используя редактор sed-потока. Это доступно во всех вариантах Unix, а также в Windows, загрузив набор инструментов, например cygwin. В командной строке оболочки Unix выполните команду

sed 's/^/"/;s/$/"+/'

и вставьте текст, который вы хотите преобразовать. На его выходе вы получите преобразованный текст. Аргумент, переданный sed, заменяет (-ы) начало строки (^) с цитатой и заменяет (-ы) конец каждой строки ($) цитатой и плюсом.

Если текст, который вы хотите преобразовать, большой, вы можете перенаправить sed-ввод и вывод через файлы. В таком случае запустите что-то вроде

   sed 's/^/"/;s/$/"+/' <inputfile >outputfile

В Windows вы также можете использовать команду winclip инструментального набора Outwit, чтобы напрямую изменить то, что в буфере обмена. Просто запустите

winclip -p | sed 's/^/"/;s/$/"+/' | winclip -c

Вышеприведенная команда вставляет содержимое буфера обмена в sed и результат обратно в буфер обмена.

Наконец, если вы часто используете эту команду, имеет смысл разместить ее в файле оболочки script, чтобы вы могли легко запустить ее. Затем вы можете назначить ему ярлык для Eclipse.