Javascript 如何从定制的ACE编辑器模式强制软包装?
我正在为编写一个自定义模式,以支持我的玩具模板语言 在该语言中,有一个用于嵌入换行符的构造:Javascript 如何从定制的ACE编辑器模式强制软包装?,javascript,ace-editor,Javascript,Ace Editor,我正在为编写一个自定义模式,以支持我的玩具模板语言 在该语言中,有一个用于嵌入换行符的构造: foo{\n}bar 它将以换行符呈现,如下所示: foo bar 我想在编辑器中模仿这一点,并在{\n}之后强制进行软包装: 1 | foo{\n} | bar 在我的模式下有没有办法做到这一点 更新:FWIW,这是我的模式文件的一个链接。没有代码,复制[编辑:见下文]有点困难,但根据,您需要与交互以改变显示方式 代码需要一个样式。(您可以在主题-菜单中选择这些选项)。主题是css(++js
foo{\n}bar
它将以换行符呈现,如下所示:
foo
bar
我想在编辑器中模仿这一点,并在{\n}
之后强制进行软包装:
1 | foo{\n}
| bar
在我的模式下有没有办法做到这一点
更新:FWIW,这是我的模式文件的一个链接。没有代码,复制[编辑:见下文]有点困难,但根据,您需要与交互以改变显示方式 代码需要一个样式。(您可以在
主题
-菜单中选择这些选项)。主题是css
(++js
)文件,它打开了在{\n}
元素类之后插入换行符的可能性
编辑:添加了代码
根据\n
的位置(正则表达式的几个部分可能匹配),您可能可以使用
{
token: function(arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
return [
"constant",
"keyword.operator",
(arg3 === '\n') ? "newline" : "variable.parameter",
"keyword.operator",
"string",
"keyword.operator",
"variable"
],
regex: /([%]?)([=]?)([^|>}]*)([|]?)([^>}]*)([>]?)([^}]*)/
}
然后有
.ace_newline:after {
content:"\a";
white-space: pre;
}
在您的自定义主题中。谢谢您的回答。您的类图链接似乎已断开。我考虑过CSS方法,但我不确定它是否会破坏ACE的其他逻辑。不过我得试试。注:另请参见: