Commit Graph
310 Commits
Author SHA1 Message Date
cruldra 9f736d92e7 🐛 fix(vscode): React 规则在导入了 react 的 .ts / .js 文件上也启用,自定义钩子和钩子调用照常出卡片 2026-10-16 20:50:12 +11:00
cruldra 6e63b7ba6a ✨ feat(vscode): 调用树认不出的名字改查引用只留调用处,钩子卡片按返回的函数名查调用树 2026-10-16 20:19:01 +11:00
cruldra e7059bcc73 ✨ feat(vscode): 代码阅读的 React 钩子统一成一张钩子卡片,照签名排参数和返回,自定义钩子有自己的卡片 2026-10-16 20:18:21 +11:00
cruldra 6b1e6f3487 ✨ feat(vscode): 代码阅读的 TypeScript interface 换成一张属性表卡片
契约加 InterfaceBlock / InterfaceFacts(种类「接口」,图标、颜色同类型块);属性签名和索引签名连同讲它的注释并进「属性 | 类型 | 说明」表,可省略带 ?、只读写在类型前、没标注写未标注,每行讲的定义是属性名;方法签名是函数子块,调用签名、构造签名照旧是子块;declare interface 也认;「了解一块代码」照旧按 接口名.属性名 找得到属性
2026-10-16 14:27:28 +11:00
cruldra aaa695eae4 ✨ feat(vscode): tauri、axum 的链式调用卡片换成库自己的叫法,Router 列出全部路由
规则按起点认链、用 RuleContext.chain 带上读法:tauri::Builder 连着的 .plugin 合成「插件 N 个」表(插件 | 配置),setup / on_window_event / manage 叫启动时 / 窗口事件 / 托管状态,invoke_handler 列出命令名,build → expect → run 合成「构建并运行」;axum Router 连着的 .route 合成路由表(路径 | 方法 | 处理函数,每条都列),with_state、layer、nest 等起叫法;valueCard 交出语句的式子
2026-10-15 21:12:04 +11:00
cruldra 6ad2a5b27a 🐛 fix(vscode): 实参里的闭包、async 块写了查询或路由时不再外面那句、子块各出一张卡
valueCard 交给规则一个 own:拆成子块的那几段不归这一块,sqlx 找查询、axum 找路由时跳过;顺带去掉 rustRows 里 nameRow 没用的参数(页面那边的类型检查报它)
2026-10-15 21:06:58 +11:00
cruldra ee595f3da9 ✨ feat(vscode): 代码阅读的链式调用卡片:语言插件读链、翻译模板排成起点和步骤
契约加 LanguageAdapter.chain、Translator.chain、RuleContext.chain、PropertyRow.chain、TextTranslation.rows;跨行写或实参里有闭包的链排成卡片,连着同名调用合成一步列出每次实参,注释挂在步骤上,闭包收起、子块挂到那一步(BlockView.step);Rust 插件读链、标准库常见方法写中文名;挤成一行时另起一行的 . 贴着前面
2026-10-15 20:54:59 +11:00
cruldra 95559b160b ✨ feat(vscode): 函数体里 let 的初始值、返回值也出 sqlx 查询和 axum 路由卡片
Rust 库规则共用 valueCard:语句看整句、let 看初始值、返回块看返回的值;认领 let 时第一行「变量」是变量名,也是卡片的定义;sqlx 认 query / query_as / query_scalar 函数连着 .bind 的写法,query_scalar! 不再把 SQL 当返回类型
2026-10-15 20:08:51 +11:00
cruldra b99659ea68 ✨ feat(vscode): 定义卡片底部带上那块问过 AI 的问答,点问题展开回答 2026-10-15 19:59:51 +11:00
cruldra 55595e948c 🐛 fix(vscode): Rust 卡片照抄的类型、签名逐个名字带下标,返回类型也能悬停跳转 2026-10-15 19:48:56 +11:00
cruldra bea1f2e679 🐛 fix(vscode): 定义卡片里注释的 [Name] 渲染成链接,按卡片那份文件解析 2026-10-15 17:36:50 +11:00
cruldra 86422e4671 ✨ feat(vscode): 代码阅读预览 Rust 函数体按语句拆成子块
let / let-else、if / else、match 各支、循环、隐式返回、闭包、unsafe / async 块照 Python / TypeScript 的约定拆块;特质同实现,方法卡挂在方法表那一行;函数卡去掉分情况表;Rust 语言插件给出调用结构
2026-10-15 17:07:07 +11:00
cruldra d5c627c54a ✅ test(vscode): 补功能对话页按代码阅读块找符号的用例 2026-10-15 15:45:07 +11:00
cruldra d10c29a260 🐛 fix(vscode): 提交代码改调 generate-git-commit-message 写说明 2026-10-15 15:34:18 +11:00
cruldra ad35898716 🐛 fix(vscode): 代码阅读预览跳到还没打开的文件时停在文件顶上不再发生:新开的预览注释里有仓库图片时,问图片才把仓库根加进 webview 能读的目录,改了选项 VS Code 重新加载页面,第二次 ready 发的文档不带要滚到的那处;页面能读的目录(页面资源、问答图片、这一页仓库链接的各个根及其真实位置)改在装页面之前一次定好,之后不再改选项,LinkBase 带上它算得出的根 2026-10-14 23:30:36 +11:00
cruldra c6de46ad37 ✨ feat(vscode): 代码阅读「了解一块代码」改成按路径列调用树:结果是几条路径(用户的一种操作一条),每条从入口一路调到后端服务、数据表,跨进程的写明怎么连过去(via),结构用扁平的 nodes 加 parent 连成树、不用递归;侧栏路径下面一层层展开节点,回答里用嵌套列表画树;回答和找的过程里的代码位置写成仓库链接,功能对话页上的链接按找代码用的工作区文件夹检查、打开、悬停;旧格式的结果当没有,栏上方提示打开对话重新找;删功能前先弹模态框确认,说清连带删掉调用树和问答记录,点「删除」才删 2026-10-14 21:28:40 +11:00
cruldra 20da8da4c9 🐛 fix(vscode): 代码阅读问 AI 不再按总时长停,连续 5 分钟(重写注释 10 分钟)没有任何输出才停;新会话的 id 由扩展定好(--session-id)、起进程前就记在这一处,没答完就超时、出错、被叫停的那一轮说「继续」也 --resume 同一个会话接着做,会话找不到才按完整问题重开 2026-10-14 20:46:36 +11:00
cruldra cfde0fedf5 ⚡ perf(vscode): 代码阅读预览注释里的引用解析过就记着:标坏链接、悬停、点击同一个引用只问一次 Pylance,同时问的等同一个结果,文档版本或块树、导入、用到的名字换了才作废,指到的别的文件改过再问,找不到和语言自带的不留;悬停看别的文件里的定义时读成的文档各预览共用,同一版不再重新解析,留最近 8 份,注册的插件变了全部重读 2026-10-14 19:57:20 +11:00
cruldra e1a5f4f012 ✨ feat(vscode): 代码阅读中文直译里 Python 的 not x、TypeScript 的 !x 读成「x 不成立」(如果 root_dir.is_dir() 不成立),Python 走节点模板,TypeScript 用节点读法只换 !,去掉「非」的译法和它补空格的特例 2026-10-14 15:16:37 +11:00
cruldra e3c8c1b118 🐛 fix(vscode): 代码阅读注释里引用的语言内置名不再标成找不到:代码里写到的(raise ValueError)问那处的定义、点了跳到语言自带的定义,没写到的当普通文字不能点;内置名单由语言插件给(Python 补全 dir(builtins),TypeScript 是 ECMAScript 标准全局对象) 2026-10-14 15:10:48 +11:00
cruldra c2a13e5691 ✨ feat(vscode): 代码阅读「未提交的更改」点文件行改成打开标准预览(和主栏一样不标差异),文件行上加「打开更改」按钮才打开对比上一次提交的预览,语言没有代码阅读的走 VS Code 自带的差异视图,删掉的文件行不挂这个按钮 2026-10-14 13:47:59 +11:00
cruldra e401e4aec3 ✨ feat(vscode): 代码阅读预览问 AI 的回答里代码位置写成链接、点了能跳:提示词要求写 [名字](路径#符号) 或 [文件名:起-止](路径#L起-L止) 并给出仓库根,仓库链接认 #L 行号(注释里同一套),旧回答里整段是「路径:行」的行内代码也当链接,带行号的在预览里展开、闪包住那几行的块,不支持预览的用文本编辑器选中 2026-10-14 06:30:30 +11:00
cruldra bd474986bd ✨ feat(vscode): 代码阅读预览加 ⌘F 查找栏:整份文件查(折叠着的块里的也算,跳过去时展开),按页面上显示的字不分大小写匹配、中文名也认原名,Enter / ⌘G 跳、Esc 关,高亮直接画在页面上不重画卡片 2026-10-14 05:40:59 +11:00
cruldra 39dfd9b084 ✨ feat(vscode): 代码阅读预览里工作区外的库文件也能问 AI,问答记进第一个工作区文件夹,重写注释不对库文件开放 2026-10-13 21:50:54 +11:00
cruldra 266dc42bc5 ⚡ perf(vscode): 代码阅读预览发给页面的块带内容指纹:扩展端按卡片内容、在源码里占的地方连同子块的指纹算摘要,页面按指纹认出没变的块沿用原来的对象,不再逐块深比内容,5126 行的文档到了比对 10.6ms → 0.4ms 2026-10-13 16:39:59 +11:00
cruldra ad5f559e92 ⚡ perf(vscode): 代码阅读预览发给页面的块只记相对位置:块在源码里占的地方记成离前一块多远、自己多长,块里名字的下标从块的开头算,页面从文件开头累加回文件里的位置、和扩展端打交道的地方都在一处换算;靠前改了代码,后面内容没变的块发过去一模一样,扩展端自己的块和发给页面的块分成两种类型 2026-10-13 16:32:18 +11:00
cruldra 2e3602242e ⚡ perf(vscode): 代码阅读预览的文档消息里源码和着色只带一份:块不再各带一份连子块在内的整段源码和上色,编辑框按块的编辑范围从整份源码和着色里取,5126 行的消息 4.3MB → 1.9MB 2026-10-13 15:50:33 +11:00
cruldra 6e2c541558 ⚡ perf(vscode): 查到的定义落到名字上时只读定义那一段,不把目标文件整份取出来 2026-10-13 14:40:07 +11:00
cruldra 0070933599 ⚡ perf(vscode): 语言插件按作用域规则认出名字的绑定,找别的文件起的中文名时同一个绑定只问一处、本文件定义的不问 2026-10-13 14:40:07 +11:00
cruldra 12ad047b4d ⚡ perf(vscode): 预览发文档后在后台问语言扩展的请求排队发:同时在途最多 4 个、离视口近的先问、文档改了排着的作废,看得见的中文名先交 2026-10-13 14:15:37 +11:00
cruldra 5a0c5490ea ⚡ perf(vscode): 标差异时旧版本的解析结果按旧内容记着,晚到的答案、翻译插件没变就不再重新解析 2026-10-13 14:15:33 +11:00
cruldra e9c1c67d6f ⚡ perf(vscode): 认调用分新建还是调用时,定义所在的文件按版本记着解析结果,同一版不再整份重解析;定义就在本文件时用发文档时读出的 2026-10-13 14:15:33 +11:00
cruldra 80d9962856 ⚡ perf(vscode): FastAPI 规则整份文件的路由对象、接口一份文档只扫一遍,各块共用 2026-10-13 14:15:25 +11:00
cruldra ded0395d1f ⚡ perf(vscode): 语言插件给词定词性时,在不在字符串 / 注解 / 注释里按语法树一遍收齐的范围查,不再逐词往上找父节点 2026-10-13 14:15:25 +11:00
cruldra 907c4092c8 ✨ feat(vscode): 代码阅读预览里实参值、return 这类一行译文里跨几行写的字典 / 列表按项拆开,各项带自己的实参表 2026-10-13 13:57:22 +11:00
cruldra 7d5432df3b ✨ feat(vscode): 接口卡片找前端调用时,网址最后一段字面量后面紧贴的 ${...}(messages${qs} 这类)当查询串去掉再对接口 2026-10-13 13:34:12 +11:00
cruldra 2c490cac2d ✨ feat(vscode): 代码阅读预览里跨几行写的列表按项拆开,列表里整项是调用的带着自己的实参表,一层层能往下套 2026-10-13 13:32:45 +11:00
cruldra 7d6e7592c9 ⚡ perf(vscode): 切走的预览文件改了不在后台生成文档,切回来再补一次 2026-10-13 13:31:20 +11:00
cruldra 50672c70d1 ✨ feat(vscode): 接口卡片找前端调用时,网址模板里拼的字符串常量(${API_PREFIX} 这类)换成它的值再对接口,本文件定义的、import 进来的、常量引用常量的都算 2026-10-13 13:29:13 +11:00
cruldra 5426c50cd9 ⚡ perf(vscode): 预览切走标签页时页面留着,切回来不再重新生成、重发文档和整份重画 2026-10-13 13:17:22 +11:00
cruldra cb561d23ad ✨ feat(vscode): 接口卡片的调用树认得出包了一层 fetch 的函数(authedFetch 这类),跨文件、多层、路径别名导入都算 2026-10-13 13:03:00 +11:00
cruldra dff38ee0c5 ✨ feat(vscode): 预览里代码的上色和卡片种类色跟着当前颜色主题走 2026-10-13 11:27:24 +11:00
cruldra 32018e71f1 🐛 fix(vscode): 切走标签再回来,调用树棵数不用重算,开着的弹框和选中的入口照旧 2026-10-13 11:00:06 +11:00
cruldra 5120e50228 🐛 fix(vscode): 注释里不带路径的引用从被注释的声明起一层层往外找,同类的方法、类的成员都能链到 2026-10-12 16:56:31 +11:00
cruldra b83c445dd0 ✨ feat(vscode): 问 AI 和重写注释各用各的 profile,设置里加重写注释默认模型 2026-10-12 16:30:41 +11:00
cruldra ce5327dcd5 ✨ feat(vscode): 跳定义、点链接、编辑切回预览不改开着的预览对比什么 2026-10-12 16:10:41 +11:00
cruldra 3c7513b7cd ✨ feat(vscode): 只有从「未提交的更改」点开的预览才对比上一次提交 2026-10-12 15:52:35 +11:00
cruldra 880bf7fc57 ✨ feat(vscode): 新增「了解一块代码」:AI 找功能代码占一栏,对话里接着改
主栏标题栏的放大镜问要了解哪一块,占一个栏位建一栏(和收藏共用 30 个栏位,视图改名 slot1..30,按 slotKindN 分收藏 / 功能挂标题栏按钮),同时开对话页让 Claude 只读地在全部工作区文件夹里找,按 --json-schema 交回环节 → 文件 + 符号 + 一句话。
对话复用预览顶部的聊天(CodeQa.askTop:会话续接、进行中的一轮、记录存 workspaceState);结构不合格算这一轮没答成、留着能再画出来。
条目每次画、点时按眼下的代码找:有语言插件的解析成代码块按「类名.方法名」找,没有的问 VS Code 文档符号;找不到画成灰的。
2026-10-12 15:48:54 +11:00
cruldra aecc4d1ab5 ✨ feat(vscode): 重写注释排成一队,整个扩展一次只跑一段
OpenPencil 同一时间只能开一个画板,两段同时画会互相掐断。所有预览、所有文件的重写(第一轮和接着说)排成一队,前一段写成、出错、被叫停后按先后自动开始下一段;问 AI 照旧最多同时 3 个。
排着的那一轮记在扩展端(rewriteCurrent 的 queued),块下面写「排队中」、能取消排队,切标签页、页面重新加载后照样显示。
2026-10-12 15:11:22 +11:00
cruldra b7c29c60e1 ✨ feat(vscode): 重写注释把原型存进 docs/prototype/<功能>/openpencil/
跟写注释技能 ECC v2.2.53 的原型约定:去掉临时草稿目录 spx-comment-<id> 和 */prototypes 的建目录规则,会话 id 交给 Claude Code 起。
放开 Edit/Write 到 docs/prototype/*/openpencil/ 下、mkdir -p 到 docs/prototype/*/openpencil/exports;Bash 规则的 * 能跨空格,另外拒掉建目录时多跟一个路径的写法。
2026-10-12 15:11:10 +11:00