- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用WP-GeSHi在 WordPress 中,我对它非常满意。然而,在一些小场景中,当关键字处于以下状态时,颜色突出显示过于激进:
@
表示)INSERTED
中的 IN
)@JOINBING
中的 JOIN
和 IN
)[status]
)某些关键字区分大小写,而其他关键字则不区分大小写。下面的屏幕截图总结了出现问题的各种情况:
现在,GeSHi.php
中的代码相当冗长,而且我绝不是 PHP 专家。我不怕在这里弄脏我的手,但我希望其他人对此代码进行了更正并可以提供一些指示。我已经实现了一种解决方法来防止 @@ROWCOUNT
被错误地突出显示,但这很容易,因为 @@ROWCOUNT
已定义 - 我只是将数组打乱,以便它在 ROWCOUNT
之前找到。
我希望 GeSHi 完全忽略不是整个单词的关键字(无论它们是以 @
为前缀还是立即被其他字母/数字包围)。 JOIN
应为灰色,但 @JOIN
和 JOINS
不应为灰色。我还希望它忽略方括号内的关键字(毕竟,这就是我们告诉 Management Studio 不要用颜色突出显示它的方式,也是我们告诉 SQL 引擎忽略保留字、关键字和无效标识符的方式)。
最佳答案
您可以通过在数组末尾添加 PARSER_CONTROL
控件来实现此目的:
'PARSER_CONTROL' => array(
'KEYWORDS' => array(
1 => array( // "1" maps to the main keywords near the start of the array
'DISALLOWED_BEFORE' => '(?![\(\w])',
'DISALLOWED_AFTER' => '(?![\(\w])'
),
5 => array( // "5" maps to the shorter keywords like "IN" that are further down
'DISALLOWED_BEFORE' => '(?![\(\w])',
'DISALLOWED_AFTER' => '(?![\(\w])'
),
)
)
编辑
我修改了您的要点,将您添加到 SYMBOLS
的一些关键字移回到 KEYWORDS
(尽管在它们自己的组中,并且使用您的自定义样式),并且我更新了 PARSER_CONTROL
数组以匹配新的关键字数组索引,并包含 geshi 生成的默认regex
。这是链接:
关于wordpress - 改进 T-SQL 的 GeSHi 语法突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23544380/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!