diff --git a/dist/extension.js b/dist/extension.js index fbdd4f7..506a9d4 100644 --- a/dist/extension.js +++ b/dist/extension.js @@ -49,7 +49,6 @@ const onTypeFormattingProvider_1 = require("./providers/onTypeFormattingProvider const documentFormattingProvider_1 = require("./providers/documentFormattingProvider"); const codeErrorProvider_1 = require("./providers/codeErrorProvider"); const apiParser_1 = require("./providers/apiParser"); -const localClient_1 = require("./localClient"); function activate(context) { console.log('Squirrel NUT Explorer 正在激活...'); // 初始化API解析器 @@ -133,50 +132,11 @@ function activate(context) { const saveListener = vscode.workspace.onDidSaveTextDocument(async (doc) => { if (doc.uri.scheme === 'squirrel') { const filePath = doc.uri.path.substring(1); // 去掉开头的 '/' - const fileContent = doc.getText(); - // 检查C++服务是否可连接 - const isCppServiceConnected = await (0, localClient_1.checkCppServiceConnection)(); - if (isCppServiceConnected) { - output.appendLine('[Squirrel] C++服务可连接,尝试发送文件内容'); - try { - const sendSuccess = await (0, localClient_1.sendFileToCppService)(filePath, fileContent); - if (sendSuccess) { - output.appendLine(`[Squirrel] 文件 ${filePath} 已发送到C++服务`); - // C++服务返回200后,继续执行保存到服务器 - const success = await model.saveFileContent(filePath, fileContent); - if (success) { - output.appendLine(`[Squirrel] 文件 ${filePath} 保存成功`); - provider.refresh(); - // 更新函数缓存 - await functionExtractor.updateFileCache(model, filePath); - } - else { - output.appendLine(`[Squirrel] 文件 ${filePath} 保存到服务器失败`); - } - } - else { - output.appendLine(`[Squirrel] 文件 ${filePath} 发送到C++服务失败,跳过保存到服务器`); - } - } - catch (error) { - output.appendLine(`[Squirrel] 发送文件到C++服务时发生错误: ${error}`); - output.appendLine(`[Squirrel] 跳过保存文件 ${filePath} 到服务器`); - } - } - else { - output.appendLine('[Squirrel] C++服务不可连接,直接保存到服务器'); - // C++服务不可连接,直接保存到服务器 - const success = await model.saveFileContent(filePath, fileContent); - if (success) { - output.appendLine(`[Squirrel] 文件 ${filePath} 保存成功`); - provider.refresh(); - // 更新函数缓存 - await functionExtractor.updateFileCache(model, filePath); - } - else { - output.appendLine(`[Squirrel] 文件 ${filePath} 保存到服务器失败`); - } - } + // 当文件保存成功后执行UI更新和缓存更新 + output.appendLine(`[Squirrel] 文件 ${filePath} 已保存到服务器`); + provider.refresh(); + // 更新函数缓存 + await functionExtractor.updateFileCache(model, filePath); } }); // 注册文件关闭事件以清理缓存 diff --git a/dist/extension.js.map b/dist/extension.js.map index 17d035c..a142e37 100644 --- a/dist/extension.js.map +++ b/dist/extension.js.map @@ -1 +1 @@ -{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/model.js b/dist/model.js index dbd12a6..73db335 100644 --- a/dist/model.js +++ b/dist/model.js @@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.FileModel = void 0; const vscode = __importStar(require("vscode")); const apiClient_1 = require("./apiClient"); +const localClient_1 = require("./localClient"); class FileModel { constructor() { this.fileList = new Map(); @@ -185,19 +186,60 @@ class FileModel { } // 保存文件内容 async saveFileContent(filePath, content) { - try { - const success = await this.apiClient.uploadFileContent(filePath, content); - if (success) { - const entry = this.fileList.get(filePath); - if (entry) { - entry.content = content; - entry.lastLoaded = new Date(); + // 先检查C++服务是否可连接 + const isCppServiceConnected = await (0, localClient_1.checkCppServiceConnection)(); + if (isCppServiceConnected) { + // C++服务可连接,先发送进行编译验证 + try { + const sendSuccess = await (0, localClient_1.sendFileToCppService)(filePath, content); + if (sendSuccess) { + // C++编译服务返回200,说明脚本编译通过,允许上传 + const success = await this.apiClient.uploadFileContent(filePath, content); + if (success) { + const entry = this.fileList.get(filePath); + if (entry) { + entry.content = content; + entry.lastLoaded = new Date(); + } + return true; + } + } + else { + // C++编译服务返回非200,说明脚本存在问题,不允许上传 + vscode.window.showErrorMessage(`脚本编译失败,无法保存文件 ${filePath}。请检查代码错误后再试。`); + return false; + } + } + catch (error) { + // 向C++服务发送文件过程中出现错误 + vscode.window.showErrorMessage(`发送文件到编译服务时出错: ${error},但仍尝试直接保存文件`); + const success = await this.apiClient.uploadFileContent(filePath, content); + if (success) { + const entry = this.fileList.get(filePath); + if (entry) { + entry.content = content; + entry.lastLoaded = new Date(); + } + return true; } - return true; } } - catch (error) { - vscode.window.showErrorMessage(`保存文件失败: ${error}`); + else { + // C++服务不可连接,直接执行上传 + try { + const success = await this.apiClient.uploadFileContent(filePath, content); + if (success) { + const entry = this.fileList.get(filePath); + if (entry) { + entry.content = content; + entry.lastLoaded = new Date(); + } + return true; + } + } + catch (error) { + vscode.window.showErrorMessage(`保存文件失败: ${error}`); + } } return false; } diff --git a/dist/model.js.map b/dist/model.js.map index a5ecc77..d8ee5c1 100644 --- a/dist/model.js.map +++ b/dist/model.js.map @@ -1 +1 @@ -{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index d8fc10f..afb7ccf 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -141,54 +141,13 @@ export function activate(context: vscode.ExtensionContext) { const saveListener = vscode.workspace.onDidSaveTextDocument(async (doc) => { if (doc.uri.scheme === 'squirrel') { const filePath = doc.uri.path.substring(1); // 去掉开头的 '/' - const fileContent = doc.getText(); - // 检查C++服务是否可连接 - const isCppServiceConnected = await checkCppServiceConnection(); + // 当文件保存成功后执行UI更新和缓存更新 + output.appendLine(`[Squirrel] 文件 ${filePath} 已保存到服务器`); + provider.refresh(); - if (isCppServiceConnected) { - output.appendLine('[Squirrel] C++服务可连接,尝试发送文件内容'); - - try { - const sendSuccess = await sendFileToCppService(filePath, fileContent); - if (sendSuccess) { - output.appendLine(`[Squirrel] 文件 ${filePath} 已发送到C++服务`); - - // C++服务返回200后,继续执行保存到服务器 - const success = await model.saveFileContent(filePath, fileContent); - - if (success) { - output.appendLine(`[Squirrel] 文件 ${filePath} 保存成功`); - provider.refresh(); - - // 更新函数缓存 - await functionExtractor.updateFileCache(model, filePath); - } else { - output.appendLine(`[Squirrel] 文件 ${filePath} 保存到服务器失败`); - } - } else { - output.appendLine(`[Squirrel] 文件 ${filePath} 发送到C++服务失败,跳过保存到服务器`); - } - } catch (error) { - output.appendLine(`[Squirrel] 发送文件到C++服务时发生错误: ${error}`); - output.appendLine(`[Squirrel] 跳过保存文件 ${filePath} 到服务器`); - } - } else { - output.appendLine('[Squirrel] C++服务不可连接,直接保存到服务器'); - - // C++服务不可连接,直接保存到服务器 - const success = await model.saveFileContent(filePath, fileContent); - - if (success) { - output.appendLine(`[Squirrel] 文件 ${filePath} 保存成功`); - provider.refresh(); - - // 更新函数缓存 - await functionExtractor.updateFileCache(model, filePath); - } else { - output.appendLine(`[Squirrel] 文件 ${filePath} 保存到服务器失败`); - } - } + // 更新函数缓存 + await functionExtractor.updateFileCache(model, filePath); } }); diff --git a/src/model.ts b/src/model.ts index 616c5cb..2844b19 100644 --- a/src/model.ts +++ b/src/model.ts @@ -1,5 +1,6 @@ import * as vscode from 'vscode'; import { ApiClient } from './apiClient'; +import { checkCppServiceConnection, sendFileToCppService } from './localClient'; export interface FileEntry { key: string; // 文件路径 @@ -183,19 +184,57 @@ export class FileModel { // 保存文件内容 async saveFileContent(filePath: string, content: string): Promise { - try { - const success = await this.apiClient.uploadFileContent(filePath, content); + // 先检查C++服务是否可连接 + const isCppServiceConnected = await checkCppServiceConnection(); - if (success) { - const entry = this.fileList.get(filePath); - if (entry) { - entry.content = content; - entry.lastLoaded = new Date(); + if (isCppServiceConnected) { + // C++服务可连接,先发送进行编译验证 + try { + const sendSuccess = await sendFileToCppService(filePath, content); + if (sendSuccess) { + // C++编译服务返回200,说明脚本编译通过,允许上传 + const success = await this.apiClient.uploadFileContent(filePath, content); + if (success) { + const entry = this.fileList.get(filePath); + if (entry) { + entry.content = content; + entry.lastLoaded = new Date(); + } + return true; + } + } else { + // C++编译服务返回非200,说明脚本存在问题,不允许上传 + vscode.window.showErrorMessage(`脚本编译失败,无法保存文件 ${filePath}。请检查代码错误后再试。`); + return false; + } + } catch (error) { + // 向C++服务发送文件过程中出现错误 + vscode.window.showErrorMessage(`发送文件到编译服务时出错: ${error},但仍尝试直接保存文件`); + const success = await this.apiClient.uploadFileContent(filePath, content); + if (success) { + const entry = this.fileList.get(filePath); + if (entry) { + entry.content = content; + entry.lastLoaded = new Date(); + } + return true; } - return true; } - } catch (error) { - vscode.window.showErrorMessage(`保存文件失败: ${error}`); + } else { + // C++服务不可连接,直接执行上传 + try { + const success = await this.apiClient.uploadFileContent(filePath, content); + if (success) { + const entry = this.fileList.get(filePath); + if (entry) { + entry.content = content; + entry.lastLoaded = new Date(); + } + return true; + } + } catch (error) { + vscode.window.showErrorMessage(`保存文件失败: ${error}`); + } } return false;