Я хочу узнать номер строки, на которую ссылается звонок, используя AST api в пакете.Как я могу это сделать?
У вас есть иллюстрация о том, как искать в методе CompilationUnit в этой статье в бумажном виде :
for (ICompilationUnit unit : mypackage.getCompilationUnits()) { IType[] types = unit.getTypes(); for (int i = 0; i < types.length; i++) { IType type = types[i]; IMethod[] methods = type.getMethods();
ASTNode.getStartPosition()
CompilationUnit
CompilationUnit.getLineNumber(position)
CompilationUnit.getLineNumber (int position)
позиция относительно объекта CompilationUnit
Документация:
Возвращает номер строки, соответствующий в заданную исходную позицию символа в оригинальной исходной строке. начальная строка блока компиляции пронумеровано 1, и каждая строка расширяется через последний символ разделитель конца строки. Самый последний линия проходит через конец исходная строка и не имеет строки разделитель. Например, источник класс строк A \ n {\ n} имеет 3 строки соответствующий инклюзивному характеру диапазоны [0,7], [8,9] и [10,10]. Возвращает -1 для позиции персонажа это не соответствует ни одному источнику строка, или -2, если номер строки отсутствует информация доступна для этого блок компиляции.