Как получить номер строки из GutterIconInfo - RSyntaxTextArea - PullRequest
0 голосов
/ 13 октября 2018

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

С помощью следующего кода я могу получить смещение текстовой области, где она находит точку останова, но я не могу вычислить только строку каждой точки останова .

версии: rsyntaxtextarea-3.0.0

Вид

Выход:

GUTTERS
Отмеченное смещение точки останова: 15
Отмеченное смещение точки останова: 41
СВОЙСТВА ТЕКСТОВОЙ ОБЛАСТИ
Конечное смещение текущей строки: 15
Конечное смещение текущей строки: 18
Количество строк: 11

Есть идеи?

public class Tab extends javax.swing.JPanel {

    RSyntaxTextArea textArea;
    RTextScrollPane sp;
    Gutter gutter;

    public Tab(){
        initComponents();
        this.setLayout(new BorderLayout());
        AtextArea = new RSyntaxTextArea();
        textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
        textArea.setCodeFoldingEnabled(true);
        textArea.setCurrentLineHighlightColor(new Color(227, 242, 253, 200));
        textArea.setFadeCurrentLineHighlight(true);
        textArea.setBorder(BorderFactory.createEmptyBorder());
        sp = new RTextScrollPane(textArea);
        gutter = sp.getGutter();
        ImageIcon breakPoint = new ImageIcon(System.getProperty("user.dir") + "/src/olc2/dew/sources/icons/024-break-point.png");
        gutter.setBookmarkIcon(breakPoint);
        gutter.setFoldIndicatorEnabled(true);
        gutter.setBookmarkingEnabled(true);
        this.add(sp);    
    }

    public void showGutters() {
        GutterIconInfo[] breakPoints = gutter.getBookmarks();
        System.out.println("GUTTERS");
        for (GutterIconInfo breakPoint : breakPoints) {
            System.out.println("Break Point Marked Offset: " + breakPoint.getMarkedOffset());//Show the offset until to find a break point
        }
        //I need only the break point number line, don't the offset
        System.out.println("TEXT AREA PROPERTIES");
        System.out.println("End Offset of Current Line: " + textArea.getLineStartOffsetOfCurrentLine());
        System.out.println("End Offset of Current Line: " + textArea.getLineEndOffsetOfCurrentLine());
        System.out.println("Line Count: " + textArea.getLineCount());
        System.out.println("Line Height: " + textArea.getLineHeight());
    }
}
...