Как заставить Eclipse обернуть эту строку?

Есть ли способ заставить Eclipse обернуть строку буквами b до длины 120 строк? Мне не удалось настроить средство форматирования кода для переноса строки. Это действительно сводит меня с ума...

public class Position {
    public static void i() {
        error("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");

    }

    private static void error(String string) {
        // TODO Auto-generated method stub

    }
}

person cellarGuardian    schedule 12.03.2012    source источник


Ответы (4)


Я протестировал предложение пользователя 714695: при нажатии ввода в середине строки плюсы, кавычки и отступы автоматически размещаются правильно.

В этом сообщении Ярлык Eclipse для разделения длинных строк есть еще несколько обсуждений этой проблемы.

С другой стороны, насколько мне известно, нет встроенного способа сделать это: вы хотели бы выделить строку и автоматически отформатировать ее, чтобы правильно разместить символы новой строки и +.

Недавно я хотел решить аналогичную проблему, когда цель состоит в том, чтобы выделить абзац и перенести слова, когда количество символов в строке составляет >= 78 символов (аналогично функции «gq» в Vim). Поскольку я не мог сразу найти способ сделать это онлайн, я решил посмотреть, насколько просто написать плагин. Это оказалось намного проще, чем я думал, поэтому я решил опубликовать некоторые основные инструкции, если это вас заинтересует.

  1. Создайте новый проект плагина
  2. Выберите Hello World, для начала введите команду one.
  3. Добавьте необходимые библиотеки eclipse в зависимости плагина. Щелкните правой кнопкой мыши проект, перейдите в «Инструменты PDE» и «Открыть манифест», там есть вкладка зависимостей. Это страница обзора проекта (если она еще не открыта для вас). Я добавил org.eclipse.jface.text и org.eclipse.ui.workbench.texteditor.
  4. Отредактируйте файл SampleHandler.java, чтобы обработать выделенный текст и заменить его в документе.
  5. Если вы нажмете кнопку «Воспроизвести», доступную из кнопки обзора проекта, запустится новый экземпляр eclipse, чтобы вы могли протестировать его и взаимодействовать с ним.
  6. Отредактируйте файл plugins.xml (также доступный на странице обзора проекта)
  7. Если вы довольны плагином, следуйте инструкциям по экспорту на странице обзора проекта. Если вы выберете опцию «Каталог», туда будет помещена банка. Добавьте этот 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

Нет, eclipse не разделит строку. Если вы поместите курсор в какую-либо позицию в строке и нажмете клавишу ввода, возможно, вы захотите.

person Kai    schedule 12.03.2012

Кажется, что форматер или очистка не исправят это, но для строк есть предпочтение «Переносить автоматически», которое можно использовать при вставке строки... Просто введите ключевое слово, например «Строка», в верхней части настроек. окно.

person Maarten Bodewes    schedule 21.03.2012

Вы можете сделать то, что хотите, используя поиск/замену (Ctrl + f) с регулярным выражением. Должен быть какой-то способ захватить первые N символов строки и оставшуюся часть строки в отдельных группах захвата, а затем вставить "+" между этими группами в поле «Заменить». Я не гуру регулярных выражений, поэтому, к сожалению, я не могу предоставить волшебную формулу...

После разделения строковой константы можно использовать форматирование кода (Ctrl + Shift + F), чтобы исправить разрывы строк.

person Kevin K    schedule 21.03.2012