Сохранять отступы в RichTextFX CodeArea - PullRequest
0 голосов
/ 14 января 2019

Я создаю редактор YAML в RichTextFX CodeArea (который я считаю типом TextArea). Я хотел бы сохранить текущий уровень отступа, когда я нажимаю Enter. Так, например:

- item1: foo
  item1A:
    subElement: A
<there should be 4 spaces here after I hit enter>

В качестве альтернативы, если кто-то уже создал редактор yaml в RichTextFX или JavaFX, я хотел бы получить ссылку на него.

Когда я нажимаю Enter после этого, чтобы добавить подэлемент unde

1 Ответ

0 голосов
/ 22 апреля 2019

Вы можете попробовать следующее:

Pattern whiteSpace = Pattern.compile( "^\\s+" );

codeArea.addEventFilter( KeyEvent.KEY_PRESSED, KE ->
{
    if ( KE.getCode() == KeyCode.ENTER )
    {
        Matcher m = whiteSpace.matcher( codeArea.getParagraph( codeArea.getCurrentParagraph() ).getSegments().get( 0 ) );
        if ( m.find() ) Platform.runLater( () -> codeArea.insertText( codeArea.getCaretPosition(), m.group() ) );
    }
});
...