Python PyQT QSCINTILA进展4gl

Python PyQT QSCINTILA进展4gl,python,pyqt,progress-4gl,qscintilla,Python,Pyqt,Progress 4gl,Qscintilla,最近,我一直在忙于创建自己的Progress4GL编辑器,在我的python应用程序中实现了qscilerCustom。但是在浏览QSCINTILA源代码时,我注意到他们在QSCINTILA/lexers/LexProgress.cpp中已经有了一个progress 4gl lexer,但在阅读时,他们没有指定任何QSCILProgress类或访问此lexer的任何方式,我可以看到 有人知道怎么做吗 任何帮助都将不胜感激。QSCINTILA显然是一个使用GUI框架的闪烁端口。移植lexer可能需

最近,我一直在忙于创建自己的Progress4GL编辑器,在我的python应用程序中实现了qscilerCustom。但是在浏览QSCINTILA源代码时,我注意到他们在QSCINTILA/lexers/LexProgress.cpp中已经有了一个progress 4gl lexer,但在阅读时,他们没有指定任何QSCILProgress类或访问此lexer的任何方式,我可以看到

有人知道怎么做吗


任何帮助都将不胜感激。

QSCINTILA显然是一个使用GUI框架的闪烁端口。移植lexer可能需要一些工作,所以他们可能没有花时间为不受欢迎的语言移植lexer


换句话说,我认为您找到的.cpp文件只是斯金特拉的一个残余文件,它从未被移植到QSCINTILA,但仍然在它们的代码库中。

类的名称有误导性。他们根本不是真正的lexers。而是为基于闪烁体的编辑器使用的属性文件提供包装。属性文件包含配置特定闪烁器所需的所有设置(字体、颜色、关键字等)

默认情况下,QSCINTILA不会为闪烁体支持的每种语言提供
QsciLexer*
类。它只提供了最常用的语言,以及用户在网络上请求的任何语言。AFAIK,QSCINTILA的作者很高兴为斯金塞拉支持的任何语言添加一个
QsciLexer*
类-唯一的要求是对应的lexer存在一个可用的SciTE属性文件

不幸的是,当前的SciTE源代码不包含Progress 4GL lexer的属性文件!然而,完全有可能是有人在某个时候创建了一个,所以稍微搜索一下就可能生成一个。如果做不到这一点,你可以自己创建一个


PS:qscintula不允许正确地对
QsciLexer
类进行子类化(一些关键的虚拟函数不是公共的),这真是一个麻烦。如果是的话,就可以为斯金特拉支持的任何语言创建自定义包装器类,而不必要求QSCINTILA的作者添加一个。

谢谢,恐怕情况就是这样。@RobertEdwards。这个答案是完全错误的。请参阅我的答案以获得正确的解释(以及可能的解决方案)。@Ekhumaro我并不是说必须重新编写lexers,我的意思是需要做一些工作才能让它们在QScintila下工作——你的帖子对此做了详细的解释。也许“port”这个词用得不对,但我认为每个lexer都必须包装在一个“
QsciLexer*
”类中这一事实证明了我的观点。这项工作根本不是为了进步词法而做的。@AbeVoelker。是的,Lexer不需要移植,而且.cpp文件不是“残余文件”—它是编译成QSCINTILA的闪烁库的一部分。所以所有的lexer都可以被qscintula使用,只是它们需要配置才能正常工作。这就是
QsciLexer*
类的用途(它们不需要大量的工作来创建)。话虽如此,你回答的第一句话是正确的——因此“完全错误”可能有点苛刻;-)你好,罗伯特。也许这个网站会有帮助: