如何在Visual Studio代码中生成UUID?

时间:2015-10-08 02:03:24

标签: visual-studio-code

是否可以创建允许我在VSCode中生成UUID的代码片段或任务运行器(或其他任何东西)?这个问题也可以用更通用的方式解释:我可以运行外部工具/程序并将结果插入当前光标位置。

感谢。

3 个答案:

答案 0 :(得分:2)

以下扩展程序非常易于使用,完全符合您的要求:https://github.com/heaths/vscode-guid

享受!
-Simon

答案 1 :(得分:1)

不幸的是,您现在无法使用代码段执行此操作。我不认为它可以通过任务工作。

我能为您做的唯一事情就是为您提供适用于C#,TypeScript和Yaml文件的hacky解决方案(在VSCode 0.9.0中测试)。 让我们为TypeScripts实现它来做一个例子:

  • 转到安装VSCode的文件夹
  • 打开文件resources\app\extensions\typescript\out\features\suggestSupport.js
  • 将方法newGuid()添加到SuggestSupport类:

    // 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个文件中收到一个名为“Create new UUID”的建议,该建议在当前光标位置添加"243BC2A6-1AB5-445B-B086-DBDED67368F5"之类的值。您可以按CTRL + Space强制显示建议框的外观。

要将此建议添加到C#和YAML,您需要在相应的suggestSupport.js文件中执行相同的操作。

答案 2 :(得分:0)

关于代码狙击和 uuid,请考虑 VSCode 1.53(2021 年 1 月)引入了一个有趣的功能:

<块引用>

New Snippet Variables

<块引用>

有新的片段变量用于插入 uuid 和插入当前文件的相对路径。

下面的示例片段将打印:

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"
}