ol-base-components 2.8.1 → 2.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ol-base-components",
3
- "version": "2.8.1",
3
+ "version": "2.8.3",
4
4
  "private": false,
5
5
  "main": "src/package/index.js",
6
6
  "bin": {
@@ -3,107 +3,181 @@ const fs = require("fs");
3
3
  const path = require("path");
4
4
  const os = require("os");
5
5
 
6
- // 检测 VSCode 扩展目录
6
+ // 检测 VSCode/Cursor 扩展目录
7
7
  function getVSCodeExtensionsPath() {
8
8
  const platform = os.platform();
9
9
  const homeDir = os.homedir();
10
10
 
11
11
  switch (platform) {
12
12
  case "win32":
13
- return path.join(homeDir, ".vscode", "extensions");
13
+ return [
14
+ path.join(homeDir, ".vscode", "extensions"),
15
+ path.join(homeDir, ".cursor", "extensions"), // Cursor 扩展目录
16
+ path.join(homeDir, "AppData", "Roaming", "Cursor", "User", "extensions"), // Cursor 另一个可能的位置
17
+ path.join(homeDir, "AppData", "Local", "Cursor", "User", "extensions"), // Cursor 本地扩展目录
18
+ path.join(homeDir, "AppData", "Roaming", "Code", "User", "extensions"), // VSCode 扩展目录
19
+ path.join(
20
+ homeDir,
21
+ "AppData",
22
+ "Local",
23
+ "Programs",
24
+ "Microsoft VS Code",
25
+ "resources",
26
+ "app",
27
+ "extensions"
28
+ ), // VSCode 系统扩展目录
29
+ ];
14
30
  case "darwin":
15
- return path.join(homeDir, ".vscode", "extensions");
31
+ return [
32
+ path.join(homeDir, ".vscode", "extensions"),
33
+ path.join(homeDir, ".cursor", "extensions"),
34
+ path.join(homeDir, "Library", "Application Support", "Cursor", "User", "extensions"),
35
+ path.join(homeDir, "Library", "Application Support", "Code", "User", "extensions"),
36
+ ];
16
37
  case "linux":
17
- return path.join(homeDir, ".vscode", "extensions");
38
+ return [
39
+ path.join(homeDir, ".vscode", "extensions"),
40
+ path.join(homeDir, ".cursor", "extensions"),
41
+ path.join(homeDir, ".config", "Cursor", "User", "extensions"),
42
+ path.join(homeDir, ".config", "Code", "User", "extensions"),
43
+ ];
18
44
  default:
19
45
  throw new Error("Unsupported platform");
20
46
  }
21
47
  }
22
48
 
23
- // 安装 VSCode 扩展
49
+ // 安装 VSCode/Cursor 扩展
24
50
  function installVSCodeExtension() {
25
51
  try {
26
- const extensionsPath = getVSCodeExtensionsPath();
52
+ const extensionsPaths = getVSCodeExtensionsPath();
27
53
  const extensionName = "vue-page-generator";
28
- const extensionDir = path.join(extensionsPath, extensionName);
29
54
 
30
- // 创建扩展目录
31
- if (!fs.existsSync(extensionDir)) {
32
- fs.mkdirSync(extensionDir, { recursive: true });
33
- }
34
-
35
- // 复制扩展文件
36
- const srcDir = path.join(__dirname, "../src/vscode");
37
- const files = ["extension.js"];
38
-
39
- files.forEach(file => {
40
- const srcFile = path.join(srcDir, file);
41
- const destFile = path.join(extensionDir, file);
42
-
43
- if (fs.existsSync(srcFile)) {
44
- fs.copyFileSync(srcFile, destFile);
45
- console.log(`✅ 复制文件: ${file}`);
46
- }
55
+ console.log("�� 正在查找扩展目录...");
56
+ extensionsPaths.forEach((path, index) => {
57
+ console.log(` ${index + 1}. ${path} ${fs.existsSync(path) ? "✅ 存在" : "❌ 不存在"}`);
47
58
  });
48
59
 
49
- // 复制 webview 目录
50
- const webviewSrcDir = path.join(srcDir, "webview");
51
- const webviewDestDir = path.join(extensionDir, "webview");
52
-
53
- if (fs.existsSync(webviewSrcDir)) {
54
- if (!fs.existsSync(webviewDestDir)) {
55
- fs.mkdirSync(webviewDestDir, { recursive: true });
56
- }
57
-
58
- const panelFile = path.join(webviewSrcDir, "panel.js");
59
- const panelDestFile = path.join(webviewDestDir, "panel.js");
60
-
61
- if (fs.existsSync(panelFile)) {
62
- fs.copyFileSync(panelFile, panelDestFile);
63
- console.log("✅ 复制文件: webview/panel.js");
60
+ let installed = false;
61
+
62
+ for (const extensionsPath of extensionsPaths) {
63
+ if (fs.existsSync(extensionsPath)) {
64
+ console.log(`\n📁 使用扩展目录: ${extensionsPath}`);
65
+
66
+ const extensionDir = path.join(extensionsPath, extensionName);
67
+
68
+ // 删除旧的扩展目录(如果存在)
69
+ if (fs.existsSync(extensionDir)) {
70
+ console.log("🗑️ 删除旧的扩展目录...");
71
+ fs.rmSync(extensionDir, { recursive: true, force: true });
72
+ }
73
+
74
+ // 创建扩展目录
75
+ fs.mkdirSync(extensionDir, { recursive: true });
76
+ console.log("📁 创建扩展目录:", extensionDir);
77
+
78
+ // 复制扩展文件
79
+ const srcDir = path.join(__dirname, "../src/vscode");
80
+ const files = ["extension.js"];
81
+
82
+ files.forEach(file => {
83
+ const srcFile = path.join(srcDir, file);
84
+ const destFile = path.join(extensionDir, file);
85
+
86
+ if (fs.existsSync(srcFile)) {
87
+ fs.copyFileSync(srcFile, destFile);
88
+ console.log(`✅ 复制文件: ${file}`);
89
+ } else {
90
+ console.log(`❌ 源文件不存在: ${srcFile}`);
91
+ }
92
+ });
93
+
94
+ // 复制 webview 目录
95
+ const webviewSrcDir = path.join(srcDir, "webview");
96
+ const webviewDestDir = path.join(extensionDir, "webview");
97
+
98
+ if (fs.existsSync(webviewSrcDir)) {
99
+ if (!fs.existsSync(webviewDestDir)) {
100
+ fs.mkdirSync(webviewDestDir, { recursive: true });
101
+ }
102
+
103
+ const panelFile = path.join(webviewSrcDir, "panel.js");
104
+ const panelDestFile = path.join(webviewDestDir, "panel.js");
105
+
106
+ if (fs.existsSync(panelFile)) {
107
+ fs.copyFileSync(panelFile, panelDestFile);
108
+ console.log("✅ 复制文件: webview/panel.js");
109
+ } else {
110
+ console.log("❌ 源文件不存在: webview/panel.js");
111
+ }
112
+ } else {
113
+ console.log("❌ webview 目录不存在:", webviewSrcDir);
114
+ }
115
+
116
+ // 创建 package.json
117
+ const packageJson = {
118
+ name: extensionName,
119
+ displayName: "Vue Page Generator",
120
+ description: "Generate Vue CRUD pages from Swagger API",
121
+ version: "0.0.1",
122
+ engines: {
123
+ vscode: "^1.60.0",
124
+ },
125
+ activationEvents: ["onCommand:vue-generator.createPage", "onCommand:vue-generator.test"],
126
+ main: "./extension.js",
127
+ contributes: {
128
+ commands: [
129
+ {
130
+ command: "vue-generator.createPage",
131
+ title: "Generate Vue Page",
132
+ category: "Vue Generator",
133
+ },
134
+ {
135
+ command: "vue-generator.test",
136
+ title: "Test Vue Generator",
137
+ category: "Vue Generator",
138
+ },
139
+ ],
140
+ menus: {
141
+ "explorer/context": [
142
+ {
143
+ command: "vue-generator.createPage",
144
+ group: "navigation",
145
+ when: "resourceExtname == .vue || resourceExtname == .js || resourceExtname == .ts || resourceExtname == .jsx || resourceExtname == .tsx",
146
+ },
147
+ ],
148
+ },
149
+ },
150
+ };
151
+
152
+ const packageJsonPath = path.join(extensionDir, "package.json");
153
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
154
+ console.log("✅ 创建文件: package.json");
155
+
156
+ console.log(`\n�� VSCode/Cursor 扩展安装成功!`);
157
+ console.log("请重启 Cursor 以激活扩展。");
158
+ console.log("安装位置:", extensionDir);
159
+
160
+ // 显示扩展目录内容
161
+ console.log("\n📁 扩展目录内容:");
162
+ const extensionFiles = fs.readdirSync(extensionDir);
163
+ extensionFiles.forEach(file => {
164
+ const filePath = path.join(extensionDir, file);
165
+ const stats = fs.statSync(filePath);
166
+ console.log(` - ${file} ${stats.isDirectory() ? "(目录)" : "(文件)"}`);
167
+ });
168
+
169
+ installed = true;
170
+ break;
64
171
  }
65
172
  }
66
173
 
67
- // 创建 package.json
68
- const packageJson = {
69
- name: extensionName,
70
- displayName: "Vue Page Generator",
71
- description: "Generate Vue CRUD pages from Swagger API",
72
- version: "0.0.1",
73
- engines: {
74
- vscode: "^1.60.0",
75
- },
76
- activationEvents: ["onCommand:vue-generator.createPage"],
77
- main: "./extension.js",
78
- contributes: {
79
- commands: [
80
- {
81
- command: "vue-generator.createPage",
82
- title: "Generate Vue Page",
83
- category: "Vue Generator",
84
- },
85
- ],
86
- menus: {
87
- "explorer/context": [
88
- {
89
- command: "vue-generator.createPage",
90
- group: "navigation",
91
- when: "resourceExtname == .vue || resourceExtname == .js",
92
- },
93
- ],
94
- },
95
- },
96
- };
97
-
98
- const packageJsonPath = path.join(extensionDir, "package.json");
99
- fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
100
- console.log("✅ 创建文件: package.json");
101
-
102
- console.log("\n�� VSCode 扩展安装成功!");
103
- console.log("请重启 VSCode 以激活扩展。");
104
- console.log("安装位置:", extensionDir);
174
+ if (!installed) {
175
+ console.log("\n❌ 未找到 VSCode 或 Cursor 扩展目录");
176
+ console.log("请确保已安装 VSCode 或 Cursor 编辑器。");
177
+ }
105
178
  } catch (error) {
106
179
  console.error("❌ 安装失败:", error.message);
180
+ console.error("错误详情:", error.stack);
107
181
  process.exit(1);
108
182
  }
109
183
  }
@@ -2,17 +2,31 @@ const vscode = require("vscode");
2
2
  const { GeneratorPanel } = require("./webview/panel");
3
3
 
4
4
  function activate(context) {
5
- console.log("Vue Page Generator is now active!");
5
+ console.log("�� Vue Page Generator is now active!");
6
+
7
+ // 显示通知确认扩展已激活
8
+ vscode.window.showInformationMessage("Vue Page Generator 扩展已激活!");
6
9
 
7
10
  // 注册右键菜单命令
8
11
  const disposable = vscode.commands.registerCommand("vue-generator.createPage", uri => {
12
+ console.log("命令被调用,URI:", uri);
13
+ vscode.window.showInformationMessage("Generate Vue Page 命令被调用!");
9
14
  GeneratorPanel.createOrShow(context.extensionUri, uri);
10
15
  });
11
16
 
12
17
  context.subscriptions.push(disposable);
18
+
19
+ // 注册一个测试命令
20
+ const testDisposable = vscode.commands.registerCommand("vue-generator.test", () => {
21
+ vscode.window.showInformationMessage("Vue Page Generator 测试命令工作正常!");
22
+ });
23
+
24
+ context.subscriptions.push(testDisposable);
13
25
  }
14
26
 
15
- function deactivate() {}
27
+ function deactivate() {
28
+ console.log("Vue Page Generator 扩展已停用");
29
+ }
16
30
 
17
31
  module.exports = {
18
32
  activate,