|
1 | 1 | import vscode, { l10n } from 'vscode'; |
2 | 2 |
|
3 | | -// class ReloadOptions { |
4 | | -// message = ''; |
5 | | -// btnReload = l10n.t('Reload vscode'); |
6 | | -// beforeReload?: () => void | Promise<void>; |
7 | | -// } |
| 3 | +class ReloadOptions { |
| 4 | + /** reload 提示内容 */ |
| 5 | + message = ''; |
| 6 | + /** reload 按钮文案 */ |
| 7 | + btnReload = l10n.t('Reload vscode'); |
| 8 | + /** reload 前置动作 */ |
| 9 | + beforeReload?: () => any; |
| 10 | +} |
8 | 11 |
|
9 | 12 | export const vsHelp = { |
10 | | - // async reload(options: Partial<ReloadOptions> = {}): Promise<void> { |
11 | | - // // 填充默认值 |
12 | | - // options = { |
13 | | - // ...new ReloadOptions(), |
14 | | - // ...options |
15 | | - // }; |
16 | | - // // 如果需要确认 |
17 | | - // if (options.message) { |
18 | | - // const goon = await vscode.window.showInformationMessage(options.message, { title: options.btnReload! }); |
19 | | - // // 关闭了 提示框 |
20 | | - // if (!goon) { |
21 | | - // return Promise.resolve(); |
22 | | - // } |
23 | | - |
24 | | - // if (options.beforeReload) { |
25 | | - // await options.beforeReload(); |
26 | | - // } |
27 | | - // } |
28 | | - // return vscode.commands.executeCommand('workbench.action.reloadWindow'); |
29 | | - // }, |
30 | 13 | /** |
31 | | - * 提示内容并重载 |
| 14 | + * 重新加载 vscode |
32 | 15 | * |
33 | | - * @param {string} message 提示内容 |
34 | | - * @returns {Thenable<void>} |
| 16 | + * @param {Partial<ReloadOptions>} [options={}] 定义重新加载的相关配置 |
| 17 | + * @return {*} {Promise<void>} |
35 | 18 | */ |
36 | | - showInfoReload(message: string): Thenable<void> { |
37 | | - return vscode.window.showInformationMessage(message, { title: l10n.t('Reload vscode') }).then(function (item) { |
38 | | - if (!item) return; |
39 | | - vscode.commands.executeCommand('workbench.action.reloadWindow'); |
40 | | - }); |
| 19 | + async reload(options: Partial<ReloadOptions> = {}): Promise<void> { |
| 20 | + // 填充默认值 |
| 21 | + options = { |
| 22 | + ...new ReloadOptions(), |
| 23 | + ...options |
| 24 | + }; |
| 25 | + // 如果需要确认 |
| 26 | + if (options.message) { |
| 27 | + const goon = await vscode.window.showInformationMessage(options.message, { title: options.btnReload! }); |
| 28 | + // 关闭了 提示框 |
| 29 | + if (!goon) { |
| 30 | + return Promise.resolve(); |
| 31 | + } |
| 32 | + // 关闭前置动作 |
| 33 | + await options.beforeReload?.(); |
| 34 | + } |
| 35 | + return vscode.commands.executeCommand('workbench.action.reloadWindow'); |
41 | 36 | } |
42 | 37 | }; |
0 commit comments