From 31475aa2433e7f93f93130979a08a8746405e4b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9D=BF=20=E5=AE=89?= Date: Wed, 22 Oct 2025 10:55:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A0=BC=E5=BC=8F=E5=8C=96?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=B8=AD=E7=9A=84=E8=87=AA=E5=8A=A8=E6=8D=A2?= =?UTF-8?q?=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 113 ------- dist/utils/beautifyHelper.js | 41 ++- dist/utils/beautifyHelper.js.map | 2 +- package.json | 9 +- ...1.vsix => squirrel-nut-explorer-1.1.4.vsix | Bin 136341 -> 135127 bytes src/utils/beautifyHelper.ts | 8 +- 客户端.cpp | 41 --- 新库函数示范.json | 277 ------------------ 第三方API.md | 71 ----- 9 files changed, 54 insertions(+), 508 deletions(-) delete mode 100644 CLAUDE.md rename squirrel-nut-explorer-1.1.1.vsix => squirrel-nut-explorer-1.1.4.vsix (89%) delete mode 100644 客户端.cpp delete mode 100644 新库函数示范.json delete mode 100644 第三方API.md diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index e407efc..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,113 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Project Overview - -Squirrel NUT Explorer is a VS Code extension for browsing and editing NUT (Squirrel script) files through the pvfUtility API. The extension provides comprehensive language support features including code completion, hover information, definition jumping, function signature help, code formatting, and error detection. - -## Build Commands - -```bash -# Install dependencies -npm install - -# Compile TypeScript -npm run compile - -# Watch mode compilation -npm run watch - -# Build project -npm run build - -# VS Code pre-publish build -npm run vscode:prepublish -``` - -## High-Level Architecture - -### Core Components - -1. **Extension Entry Point** (`src/extension.ts`): - - Registers all providers and commands - - Initializes core services and manages extension lifecycle - -2. **Data Model** (`src/model.ts`): - - `FileModel` class manages file state, content, and API communication - - Handles connection to pvfUtility API and file operations - - Manages file list and content caching - -3. **Tree View Provider** (`src/provider.ts`): - - Implements `vscode.TreeDataProvider` for displaying files in the explorer view - - Manages UI representation of files and folders - -4. **File System Provider** (`src/fileSystemProvider.ts`): - - Implements `vscode.FileSystemProvider` for virtual file handling - - Bridges VS Code file operations with pvfUtility API - -### Language Feature Providers (`src/providers/`) - -1. **Completion Provider** (`src/providers/completionProvider.ts`): - - Provides code completion for functions, keywords, constants, and variables - - Includes both basic completion and dot notation completion for object methods - -2. **Hover Provider** (`src/providers/hoverProvider.ts`): - - Shows detailed information when hovering over code elements - - Displays function signatures, descriptions, and parameter details - -3. **Definition Provider** (`src/providers/definitionProvider.ts`): - - Enables "Go to Definition" functionality for cross-file function references - -4. **Signature Help Provider** (`src/providers/signatureHelpProvider.ts`): - - Shows function parameter information during typing - -5. **Formatting Providers** (`src/providers/onTypeFormattingProvider.ts`, `src/providers/documentFormattingProvider.ts`): - - Handle code formatting on type and document formatting - -6. **Code Error Provider** (`src/providers/codeErrorProvider.ts`): - - Implements code diagnostics and quick fixes - -### Core Functionality Modules - -1. **Function Extractor** (`src/functionExtractor.ts`): - - Parses NUT files to extract function definitions - - Manages function caching for performance - - Provides cross-file function reference capabilities - -2. **API Client** (`src/apiClient.ts`): - - Handles all HTTP communication with pvfUtility API - - Manages file listing, content retrieval, and file saving - -3. **API Parser** (`src/providers/apiParser.ts`): - - Provides built-in Squirrel language documentation - - Manages API functions, classes, and constants information - -## Key Dependencies - -- **VS Code API**: Foundation for extension development -- **TypeScript**: Development language -- **Node.js HTTP/HTTPS modules**: For API communication (no external HTTP libraries) - -## Configuration Options - -The extension provides these configuration options: - -- `squirrel.api.baseUrl`: pvfUtility API base URL (default: http://localhost) -- `squirrel.api.port`: pvfUtility API port (default: 8080) -- `squirrel.defaultDirectory`: Default directory to browse (default: sqr) -- `squirrel.nutEncoding`: NUT file encoding type (default: UTF8) - -## Development Notes - -1. **Caching Mechanism**: FunctionExtractor uses caching to improve performance. File caches are updated when files are saved. - -2. **Batch Processing**: Files are processed in batches to prevent memory overflow and blocking. - -3. **Error Handling**: All API calls include exception handling to ensure extension stability. - -4. **Chinese Support**: The project primarily uses Chinese for UI and comments, maintaining consistency in code documentation. - -5. **Virtual File System**: The extension uses VS Code's virtual file system API to provide a seamless editing experience for remote files. - -6. **Performance Monitoring**: Function extraction includes performance monitoring to track efficiency. \ No newline at end of file diff --git a/dist/utils/beautifyHelper.js b/dist/utils/beautifyHelper.js index 7e8537a..f55369a 100644 --- a/dist/utils/beautifyHelper.js +++ b/dist/utils/beautifyHelper.js @@ -1,8 +1,42 @@ "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.getSquirrelBeautifyOptions = getSquirrelBeautifyOptions; exports.beautifyCode = beautifyCode; exports.isSquirrelCode = isSquirrelCode; +const vscode = __importStar(require("vscode")); // 由于 js-beautify.js 文件体积较大且复杂,我们将创建专门的存根函数 // 将使用原生的 js-beautify 功能 let _jsBeauifyInstance = null; @@ -74,7 +108,7 @@ function createBasicJsBeautify() { brace_style: 'collapse', space_before_conditional: true, space_after_anon_function: false, - wrap_line_length: 120, + wrap_line_length: 0, // 默认禁用自动换行 end_with_newline: false }; // 合并选项 @@ -139,6 +173,9 @@ const jsBeautify = { * Squirrel 语言的 js-beautify 选项配置 */ function getSquirrelBeautifyOptions(options) { + // 从用户配置中读取换行长度设置 + const config = vscode.workspace.getConfiguration('squirrel.formatting'); + const wrapLineLength = config.get('wrapLineLength', 0); return { indent_size: options.tabSize, indent_char: options.insertSpaces ? ' ' : '\t', @@ -149,7 +186,7 @@ function getSquirrelBeautifyOptions(options) { space_before_conditional: true, space_after_anon_function: false, unescape_strings: false, - wrap_line_length: 120, + wrap_line_length: wrapLineLength, end_with_newline: false }; } diff --git a/dist/utils/beautifyHelper.js.map b/dist/utils/beautifyHelper.js.map index 83c0bc5..b0403ec 100644 --- a/dist/utils/beautifyHelper.js.map +++ b/dist/utils/beautifyHelper.js.map @@ -1 +1 @@ -{"version":3,"file":"beautifyHelper.js","sourceRoot":"","sources":["../../src/utils/beautifyHelper.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"beautifyHelper.js","sourceRoot":"","sources":["../../src/utils/beautifyHelper.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 4c91a2b..6a26cf9 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "squirrel-nut-explorer", "displayName": "Squirrel NUT Explorer", "description": "通过 pvfUtility API 浏览和编辑 NUT 文件", - "version": "1.1.1", + "version": "1.1.4", "publisher": "local", "engines": { "vscode": "^1.99.0" @@ -132,6 +132,13 @@ "type": "boolean", "default": false, "description": "是否在编辑时自动格式化代码" + }, + "squirrel.formatting.wrapLineLength": { + "type": "number", + "default": 0, + "description": "代码格式化时的最大行长度,超过此长度会自动换行。设置为 0 表示禁用自动换行", + "minimum": 0, + "maximum": 500 } } } diff --git a/squirrel-nut-explorer-1.1.1.vsix b/squirrel-nut-explorer-1.1.4.vsix similarity index 89% rename from squirrel-nut-explorer-1.1.1.vsix rename to squirrel-nut-explorer-1.1.4.vsix index 2a6a885b2bdfcef8c1b2359ebfa0bd471171462d..51fa1e62670b4bd5db77c243bc3e36320be6c9ed 100644 GIT binary patch delta 8996 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'wrapLineLength', 0); + return { indent_size: options.tabSize, indent_char: options.insertSpaces ? ' ' : '\t', @@ -168,7 +172,7 @@ export function getSquirrelBeautifyOptions(options: vscode.FormattingOptions): a space_before_conditional: true, space_after_anon_function: false, unescape_strings: false, - wrap_line_length: 120, + wrap_line_length: wrapLineLength, end_with_newline: false }; } diff --git a/客户端.cpp b/客户端.cpp deleted file mode 100644 index 82c3ad9..0000000 --- a/客户端.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "httplib.h" -#include "rapidjson/document.h" -#include "rapidjson/writer.h" -#include "rapidjson/stringbuffer.h" -#include -#include - -std::string buildJsonData(const std::string& str1, const std::string& str2) { - rapidjson::StringBuffer sb; - rapidjson::Writer writer(sb); - - writer.StartObject(); - writer.Key(str1.c_str()); // 使用 str1 作为 key - writer.String(str2.c_str()); // 使用 str2 作为 value - writer.EndObject(); - - return sb.GetString(); -} - -int main() { - httplib::Client cli("http://127.0.0.1:26000"); - - // 准备数据 - std::string str1 = "load.nut"; - std::string str2 = "\r\nlocal job = sq_getJob();\r\nprint(job);\r\n "; - - // 构建 JSON - std::string jsonStr = buildJsonData(str1, str2); - std::cout << "发送的 JSON: " << jsonStr << std::endl; - - // 发送数据 - auto res = cli.Post("/send_data", jsonStr, "application/json"); - - if (res && res->status == 200) { - std::cout << "服务端回复: " << res->body << std::endl; - } else { - std::cerr << "发送失败,状态码: " << (res ? res->status : 0) << std::endl; - } - - return 0; -} diff --git a/新库函数示范.json b/新库函数示范.json deleted file mode 100644 index 2f2f346..0000000 --- a/新库函数示范.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "functions": [ - { - "name": "file", - "description": "", - "params": [], - "returns": { - "type": "void", - "description": "" - } - }, - { - "name": "close", - "description": "关闭文件流", - "params": [], - "returns": { - "type": "void", - "description": "" - } - }, - { - "name": "len", - "description": "获取数据长度", - "params": [ - { - "name": "data", - "type": "object", - "description": "基本数据类型" - } - ], - "returns": { - "type": "int", - "description": "" - } - } - ], - "functionEx": [ - { - "name": "sq_RGB", - "description": "颜色空间", - "params": [ - { - "name": "R", - "type": "int", - "description": "红色(0-255)" - }, - { - "name": "G", - "type": "int", - "description": "绿色(0-255)" - }, - { - "name": "B", - "type": "int", - "description": "蓝色(0-255)" - } - ], - "returns": { - "type": "object", - "description": "颜色对象" - } - }, - { - "name": "sq_RGBA", - "description": "颜色空间", - "params": [ - { - "name": "R", - "type": "int", - "description": "红色(0-255)" - }, - { - "name": "G", - "type": "int", - "description": "绿色(0-255)" - }, - { - "name": "B", - "type": "int", - "description": "蓝色(0-255)" - }, - { - "name": "A", - "type": "int", - "description": "透明度(0-255)" - } - ], - "returns": { - "type": "object", - "description": "颜色对象" - } - } - ], - "classes": [ - { - "name": "String", - "description": "字符串类,提供字符串操作方法", - "methods": [ - { - "name": "len", - "description": "返回字符串长度", - "params": [], - "returns": { - "type": "integer", - "description": "字符串的长度" - } - }, - { - "name": "slice", - "description": "返回字符串的子串", - "params": [ - { - "name": "start", - "type": "integer", - "description": "起始位置" - }, - { - "name": "end", - "type": "integer", - "description": "结束位置(可选)", - "optional": true - } - ], - "returns": { - "type": "string", - "description": "子串" - } - }, - { - "name": "find", - "description": "查找子串在字符串中的位置", - "params": [ - { - "name": "substr", - "type": "string", - "description": "要查找的子串" - } - ], - "returns": { - "type": "integer", - "description": "子串的位置,未找到返回-1" - } - } - ], - "properties": [ - { - "name": "length", - "type": "integer", - "description": "字符串的长度" - } - ] - }, - { - "name": "Array", - "description": "数组类,提供数组操作方法", - "methods": [ - { - "name": "len", - "description": "返回数组长度", - "params": [], - "returns": { - "type": "integer", - "description": "数组的长度" - } - }, - { - "name": "append", - "description": "向数组末尾添加元素", - "params": [ - { - "name": "value", - "type": "any", - "description": "要添加的元素" - } - ], - "returns": { - "type": "void", - "description": "无返回值" - } - }, - { - "name": "pop", - "description": "移除并返回数组最后一个元素", - "params": [], - "returns": { - "type": "any", - "description": "被移除的元素" - } - } - ], - "properties": [ - { - "name": "length", - "type": "integer", - "description": "数组的长度" - } - ] - }, - { - "name": "Table", - "description": "表类,提供表操作方法", - "methods": [ - { - "name": "len", - "description": "返回表中键值对的数量", - "params": [], - "returns": { - "type": "integer", - "description": "键值对的数量" - } - }, - { - "name": "rawget", - "description": "获取指定键的值", - "params": [ - { - "name": "key", - "type": "any", - "description": "键" - } - ], - "returns": { - "type": "any", - "description": "键对应的值" - } - }, - { - "name": "rawset", - "description": "设置指定键的值", - "params": [ - { - "name": "key", - "type": "any", - "description": "键" - }, - { - "name": "value", - "type": "any", - "description": "值" - } - ], - "returns": { - "type": "void", - "description": "无返回值" - } - } - ], - "properties": [] - } - ], - "constants": [ - { - "name": "PI", - "value": "3.14159", - "description": "圆周率", - "category": "math" - }, - { - "name": "true", - "value": "true", - "description": "布尔真值", - "category": "boolean" - }, - { - "name": "false", - "value": "false", - "description": "布尔假值", - "category": "boolean" - }, - { - "name": "null", - "value": "null", - "description": "空值", - "category": "general" - } - ] -} \ No newline at end of file diff --git a/第三方API.md b/第三方API.md deleted file mode 100644 index 00e0da3..0000000 --- a/第三方API.md +++ /dev/null @@ -1,71 +0,0 @@ -pvfUtility WebApi -介绍 -pvfUtility 2020开始 一项重大的更新就是提供了HTTP接口进行自动化操作 - -这使得第三方工具可以利用http rest api进行文件读写 - -只需在软件内打开pvf,就能通过第三方工具进行下一步的操作 - - -获取pvfUtility版本号 -插件作者可以以版本来来确定用户当前使用的pvfUtility是否适用某些API接口 -请求类型:GET -http://localhost:/Api/PvfUtiltiy/getVersion -返回结果 -//注:使用此接口pvfUtility版本号需大于2022.9.30.2 -{"Data":"2022.9.30.3","IsError":false,"Msg":null} - - -获取nut文件列表 -请求类型:GET -http://localhost:/Api/PvfUtiltiy/GetFileList?dirName=sqr&returnType=0&fileType=nut -解释:dirName=equipment(目录名称) -fileType=.equ(文件后缀名) 注:使用fileType pvfUtility版本号必须大于:2022.08.08.2 - -返回结果示例(returnType=1) -{ - "Data": [ - "sqr/arad_cashshop.nut", - "sqr/hair_avagacha.nut", - "sqr/neck_avagacha.nut", - "sqr/belt_avagacha.nut" - ], - "IsError": false, - "Msg": null -} - - -批量获取nut文件内容 -请求类型:POST -http://localhost:/Api/PvfUtiltiy/GetFileContents -请求参数 -{"FileList":["sqr/arad_cashshop.nut","sqr/neck_avagacha.nut"],"UseCompatibleDecompiler":false,"EncodingType":Null} - -解释 -UseCompatibleDecompiler=是否使用兼容性反编译器 -注:使用encodingType参数 pvfUtility版本号需大于2022.12.3.1, -//encodingType:仅适用于文本文件,默认使用UTF8 -//TW=中国台湾 -//CN=中国大陆 -//KR=韩国 -//JP=日本 -//UTF8 -//Unicode - - -返回结果示例(注:文件内容为utf-8编码) -{ -{"Data":{"FileContentData":{"sqr/arad_cashshop.nut":"\r\nlocal a = 0;\r\n","sqr/neck_avagacha.nut":"\r\nlocal b = 1;\r\n"}},"IsError":false,"Msg":null} - - -上传新的文件内容 -新增或覆盖文件内容 - -请求类型:POST -http://localhost:/Api/PvfUtiltiy/ImportFile?filePath=[文件路径] -请求参数(文本内容): -文件内容 - -返回结果 -{"IsError":false,"Msg":null} -