Skip to content

Commit 94aac9b

Browse files
committed
Add extension entry point and update metadata
Renamed LICENSE to LICENSE.md and updated package.json to reference the new license file. Added src/extension.js as the main extension entry point implementing the 'New Package...' command for VS Code, allowing users to create a new folder with a customizable file inside.
1 parent 65580b9 commit 94aac9b

File tree

3 files changed

+114
-1
lines changed

3 files changed

+114
-1
lines changed
File renamed without changes.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
"displayName": "VS-Code New Package Extension",
44
"description": "Adds a 'New Package...' option to the VS Code Explorer context menu to create a folder with an index.ts file.",
55
"version": "0.0.1",
6+
"license": "./LICENSE",
7+
"readme": "./REAMDE.md",
68
"publisher": "Mqxx",
79
"repository": "https://github.com/TypeScriptPlayground/vs-code-new-package-extension",
810
"files": [
911
"dist/**/*",
1012
"resources/**/*",
1113
"README.md",
12-
"LICENSE"
14+
"LICENSE.md"
1315
],
1416
"engines": {
1517
"vscode": "^1.85.0"

src/extension.js

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
"use strict";
2+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4+
return new (P || (P = Promise))(function (resolve, reject) {
5+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8+
step((generator = generator.apply(thisArg, _arguments || [])).next());
9+
});
10+
};
11+
var __generator = (this && this.__generator) || function (thisArg, body) {
12+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14+
function verb(n) { return function (v) { return step([n, v]); }; }
15+
function step(op) {
16+
if (f) throw new TypeError("Generator is already executing.");
17+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
18+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19+
if (y = 0, t) op = [op[0] & 2, t.value];
20+
switch (op[0]) {
21+
case 0: case 1: t = op; break;
22+
case 4: _.label++; return { value: op[1], done: false };
23+
case 5: _.label++; y = op[1]; op = [0]; continue;
24+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
25+
default:
26+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30+
if (t[2]) _.ops.pop();
31+
_.trys.pop(); continue;
32+
}
33+
op = body.call(thisArg, _);
34+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36+
}
37+
};
38+
Object.defineProperty(exports, "__esModule", { value: true });
39+
exports.activate = activate;
40+
exports.deactivate = deactivate;
41+
var vscode = require("vscode");
42+
var promises_1 = require("node:fs/promises");
43+
var node_path_1 = require("node:path");
44+
function activate(context) {
45+
return __awaiter(this, void 0, void 0, function () {
46+
var disposable;
47+
var _this = this;
48+
return __generator(this, function (_a) {
49+
disposable = vscode.commands.registerCommand('extension.newPackage', function (uri) { return __awaiter(_this, void 0, void 0, function () {
50+
var targetDir, folderName, config, fileNameSetting, fileContentTemplate, packagePath, fileContent, filePath, doc, error_1;
51+
return __generator(this, function (_a) {
52+
switch (_a.label) {
53+
case 0:
54+
_a.trys.push([0, 6, , 7]);
55+
targetDir = void 0;
56+
if (uri && uri.fsPath) {
57+
targetDir = uri.fsPath;
58+
}
59+
else if (vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders.length > 0) {
60+
targetDir = vscode.workspace.workspaceFolders[0].uri.fsPath;
61+
}
62+
else {
63+
vscode.window.showErrorMessage('No workspace folder open.');
64+
return [2 /*return*/];
65+
}
66+
return [4 /*yield*/, vscode.window.showInputBox({
67+
prompt: 'Enter the new package name',
68+
placeHolder: 'my_package'
69+
})];
70+
case 1:
71+
folderName = _a.sent();
72+
if (!folderName) {
73+
return [2 /*return*/];
74+
}
75+
config = vscode.workspace.getConfiguration('newPackage');
76+
fileNameSetting = config.get('fileName', 'index.ts');
77+
fileContentTemplate = config.get('fileContent', '');
78+
packagePath = (0, node_path_1.join)(targetDir, folderName);
79+
// Ordner anlegen
80+
return [4 /*yield*/, (0, promises_1.mkdir)(packagePath, { recursive: true })];
81+
case 2:
82+
// Ordner anlegen
83+
_a.sent();
84+
fileContent = fileContentTemplate
85+
.replace(/\$\{fileName\}/g, fileNameSetting)
86+
.replace(/\$\{packageName\}/g, folderName);
87+
filePath = (0, node_path_1.join)(packagePath, fileNameSetting);
88+
return [4 /*yield*/, (0, promises_1.writeFile)(filePath, fileContent, { encoding: 'utf8' })];
89+
case 3:
90+
_a.sent();
91+
return [4 /*yield*/, vscode.workspace.openTextDocument(filePath)];
92+
case 4:
93+
doc = _a.sent();
94+
return [4 /*yield*/, vscode.window.showTextDocument(doc)];
95+
case 5:
96+
_a.sent();
97+
return [3 /*break*/, 7];
98+
case 6:
99+
error_1 = _a.sent();
100+
vscode.window.showErrorMessage("Failed to create package: ".concat(String(error_1)));
101+
return [3 /*break*/, 7];
102+
case 7: return [2 /*return*/];
103+
}
104+
});
105+
}); });
106+
context.subscriptions.push(disposable);
107+
return [2 /*return*/];
108+
});
109+
});
110+
}
111+
function deactivate() { }

0 commit comments

Comments
 (0)