ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

vscode-leetcode 插件完整使用指南:在 VS Code 中刷题、测试与提交 LeetCode

vscode-leetcode 插件完整使用指南:在 VS Code 中刷题、测试与提交 LeetCode 开发工具【免费下载链接】vscode-leetcodeSolve LeetCode problems in VS Code项目地址https://gitcode.com/gh_mirrors/vs/vscode-leetcode点击查看免费下载vscode-leetcode 是一款在 VS Code 中直接练习 LeetCode 题目的开源扩展本文将以其官方中文文档 docs/README_zh-CN.md 为骨架系统讲解运行环境、登录与节点切换、选题与答题、编辑器快捷操作、存档管理以及全部配置项并结合仓库源码剖析各功能背后的 CLI 调用与实现机制。读完本文你将掌握在 VS Code 内完成「登录 → 选题 → 编写 → 测试 → 提交 → 收藏」完整刷题闭环的实战能力。一、插件定位在编辑器内完成刷题闭环该扩展把 LeetCode 的能力搬进了 VS Code 的活动栏与编辑器通过LeetCode Explorer视图浏览题目列表通过命令面板触发登录、切换节点、切换语言等操作通过编辑器内的 Code Lens 快捷方式一键测试与提交。插件本身并不实现 LeetCode 的业务逻辑而是基于 skygragon作为底层执行引擎以 Node.js 进程方式调用 CLI 完成数据获取与提交核心执行器见 src/leetCodeExecutor.ts。二、运行条件官方中文文档明确要求以下环境VS Code 1.23.0中文文档给出的最低版本要求需要说明的是当前仓库 package.json 的engines.vscode字段声明为^1.57.0对应 0.18.2 版本实际建议使用较新的 VS Code。Node.js 10必须确保node位于系统PATH环境变量中也可以通过配置项leetcode.nodePath显式指定 Node.js 可执行文件的路径例如 Windows 下C:\Program Files\nodejs\node.exe。从源码看插件激活时会做两项环境自检见 src/leetCodeExecutor.ts 的meetRequirements执行node -v校验 Node.js 是否可用失败时弹出错误提示并提供跳转 Node.js 官网的选项依次检查company、solution.discuss、leetcode.cn三个 CLI 插件缺失时自动安装并清理旧版本遗留的~/.lc缓存目录。若leetcode.nodePath配置的路径不存在插件会直接抛出The Node.js executable does not exist on path ...错误并把可执行文件路径用引号包裹以兼容带空格的路径见 src/leetCodeExecutor.ts。三、登录 leetcode.com 失败的临时解决办法注意如果你使用的是leetcode.cn账户可以跳过此节。官方文档特别提示近期 leetcode.com 改变了登录机制导致插件一度无法通过常规方式登录 leetcode.com 节点项目暂时没有完美的根治方案。目前可用的临时解决办法是点击登录按钮后选择第三方登录推荐前提是你的 LeetCode 账户已经与第三方账户完成关联或者选择Cookie 登录将浏览器中登录后的 Cookie 填入插件完成认证。从源码结构看这一机制对应两条路径见 src/leetCodeManager.ts 与 src/shared.ts第三方登录由signIn()打开authorize-login/vscode授权页URL 定义在 src/shared.ts 的urls/urlsCn中回调 URI 携带 cookie 后由setCookieToCli()通过 CLI 的user -cCookie 登录参数映射见 src/shared.ts把用户名与 cookie 写入 CLI 配置。四、快速开始安装扩展并满足运行条件后打开LeetCode Explorer视图点击Sign in to LeetCode登录即可浏览题目并开始刷题。整体交互流程可参考上方演示动图。五、核心功能详解5.1 登入登出点击LeetCode Explorer中的Sign in to LeetCode即可登录也可以使用命令面板中的命令登录/登出LeetCode: Sign inLeetCode: Sign out源码层面signIn()负责打开浏览器授权页完成第三方/Cookie 认证src/leetCodeManager.ts登出则通过 CLI 的user -L实现src/leetCodeExecutor.ts登出后插件会清除本地缓存的全局状态。5.2 切换 LeetCode 版本LeetCode 目前有**英文版leetcode.com与中文版leetcode.cn**两个节点。点击LeetCode Explorer导航栏中的端点切换按钮即可在两者之间切换。需要注意两个节点的账户并不通用请确保当前激活的节点与你的账户一致插件默认激活英文版。切换节点在源码中是一个「改配置 换插件 重登录」的组合动作src/commands/plugin.ts调用 CLI 插件开关切到leetcode-cn执行plugin -e leetcode.cn切回leetcode执行plugin -d leetcode.cnsrc/leetCodeExecutor.ts将leetcode.endpoint配置更新为leetcode/leetcode-cn自动执行登出、删除缓存并提示重新登录。端点枚举与对应的接口基址分别定义在 src/shared.ts 与 src/shared.tsgetUrl()会根据当前endpoint配置动态返回leetcode.com或leetcode.cn的 API 地址。5.3 选择题目直接点击题目或右键题目并选择Preview Problem可查看题目描述选择Show Problem则直接打开答题文件开始编码。与选题相关的三个常用配置leetcode.workspaceFolder指定保存题目文件的工作区路径默认值为$HOME/.leetcode/leetcode.showCommentDescription指定是否在注释中包含题目描述注意该配置自 0.17.0 起被标记为废弃建议改用leetcode.showDescription详见下文配置表命令LeetCode: Switch Default Language变更答题时默认使用的编程语言。从源码看Show Problem的底层是 CLI 的show id -c -l language带题目描述注释时使用-cx若目标文件尚不存在则自动创建并写入代码模板src/leetCodeExecutor.ts语言切换命令会在快速选择列表中把当前默认语言置顶并高亮src/commands/language.ts。支持的 17 种语言及其文件扩展名映射集中定义在 src/shared.ts例如python/python3对应.py、typescript对应.ts、mysql对应.sql。5.4 编辑器快捷方式Code Lens插件会在题目代码文件顶部提供五种不同的快捷方式Code LensSubmit提交你的答案至 LeetCodeTest用给定的测试用例测试你的答案Star收藏或取消收藏该问题Solution显示该问题的高票解答Description显示该问题的题目描述。可以通过配置项leetcode.editor.shortcuts定制需要激活的快捷方式可取值即上述五个默认只激活Submit和Test。Code Lens 的注册与渲染逻辑位于 src/codelens/CodeLensController.ts 与 src/codelens/CustomCodeLensProvider.ts。Submit与Test的执行结果会通过提交结果 Webview 展示并自动刷新题目树以同步解答状态src/commands/submit.ts。5.5 通过关键字搜索题目点击LeetCode Explorer导航栏中的搜索按钮可以按关键字搜索题目。该操作对应命令LeetCode: Search Problemleetcode.searchProblem搜索时会以关键字过滤题目列表并刷新资源管理器。5.6 管理存档Session点击 VS Code 底部状态栏的LeetCode: ***即可管理 LeetCode 存档你可以切换存档也可以创建、删除存档。状态栏的实现位于 src/statusbar/LeetCodeStatusBarItem.ts登录后显示为LeetCode: 用户名点击后触发leetcode.manageSessions命令。会话管理的完整流程在 src/commands/session.ts通过 CLIsession命令拉取会话列表用正则解析出会话的id、name、已通过题目数与提交数切换会话执行session -e id创建会话执行session -c id删除会话执行session -d idCLI 封装见 src/leetCodeExecutor.ts删除会话是危险操作插件会先弹出警告并要求手动输入yes确认当前激活的会话不允许删除。六、插件配置项全表以下是官方中文文档列出的全部配置项配置项名称描述默认值leetcode.hideSolved指定是否要隐藏已解决的问题falseleetcode.defaultLanguage指定答题时使用的默认语言可选bash,c,cpp,csharp,golang,java,javascript,kotlin,mysql,php,python,python3,ruby,rust,scala,swift,typescriptN/Aleetcode.useWsl指定是否启用 WSLWindows Subsystem for Linuxfalseleetcode.endpoint指定使用的节点可选leetcode,leetcode-cnleetcodeleetcode.workspaceFolder指定保存题目文件的工作区目录leetcode.filePath指定生成题目文件的相对文件夹路径名和文件名详见下文—leetcode.enableStatusBar指定是否在 VS Code 下方显示插件状态栏trueleetcode.editor.shortcuts指定编辑器内自定义的快捷方式可选submit,test,star,solution,description[submit, test]leetcode.enableSideMode解决一道题时是否将「问题预览」「高票答案」与「提交结果」窗口集中在编辑器的第二栏trueleetcode.nodePath指定 Node.js 可执行文件的路径如C:\Program Files\nodejs\node.exenodeleetcode.showCommentDescription指定是否在注释中显示题干0.17.0 起废弃falseleetcode.useEndpointTranslation是否显示节点提供的翻译版本内容trueleetcode.allowReportData为了更好的产品体验是否允许上报匿名埋点数据true6.1 filePath自定义题目文件的目录与文件名leetcode.filePath是对象类型配置schema 定义见 package.json用于控制题目文件的存放目录与命名规则支持针对每种语言单独覆盖。其核心结构为{ default: { folder: , // 相对工作区的文件夹路径 filename: ${id}.${kebab-case-name}.${ext} // 文件名模板 }, javascript: { /* 可按语言单独覆盖 folder 与 filename */ } }官方 schema 中给出了可用的文件名占位符示例${camelCaseName}.${ext}、${PascalCaseName}.${ext}、${id}-${kebab-case-name}.${ext}、${id}_${snake_case_name}.${ext}其中id是题目编号、ext是语言对应扩展名。默认命名为「题号 kebab-case 题目名 扩展名」例如1.two-sum.js。6.2 配置表中未列出的补充配置项在仓库 package.json 的contributes.configuration中还可以找到以下实用配置中文文档未逐一列出按当前仓库源码为准leetcode.showDescription题目描述的展示方式可选In Webview默认、In File Comment、Both、None是showCommentDescription的替代品其解析逻辑见 src/utils/settingUtils.tsleetcode.colorizeProblems默认true在资源管理器题目树上显示难度徽章并为题目文件着色leetcode.problems.sortStrategy默认None题目列表排序策略可选None、Acceptance Rate (Ascending)、Acceptance Rate (Descending)切换排序的命令是LeetCode: Sort Problemssrc/commands/plugin.tsleetcode.hint.*系列均默认true控制各类首次使用提示包括设置默认语言提示hint.setDefaultLanguage、Webview 外观提示hint.configWebviewMarkdown、注释内嵌题干提示hint.commentDescription与命令快捷键配置提示hint.commandShortcut。七、从源码看核心机制功能与 CLI 命令的映射插件与 LeetCode 服务端的所有交互都经由 CLI 完成下表整理了功能到 CLI 命令的对应关系全部封装自 src/leetCodeExecutor.ts插件功能底层 CLI 命令用途列出题目list [-q L] [-T]拉取题目列表-q L过滤隐藏锁定的题目-T禁用翻译强制英文打开题目show id -c/-cx -l lang [-T]生成答题文件-cx额外在注释中写入题干-l指定语言测试test file [-t case]使用自定义测试用例测试答案提交submit file提交答案结果由提交结果 Webview 展示会话管理session/session -e id/session -c id/session -d id列出、切换、创建、删除存档收藏star id [-d]收藏/取消收藏题目用户user/user -L/user -c查询用户信息、登出、Cookie 登录缓存cache -d删除本地缓存插件plugin -e/-i/-d name启用、安装、禁用 CLI 插件此外还有两点值得注意的实现细节WSL 支持当leetcode.useWsl为true时所有命令都会通过wsl前缀执行并将路径转换为 WSL 内部路径src/leetCodeExecutor.ts 及 src/utils/wslUtils.ts题目列表解析CLI 输出的题目行会通过正则解析为isFavorite、locked、stateAC / NotAC / Unknown / Locked、难度与通过率等结构化字段并关联公司与标签数据src/commands/list.ts、src/shared.ts。八、帮助与资源遇到问题时可先查看项目仓库中的 CHANGELOG.md 了解各版本变更以及 ACKNOWLEDGEMENTS.md 了解贡献者列表官方文档建议先在项目的疑难解答与常见问题FAQ中检索仍未解决时可到 Gitter 社区反馈或提交 issue 寻求帮助。该扩展基于 leetcode-cli 开源项目开发其登录、测试、提交等核心能力均来自底层 CLI 的实现。九、总结vscode-leetcode 通过「VS Code 扩展 Node.js leetcode-cli」的分层架构把 LeetCode 的选题、编码、测试、提交、收藏与存档管理完整搬进了编辑器。掌握本文介绍的运行条件、登录技巧、节点切换、Code Lens 快捷操作与 13 项官方配置加上补充配置项共计 20 余项即可把刷题流程收敛到 VS Code 单一窗口内配合leetcode.filePath自定义目录结构还能将题目文件纳入自己的工程化管理体系。如需深入二次开发可重点阅读 src/leetCodeExecutor.ts、src/shared.ts 与 package.json 三处它们是理解插件行为与扩展能力的关键入口。赞分享开发工具【免费下载链接】vscode-leetcodeSolve LeetCode problems in VS Code项目地址https://gitcode.com/gh_mirrors/vs/vscode-leetcode点击查看免费下载相关推荐vscode-leetcode终极指南在VS Code中高效刷题的完整流程vscode leetcode终极指南在VS Code中高效刷题的完整流程 想要在熟悉的VS Code环境中刷LeetCode题目吗vscode leetc开发工具【免费下载】 VS Code LeetCode插件使用完全指南VS Code LeetCode插件使用完全指南 前言 作为一名程序员LeetCode刷题是提升算法能力的必经之路。而VS Code作为当下最流行的代码编辑器开发工具vscode-leetcodeVS Code中的LeetCode刷题神器vscode leetcodeVS Code中的LeetCode刷题神器 vscode leetcode 是一个专为 VS Code 设计的 LeetCode开发工具上一篇Twitter文本处理神器twitter-text终极字符计数与链接解析指南下一篇eggTegg模块化架构实战Module 定义、发现机制与配置注入完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表