Как заменить конкретную строку другой строкой в ​​редакторе, открытом в данный момент? - PullRequest
0 голосов
/ 05 марта 2012

Привет, я делаю проект плагина eclipse для создания IDE.В моей IDE текущий открытый редактор проверяется на наличие определенной строки и должен быть заменен строкой, введенной в текстовое поле, которое находится на виде сбоку.Я могу получить доступ к редактору, но если я ищу конкретную строку и заменяю эту строку вводом, введенным пользователем, он не работает.

 IDocumentProvider provider=((AbstractTextEditor) ieditorpart).getDocumentProvid();
 IDocument doc = provider.getDocument(ieditorpart.getEditorInput());  
 String content = doc.get();
 pos=content.compareTo("\\/\\*ProbeEnd\\*\\/");
 doc.replace(pos,5, "hello");

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

Есть ли какая-либо ошибка при доступе к редактору?Должен ли я использовать этот подход, чтобы сделать это или есть какой-либо подход для реализации этого?Кто-нибудь может помочь мне в этом?

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Почему переменная 'pos' сравнивает-значение (-1,0,1)?CompareTo возвращает лексикографический порядок двух строк.

Метод замены IDocument имеет три параметра:

  • int offset - смещение в документе,где 'text' должен быть вставлен
  • int length - длина, начинающаяся с 'offset', которая должна быть перезаписана.длина 0 означает вставку.
  • Текст строки - текст подстановки

Пример:

String oldContent = doc.get();
assert oldContent.equals("TestingText");

String replaceText = "REPLACE";

doc.replace(5,3,replaceText);

String newContent = doc.get();
assert newContent.equals("TestiREPLACEext");
//offset 5 is the position after 'Testi'
//length 3 means 'ngT' (starting from the offset) should be replaced
//REPLACE is the newText
0 голосов
/ 05 марта 2012

Вызовите firePropertyChange (IEditorPart.PROP_INPUT) из вашего редактора.

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