Change Log
[0.4.53] - 2025-12-29
🐛 修复
- 默认关闭了中文IME修复,其可能在某些操作系统和输入法下无法正常工作,导致输入异常。如果需要使用该功能,请手动开启
andrea.typeset.enableChineseIMEFix配置项。
✨ 新增
- 增加自动滚动功能,支持编辑时自动滚动到某个比例位置,新增配置项
andrea.autoScroll.toggle用于开启或关闭自动滚动功能,andrea.autoScroll.setRatio用于设置自动滚动的比例位置(0-1之间的小数),andrea.autoScroll.scrollToEnd用于快速滚动到文档末尾。 - 支持了同uuid角色的定义分散在多个文件里的情况,现在会合并这些定义,并且可用设定优先级。
- 增强了角色Treeview视图对于嵌套属性的显示支持,现在可以展开查看角色的嵌套属性。
- 新增了角色的Style属性,允许用户设置角色的背景色,粗体,斜体等样式,增强角色的可视化效果。
- 增强了md2Plaintext的转换功能,现在支持更多的Markdown语法元素,如超链接,图片等。
[0.4.47(PreRelease)] - 2025-12-09
🐛 修复
- 修复了中文IME下对中文引号补全的不良体验问题,新增配置项
andrea.typeset.enableChineseIMEFix(默认开启)和andrea.typeset.chineseIMEDelay(默认50ms),通过模拟键盘输入的方式来改善中文输入法下的引号补全体验,避免输入法状态导致的下一次输入错误。
[0.4.45] - 2025-12-04
✨ 新增
- 新增 TypstMemoryProvider 用于内存文件系统操作,通过 andrea-typst:// 协议实现对生成的 Typst 文档的实时访问,同时支持通过设置选中一个真实临时路径 来实现Typst插件的实时预览功能
- 引入 TypstPreviewStatusBar 管理状态栏中的预览状态,允许用户切换和管理 Typst 预览
- 增强 typstExport 和 typstPreview 命令,支持模板选择和内存映射以实现实时预览
- 实现文档更改时 Typst 预览的自动更新,确保流畅的编辑体验
- 更新 Typst 模板以改进格式和结构
[0.4.43] - 2025-12-01
🐛 修复
- 修复了JsonDB数据库后端下,路径计算错误导致文件追踪数据被自动删除的问题
✨ 新增
- 新增了文件追踪器的打开分片文件命令,允许用户直接打开当前文件对应的追踪数据分片文件进行查看和调试
[0.4.41] - 2025-12-01
🐛 修复
- 修复了写作统计在开启启动快照加速时的错误清除数据库问题
- 修复了脚本运行时的mcp显示和调用问题
[0.4.39] - 2025-11-26
✨ 新增
- 新增了基于Faker-js的随机姓名生成器
- 支持多种语言和文化背景的姓名生成
- 可配置生成规则,如性别、长度等
- 通过命令面板或右键菜单快速生成并插入到当前文档
[0.4.37] - 2025-11-25
✨ 新增
- 右键添加新Role时,支持选择位置(扫描角色库文件后给出角色库内的角色文件列表供选择)
- 新增配置项
AndreaNovelHelper.completion.segmenterType,允许选择自动补全的分词器类型:auto:智能选择(中文多时用jieba)intl:强制使用Intl.Segmenterjieba:强制使用jieba分词器(jieba对中文分词更准确,能提供更好的中文输入补全体验)
[0.4.35] - 2025-11-21
🐛 修复
- 修正了Typo在上个更新之后失效的问题
✨ 新增
- 空Typo变更跳过机制,更加节省Token
- 新增设置允许开关自动变更扫描,关闭后后续扫描需要手动触发,节省Token
- 新增可调整的变更窗口机制,允许抑制连续编辑时的Typo扫描,节省Token
[0.4.33] - 2025-11-20
✨ 新增
- 新增配置项
AndreaNovelHelper.wordCount.parallelStatCheck,允许使用并行缓存stat校验,默认开启 - 新增了基于LLM的快速翻译工具,在编辑器选中文件后,可以快速右键翻译为一种目标语言,支持替换选区、打开到新编辑器、复制到粘贴板三种翻译目标
- 对于启动时,做了更多的优化,通过减少stat调用,提升了启动速度
[0.4.31] - 2025-11-19
🐛 修复
- 修复字数统计视图在某些情况下未正确更新的问题:确保在文件变更时,相关的字数统计数据能够及时刷新,避免显示过时信息。
- 修复了错误的冷启动快照处理方式和错误的目录递归预取逻辑:改进了启动快照的加载机制,确保在冷启动时正确处理文件和目录的预取,提升启动性能和数据一致性。
- 增加了选项
AndreaNovelHelper.wordCount.skipStartupStatCheck,允许用户配置是否在启动时跳过字数统计检查,以提高启动速度。
[0.4.27] - 2025-11-18
✨ 新增
- 新增配置项
wordCount.primaryUnit,用于设置字数统计的单位 excludePunct:词计(CJK字数 + 英文单词)includePunct:含标点(非空白字符)noPunct:不含标点(非空白且排除标点)
[0.4.25] - 2025-11-18
✨ 新增
- 新增脚本运行侧栏和脚本系统
- 新增的脚本系统允许用户自定义脚本,并且可以在侧栏中一键运行
- 新增的脚本系统支持MCP服务器,这样允许使用MCP调用浏览器,实现自动发布章节
[0.4.23] - 2025-11-18
✨ 新增
- 新增配置项
typeset.addBlanks.sentenceEnders,用于自定义句子结束标点 - 新增配置项
typeset.addBlanks.leadingOpeners,用于自定义段落开始标点 - 新增配置项
typeset.addBlanks.trailingClosers,用于自定义段落结束标点 - 新增命令
andrea.formatDocument.addBlanks,用于自动补段间空行
[0.4.21] - 2025-11-17
✨ 新增
- 内置Typst渲染模板增加一个简单的论坛体模板
- 现在Typst渲染支持图片了,编译器会自动转换图片路径
- 现在默认build中间文件不会被自动删除,方便查看中间产物
- 现在文章右键菜单,资源管理器右键菜单都增加了导出Typst的选项
[0.4.19] - 2025-11-16
✨ 新增
- 字数统计状态栏显示模式:详细/半精简/精简
- 详细:显示用时、字数与速度
- 半精简:显示字数与当前速度
- 精简:仅显示总字数
- 字数统计状态栏速度单位:CPM/CPH
[0.4.17] - 2025-11-16
🐛 修复
- Typst 模板编译在含空格/中文路径下报错:移除 Windows Shell 调用,改用原生参数传递,避免 Shell 误拆分;支持空格、中文、括号、方括号、和号 (&) 与 Emoji 等路径字符。
🧪 验证
- 覆盖输入/输出/工作目录均含特殊字符的用例,分别导出 PDF/PNG/SVG,全部通过;PNG 输出生成
输出-1.png序列。 - 修正测试文档中的
#未转义导致的 Typst 变量错误,示例内容可编译。
⚙️ 变更
- 编译日志继续展示带引号的命令预览,实际执行统一按参数数组传递;不影响性能与模板渲染。
- 这个版本之后,版本发布开始分为std和exp两个版本,std版本不会随着code自动启动,exp版本会随着code自动启动
[0.4.11] - 2025-11-15
✨ 新增
- Typst 文稿导出(PDF/图片),支持当前文件与资源管理器右键批量导出
- 模板系统:内置/外置并行索引;支持单文件模板;新增
title-only模板 - Markdown 解析:
&Def Title/Subtitle/Category元字段;块级解析(标题/段落/列表/代码/引用/图片/分隔线) - Liquid 过滤器:
md2typst(粗体/斜体/链接) - 语法高亮与片段:注入
&Def语法;为 md/txt 添加&Def代码片段与补全
🛠️ 重构
- 导出与剪贴板实现迁移至
src/commands/*模块;activate.ts仅保留注册逻辑 - 渲染/编译服务抽象:统一
exportService,完整日志(命令/stdout/stderr/退出码)
[0.4.10] - 2025-10-7
🐛 修复
- 修复了软禁用插件功能损坏的问题
[0.4.9] - 2025-10-6
🖋️ 更改
- 支持了思考过程模型的关闭思考设置
✨ 新增
- 新增角色引用热力图和气泡图功能
- 支持通过
AndreaNovelHelper.openRoleHeatmap命令打开热力图面板 - 热力图展示角色在文件中的引用频率,帮助识别高频角色
- 支持通过
[0.4.8] - 2025-10-5
🖋️ 更改
- 支持了带思考过程的模型
- 优化了文件追踪器的日志输出
- 优化了文件追踪器的路径清理逻辑(AndreaNovelHelper.fileTracking.cleanAbsolutePaths)
- 新增了文件追踪器的详细日志开关(AndreaNovelHelper.fileTracker.enableVerboseLogging)
⚠️ TODO
- 自动提示用户创建角色调用索引
[0.4.6] - 2025-10-5 预发布
✨ 新增
- 🔀 时间线编辑器嵌套节点支持:全新的层级时间线管理系统
- 支持亲代-子节点嵌套结构,可创建包含多个子事件的章节容器
- 时间区间支持:事件可设置开始时间和结束时间 (精确到秒)
- 可调整亲代节点尺寸 (width/height),创建自定义大小的容器
- 子节点可限制在亲代节点内移动 (extent: 'parent')
- 自动扩展亲代节点功能 (expandParent),拖动子节点到边缘时自动扩大亲代节点
- 时间格式为 ISO 8601 精确到秒 (YYYY-MM-DDTHH:mm:ss)
- 节点显示智能格式化:单个时间点或时间区间自动识别
- 亲代节点视觉标识:半透明绿色背景和边框
- 编辑器提供下拉选择框,方便选择亲代节点
- 📦 包管理器增强:
- 新增右键菜单创建
.tjson5时间线文件功能 - 自动生成时间线文件模板
- 新增右键菜单创建
- 📋 启动快照优化:
- 新增"不再提示"按钮,可永久关闭启动快照通知
- 配置持久化到用户全局设置
- 🗂️ 角色引用关系支持:
- 支持通过
AndreaNovelHelper.roleUsage.rebuildIndex建立/重建角色引用关系索引 - 支持在右键角色时查看引用该角色的所有位置
- 支持通过
[0.4.5] - 2025-10-01
🖋️ 更改
- 支持SQLite后端作为数据库存储选项,提升大型项目的性能和响应速度
- 优化了文件追踪器的初始化流程,减少启动时间
✨ 新增
- 新增启动快照(快速启动)支持 即使使用Json数据库 依然可以快速启动
- 新增可以拖到侧栏的批注面板
[0.4.4] - 2025-09-28
🐛 修复
- 修复角色关系图中节点文本与数据不一致的问题:确保在所有节点更新操作中,
node.text和node.data.text始终保持同步,避免因不一致导致的显示和逻辑错误。 - 修复增量更新角色文件时未正确更新关系图的问题:确保在增量加载角色文件时,相关的关系图节点和边也能正确反映最新的角色数据。
- 修复了关系图数据更新不刷新角色数据的问题:确保在关系图数据更新后,相关的角色数据也能同步刷新,保持一致性。
[0.4.3] - 2025-09-28
✨ 新增
- 🔗 角色关系图编辑器:全新的可视化角色关系管理系统
- 支持拖拽式关系图编辑和实时预览
- 右键菜单操作:添加连线、删除连线、编辑节点
- 节点过滤和筛选功能,支持按类型、名称等条件过滤
- Hover悬停显示角色详细信息
- 支持角色绑定和关系类型定义
- 📄 新增文件格式支持:
- 新增
.rjson5(关系文件)和.ojson5(对象文件)格式支持 - 包管理器中正确显示和管理这些文件类型
- 自动文件监控和加载机制
- 新增
- 🎯 角色管理增强:
- 新增角色UUID系统,支持前端和后端唯一标识
- 支持跳转到定义功能,快速定位角色相关内容
- 关系文件解析器和自动加载功能
🖋️ 更改
- 🔧 系统优化:
- 重构文件变更追踪依赖系统,提升性能和稳定性
- 智能窗体锁定功能,改善用户体验
- AutoGit 自动拉取功能,保持代码同步
- 优化状态栏指示器:为所有状态栏添加ID和名字,便于管理
- WebDAV同步机制优化:使用额外meta文件提升同步效率
🐛 修复
- 修复包管理器中
.rjson5和.ojson5文件显示问题 - 修复文件监控系统中的角色数据更新逻辑
- 改进关系图编辑器的稳定性和用户交互体验
[0.4.2] - 2025-09-15
🖋️ 更改
- 降低 VS Code 引擎要求到 ^1.100.0,以支持 Trae 安装与运行
[0.4.1] - 2025-09-15
🐛 修复
- 修复WebDAV面板diff列表中混入目录类型的问题:在文件比较时过滤掉目录类型,确保只显示文件差异
- 修复WebDAV面板中远程文件统计数量不准确的问题:统计信息现在正确反映过滤后的文件数量
✨ 新增
- 新增独立的批注功能侧边栏(AndreaCommentsSidebar):将批注管理功能从主侧边栏中分离,提供更专注的批注管理体验
- 新增独立的WebDAV功能侧边栏(AndreaWebDAVSidebar):将WebDAV相关功能从主侧边栏中分离,包括WebDAV管理面板和文件树视图
🖋️ 更改
- 重新组织侧边栏结构:原小说助手侧边栏现在专注于核心功能(包管理器、角色管理),批注和WebDAV功能移至各自的专用侧边栏
- 优化用户界面布局:通过功能分离提供更清晰的工作流程和更好的用户体验
[0.4.0] - 2025-09-15
✨ 新增
- 新增WebDAV云端同步功能:支持与WebDAV服务器进行文件同步,实现跨设备协作
- 新增WebDAV同步状态栏:实时显示同步状态,支持转圈动画和进度显示
- 新增WebDAV账户管理:支持多账户配置和管理
- 新增WebDAV文件树视图:可视化管理云端文件
- 新增WebDAV同步面板:提供详细的同步配置和状态信息
- 新增错别字统计功能:智能识别和统计文档中的错别字,提供详细的错误分析和修正建议
- 新增批注功能:支持在文档中添加、编辑和管理批注,便于写作过程中的备注和协作交流
- 新增批注管理器:提供批注的归总,转跳,便于快速处理伏笔等要点。
🖋️ 更改
- 改进状态栏显示:提供更详细的状态信息和用户反馈
[0.3.25] - 2025-09-07
✨ 新增
- 新增展开状态持久化功能:所有角色视图、当前文章角色视图(侧边栏和Explorer)、包管理器视图现在都会记住用户的展开/折叠状态
- 新增跨文档展开状态继承:切换到新文档时,如果新文档尚无展开记录,可继承上个文档的展开集合(仅对共有的节点生效)
- 新增设置开关
AndreaNovelHelper.docRoles.inheritExpandedFromPrevious:控制是否启用跨文档展开状态继承(默认开启) - 新增角色展开显示功能:角色节点支持展开显示详细信息,包括名称、类型、颜色等字段
- 优化角色显示:支持角色自带SVG图标、角色名彩色方块标记、颜色字段可视化显示
- 新增角色详情键图标映射:基于JSON配置为不同类型的角色字段显示对应的VS Code内置图标
- 写作资源管理器现在支持显示参考资料(如图片、PDF等不计入字数统计的文件)
- 支持基于自定义分类的角色显示,可以按类型或归属进行更灵活的分组
🐛 修复
- 修复角色视图展开状态在重启VS Code后丢失的问题
- 修复切换文档时布局被重置的问题
- 略微优化了Decorations性能,减少大文件打开时的阻塞
🖋️ 更改
- 改进角色树视图的ID计算稳定性,确保展开状态正确持久化
- 优化展开状态的存储机制,使用workspaceState进行跨会话持久化
[0.3.24] - 2025-09-06
✨ 新增
- 新增了wcignore的快速设置功能
- 新增了gitignore的语法高亮支持
🐛 修复
- 略微优化了TimeStats的性能,减少大文件打开时的阻塞
🖋️ 更改
- 改进了异步计算的错误处理机制
[0.3.23] - 2025-08-28
🖋️ 更改
- 修改了版式设置默认行为 现在可以在任意情况下显示
[0.3.22] - 2025-08-28
🐛 修复
- 修改了获取全文件统计信息的逻辑,现在是异步获取,并且逐步读取数据
- 修复了自动保存下就是编辑器编辑状态被冲刷的问题
- 修复了冷启动自动开始Session的问题
🖋️ 更改
- 修改了字数统计器的逻辑
- 更改数据库为相对路径计算,会自动进行逐步迁移
⚠️ 问题
- 冷启动读取采用异步而不是worker+异步(暂时禁用,以后会提供开关,并且移除数据库直写加速)
- GitGuard仍可能是性能瓶颈
- 字数统计窗口刷新逻辑依然存在过多次的问题
[0.3.21] - 2025-08-27
🐛 修复
- 修改了获取全文件统计信息的逻辑,现在会通过worker加速,但是第一次打开延迟依然存在,考虑增加专属缓存
[0.3.20] - 2025-08-27
🐛 修复
- 修改了读取数据库的逻辑 性能得到提升 但是依旧存在两次全量读取的问题
- 修复了从预览窗口回到编辑器窗口的时候Session被截断的问题
- 修改TimeState的获取全文件统计为异步方式,有性能提升
- 修复了HoverProvider的边界条件,避免某些时候扩展卡死
✨ 新增
- 新增了对小地图(Minimap)和Ctrl+滚轮快速缩放字体的支持(快速设置)
- 版式状态栏支持以简略模式显示
- 改进了滚动模式下的预览编辑时动态刷新问题
⚠️ 问题
- 分页预览模式下的动态刷新有问题,需要手动刷新,后续会优化
[0.3.19] - 2025-08-26
🐛 修复
- 恢复了GitGuard功能,但是字数统计缓存速度仍然有点慢,考虑加入固实数据库支持
[0.3.18] - 2025-08-26
🐛 修复
- 修复了一点击写作统计面板,就丢失写作统计焦点的问题
- 修复了一点预览面板,就丢失写作统计焦点的问题
- 修复了预览的重载机制,现在不会乱动布局了
🖋️ 更改
- 修改周视图为可变的滑窗
- 微调字数统计器的逻辑,略微优化性能
- 修改了状态栏的时间统计逻辑,现在会读秒了
⚠️ 问题
- 切换预览界面等界面后冲刷掉当前session的bug仍没修复
- 初始化的时候字数统计器依然有同步占用主线程嫌疑(虽然已经并行处理(可能是调用了node的fileio 不清楚怎么解决这个问题)
[0.3.17] - 2025-08-26
🐛 修复
- 修复了上个版本损坏的字数统计器
[0.3.16] - 2025-08-25
🐛 修复
- 修复了对包管理器里面内容的边界判定
- 修复了角色卡编辑器的换行效果
[0.3.12] - 2025-08-25
🐛 修复
- 修复了着色器偶发失效(修正了状态校验边界问题)
✨ 新增
- 新增了可视化角色卡编辑器
- 新增了切换Json5格式角色库的默认打开编辑器开关
- 支持了角色卡编辑器的一键转跳定义
⚠️ 问题
- 角色卡编辑器目前只支持light和dark两种主题,其他主题可能会有显示问题,后续会继续优化
- link.tooltip 会丢参数 很怪
[0.3.11] - 2025-08-23
🐛 修复
- 修复了设置字体的时候的错误格式问题
[0.3.10] - 2025-08-23
🐛 修复
- 修复了上个版本遗漏的i18n缺失问题
[0.3.9] - 2025-08-23
🐛 修复
- 修复了着色器偶发失效(修正了缓存错误)
- 修复了txt的预览不能分页的问题
✨ 新增
- 新增了智慧回车功能
- 新增了智慧括号功能
- 新增了版式设置
- 新增了字体家族可视化编辑器
- 新增了文章格式化工具
- 新增了编辑器区和写作资源管理器区的快速导出txt和纯文本功能(右键)
[0.3.8] - 2025-08-22
🐛 修复
- 修复了预览窗体的分页错误
- 修复了预览窗体的预设无法保存问题
✨ 新增
- 新增了对预览窗体的主题支持
- 新增了对预览窗体的字体设置支持
🛠️ 优化 / 重构
- 预览窗体Webview重构 优化了项目结构
[0.3.7] - 2025-08-21
🐛 修复
- 修复了上次重构导致的Worker崩溃问题
- 修复了fixes类型不生效的问题
[0.3.6] - 2025-08-20
🐛 修复
- 修复了文件追踪器过滤器规则问题
✨ 新增
- 新增对文件追踪器的信任调用者过滤器配置
- 新增了是否在工作区关闭小说助手的配置选项询问(
AndreaNovelHelper.enableWorkspaceClose)
[0.3.5] - 2025-08-19
📃 预览和读稿器(实验性)
- 优化读稿器的使用体验
[0.3.4] - 2025-08-19
🧭 项目初始化体验
- 向导整合:写作统计数据库纳入/忽略 + 多目录(.history / .vscode / .out-of-code-insights)忽略一站式选择,默认推荐策略,减少后期手工编辑。
✨ 包管理器
- 新增右键创建 TXT 快速导入文件:角色 / 敏感词 / 词汇(可自定义文件名,默认建议
character-gallery.txt等)。
📝 TXT 解析改进
- 允许行级注释:支持整行
#///开头与行内尾部注释(名称 # 注释)。 - 空行与注释不计入条目数,日志显示有效条目数量。
📃 预览和读稿器(实验性)
- 新增预览和读稿器功能,支持在侧边栏中预览文档内容。
- 支持多种文档格式的预览,包括 Markdown、TXT 等。
🧹 其它
- 清理已弃用的版本控制配置项 UI,统一放入初始化流程中决策。
[0.3.3] - 2025-08-18
♻️ 创建命令整合
- 角色 / 敏感词 / 词汇 创建命令统一为各 1 项,内部可选生成格式:json5 / txt / md,减少右键菜单噪音。
- 新建时检测重名:若存在冲突自动追加
_YYYYMMDD_HHmmss(必要时再递增索引)。 - 输入留空时使用规范默认文件名 (character-gallery / sensitive-words / vocabulary)。
📝 模板
- 敏感词 / 角色 / 词汇 支持 Markdown 模板(敏感词库使用内置 md 模板)。
✨ 体验
- 新建文件后自动打开。
- 支持敏感词踢替换和别名替换。
⚡ 字数统计
- 强制重算(全部 / 指定路径)改为后台批处理异步 Worker 接口:不再长时间“计算中”卡住,目录旧值会旋转指示并逐批更新。
- 旧同步接口与冗余导入移除,避免阻塞。
- 目录聚合改为“子完成 -> 父级链式信号”事件驱动:仅受影响链路逐层重算,取消旧的向上整链失效 + 定期刷新策略,减少抖动。
[0.3.2] - 2025-08-18
✨ 新增
- 修改md和plaintext的默认快速建议设置
- 微调角色加载器行为
- 微调着色器行为
⚡ 核心性能 & 体验
- WordCount现在在后台Worker运行 并且并行化 极大的加速了。
[0.3.1] - 2025-08-18
✨ 新增
[0.3.5] - 2025-08-18
🧭 项目初始化体验
- 向导整合:写作统计数据库纳入/忽略 + 多目录(.history / .vscode / .out-of-code-insights)忽略一站式选择,默认推荐策略,减少后期手工编辑。
✨ 包管理器
- 新增右键创建 TXT 快速导入文件:角色 / 敏感词 / 词汇(可自定义文件名,默认建议
character-gallery.txt等)。
📝 TXT 解析改进
- 允许行级注释:支持整行
#///开头与行内尾部注释(名称 # 注释)。 - 空行与注释不计入条目数,日志显示有效条目数量。
🧹 其它
- 清理已弃用的版本控制配置项 UI,统一放入初始化流程中决策。
[0.3.4] - 2025-08-18
✨ 新增
- 初始化向导新增“忽略辅助目录”多选:
.history/(写入 .gitignore)、.vscode/与.out-of-code-insights/(划词注解扩展数据目录,写入 .wcignore),默认全部勾选,减少无意义扫描/统计。
⚙️ 变更
- 保留写作统计数据库(.anh-fsdb)是否纳入版本控制的单独询问;与上述新选项统一放在向导里。
[0.3.3] - 2025-08-18
⚙️ 变更
- 移除设置面板项
AndreaNovelHelper.fileTracker.versionControlWritingStats:该决策仅在项目初始化向导里询问与应用,避免用户误以为运行期切换会自动修改 .gitignore。
🐛 修复
修复了仓促异步化造成的各种严重问题
- 修复了Def在json5里不工作的问题
- 修复了补全器里面颜色不显示的问题
- 修复着色器拖尾的问题
- 修复了别名不着色的问题
- 修复了补全失效的问题
- 修复了当前文章角色有时候刷新不出来的问题
- 修复了着色器有时候失效的问题
- 修正了在敏感词库里还报敏感词的问题
[0.2.24] - 2025-08-17
🐛 修复
- 没有描述文件的时候 角色加载中… 不消失的问题
- 修正了很久没有变动的语义化版本号
[0.0.23] - 2025-08-17
聚焦“性能与准确性”版本(无新增大功能),围绕异步匹配、装饰刷新、目录 / 字数聚合与分词过滤进行了系统性优化。
⚡ 核心性能 & 体验
- 角色 / 词汇匹配全面迁移至共享 Worker(Aho-Corasick)异步执行:主线程不再被大文本扫描阻塞。
- 装饰更新:延迟获取全文 + 正则扫描分片切片(time-slicing),减少 >5ms 长帧;增量 setDecorations 仅更新差异区间。
- 巨型文件防护:统一 hugeFile 阈值下(估算长度 *1.8)关闭高成本特性(着色 / Hover / 角色模型 / 树索引搜索)并一次性提示。
- 文档角色模型(当前文章角色视图)异步化:首次 + 后续刷新均不再卡顿;结果缓存复用两处视图。
- 字数统计 Tree 目录聚合:批处理 + 协作式调度(yield)+ 大文件快速近似值(显示 ≈),后台再精确修正。
- 目录聚合缓存命中与失效策略优化,避免重复全量遍历;旧值占位减少 UI 闪烁。
🎯 匹配准确性 & 分词过滤
- 引入异步 Aho-Corasick 匹配(首次发布即包含分词边界校验支持),减少主线程阻塞。
- 支持分词过滤配置:
AndreaNovelHelper.enableWordSegmentFilter全局开关。AndreaNovelHelper.wordSegment.autoFilterMaxLength(默认 1):短词(≤阈值)使用 Intl.Segmenter 进行“完整词”校验,避免单字/短词内嵌误匹配。
- 规则:若未显式设置
wordSegmentFilter:false,则按长度阈值自动决定是否执行分词验证;仅完整词段位置被接受。
🛠 内部重构与稳定性
- Worker 构建等待队列(build waiters)确保搜索不会在未完成构建时返回空结果误判。
- 搜索超时(5s)保护与错误透传,避免悬挂 Promise。
- 增强重建触发:监听分词相关配置变更实时重建自动机。
- 角色匹配缓存版本化:避免旧结果与新文档版本交叉污染。
- 代码统一加括号 / NFC 归一化,减少边界大小写与 Unicode 组合差异。
� 调试 / 日志
- 新增多类标签日志:异步匹配、目录聚合、巨大文件判定、正则切片批次,用于性能回溯。
⚠️ 可能影响
- 短词(≤ autoFilterMaxLength)默认走分词完整词校验;若需要更宽松的匹配,可调低阈值或关闭分词过滤。
🔮 后续展望(不含于本次)
- 角色出现次数排序 / 快速过滤。
- 增量 AC 动态添加 / 移除模式(避免全量重建)。
- 更细粒度的 Hover 渲染延迟与并发调度。
[0.0.22] - 2025-08-17
🐛 核心修复
- 目录字数始终为 0:删除旧的“父级增量累加”方案,改为实时递归聚合,首次/缓存命中后均能正确展示目录总字数。
- 手动排序显示异常:根因是旧版排序键仍使用
p:路径键且未正确迁移/补全生成对应f:/d:结构化键,读取时产生索引与实际节点错位;已加入统一迁移 (p:→f:/d:) 与缺失自动生成逻辑,排序稳定。 - 父级双重累加导致目录数字虚高:移除重复叠加逻辑 (
updateParentFolderCaches);统计结果与文件总和一致。 - 删除 / 重命名 后目录统计不刷新或残留旧值:新增删除、重命名事件处理,迁移或失效相关缓存。
- 保存文件后父目录不更新或闪烁为 0:统一向上失效策略并提供旧值保留,避免瞬时 0。
- 并发展开 / 多次触发导致重复深度遍历:加入并发去重(同一路径聚合复用同一 Promise)。
🛠️ 优化
- 聚合缓存策略:仅在内容 / 结构变化或显式强制时失效;去除中途尝试过的 TTL 机制(避免无谓周期重算)。
- 旧值保留:有历史聚合时重算阶段显示旧数字 + 旋转图标;仅第一次出现“(计算中...)”。
- 根级强制刷新:
强制全部重算只标记根目录,递归一次完成,避免对所有文件逐个打标。 - 保存复用实时统计:优先使用
timeStats已得出的全文统计,减少重复 IO。 - 强化调试:增加
dirAggCache:hit / update / invalidate / forced-recompute / reuse-inflight等日志标签,定位缓存行为。 - 手动排序启用逻辑调整:启用前先获取“当前自动模式”下的可见顺序快照,并按该顺序为所有子项重新生成连续稀疏索引(10,20,...);关闭手动模式仅移除目录手动标记,不清除已生成索引,重新开启后顺序可直接恢复。
⚙️ 内部
- 新增
previousDirAggCache:失效后在新结果出炉前展示旧值,减少 UI 抖动。
[0.0.21] - 2025-08-16
✨ 新增
- 角色层级树(
角色视图):按【从属(affiliation) → 类型(type) → 角色】三级分组,特殊类型(词汇 / 敏感词 / 正则表达式)独立收纳并置底显示,内部保持从属 + 类型分层。 - “当前文章角色” 双入口:在插件自定义侧边栏与资源管理器 (Explorer) 各提供一个独立 Tree View,实时展示当前活动文档出现过的角色列表。
- 展开状态持久化:
角色/当前文章角色(侧边栏)/当前文章角色(Explorer)三处视图的展开折叠状态保存到 workspaceState,重启后自动恢复。
🛠️ 优化 / 重构
- 共享文档角色缓存模型 (
docRolesModel):集中进行 Aho-Corasick 搜索与分组缓存,两处“当前文章角色”视图复用结果,避免重复扫描。 - 角色节点 ID 体系增强:为主角色树节点生成结构化 baseId + 递增去重后缀 (
::N),彻底消除重复 ID 报错,展开状态持久化稳定性提升。 - 文档角色刷新防抖:编辑频繁场景合并为 120ms 内一次刷新,减轻 UI 抖动与性能消耗。
🐛 修复
- 修复偶发“ID 为 role:... 已被注册”错误(TreeItem 重复 ID)。
⚙️ 内部
- 抽离重复的文档角色构建逻辑,降低维护成本,为后续扩展(出现次数、过滤)打基础。
🔮 规划中(尚未实现)
- 角色出现次数统计 / 排序。
- 文档角色快速过滤(输入关键字筛选)。
- 更精确的角色定义定位(基于预索引位置)。
[0.0.20] - 2025-08-16
🔥 重大:字数统计视图升级为“写作专用资源管理器”
Word Count Explorer(字数统计视图)现可在写作时直接替代 VS Code 原生 Explorer:
- 拖拽排序与重排:同一目录内拖拽即为“顺序调整”(不移动文件物理位置,手动模式下保持稳定;自动模式可提示切换手动)。
- 跨目录拖拽移动:不同父目录之间拖拽 = 真实文件/文件夹物理迁移,并自动更新追踪索引。
- 手动 / 自动排序模式:支持目录级别切换;手动模式下使用稀疏索引(默认步长配置),保证插入时最少重排;自动模式按文件名或创建顺序自然排序。
- 索引显示与格式:可选择在标签前显示排序索引,支持步长 (step) 与填充宽度 (padWidth) 配置,自动衰减 / 自动重排 (autoResequence)。
- 快速批量索引生成:提供基于文件名批量生成或清除索引的命令,便于一次性整理章节结构。
- 复制 / 剪切 / 粘贴:视图内支持多选复制/剪切再粘贴(含跨目录),保持元数据与追踪一致性。
- 显示格式增强:新增字数显示格式配置(raw / wan / k / qian),更易于在长篇工程中阅读。
- 忽略规则集成:继续支持
.gitignore/.wcignore过滤无关文件,视图更聚焦。
✨ 其他新增
- 包管理器拖拽增强:支持资源文件与包结构的拖拽复制/移动,与字数统计视图交互体验一致。
- 分片文件追踪数据库 (Sharded DB):引入
.anh-fsdb分片 + 索引增量写入,减少大项目 IO。 - 惰性索引加载:启动仅加载
index.json,按需加载分片。 - 大纲惰性模式:
AndreaNovelHelper.outline.lazyMode默认开启,未开大纲视图不生成文件。 - 写作统计只读会话抑制:
timeStats.persistReadOnlySessions=false下纯阅读不落盘。 - 脏分片原因日志:
markShardDirty输出触发源(新增/重命名/内容/统计等)。 - Legacy 快照开关:
fileTracker.writeLegacySnapshot控制是否写出旧版聚合 JSON。
🛠️ 优化
- 防止“仅打开文件”即写入:哈希/size/mtime/统计差异严格对比才标记脏。
- 写作统计 diff 字段可见:日志输出具体变化字段集合。
- 纯 lastActiveTime 变化被抑制,不写入分片。
- 字数统计性能:引入缓存与异步刷新管线(延迟/批量处理),显著降低大工作区扫描与重复计算的阻塞时间。
⚠️ 可能影响
- 若依赖旧
file-tracking.json,需开启writeLegacySnapshot维持兼容。 - 手动模式依赖稀疏索引策略,外部手动改文件名可能导致相对顺序变化需手动“重建索引”。
🧪 后续计划
- Index.json 增量写(当前为整体重写)。
- 分离大字段到二级分片(写作桶 / 会话)。
- 更细粒度的写作统计节流与压缩策略。
[0.0.19] - 2025-08-14
✨ 新增
- 写作时间追踪:新增写作时间追踪功能,提供实时的写作速度统计(CPM)
- 写作统计仪表板:新增写作统计仪表板,今日和历史的写作时间、平均速度和峰值速度统计,活跃度统计
- 正则表达式着色:支持使用正则表达式为文本着色,提供更灵活的样式应用(比如说着色各种标点符号框起来的字符)
[0.0.18] - 2025-08-14
🐛 修复
- 修复了包管理器视图中的右键菜单选项,确保在资源文件和包上正确显示
[0.0.17] - 2025-08-14
🐛 修复
- 修复了展开状态无法正确恢复的问题
- 修复了Hover里的图片无法正确显示的问题
✨ 新增
- 新增状态持久化功能,支持记住文件树的展开状态
- 新增包管理器内的资源文件支持
- 强化了对Markdown格式设定集的支持,支持自定义段
[0.0.16] - 2025-08-14
🐛 修复
- Markdown格式设定集下面的颜色支持(现在支持更多格式)
[0.0.15] - 2025-08-14
✨ 新增
- 新增快速格式化工具,支持在Markdown文件中快速应用常用格式
[0.0.14] - 2025-08-14
🐛 修复
- 修复了在某些情况下无法正确打开文件的问题
- 修复了大纲不能在启动时自动加载的问题
✨ 新增
- 新增命令
AndreaNovelHelper.revealInExplorer,用于在系统文件资源管理器中显示文件 - 在包管理器视图中添加了“在文件资源管理器中显示”选项,方便快速定位文件
- 实现了包管理器,允许用户创建、重命名和删除设定集(包)
- .wcignore 文件支持,允许用户指定不进行字数统计的文件和目录
- .gitignore 文件支持,自动忽略 Git 忽略的文件和目录的字数统计
- md格式的角色库、敏感词库、词汇库支持
🛠️ 重构
- 重构字数统计功能,提升性能和稳定性
- Roles的加载逻辑,允许使用嵌套的包结构
[0.0.12] - 2025-07-24
🐛 修复
- 修复了HoverProvider在某些情况下无法正确更新的问题
- 修复了多文件下的Hover信息缓存问题,确保每个文件的Hover信息独立管理
- 修复了多文件下DefinitionProvider无法正确跳转到定义的问题
🛠️ 重构
- 重构了HoverProvider的增量刷新逻辑,优化性能
- 优化了Hover信息的缓存机制,减少不必要的计算(但是目前仍然存在性能问题,后续会继续优化)
- 重构了DefinitionProvider的跳转逻辑,确保在多文件环境下正确工作(现在依赖于HoverProvider的缓存)
✨ 新增
- 实验性大纲功能,支持在Markdown和文本文件中显示大纲
- 新增命令
AndreaNovelHelper.openDoubleOutline,用于打开双重大纲视图 - 在支持的编辑器中添加了大纲按钮,点击可打开大纲视图
⚠️ 问题
- 大纲窗体在Code刚启动的时候不能正常显示 目前也不会自动刷新
[0.0.11] - 2025-07-23
🐛 修复
- 项目结构重构
- 极大的优化了词汇装饰器的性能
[0.0.10] - 2025-07-22
🐛 修复
- 修复了敏感词警告在删除敏感词后仍然显示的问题
[0.0.9] - 2025-07-22
✨ 新增
- 新增敏感词和词汇功能,更新相关配置和命令
- 更新配置文件路径,确保默认路径正确
- 修复了角色库文件路径的默认值,请手动更新配置文件
🐛 修复
- 修复了非资源管理器面板打开文件强制重定向到资源管理器的问题
[0.0.8] - 2025-07-21
✨ 新增
- 新增实验性字数统计功能,提供对工作区内所有支持文件的字数统计
[0.0.7] - 2025-07-20
🐛 修复
- 添加了图标
[0.0.6] - 2025-07-20
🛠️ 重构
- 重构装饰更新逻辑,独立
updateDecorations函数 - 优化工具函数,添加区间重叠检查和正则转义功能
- 现在能避免
hoverRanges区间重复的问题 - 修复了角色信息窗口不能显示颜色的 bug
[0.0.5] - 2025-07-19
✨ 新增
- 增加 CSpell 字典生成,支持角色名拼写检查
[0.0.4] - 2025-07-19
🐛 修复
- 修复了补全提供器无法动态响应的问题
[0.0.2] - 2025-07-19
✨ 新增
- 支持多语言(i18n),添加中文语言包
- 新增角色类型功能,支持根据类型应用默认颜色样式
[0.0.1] - 2025-07-18
🎉 初始版本
✨ 功能
- 实现基础的 JSON5 角色库加载、分词补全与着色
- 添加角色别名支持,补全和着色均支持主名与别名
- 实现角色的跳转功能(Go to Definition):支持
F12/Ctrl+Click - 引入
HoverProvider,显示角色简介、类型、从属关系和颜色预览 - 右键菜单:新增命令 “Create Role from Selection”,可交互式创建新角色
- 文件变更监听:角色库文件保存后自动刷新补全和语法高亮
- 使用
Intl.Segmenter实现中文分词,兼容多语言场景
🧠 优化
- 优化补全排序逻辑,前缀匹配的候选项优先显示
🚧 已知问题
- ❗ 中文分词仍不稳定,某些词(如“睡觉”)会误识别部分字符(如“觉”)为角色
- ❗ 当角色名之间存在包含关系时,着色可能不准确
- ❗ 当前无 UUID 支持,角色名称需手动保证唯一
- ❗ 暂不支持“角色关系”建模,未来可能参考数据库关系结构添加
- ❗ 角色类型尚未开放自定义,计划后续支持用户自定义类型与颜色映射