Я протестировал предложение пользователя 714695: при нажатии ввода в середине строки плюсы, кавычки и отступы автоматически размещаются правильно.
В этом сообщении Ярлык Eclipse для разделения длинных строк есть еще несколько обсуждений этой проблемы.
С другой стороны, насколько мне известно, нет встроенного способа сделать это: вы хотели бы выделить строку и автоматически отформатировать ее, чтобы правильно разместить символы новой строки и +.
Недавно я хотел решить аналогичную проблему, когда цель состоит в том, чтобы выделить абзац и перенести слова, когда количество символов в строке составляет >= 78 символов (аналогично функции «gq» в Vim). Поскольку я не мог сразу найти способ сделать это онлайн, я решил посмотреть, насколько просто написать плагин. Это оказалось намного проще, чем я думал, поэтому я решил опубликовать некоторые основные инструкции, если это вас заинтересует.
- Создайте новый проект плагина
- Выберите Hello World, для начала введите команду one.
- Добавьте необходимые библиотеки eclipse в зависимости плагина. Щелкните правой кнопкой мыши проект, перейдите в «Инструменты PDE» и «Открыть манифест», там есть вкладка зависимостей. Это страница обзора проекта (если она еще не открыта для вас). Я добавил org.eclipse.jface.text и org.eclipse.ui.workbench.texteditor.
- Отредактируйте файл SampleHandler.java, чтобы обработать выделенный текст и заменить его в документе.
- Если вы нажмете кнопку «Воспроизвести», доступную из кнопки обзора проекта, запустится новый экземпляр eclipse, чтобы вы могли протестировать его и взаимодействовать с ним.
- Отредактируйте файл plugins.xml (также доступный на странице обзора проекта)
- Если вы довольны плагином, следуйте инструкциям по экспорту на странице обзора проекта. Если вы выберете опцию «Каталог», туда будет помещена банка. Добавьте этот jar-файл в каталог workspace/.metadata/.plugins/ или любой другой путь, по которому Eclipse ищет плагины.
Ниже приведен некоторый очень простой пример кода, который выполняет перенос слов в Scala, языке, который я использовал для написания SampleHandler. Мясо находится в функции «выполнить»:
def execute(event: ExecutionEvent ): Object = {
val window = HandlerUtil.getActiveWorkbenchWindowChecked(event)
val editorPart = window.getActivePage().getActiveEditor()
var offset = 0
var length = 0
var selectedText = ""
val iSelection = editorPart.getEditorSite().getSelectionProvider().getSelection()
val selection = iSelection.asInstanceOf[ITextSelection]
offset = selection.getOffset()
if (!iSelection.isEmpty()) {
selectedText = selection.getText()
}
length = selection.getLength()
val editor = editorPart.asInstanceOf[ITextEditor]
val dp = editor.getDocumentProvider()
val doc = dp.getDocument(editor.getEditorInput())
val words = selectedText.split("""\s+""")
var wrapped = ""
var linesize = 0
words.foreach{ w =>
if(linesize+w.size >= 78) {
wrapped += "\n"
linesize = 0
}
wrapped += w + " "
linesize += w.size + 1
}
doc.replace(offset,length,wrapped)
return null;
}
Надеюсь это поможет
person
nequitans
schedule
21.03.2012