2016-09-15 80 views
0

使得* .sublime完井文件,我发现键入长之类的函数时发生了“错误”:崇高文本2个落成

one.two.three.four.five(One := One_var, Two := Two_Var); 

所以,如果你输入的整体功能:

“one.two.three.four.five”,然后按Tab键 - 它将粘贴另一部分功能,而不会出现问题。

但是,如果你输入“one.two.thr” - 然后在弹出的提示看到的功能,然后点击“确定”,将取代像:

wrong autocomplete

one.two.one.two.three.four.five(One := One_var, Two := Two_Var); 

如何我可以配置触发器来替换“one.two.thr”以更正函数格式吗?

useless words

这是我的触发器。

 { "trigger": "one.two.three.four.five", "contents": "${TM_CURRENT_LINE/(.*)/(one.two.three.four.five)/}(One := One_var, Two := Two_Var);" }, 

回答

1

这不是错误,而是Sublime Text的默认设置。默认情况下,点被视为word_separators。因此,每次键入.时,完成触发器都将被重置。

例子:

假设我们只提供以下完井:(!在|标志着光标位置)

{ 
    "trigger": "one.two.three", 
    "contents": "one.two.three.four.five" 
}, 
{ 
    "trigger": "two", 
    "contents": "it_takes_two" 
} 

现在,让我们在崇高的文本输入它们

在最后一种情况下,两个完成都会列在完成弹出窗口中模糊匹配“two”。但是,更接近的匹配“两个”将具有更高的优先级。

要解决此问题,您可以在程序包设置或全局用户设置中编辑word_separators设置。默认情况下,设置把下面的字符作为单词分隔符:

./\\()\"'-:,.;<>[email protected]#$%^&*|+=[]{}`~? 

或者,你从你的完成触发,例如ommit点使用one-two-three而不是one.two.three

+0

是的,现在我明白了。但看起来像这样 - 从“word_separators”中删除点并不是最好的方法。它可以打破通常的行为。 我现在发现了另一种方式,但这不是一个修复,只是格式化自动完成文件的另一种方法。 – trianglesis