Я пишу новый редактор для Java с использованием Xtext.
Я хочу, чтобы синтаксический анализатор проанализировал основной класс и заменил вызов метода фактическим кодом.
например,
Class Test {
public static void main(String[] args ){
System.out.println("Virag");
method();
}
public static method(){
System.out.println("Purnam");
}
}
После разбора я хочу вернуть документ, как указано ниже.
Class Test {
public static void main(String[] args ){
System.out.println("Virag");
System.out.println("Purnam");
}
}
Я достиг этого в лексере и парсере, возвращая тело метода вместо метода.
Но позже в редакторе текстовая область изменяется, и любое редактирование, выполняемое в редакторе, происходит неправильно.
Неправильные позиции символов в документах.
Как решить эту проблему?