是否有可能制作一个python片段来转换像我在我的例子中解释的代码?
"Hello world".print
- 命中标签将其转换为
print("Hello world")
如果自动理解它是字符串或表达式会很好,所以如果我创建一个变量例如“a”并且我在结尾处写“.print”并点击标签它将不会添加“”或“因此以这种方式它不会将其转换为其他内容。
a = 10
a.print - hitting tab
将其转换为:
print(a)
不进:
print("a")
进步(如果可以这样说)
所以
TM_CURRENT_LINE
无法正常工作(可能)。
所以“$ {TM_CURRENT_LINE / [0-9a-z。] // g}”它应该删除每个数字,小写字符和“。”从线。这段正则表达式代码(片段)有效但不是真的。
当我写作
mytext.py - hit tab/enter
它删除前缀点之间的所有内容
图片中使用的代码段。
"Print to console - test": {
"scope": "python",
"prefix": ".print",
"body": [
"${TM_CURRENT_LINE/[0-9a-z.]//g}"
],
"description": "Log output to console"
}
我错了还是这个配偶要删除该行中的所有内容?
我认为这不可能完全符合你的需要。怎么样的:
"Print": {
"prefix": ".print",
"body": [
"print(${TM_CURRENT_LINE/(.*)\\..+$/$1/})$0"
],
"description": "Print"
}
如果我写a.print并点击ENTER
这将是输出:
aprint(a)
如果我写“a”.print这将是输出:
"a"print("a")
然后你应该删除第一部分。这是基于我所知道的,到目前为止,做一些搜索并没有产生更好的解决方案。
如果你在包含其他语句的行上使用它会有一些问题,因为它需要TM_CURRENT_LINE
。见Variables。
这是我认为你想做的宏。使用multi-line macro extension,将其放入您的settings.json:
"multiCommand.commands": [
{
"command": "multiCommand.printVariable",
"interval": 150,
"sequence": [
"cursorHomeSelect",
"editor.action.clipboardCutAction",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": "print($CLIPBOARD)"
}
}
]
}
]
和键绑定到keybindings.json以触发上面的宏:
{
"key": "alt+p",
"command": "multiCommand.printVariable",
"when": "editorFocus"
},
现在看演示:
将光标放在变量的末尾(仅在线),并使用键绑定触发。