问题标签 [syntax-highlighting]

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 投票
3 回答
1268 浏览

ruby - 将 Ruby 代码转换为字符串

我正在重构一些我没有写的代码,我发现了这样一行(它更长,我在这个例子中只用了一点点):

为了提高可读性,我将其重构为

然后我想做一些改变,但由于我正在处理的代码是在一个字符串中,我失去了语法突出显示、括号匹配和所有这些好东西。

有没有一种简单的方法可以在字符串之外编写一些代码,然后将其转换为字符串?

我搜索了网络和stackoverflow,但找不到答案。

有关更多信息,请查看bret/watir的原始代码(Watir::FileField#set,第 445 行)和我在zeljkofilipin/watir的 fork (第 447-459 行)。

0 投票
2 回答
3314 浏览

c++ - QPainter 彩色文本(语法着色)

我有一个自定义的 Qt 小部件,用于显示反汇编,我希望为其添加语法着色。

目前,我只是将 设置QPen为纯色,构建我想要显示的文本,并将其渲染到QPainter适当的坐标处。

问题是,添加语法着色的最佳方法是什么?我想到了几个:

  1. 我可以简单地将颜色划分为逻辑块,每个逻辑块之前都将 QPen 设置为所需的颜色。
  2. 我可以有特殊的转义字符来表示调色板的变化,一次渲染 1 个字符。
  3. 我可以对#1 进行修改并创建一个列表std::pair<QColor, QString>,然后我可以简单地迭代列表设置颜色并在我从列表前面弹出项目时绘制文本。
  4. 完全不同的东西?

我知道我列出的 3 种方法中的每一种在技术上都是可行的,但我正在寻找一个非常有效的解决方案。这段代码会被调用很多次。而且由于这是一个交互式调试器,如果此代码很慢,那么快速步进或跟踪的人会看到明显的减速。

编辑:我知道QSyntaxHighlighterand QTextDocument。主要问题是这些通常不太适合我的目的。我有几列都有分隔线,可以来回滑动。为了给您一个想法,这是我的调试器屏幕截图的链接。如您所见,它根本不像一个文本文档。事实上,它更接近于列表或表格。但是已经有一堆自定义绘图正在进行,使正常QTextDocument有点不切实际。

编辑:我不正确,似乎QTextDocument可以直接渲染到QPainter. 看起来像我需要的!

编辑:目前尚不清楚如何控制在何处以及如何QTextDocumentQTextLayout将使用QPainter. 我试图使用它们无济于事。因此,如果有人可以提供一个基本示例,那将非常有帮助。

编辑:我最终能够使用这样的东西得到我想要的东西:

0 投票
2 回答
6990 浏览

vim - vim:将扩展名与语言相关联

我有 gvim 7.2,它可以识别 .d 文件并根据 D 编程语言的语法正确突出显示它。但是,.di 文件不会被识别为 D 文件,并且不存在突出显示。

如何让vim根据D语言高亮显示.di文件?

0 投票
2 回答
696 浏览

visual-studio - VS2008 中特定领域语言的语法高亮显示?

我有一种具有特定语法的领域特定语言。是否可以让 Visual Studio 2008 在常用编辑器中识别自定义语言?也就是说,将给定的文件扩展名与某个语法着色方案相关联?如果是这样,您对如何执行此操作有任何指示吗?

如果这是重复的,我很抱歉。我搜索但找不到相关答案,但这听起来确实是一个简单的问题。

问候。

0 投票
1 回答
1700 浏览

html - 在 Emacs 中将语法高亮代码转换为 HTML

在 TextMate 中有一个名为“从文档创建 HTML”的功能,它将显示的代码(包括语法着色)转换为 HTML/CSS,以便于在线发布。我想知道 Emacs 中是否隐藏了这样的功能,或者我可以安装一个扩展来做到这一点。

0 投票
1 回答
3518 浏览

python - Cocoa TextView 中的语法高亮显示?经验?建议?想法?

可能重复:
Cocoa 应用程序的语法着色

我对Cocoa TextView中的语法高亮感兴趣。

我找到了几个资源:

  • 使用 flex 方法,通过 在委托中匹配的flex模式。在这种方法中,整个字符串在每个输入事件上都会被解析,因此性能会下降。textStorageDidProcessEditingTextView

  • CocoaDev 有一个关于语法高亮主题的页面

    1. 使用NSTextStorageDidProcessEditingNotification,然后获取编辑后的范围,然后在此处应用颜色。范围可能是单词边界或任何东西;这肯定会提高性能。

    2. 那里提到:例如,Xcode 仅对当前屏幕上的文本着色,并推迟对文档的其余部分着色,直到您滚动浏览它。将如何实现这一点?

    3. 使用NSLayoutManager– 通过Temporary attributes [which] 仅用于屏幕上的绘图,并且不会以任何方式持久化......正如文档所说,但这不会为最后编辑的范围着色,直到输入空白字符。

    4. UKSyntaxColoredDocument这样的自定义助手——很好,但是语言定义是通过属性列表完成的;如何使用其他/现有的语言定义?

对我来说,这些方法似乎都不是真正可扩展或健壮的(除了 4. 也许..)。

我知道像pygments这样的强大的 SH 现有库;和PyObjC

问题:如何使用一些现有的库(例如pygments)在 Cocoa 中突出显示可扩展和高性能的语法TextView

注意:我知道这个问题非常广泛(而且太长了)。欢迎经验和建议以及解决方案。谢谢。


在这件事上找到了另一个类似的线程:Cocoa 应用程序的语法着色

0 投票
4 回答
10614 浏览

ide - 哪个文本编辑器支持 Wiki 代码的语法高亮显示?

是否有任何文本编辑器(例如Notepad++)语法高亮 MediaWiki 代码?尽管 Wiki 脚本本身就是一种语言,但这可能与严格的编程无关。

0 投票
1 回答
7023 浏览

ruby - 为 .API 文件启用自动完成功能?

有谁知道如何使用 N++ 网站上提供的 .API 文件在 Notepad++ 中自动完成工作?自动完成在 APIs 文件夹中有 XML 自动完成文件的语言中对我来说很好,但对于使用 .API 文件的语言(ruby、AutoIt 等)完全不起作用。

根据我在网上找到的内容,只需将 .API 或 .XML 文件复制到 APIs 文件夹中,并确保文件名与语言菜单中的语言名称匹配。我退出 N++ 以确保它不是在启动时发生的刷新问题。

根据 N++ 站点,我将 Ruby.apt 和 AHK Autohotkey.api 文件复制到 APIs 文件夹中:

C:\Program Files\Notepad++\plugins\APIs

我正在运行最新的 Notepad++,v5.4.3。升级前在三台机器上的 Notepad++ 5.3.x 中尝试过。

0 投票
2 回答
788 浏览

.net - WPF 中的语法着色

有谁知道是否有免费的 WPF 语法高亮组件?我目前正在使用 AvalonEdit,它是新 SharDevelop 源的一部分。
我遇到的麻烦是它似乎不支持文本内容的绑定。

有谁知道这是否可能,或者是否有任何其他类似的控件支持数据绑定?

0 投票
1 回答
389 浏览

syntax-highlighting - 我可以合并语法着色和折叠吗?或从主文档信息着色的投影

例子。我有一个 XML 文档:

我希望它呈现为

region1的文本 region2
的 一些简单文本

据我所知,基本的 Eclipse 着色工作独立于折叠。但我需要根据 xml 信息对文本进行着色。或者也许我需要其他东西,而不是折叠?只操作 StyledText 可能更容易,但我需要其他 Eclipse 编辑器功能才能继续工作。

=========
更新:还是没有建议?至少有可能吗?
我看过投影,但是......是否可以从编辑器的这个分支直接访问文本属性?
upd:也许至少有一些关于自定义投影的想法/文章?