javascript - 如何为 Web 上的自定义 DSL 设计丰富的编辑器

标签 javascript algorithm web-applications user-interface

我试图解决的问题是一个用于自定义 SQL 类 DSL 的编辑器,它要求用户输入属性的唯一标识符而不是适当的冗长标题。想想类似/obj/12075f8459499 的东西,而不是人类可读的“firstName”。有问题的应用程序在网络上,我想为用户提供一个很好的编辑器,它隐藏了具有唯一 URI 的对象的实现细节。

我把它想象成一个内容可编辑的 DIV,如果您开始输入一个字符串,该字符串也是属性标题的开头,您将看到一个下拉列表以确认该属性确实是您想要的。选择一个项目后,将插入一个占位符,然后应用程序知道如何将其序列化为我的 DSL 语法。您还可以从侧边栏的列表中选择要插入可编辑区域的属性。

我的问题是如何着手解析用户输入,以便生成的界面具有合理的响应能力。我应该从定义语法开始然后解析输入还是应该开始寻找其他地方?看起来像这样的问题已经在许多应用程序中得到解决,所以我正在寻找通常如何实现的指示。

注意:我还需要对语言进行语法高亮显示,因此无论如何都可能需要某种语法。

最佳答案

最后我选择了使用 CodeMirror JavaScript 编辑器。它标记一系列文本并用其他一些 HTML 标记表示的能力被证明特别有用。我用它来显示“友好的”对象名称来代替 URI。

关于javascript - 如何为 Web 上的自定义 DSL 设计丰富的编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11486204/

相关文章:

c++ - 非常基本的文件加密形式?

java - 初始化 Java Web 应用程序

具有 PHP 和爆炸 war 支持的 Java 应用程序服务器

javascript - Backbone 和 RequireJS 冲突——实例还是构造函数?

javascript - 如何在 Meteor 中呈现带有预定义数据的静态页面

javascript - 从缓冲区创建新对象

javascript - 如何使用 JavaScript 检测网页中的登录表单?

algorithm - 使用 levenshtein 距离和 Euristics 匹配字符串

algorithm - 计算数组中的所有索引对,使得 arr[i] < arr[j]

web-applications - 在服务器端处理非常大的 http 上传和下载的最佳方法