【问题标题】:How to generate a UUID in Visual Studio Code?如何在 Visual Studio Code 中生成 UUID?
【发布时间】:2015-10-08 02:03:23
【问题描述】:

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

谢谢。

【问题讨论】:

标签: visual-studio-code


【解决方案1】:

以下扩展非常易于使用,并且完全符合您的要求:https://github.com/heaths/vscode-guid(或从 VS Marketplace 获取 here

【讨论】:

  • 对于那些稍后回答这个问题的人,如果扩展程序不再存在,只需在“扩展程序”面板上搜索“GUID”,您就会在那里找到一些。
【解决方案2】:

关于代码狙击手和 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"
}

【讨论】:

    【解决方案3】:

    很遗憾,您现在无法使用 sn-ps 执行此操作。我认为它也不能通过任务来工作。

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

    • 进入安装VSCode的文件夹
    • 打开文件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 文件中执行相同操作。

    【讨论】:

    • 谢谢,鉴于 sn-ps 和任务在 VSCode 中的工作方式,这看起来是一个不错的方法。我正在尝试让它在一个 json 文件中工作,如果它也能工作,我会告诉你。
    • @GabePerez 你能进入使用 sn-p 时生成的 json 文件吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    相关资源
    最近更新 更多