【发布时间】:2015-10-08 02:03:23
【问题描述】:
是否可以创建允许我在 VSCode 中生成 UUID 的代码 sn-p 或任务运行器(或其他任何东西)?这个问题也可以用更通用的方式来解释:我可以运行外部工具/程序并将结果插入当前光标位置吗?
谢谢。
【问题讨论】:
-
你可能对这个 github 项目感兴趣:github.com/michaelmcdaniel/GuidgenConsole
是否可以创建允许我在 VSCode 中生成 UUID 的代码 sn-p 或任务运行器(或其他任何东西)?这个问题也可以用更通用的方式来解释:我可以运行外部工具/程序并将结果插入当前光标位置吗?
谢谢。
【问题讨论】:
以下扩展非常易于使用,并且完全符合您的要求:https://github.com/heaths/vscode-guid(或从 VS Marketplace 获取 here)
【讨论】:
关于代码狙击手和 uuid,请考虑 VSCode 1.53(2021 年 1 月)引入了一个有趣的功能:
New Snippet Variables
有新的 sn-p 变量用于插入 uuid 和插入当前文件的相对路径。
下面的示例 sn-p 将打印:
let someId = 'foo/test.js/c13d226f-1932-40e2-9fd9-10198c219e33'// sample snippet using UUID and RELATIVE_FILEPATH { "scope": "javascript", "prefix": "newVars", "body": "let someId = '${RELATIVE_FILEPATH}/${UUID}'$0" }
【讨论】:
很遗憾,您现在无法使用 sn-ps 执行此操作。我认为它也不能通过任务来工作。
我唯一能为您做的就是为您提供一个适用于 C#、TypeScript 和 Yaml 文件的 hacky 解决方案(在 VSCode 0.9.0 中测试)。 让我们为TypeScripts实现它来做一个例子:
resources\app\extensions\typescript\out\features\suggestSupport.js
在SuggestSupport类中添加方法newGuid():
// copied from: https://github.com/Microsoft/ApplicationInsights-JS/blob/master/JavaScript/JavaScriptSDK/Util.ts
SuggestSupport.prototype.newGuid = function() {
var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
// c.f. rfc4122 (UUID version 4 = xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx)
var oct = "", tmp;
for (var a = 0; a < 4; a++) {
tmp = (4294967296 * Math.random()) | 0;
oct += hexValues[tmp & 0xF] + hexValues[tmp >> 4 & 0xF] + hexValues[tmp >> 8 & 0xF] + hexValues[tmp >> 12 & 0xF] + hexValues[tmp >> 16 & 0xF] + hexValues[tmp >> 20 & 0xF] + hexValues[tmp >> 24 & 0xF] + hexValues[tmp >> 28 & 0xF];
}
// "Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively"
var clockSequenceHi = hexValues[8 + (Math.random() * 4) | 0];
return oct.substr(0, 8) + "-" + oct.substr(9, 4) + "-4" + oct.substr(13, 3) + "-" + clockSequenceHi + oct.substr(16, 3) + "-" + oct.substr(19, 12);
}
找到var suggests = [];这一行[在suggest函数内]
在该行下方添加此建议:
suggests.push({
label: "Create new UUID",
codeSnippet: "\"" + _this.newGuid() + "\"",
type: "keyword"
});
重新启动 Code 后,您将始终在 .ts 文件中收到名为“创建新 UUID”的建议,该建议会在当前光标位置添加类似 "243BC2A6-1AB5-445B-B086-DBDED67368F5" 的值。您可以按CTRL + Space 强制显示建议框。
要将此建议添加到 C# 和 YAML,您需要在相应的SuggestSupport.js 文件中执行相同操作。
【讨论】: