Skip to content

Commit

Permalink
🧪 add workspace test
Browse files Browse the repository at this point in the history
  • Loading branch information
xsro committed Nov 1, 2021
1 parent f7b804c commit 752f09d
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 15 deletions.
4 changes: 4 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@
"single file",
"workspace"
],
"markdownEnumDescriptions": [
"%config.mode.singleFile%",
"%config.mode.workspace%"
],
"markdownDescription": "choose working Mode"
},
"masmtasm.ASM.assembler": {
Expand Down
2 changes: 2 additions & 0 deletions package.nls.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
"editor.runAsm": "Run ASM code",
"editor.debugAsm": "Debug ASM code",
"command.cleanalldianose": "MASM/TASM: Clean all diagnose information generated by the extension",
"config.mode.singleFile": "copy your file to a seperate space, and do actions there",
"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",
"config.assembler.description": "use TASM or MASM to operate your assembly codes",
"config.emulator.description": "DOS environment emulator",
"config.emulator.jsdos": "Use jsdos(wdosbox), run in webview",
Expand Down
2 changes: 2 additions & 0 deletions package.nls.zh-cn.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
"editor.runAsm": "运行当前程序(汇编+链接+运行)",
"editor.debugAsm": "调试当前程序(汇编+链接+调试)",
"command.cleanalldianose": "MASM/TASM: 清除MASM/TASM的所有问题信息",
"config.mode.singleFile": "针对所有代码存储在一个文件中的模式,插件会首先复制文件并对副本进行操作",
"config.mode.workspace": "针对文件存在依赖的模式,插件会直接在当前工作文件夹中操作。\n\n- dosbox会直接在工作区文件夹挂载,jsdos会复制整个工作区所有文件\n- 注意DOS系统常常需要遵守8.3规则",
"config.assembler.description": "选择使用的汇编工具",
"config.emulator.description": "选择使用的DOS环境模拟器",
"config.emulator.jsdos": "使用jsdos在webview中运行jsdos(wdosbox)来提供DOS环境",
Expand Down
32 changes: 17 additions & 15 deletions src/ASM/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -538,22 +538,24 @@ export async function activate(context: vscode.ExtensionContext) {
};
}

const mode = vscode.workspace.getConfiguration('masmtasm').get('ASM.mode');
let workingMode = singleFileMode;
switch (mode) {
case "workspace":
workingMode = workspaceMode;
break;
case "single file":
workingMode = singleFileMode;
const msg = logger.localize("ASM.singleFileMode", seperateSpaceFolder.fsPath);
logger.channel(msg);
break;
}
const workingMode = () => {
const mode = conf.extConf._conf.get("ASM.mode");
switch (mode) {
case "workspace":
return workspaceMode;
break;
case "single file":
default:
const msg = logger.localize("ASM.singleFileMode", seperateSpaceFolder.fsPath);
logger.channel(msg);
return singleFileMode;
break;
}
};

context.subscriptions.push(
vscode.commands.registerCommand('masm-tasm.openEmulator', (uri: vscode.Uri) => workingMode(conf.actionType.open, uri)),
vscode.commands.registerCommand('masm-tasm.runASM', (uri: vscode.Uri) => workingMode(conf.actionType.run, uri)),
vscode.commands.registerCommand('masm-tasm.debugASM', (uri: vscode.Uri) => workingMode(conf.actionType.debug, uri))
vscode.commands.registerCommand('masm-tasm.openEmulator', (uri: vscode.Uri) => workingMode()(conf.actionType.open, uri)),
vscode.commands.registerCommand('masm-tasm.runASM', (uri: vscode.Uri) => workingMode()(conf.actionType.run, uri)),
vscode.commands.registerCommand('masm-tasm.debugASM', (uri: vscode.Uri) => workingMode()(conf.actionType.debug, uri))
);
}
3 changes: 3 additions & 0 deletions src/utils/configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ export enum actionType {
import * as vscode from 'vscode';

class ExtensionConfiguration {
public get _conf() {
return vscode.workspace.getConfiguration('masmtasm');
}
public get asmType(): Assembler {
const asmType: Assembler | undefined = vscode.workspace.getConfiguration('masmtasm').get('ASM.assembler');
if (asmType === 'MASM') {
Expand Down

0 comments on commit 752f09d

Please sign in to comment.