已知故障

在某些罕见的极端情况下,Prism 对代码的高亮显示不正确。

Prism 会出现故障的极端情况有一些。在任何基于正则表达式的语法高亮显示器中始终存在此类情况。
然而,Prism 敢于公开这种情况并诚实地加以说明。如果某个故障在此处列出,并不意味着它永远无法修复。此情况更像是一种“已知故障”列表,只不过列出了某种类型的故障。

注释仅支持一级嵌套

(* Nested block
	(* comments
		(* on more than
		2 levels *)
	are *)
not supported *)

嵌套块注释

#cs
	#cs
		foo()
	#ce
#ce

C 段内两级嵌套

{
	if($1) {
		if($2) {

		}
	}
} // <- Broken
%%
%%

注释仅支持一级嵌套

/+ /+ /+ this does not work +/ +/ +/

标记字符串仅支持一级嵌套

q{ q{ q{ this does not work } } }

在单引号字符串中字符串插值

'#{:atom} <- this should not be highligted'

同行的两次除法

2 / 3 / 4

以数字开头的名称

The box 1A is a container

包含闭合花括号的字符串插值

`${ /* } */ a + b }`
`${ '}' }`

嵌套非常深的括号的字符串插值

`${foo({ a: { b: { c: true } } })}`

AT 规则看起来像变量

@import "some file.less";

包含插值的 AT 规则

@import "@{themes}/tidal-wave.less";

extend 的高亮显示不一致

nav ul {
  &:extend(.inline);
  background: blue;
}
.a:extend(.b) {}

未使用括号的带单个字符串参数的函数不会高亮显示

foobar"param";

带下划线的数字

mov     ax,1100_1000b
mov     ax,1100_1000y
mov     ax,0b1100_1000
mov     ax,0y1100_1000

dd    1.222_222_222

以注释开头的代码块

# Doesn't work
# Does work
 # Does work when prefixed with a space

表达式内的注释会中断文字和运算符

^if(
    $age>=4  # not too young
    && $age<=80  # and not too old
)

空元谓词不会高亮显示

halt.
trace.

:- if(test1).
section_1.
:- elif(test2).
section_2.
:- elif(test3).
section_3.
:- else.
section_else.
:- endif.

插值内多于一级的嵌套括号

"Foobar ${foo({
    bar => {baz => 42}
    baz => 42
})} <- broken"

包含带 {} 的字符串的插值表达式

f"{'}'}"

全局上下文高亮显示为动词

\d .

表单元格内没有任何高亮显示

+---------------+----------+
| column 1     | column 2  |
+--------------+-----------+
| **bold**?    | *italic*? |
+--------------+-----------+

内联标记识别规则不如规范中那么严格

不应该在以下代码中高亮显示任何内联标记。

2 * x a ** b (* BOM32_* ` `` _ __ |
"*" '|' (*) [*] {*} <*> ‘*’ ‚*‘ ‘*‚ ’*’ ‚*’ “*” „*“ “*„ ”*” „*” »*« ›*‹ «*» »*» ›*›

嵌套块注释

/* Nested block
	/* comments
	are */
not supported */

不使用花括号作为闭包参数的分隔符

|x| x + 1i;

不支持不赞成的 Sass 语法

.page
  color = 5px + 9px

!width = 13px
.icon
  width = !width

带有伪类选择器的选择器突出显示为属性/值对

a:hover
  text-decoration: underline

嵌套块注释

/* Nested block
	/* comments
	are */
not supported */

case-lambda 参数列表的第一个参数高亮显示为函数

(define plus
	(case-lambda
		(() 0)
		((x) x)
		((x y) (+ x y))
		((x y z) (+ (+ x y) z))
		(args (apply + args))))

嵌套块注释

/* Nested block
	/* comments
	are */
not supported */

不支持 Textile 中的 HTML

但在 HTML 中的 Textile 应该完全没问题。

<strong>This _should_ work properly.</strong>
*But this is <em>definitely</em> broken.*

不突出显示包含 Twig 的标记

<div{% if foo %} class="bar"{% endif %}></div>

不支持嵌套魔术词

{{#switch:{{PAGENAME}}
| L'Aquila = No translation
| L = Not OK
| L'Aquila = Entity escaping
| L'Aquila = Numeric char encoding
}}

不支持粗体和斜体的嵌套

''Italic with '''bold''' inside''

主题

我们的一些主题与某些布局不兼容。

Coy

如果结合了 float 或 flexbox 布局,Coy 的阴影和背景可能无法正确环绕代码。

变通方法

有 2 种可能的变通方法

第一种变通方法是为 pre 元素设置 display: flex-root;。这将解决问题,但 flex-root 具有有限的浏览器支持

第二种方法是向 pre 元素的样式中添加 clear: both;。这将解决问题,但它会改变代码块与其他元素重叠时的行为方式。