diff --git a/dist/providers/documentFormattingProvider.js b/dist/providers/documentFormattingProvider.js index 5dcb608..65f52a5 100644 --- a/dist/providers/documentFormattingProvider.js +++ b/dist/providers/documentFormattingProvider.js @@ -44,6 +44,12 @@ class DocumentFormattingProvider { * 提供整个文档的代码格式化功能 */ async provideDocumentFormattingEdits(document, options, token) { + // 检查配置项,如果未启用自动格式化则直接返回 + const config = vscode.workspace.getConfiguration('squirrel'); + const autoFormatOnType = config.get('autoFormatOnType', false); + if (!autoFormatOnType) { + return []; // 自动格式化未启用,返回空数组 + } const edits = []; try { // 获取文档全文 diff --git a/dist/providers/documentFormattingProvider.js.map b/dist/providers/documentFormattingProvider.js.map index dca7335..8074545 100644 --- a/dist/providers/documentFormattingProvider.js.map +++ b/dist/providers/documentFormattingProvider.js.map @@ -1 +1 @@ -{"version":3,"file":"documentFormattingProvider.js","sourceRoot":"","sources":["../../src/providers/documentFormattingProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,4DAAuE;AAEvE;;GAEG;AACH,MAAa,0BAA0B;IACnC;;OAEG;IACH,KAAK,CAAC,8BAA8B,CAChC,QAA6B,EAC7B,OAAiC,EACjC,KAA+B;QAE/B,MAAM,KAAK,GAAsB,EAAE,CAAC;QAEpC,IAAI,CAAC;YACD,SAAS;YACT,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAEpC,oBAAoB;YACpB,IAAI,CAAC,IAAA,+BAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,CAAC,0BAA0B;YAC5C,CAAC;YAED,uBAAuB;YACvB,MAAM,aAAa,GAAG,IAAA,6BAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEtD,wBAAwB;YACxB,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,gBAAgB;YAChB,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,KAAK,CAC9B,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EACtB,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CACvC,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;QAElE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACjC,0BAA0B;QAC9B,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA3CD,gEA2CC"} \ No newline at end of file +{"version":3,"file":"documentFormattingProvider.js","sourceRoot":"","sources":["../../src/providers/documentFormattingProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,4DAAuE;AAEvE;;GAEG;AACH,MAAa,0BAA0B;IACnC;;OAEG;IACH,KAAK,CAAC,8BAA8B,CAChC,QAA6B,EAC7B,OAAiC,EACjC,KAA+B;QAE/B,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAU,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAExE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,iBAAiB;QAChC,CAAC;QAED,MAAM,KAAK,GAAsB,EAAE,CAAC;QAEpC,IAAI,CAAC;YACD,SAAS;YACT,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAEpC,oBAAoB;YACpB,IAAI,CAAC,IAAA,+BAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,CAAC,0BAA0B;YAC5C,CAAC;YAED,uBAAuB;YACvB,MAAM,aAAa,GAAG,IAAA,6BAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEtD,wBAAwB;YACxB,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,gBAAgB;YAChB,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,KAAK,CAC9B,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EACtB,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CACvC,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;QAElE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACjC,0BAA0B;QAC9B,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAnDD,gEAmDC"} \ No newline at end of file diff --git a/dist/providers/onTypeFormattingProvider.js b/dist/providers/onTypeFormattingProvider.js index 684686a..8ff9097 100644 --- a/dist/providers/onTypeFormattingProvider.js +++ b/dist/providers/onTypeFormattingProvider.js @@ -44,6 +44,12 @@ class OnTypeFormattingProvider { * 在用户输入特定字符时自动格式化代码 */ async provideOnTypeFormattingEdits(document, position, ch, options, token) { + // 检查配置项,如果未启用自动格式化则直接返回 + const config = vscode.workspace.getConfiguration('squirrel'); + const autoFormatOnType = config.get('autoFormatOnType', false); + if (!autoFormatOnType) { + return []; // 自动格式化未启用,返回空数组 + } const edits = []; try { // 获取文档全文 diff --git a/dist/providers/onTypeFormattingProvider.js.map b/dist/providers/onTypeFormattingProvider.js.map index bbc9472..7b4f59f 100644 --- a/dist/providers/onTypeFormattingProvider.js.map +++ b/dist/providers/onTypeFormattingProvider.js.map @@ -1 +1 @@ -{"version":3,"file":"onTypeFormattingProvider.js","sourceRoot":"","sources":["../../src/providers/onTypeFormattingProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,4DAAuE;AAEvE;;GAEG;AACH,MAAa,wBAAwB;IACjC;;OAEG;IACH,KAAK,CAAC,4BAA4B,CAC9B,QAA6B,EAC7B,QAAyB,EACzB,EAAU,EACV,OAAiC,EACjC,KAA+B;QAE/B,MAAM,KAAK,GAAsB,EAAE,CAAC;QAEpC,IAAI,CAAC;YACD,SAAS;YACT,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAEpC,oBAAoB;YACpB,IAAI,CAAC,IAAA,+BAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,CAAC,0BAA0B;YAC5C,CAAC;YAED,uBAAuB;YACvB,MAAM,aAAa,GAAG,IAAA,6BAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEtD,wBAAwB;YACxB,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,gBAAgB;YAChB,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,KAAK,CAC9B,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EACtB,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CACvC,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;QAElE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAClC,0BAA0B;QAC9B,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA7CD,4DA6CC"} \ No newline at end of file +{"version":3,"file":"onTypeFormattingProvider.js","sourceRoot":"","sources":["../../src/providers/onTypeFormattingProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,4DAAuE;AAEvE;;GAEG;AACH,MAAa,wBAAwB;IACjC;;OAEG;IACH,KAAK,CAAC,4BAA4B,CAC9B,QAA6B,EAC7B,QAAyB,EACzB,EAAU,EACV,OAAiC,EACjC,KAA+B;QAE/B,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAU,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAExE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,iBAAiB;QAChC,CAAC;QAED,MAAM,KAAK,GAAsB,EAAE,CAAC;QAEpC,IAAI,CAAC;YACD,SAAS;YACT,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAEpC,oBAAoB;YACpB,IAAI,CAAC,IAAA,+BAAc,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,CAAC,0BAA0B;YAC5C,CAAC;YAED,uBAAuB;YACvB,MAAM,aAAa,GAAG,IAAA,6BAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEtD,wBAAwB;YACxB,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,gBAAgB;YAChB,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,KAAK,CAC9B,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EACtB,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CACvC,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;QAElE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAClC,0BAA0B;QAC9B,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AArDD,4DAqDC"} \ No newline at end of file diff --git a/package.json b/package.json index 6c56890..4c91a2b 100644 --- a/package.json +++ b/package.json @@ -127,6 +127,11 @@ "type": "number", "default": 26000, "description": "本地C++服务端口,用于发送保存的NUT文件" + }, + "squirrel.autoFormatOnType": { + "type": "boolean", + "default": false, + "description": "是否在编辑时自动格式化代码" } } } diff --git a/src/providers/documentFormattingProvider.ts b/src/providers/documentFormattingProvider.ts index ca13dc7..d5a0f21 100644 --- a/src/providers/documentFormattingProvider.ts +++ b/src/providers/documentFormattingProvider.ts @@ -13,6 +13,14 @@ export class DocumentFormattingProvider implements vscode.DocumentFormattingEdit options: vscode.FormattingOptions, token: vscode.CancellationToken ): Promise { + // 检查配置项,如果未启用自动格式化则直接返回 + const config = vscode.workspace.getConfiguration('squirrel'); + const autoFormatOnType = config.get('autoFormatOnType', false); + + if (!autoFormatOnType) { + return []; // 自动格式化未启用,返回空数组 + } + const edits: vscode.TextEdit[] = []; try { diff --git a/src/providers/onTypeFormattingProvider.ts b/src/providers/onTypeFormattingProvider.ts index f9e8a7b..bc0ffed 100644 --- a/src/providers/onTypeFormattingProvider.ts +++ b/src/providers/onTypeFormattingProvider.ts @@ -15,6 +15,14 @@ export class OnTypeFormattingProvider implements vscode.OnTypeFormattingEditProv options: vscode.FormattingOptions, token: vscode.CancellationToken ): Promise { + // 检查配置项,如果未启用自动格式化则直接返回 + const config = vscode.workspace.getConfiguration('squirrel'); + const autoFormatOnType = config.get('autoFormatOnType', false); + + if (!autoFormatOnType) { + return []; // 自动格式化未启用,返回空数组 + } + const edits: vscode.TextEdit[] = []; try {