以下代码是一个textmate javascript片段,有人可以解释一下吗?因为我想在我自己的片段中使用这个功能。非常感谢。
document.getElement${1/(T)|.*/(?1:s)/}By${1:T}${1/(T)|(I)|.*/(?1:agName)(?2:d)/}("$2")
以下代码是一个textmate javascript片段,有人可以解释一下吗?因为我想在我自己的片段中使用这个功能。非常感谢。
document.getElement${1/(T)|.*/(?1:s)/}By${1:T}${1/(T)|(I)|.*/(?1:agName)(?2:d)/}("$2")
${1:T}
是第一个制表符占位符,默认值为“T”。这是当您键入“get”并点击选项卡时突出显示的文本。
$2
是第二个制表符占位符。在第一个制表符占位符中按“T”或“I”完成函数名称后,您可以按制表符到达此处。
那些你可能已经知道的部分,但其他两个稍微复杂一些。
${1/(T)|.*/(?1:s)/}
是一种插入开关。它查看您在第一个选项卡占位符中键入的值,然后选择要插入的相应值。如果你输入“T”,它会插入一个“s”(组成“Elements”这个词);否则,它不会插入任何东西。
${1/(T)|(I)|.*/(?1:agName)(?2:d)/}
是另一个插入开关,它再次查看您在第一个选项卡占位符中键入的值(这就是开头的“1”的含义)。在这里,有两种可能的插入方式:如果您键入“T”,它会将其补全为“Tagname”,如果您键入“I”,它将补全为“Id”。
总体结果是,如果您调用代码片段并键入“T”,它将完成为“getElementsByTagName("")”。如果您调用它并键入“I”,它将完成它为“getElementById(”“)”。
我对textmate一无所知,但看起来它是为了生成以下内容:
document.getElementById(val);
document.getElementsByTagName(val);
不是这个:
document.getElementsByName(val);