Is it possible to create a code snippet or a task runner (or anything else) that would allow me to generate a UUID in VSCode? This question can also be interpreted in a more generic way: Can I run an external tool/program and insert the result at the current cursor position.
Thanks.
Unfortunately you can't do it right now with snippets. I don't think it can work via tasks either.
The only thing I can do for you is to give you a hacky solution that works for C#, TypeScript and Yaml files (tested in VSCode 0.9.0). Let's implement it for TypeScripts to make an example:
resources\app\extensions\typescript\out\features\suggestSupport.js
Add a method newGuid()
to the SuggestSupport
class:
// 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);
}
Find the line var suggests = [];
[inside the suggest
function]
Add this suggestion below that line:
suggests.push({
label: "Create new UUID",
codeSnippet: "\"" + _this.newGuid() + "\"",
type: "keyword"
});
After restarting Code you will always receive in .ts
files a suggestion called "Create new UUID" which adds a value like "243BC2A6-1AB5-445B-B086-DBDED67368F5"
at the current cursor position. You can force the appearance of the suggestion box by pressing CTRL + Space
.
To add this suggestion to C# and YAML you need to do the same in the corresponding suggestSupport.js files.