我正在Electron制作一个正则表达式编辑器,我想在顶部制作一个正则表达式输入框。我已经看过Atom的方式了 - 通过将大量div放在彼此顶部,其中包含有色部分的跨度。
到目前为止,我已经这样做了:
<body onload="load()">
<div class="container">
<div class="regex-input">
<div class="line" id="line">
<span class="red">Hello</span>
<span class="black">, world</span>
<span class="orange">!</span>
</div>
</div>
</div>
</body>
我也有一大堆CSS太大而无法提出问题,这使得它看起来像这样:
有关如何执行此操作的任何提示?我一直在网上寻找一种方法,但我找不到任何东西。
这是我想要的一种形象:(来自http://regexr.com)
答案 0 :(得分:1)
已经有很好的工具可以做到这一点,你不必编写自己的工具。 CodeMirror是一个非常受欢迎的工具,请查看this。
如果你想自己编写,一种方法是不使用输入元素,使用跨度来表示每个标记,并使用闪烁的div来表示光标。捕获键盘键并相应地导航闪烁的div,并在用户键入新标记时删除,着色和添加跨度。