From a26baaf66a3ae4f66c15ef831beed40d4f512ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9D=BF=20=E5=AE=89?= Date: Fri, 3 Oct 2025 20:48:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E9=85=8D=E7=BD=AE=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E8=87=AA=E5=8A=A8=E6=A0=BC=E5=BC=8F=E5=8C=96=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在onTypeFormattingProvider.ts中添加配置检查,根据squirrel.autoFormatOnType配置项决定是否执行输入时自动格式化 - 在documentFormattingProvider.ts中添加配置检查,根据squirrel.autoFormatOnType配置项决定是否执行文档格式化 - 保持配置项的默认值为false(禁用),用户需主动启用此功能 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- dist/providers/documentFormattingProvider.js | 6 ++++++ dist/providers/documentFormattingProvider.js.map | 2 +- dist/providers/onTypeFormattingProvider.js | 6 ++++++ dist/providers/onTypeFormattingProvider.js.map | 2 +- package.json | 5 +++++ src/providers/documentFormattingProvider.ts | 8 ++++++++ src/providers/onTypeFormattingProvider.ts | 8 ++++++++ 7 files changed, 35 insertions(+), 2 deletions(-) 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 {