- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正在尝试修复 a bug在 Rust 的 vim 插件中,我认为可能值得就此获得一些建议。
Rust 具有使用尖括号 (<...>
) 表示的泛型,类似于 C++ 或 Java。但是,内部可能会出现箭头 ( ->
)。例如考虑表达式
Box<Fn(A) -> B>
当光标在左括号上时,vim 高亮显示箭头的 >
而不是右括号。
现在我认为发生这种情况是因为语法区域匹配没有特殊情况下箭头的可能存在。我试图通过更改 end=/>/
来解决这个问题至 end=/-\@<!>/
在它的定义中。但显然这对括号突出显示没有影响。现在我开始认为语法区域与此无关。
总而言之,我的问题是:如何更改括号匹配突出显示的方式?
最佳答案
这实际上是由 MatchParen 插件处理的(所有 vim 安装都附带)。
MatchParen 插件使用固定的语法属性列表在搜索匹配的括号时忽略(来自 $VIMRUNTIME/plugin/matchparen.vim
中的第 96 行左右)
" When not in a string or comment ignore matches inside them.
" We match "escape" for special items, such as lispEscapeSpecial.
let s_skip ='synIDattr(synID(line("."), col("."), 0), "name") ' .
\ '=~? "string\\|character\\|singlequote\\|escape\\|comment"'
execute 'if' s_skip '| let s_skip = 0 | endif'
s_skip
随后被传递给 searchpairpos
。似乎无论如何都无法从插件外部修改 s_skip
。
因此,如果您将 rustArrow
的所有实例更改为 rustArrowCharacter
,括号突出显示将是正确的。 (有3个实例要改2个在syntax/rust.vim
和1个ftplugin/rust.vim
)检查只是检查字符串,字符,单引号,转义, 或注释出现在语法属性的任何位置(不区分大小写)。如果它在搜索匹配的括号时跳过它。
我建议在 vim-dev 上询问是否可以修补 matchparen,以便可以将自定义语法属性添加到跳过列表中。
关于regex - 突出显示 Rust 语法中匹配的尖括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30308846/
我遇到过如下代码: my $string = "fo2345obar"; $string =~ sg; 我不明白尖括号在这种情况下是什么意思;我之前看到的所有替换都是以下形式: $string =~
我正在尝试使用 VBA 计算特定单元格值在 Excel 电子表格中出现的次数。单元格值是一个 XML 标记,尖括号被函数解释为小于/大于。这些字符如何转义? 微软说: "您可以使用通配符、问号 (?)
这个问题在这里已经有了答案: What is the difference between parentheses, brackets and asterisks in Angular2? (3 个回
我正在阅读githab Flux Dispatcher 的源代码并找出尖括号语法: class Dispatcher { .... } 这是该语言的新功能还是像 typescript 一样的子集?这里
在类声明中,<> 尖括号和 swift 中声明的参数有什么用?就像: public class ClassName { } 最佳答案 它使类变得通用。 Swift 标准库没有很多泛型类的示例,但它有一
这个问题在这里已经有了答案: 关闭 9 年前。 Possible Duplicate: printing “” using html 如何在不调用 html 的情况下将 < 符号直接放入 html
为什么我要使用 class 语法: class nil b.foo #=> undefined method 简而言之,class 为给定对象打开一个实例类,允许为给定实例定义额外的实例方法,这些方
在类声明中,<> 尖括号和在 swift 中声明的参数有什么用?像这样: public class ClassName { } 最佳答案 它使类通用。 Swift 标准库没有很多泛型类的例子,但是它有
我正在学习Java,最近被尖括号(<>)难住了。它们到底是什么意思? public class Pool{ public interface PoolFactory{ publ
我正在学习Java,最近被尖括号(<>)难住了。它们到底是什么意思? public class Pool{ public interface PoolFactory{ publ
在“我的查询”中,其他开发人员使用 <> (angle brackets)这是什么意思? sb.append(" AND nvl(VoidFlag, 'N') <> 'Y' "); 最佳答案 <> 运
我正在使用 (Win 10) 捷克语键盘布局 (CES/CS),通常我能够通过右 alt (AltGR + 的组合来编写尖括号“>”。 ) 但现在 Visual Studio 2015 Communi
这个问题在这里已经有了答案: 13年前关闭。 Duplicate: ASP.NET "special" tags 我使用 PHP,它使用 或 作为服务器标签,但是ASP.NET的中的含义和用法是什么?
我是一名优秀的程序员,十分优秀!