Sublime Text 片段中句点前变量名称的正则表达式
Regex for variable name before period in Sublime Text snippet
所以我正在尝试为 Sublime Text 3 编写一个片段,用于 forEach
调用对象的语句。
//what I have written at the point where the snippet is triggered
myObject.forEa
// what should appear after triggering the snippet
Array.prototype.forEach.call(myObject, function(){
})
这里的问题是在片段的正则表达式中捕获 myObject
,这样我就可以在编写片段时重用它。
到目前为止,我有一个正则表达式可以捕获任何适合成为我需要的 myObject
的内容:(\w|\.)+\b\.
。但是我需要捕获光标之前的那个。
你也可以使用一些环境变量,比如光标行的内容,光标的水平位置... Official documentation for snippets in Sublime Text.
可以吗?
据我所知,可以使用变量$TM_CURRENT_LINE来获取行的内容,但是唯一被替换的是制表符触发器 (forEa),该行的其余部分仍将存在。我给你一个例子和一个替代方案。
示例(未按预期工作):
<content><![CDATA[Array.prototype.forEach.call(${TM_CURRENT_LINE/^[ \t]*(\S*)\.$//g}, function(){
${1:functionConent}
})]]></content>
变化
myObject.forEa
到
myObject.Array.prototype.forEach.call(myObject, function(){
functionConent
})
因此,您可以使用行内容,但 myObject.
仍在行首。
备选方案(不完全是您想要的,但可以正常工作):
我想你知道如何这样做,但我认为最好用简单的方法来做:
<content><![CDATA[Array.prototype.forEach.call(${1:object}, function(){
${2:functionConent}
})]]></content>
这会改变
forEa
到
Array.prototype.forEach.call(object, function(){
functionConent
})
更改后焦点在第一个字段(对象),所以你可以轻松编写它,然后你可以移动到下一个字段(功能内容)使用tab.
所以我正在尝试为 Sublime Text 3 编写一个片段,用于 forEach
调用对象的语句。
//what I have written at the point where the snippet is triggered
myObject.forEa
// what should appear after triggering the snippet
Array.prototype.forEach.call(myObject, function(){
})
这里的问题是在片段的正则表达式中捕获 myObject
,这样我就可以在编写片段时重用它。
到目前为止,我有一个正则表达式可以捕获任何适合成为我需要的 myObject
的内容:(\w|\.)+\b\.
。但是我需要捕获光标之前的那个。
你也可以使用一些环境变量,比如光标行的内容,光标的水平位置... Official documentation for snippets in Sublime Text.
可以吗?
据我所知,可以使用变量$TM_CURRENT_LINE来获取行的内容,但是唯一被替换的是制表符触发器 (forEa),该行的其余部分仍将存在。我给你一个例子和一个替代方案。
示例(未按预期工作):
<content><![CDATA[Array.prototype.forEach.call(${TM_CURRENT_LINE/^[ \t]*(\S*)\.$//g}, function(){
${1:functionConent}
})]]></content>
变化
myObject.forEa
到
myObject.Array.prototype.forEach.call(myObject, function(){
functionConent
})
因此,您可以使用行内容,但 myObject.
仍在行首。
备选方案(不完全是您想要的,但可以正常工作):
我想你知道如何这样做,但我认为最好用简单的方法来做:
<content><![CDATA[Array.prototype.forEach.call(${1:object}, function(){
${2:functionConent}
})]]></content>
这会改变
forEa
到
Array.prototype.forEach.call(object, function(){
functionConent
})
更改后焦点在第一个字段(对象),所以你可以轻松编写它,然后你可以移动到下一个字段(功能内容)使用tab.