问题标签 [jsyntaxpane]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
275 浏览

java - JFlex 中可以继承吗?

我对 JFlex 和 JSyntaxPane 还很陌生,尽管我已经设法为 XPath 编写了一个词法分析器

我发现自己遇到的问题是我正在开发一个项目,该项目支持具有一些专有特性的 XPath 子集。恶心我知道。

如果这是一个常规的 Java 问题,我会转向继承,但似乎不可能通过让一个词法分析器扩展先前生成的词法分析器来实现继承。

例如

这似乎会导致大量错误告诉我我无法扩展某些最终方法。这是 JSyntaxpane 中 DefaultJFlexLexer 特有的问题,还是我做错了?有没有人遇到过类似的情况,并找到了一种在一堆词法分析器中实现某种特殊继承的方法?

0 投票
1 回答
1675 浏览

java - 在 JFlex 中跟踪状态

我正在编写一个自定义 flex 文件来生成一个用于 JSyntaxpane 的词法分析器。

我需要 lex 的自定义语言具有不同的状态,可以在一种堆栈中相互嵌入。

在 IE 中,您可以编写一个包含单引号字符串的表达式,然后使用特殊标记 eval() 在字符串中嵌入另一个表达式。但您也可以将表达式嵌入双引号字符串中。

例如:

这是一个简化,有比这更多的状态,但假设我需要为 DOUBLE_STRING 和 SINGLE_STRING 设置不同的状态,它充分描述了我的情况。

确保在关闭 eval 表达式后返回正确状态的最佳方法是什么(即,如果我在双引号中,则返回 DOUBLE_STRING,如果我在单引号中,则返回 SINGLE_STRING)

我提出的可行的解决方案是使用 Stack 和一些自定义方法来跟踪状态,而不是使用 yybegin 来启动不同的状态。

这是实现这一目标的最佳方式吗?是否有我可以利用的更简单的 JFlex 内置功能或我应该了解的最佳实践?

0 投票
1 回答
1214 浏览

java - 使用 jsyntaxpane 的 JEditorPane 语法高亮

我的应用程序中有一个 JEditorPane,我正在使用 jsyntaxpane 和以下代码将 java 文件加载到其中,它运行良好:

为了突出

加载文件

但知道我必须改变我加载文件的方式,我目前正在加载文件

这是以我想要的方式加载文件,但不再突出显示 java 文件的文本!有人知道我该如何解决这个问题或让java以不同的方式突出显示吗?

0 投票
1 回答
83 浏览

swing - 无法在 JEditorPane 中获得对 python 的 jysntaxpane 支持

我有一个 SWT 组合,我试图在其中嵌入一个 Swing JEditorPane,它应该支持 Python。我为此使用 jSyntaxPane。我能够阅读完整的 .py 文件并将其显示在编辑器中。但是,语法/颜色突出显示没有显示在编辑器中。

下面是代码:

当我尝试初始化 DefaultSyntaxKit 或 PythonSyntaxKit 时,我在 UI 中没有得到任何东西。我也尝试过“editor.setContentType(“text/python”)”,但它没有用。

请帮忙。谢谢。