Skip to content

Commit 752f09d

Browse files
committed
🧪 add workspace test
1 parent f7b804c commit 752f09d

File tree

5 files changed

+28
-15
lines changed

5 files changed

+28
-15
lines changed

package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,10 @@
114114
"single file",
115115
"workspace"
116116
],
117+
"markdownEnumDescriptions": [
118+
"%config.mode.singleFile%",
119+
"%config.mode.workspace%"
120+
],
117121
"markdownDescription": "choose working Mode"
118122
},
119123
"masmtasm.ASM.assembler": {

package.nls.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
"editor.runAsm": "Run ASM code",
44
"editor.debugAsm": "Debug ASM code",
55
"command.cleanalldianose": "MASM/TASM: Clean all diagnose information generated by the extension",
6+
"config.mode.singleFile": "copy your file to a seperate space, and do actions there",
7+
"config.mode.workspace": "do actions in the current workspace folder\n\n- use `mount` for dosbox and dosbox-x,copy all files in workspace folder for jsdos\n- follow 8.3 filename rule",
68
"config.assembler.description": "use TASM or MASM to operate your assembly codes",
79
"config.emulator.description": "DOS environment emulator",
810
"config.emulator.jsdos": "Use jsdos(wdosbox), run in webview",

package.nls.zh-cn.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
"editor.runAsm": "运行当前程序(汇编+链接+运行)",
44
"editor.debugAsm": "调试当前程序(汇编+链接+调试)",
55
"command.cleanalldianose": "MASM/TASM: 清除MASM/TASM的所有问题信息",
6+
"config.mode.singleFile": "针对所有代码存储在一个文件中的模式,插件会首先复制文件并对副本进行操作",
7+
"config.mode.workspace": "针对文件存在依赖的模式,插件会直接在当前工作文件夹中操作。\n\n- dosbox会直接在工作区文件夹挂载,jsdos会复制整个工作区所有文件\n- 注意DOS系统常常需要遵守8.3规则",
68
"config.assembler.description": "选择使用的汇编工具",
79
"config.emulator.description": "选择使用的DOS环境模拟器",
810
"config.emulator.jsdos": "使用jsdos在webview中运行jsdos(wdosbox)来提供DOS环境",

src/ASM/main.ts

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -538,22 +538,24 @@ export async function activate(context: vscode.ExtensionContext) {
538538
};
539539
}
540540

541-
const mode = vscode.workspace.getConfiguration('masmtasm').get('ASM.mode');
542-
let workingMode = singleFileMode;
543-
switch (mode) {
544-
case "workspace":
545-
workingMode = workspaceMode;
546-
break;
547-
case "single file":
548-
workingMode = singleFileMode;
549-
const msg = logger.localize("ASM.singleFileMode", seperateSpaceFolder.fsPath);
550-
logger.channel(msg);
551-
break;
552-
}
541+
const workingMode = () => {
542+
const mode = conf.extConf._conf.get("ASM.mode");
543+
switch (mode) {
544+
case "workspace":
545+
return workspaceMode;
546+
break;
547+
case "single file":
548+
default:
549+
const msg = logger.localize("ASM.singleFileMode", seperateSpaceFolder.fsPath);
550+
logger.channel(msg);
551+
return singleFileMode;
552+
break;
553+
}
554+
};
553555

554556
context.subscriptions.push(
555-
vscode.commands.registerCommand('masm-tasm.openEmulator', (uri: vscode.Uri) => workingMode(conf.actionType.open, uri)),
556-
vscode.commands.registerCommand('masm-tasm.runASM', (uri: vscode.Uri) => workingMode(conf.actionType.run, uri)),
557-
vscode.commands.registerCommand('masm-tasm.debugASM', (uri: vscode.Uri) => workingMode(conf.actionType.debug, uri))
557+
vscode.commands.registerCommand('masm-tasm.openEmulator', (uri: vscode.Uri) => workingMode()(conf.actionType.open, uri)),
558+
vscode.commands.registerCommand('masm-tasm.runASM', (uri: vscode.Uri) => workingMode()(conf.actionType.run, uri)),
559+
vscode.commands.registerCommand('masm-tasm.debugASM', (uri: vscode.Uri) => workingMode()(conf.actionType.debug, uri))
558560
);
559561
}

src/utils/configuration.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ export enum actionType {
3131
import * as vscode from 'vscode';
3232

3333
class ExtensionConfiguration {
34+
public get _conf() {
35+
return vscode.workspace.getConfiguration('masmtasm');
36+
}
3437
public get asmType(): Assembler {
3538
const asmType: Assembler | undefined = vscode.workspace.getConfiguration('masmtasm').get('ASM.assembler');
3639
if (asmType === 'MASM') {

0 commit comments

Comments
 (0)