# vscode-plugin **Repository Path**: imnewsea/vscode-plugin ## Basic Information - **Project Name**: vscode-plugin - **Description**: vscode 中,逻辑非高亮 插件 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-26 - **Last Updated**: 2026-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VS Code 逻辑非高亮插件开发说明 本文档用于说明在 VS Code 中实现“逻辑非高亮”插件时,推荐采用的开发技术体系、需要安装的工具、建议安装的 VS Code 插件,以及相关参考资料。 ## 1. 开发技术体系 ### 1.1 开发语言 推荐使用:`TypeScript` 可选语言:`JavaScript` 推荐 `TypeScript` 的原因: - VS Code 官方扩展开发文档对 TypeScript 支持最完整。 - `vscode` API 的类型提示更好,开发时更容易定位问题。 - 后续涉及配置项、编辑器高亮范围、主题适配、命令注册时,TypeScript 更稳定。 - 后期维护成本更低,适合把插件长期做下去。 ### 1.2 推荐技术栈 推荐技术栈:`TypeScript + VS Code Decoration API` 核心思路: - 插件监听当前打开的编辑器与文档内容变化。 - 扫描代码中的逻辑非相关符号,例如:`!`、`!=`、`!==`。 - 排除字符串、注释中的 `!`,避免误高亮。 - 对 Kotlin 这类语言中的 `!!` 非空断言做特殊排除,避免把它识别成逻辑非。 - 使用 VS Code 的 `TextEditorDecorationType` 为目标文本添加样式。 - 根据插件设置,支持以下样式模式: - 无样式 - 仅高亮 `!` - 高亮 `!表达式` - 边框显示 `!表达式` - 根据当前主题,分别使用浅色主题和深色主题下的不同颜色配置。 - 当用户修改设置后,自动刷新当前编辑器中的高亮效果,而不需要重启 VS Code。 ### 1.3 为什么不优先选其它方案 #### 方案一:TextMate Grammar 注入 这个方案更适合做静态语法着色,不适合本项目这种“可配置、跨语言、带规则排除”的高亮需求。 不足点: - 很难优雅处理 `!!` 非空断言排除。 - 很难根据设置项动态切换“仅高亮叹号”或“高亮整个表达式”。 - 适合语法着色,不太适合复杂逻辑规则。 #### 方案二:Language Server / AST 语义分析 这个方案最精确,但对于当前需求来说实现成本过高。 不足点: - 需要针对 JavaScript、TypeScript、Java、Kotlin、C#、C/C++ 分别做语义支持。 - 开发、调试和维护成本高。 - 第一版插件没有必要一上来走这么重的技术路线。 ### 1.4 当前阶段的推荐实现路径 第一阶段建议先实现: - `if (!expr)` - `if (!a || !b)` - `a = !b && !c` - `!=` - `!==` - 排除字符串和注释中的 `!` - 排除 Kotlin 表达式结尾的 `!!` - 提供样式与颜色设置 - 修改设置后自动刷新高亮 这个路线实现快、风险低,而且和当前 IntelliJ IDEA 插件里的逻辑目标基本一致。 ## 2. 必装工具、作用及安装方法 下面这些工具是 VS Code 插件开发过程中建议安装的基础组件。 ### 2.1 Node.js 作用: - 运行插件开发脚本 - 安装 npm 依赖 - 编译 TypeScript - 打包 VS Code 插件 安装方式: - 官网下载安装: - 或使用 `nvm` 安装指定版本 建议: - 推荐使用 LTS 版本 - 当前机器上已经安装了 Node.js,可继续使用 ### 2.2 npm 作用: - 安装依赖包 - 执行项目脚本 - 安装脚手架和打包工具 安装方式: - 通常随 Node.js 一起安装 ### 2.3 Visual Studio Code 作用: - 插件开发、调试、运行和体验的宿主环境 安装方式: - 官网下载安装: ### 2.4 yo 与 generator-code 作用: - 快速生成 VS Code 插件项目骨架 - 自动生成常见的目录结构、示例代码和配置文件 安装方式: 全局安装: ```bash npm install -g yo generator-code ``` 不想全局安装时,也可以临时使用: ```bash npx --package yo --package generator-code -- yo code ``` 说明: - 如果只是初始化一次项目,`npx` 方式更轻量。 - 如果后面会频繁创建插件项目,全局安装更方便。 ### 2.5 vsce 作用: - 用于打包 VS Code 插件 - 生成 `.vsix` 安装包 - 后续如果需要发布到 Marketplace,也会用到 安装方式: ```bash npm install -g @vscode/vsce ``` 常见命令: ```bash vsce package ``` ### 2.6 TypeScript 作用: - 作为插件开发主语言时,需要进行类型检查和编译 安装方式: 通常在项目内安装: ```bash npm install --save-dev typescript ``` 说明: - 如果使用 `yo code` 的 TypeScript 模板,通常会自动帮忙生成相关配置。 ### 2.7 VS Code 扩展测试工具 作用: - 用于自动化测试 VS Code 插件 - 启动测试环境,验证命令、高亮、配置等行为 安装方式: 在插件项目中安装: ```bash npm install --save-dev @vscode/test-cli @vscode/test-electron ``` ### 2.8 ESLint 作用: - 检查 TypeScript / JavaScript 代码风格与潜在问题 安装方式: 在插件项目中安装,通常会和 TypeScript ESLint 一起使用: ```bash npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin ``` ## 3. VS Code 建议安装的插件 下面这些插件不是运行目标插件的必需条件,但对开发和测试非常有帮助。 ### 3.1 ESLint 作用: - 实时代码检查 - 发现潜在问题 - 统一代码风格 适用场景: - 使用 TypeScript / JavaScript 开发 VS Code 插件时非常推荐安装 Marketplace: - ### 3.2 Extension Test Runner 作用: - 用于更方便地运行和调试 VS Code 插件测试 适用场景: - 后续增加自动化测试时推荐安装 Marketplace: - ### 3.3 Java 扩展包 作用: - 为 Java 文件提供语法支持、代码提示、工程支持等 适用场景: - 需要测试 `!` 在 Java 文件中的显示效果时建议安装 Marketplace: - ### 3.4 Kotlin 插件 作用: - 为 Kotlin 文件提供语法支持和基础开发能力 适用场景: - 需要测试 Kotlin 中 `!` 与 `!!` 的区分显示时建议安装 Marketplace: - 说明: - Kotlin 在 VS Code 中的生态不如 IntelliJ IDEA 成熟,但做语法层面的测试足够用了。 ### 3.5 C# / C# Dev Kit 作用: - 为 C# 文件提供语言支持和工程支持 适用场景: - 需要测试 C# 文件中的逻辑非显示效果时建议安装 Marketplace: - C# Dev Kit: ### 3.6 C/C++ 作用: - 为 C / C++ 文件提供语法支持、代码提示、调试支持 适用场景: - 需要测试类 C 语言中的逻辑非显示效果时建议安装 Marketplace: - ### 3.7 JavaScript / TypeScript 语言支持 作用: - JavaScript / TypeScript 的基础语法支持 说明: - VS Code 已内置,一般不需要额外安装插件。 ## 4. 参考文档 ### 4.1 VS Code 官方文档 - 扩展开发入门: - VS Code API 文档: - 语法高亮指南: - 扩展测试: - 扩展发布与打包: ### 4.2 本项目实现时重点会用到的能力 后续实现“逻辑非高亮”时,重点会使用: - `TextEditorDecorationType` - `window.createTextEditorDecorationType(...)` - `editor.setDecorations(...)` - `workspace.getConfiguration(...)` - 文档变化监听与活动编辑器变化监听 ### 4.3 后续开发建议 建议后续按以下顺序推进: 1. 先用 `yo code` 或手工方式初始化 TypeScript 插件骨架。 2. 先实现最小可用版本:仅高亮 `!`。 3. 再扩展到 `!表达式`、`!=`、`!==`。 4. 再补上字符串、注释、Kotlin `!!` 排除规则。 5. 最后增加设置页、主题颜色、样式切换和自动刷新。 这样推进比较稳,也方便随时验证效果。 ## 5. 打包: ``` 1. npm install -g @vscode/vsce 2. vsce package 3. 安装: code --install-extension tuohai-negation-highlight-0.0.1.vsix 4. 或在VsCode扩展里安装 ```