我想知道是否有人有关于如何为Python的DSL创建编辑器/ gui的想法。
所以我有一个语法(基于textX项目)和一个解释我的DSL语法的类。但我想创建一个编辑器,它具有自动完成和语法高亮,用于我自己的DSL语法。
有可能吗?
我进入了PySide,Qscintilla,但我有点失落,似乎不合适。 此外,DSL是一个非常新的概念,所以网上有很多0个文档,这就是为什么我在这里(你永远不知道!)
编辑:^很抱歉显然我正在触发所有关于这句话的人。我的不好,我对DSL很陌生,我想说与Python相比,用Python开发DSL几乎没有任何东西(使用Eclipse Modeling ...)Cya!
答案 0 :(得分:2)
编写可用的编辑器并非易事。如果您想要的不仅仅是简单的编辑功能,那么这基本上是一个长达数月的项目。像Scintilla这样的可嵌入编辑器当然可以提供帮助,但是你可以找出他们的API。
我建议采用不同的方向:因为你已经掌握了整个语法,所以生成自动完成和语法高亮作为现有编辑器的插件。通常,该功能被抽象得很好。您可以为vim,vscode或任何您想要的编辑器等应用程序执行此操作。
如果您确实想要使用嵌入式编辑器,请询问有关该部分的特定问题。例如,Notepad ++以Scintilla为例,它几乎适用于所有语言。它很可能适合您的用例。
总的来说:是的,这是可能的,因为一切皆有可能。如果您在项目中包含Qscintilla的具体问题,可能会得到更好的答案。
PS。 DSL存在了几十年。如果你找不到任何相关的东西,那就更难看了。例如,SQL就是DSL。用LISP编写的所有东西都是它自己的DSL。