javafx - 在 RichTextFX CodeArea 中保持缩进
问题描述
我正在 RichTextFX CodeArea 中构建一个 YAML 编辑器(我相信它是一种 TextArea)。当我按 Enter 时,我想保持当前的缩进级别。例如:
- item1: foo
item1A:
subElement: A
<there should be 4 spaces here after I hit enter>
或者,如果有人已经在 RichTextFX 或 JavaFX 中构建了一个 yaml 编辑器,我希望有一个指向它的链接。
当我在此之后按回车时,添加一个子元素unde
解决方案
您可以尝试以下方法:
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() ) );
}
});
推荐阅读
- javascript - Laravel Material Design 主题奇怪的行为
- python-3.x - 使用 PDFminer3 将多个 PDF 转换为文本文件
- c++ - 如何使用 tcp 连接发送大块数据
- node.js - 如何获取googlesheet中的第一个空单元格
- machine-learning - ANN 模型能否适用于不同数量的输入?
- java - 从 Json 数组中获取数据
- string - 从 Pandas DataFrame 中的所有行和列中去除标点符号
- c - 为什么函数 SDL_WaitEvent (SDL2) 在我的代码中出现错误?
- css - 悬停后元素“跳跃”
- python - 使用 OpenCV 检测小数点