我想知道是否有人知道如何为Python的DSL创建编辑器/gui。在
所以我有一个语法(基于textX项目)和一个解释DSL语法的类。但是我想为我自己的DSL语法创建一个自动完成和语法高亮的编辑器。在
有可能吗?在
我去了PySide,Qscintilla,但我有点迷路了,这似乎不太合适。 此外,DSL作为一个新概念是相当新的,所以网上几乎有0个文档,这就是我来这里的原因(你永远不知道!)在
编辑:^很抱歉,我把这句话惹恼了所有人。糟糕的是,我对DSL还很陌生,我想说的是,与Java相比,用Python开发DSL几乎什么都没有(使用Eclipse建模…)
赛亚!在
我同意@viraptor:
但是,最近在以下网站上介绍了QScintilla(PyQt5上的闪烁体)的API:
https://qscintilla.com/
网站上的文档对初学者很友好。在自己的PyQt GUI中创建一个基本编辑器不再是几个月的工作:-)
编写一个可用的编辑器不是一项简单的任务。如果你想要的不仅仅是简单的编辑功能,那基本上是一个长达数月的项目。当然,像spricella这样的嵌入式编辑器可以提供帮助,但这取决于您如何确定它们的API。在
我推荐一个不同的方向:既然你已经掌握了整个语法,就把自动完成和语法高亮显示作为一个现有编辑器的插件。通常这个功能被抽象得很好。你可以对vim、vscode或任何你想要的编辑器这样做。在
如果你真的想使用嵌入式编辑器,问一个关于这个部分的具体问题。记事本++以闪烁体为例,可以与几乎所有的语言一起工作。它很可能适合您的用例。在
总的来说:是的,这是可能的,因为任何事情都是可能的。如果你问一个关于在你的项目中加入Qscintilla的具体问题,你可能会得到更好的答案。在
PS.dsl存在了几十年。如果你找不到任何相关的东西,那就仔细看看。例如,SQL就是DSL。所有用LISP编写的东西几乎都是它自己的DSL。在
相关问题 更多 >
编程相关推荐