1、昨天把备忘录编辑功能由TextEditor换成了NSTextView,已经具备编辑、保存、选择、右键菜单等基础功能,今天继续测试并丰富备忘录编辑功能
2、测试发现目前备忘录未应用Markdown渲染,只显示了纯文本,未实现像Obsidian那种“所见即所得”的效果,Cursor表示需要将编辑器升级为支持实时Markdown渲染的WYSIWYG编辑器(不知道这个名字是啥意思),替换整个SimpleTextEditor为WYSIWYGMarkdownEditor
3、修改过程中发现又使用了NSColor.systemGray6这种iOS上才有的颜色,难道还是从iOS应用转为macOS应用的后遗症?
4、修改之后,部分Markdown语法已经实现了所见即所得的效果,比如标题1、标题2、标题3、有序列表、无需列表,但是粗体、斜体、行内代码三个语法虽然可以所见即所得,换行时渲染效果就会失效,而且编辑器内不支持通过快捷键command+Z实现撤销操作,Cursor先修复了撤销操作,然后通过改进样式应用逻辑来修复部分语法渲染失效的问题
5、编辑器出现了不能插入任何语法标记的问题,且刚刚insertMarkdown函数只是简单的在文本末尾添加内容,而不是在光标位置插入内容,Cursor进行了同步修改,自称可以实现在光标位置插入、包围格式智能光标、行级智能格式换行等等
6、再次测试,发现粗体、斜体、代码块这三个功能不好用,比如点击粗体按钮后,会在光标位置插入对应的Markdown语法,且光标在中间,但输入文字后,不会应用粗体效果,且部分文字会消失,斜体也是这样,代码块貌似不能正常闭合,会影响到后文的渲染,继续让Cursor修改
7、多次修改后,还出现了看不到备忘录内容的问题,Cursor创建了一个临时调试的简化版本,并增加调试信息来定位问题,粗体和斜体的正则表达式好像一直有问题,这几天一直在修复这个问题
8、在Cursor对编辑器进行“根本架构层面”的修改之后,文字可以正常输入、窗口可以随意调整、粗体也能正常渲染了,但我发现备忘录里应用Markdown语法后的内容,有的会同时显示语法标记和渲染效果,有的只显示渲染效果,Cursor更建议所有Markdown语法都隐藏标记,于是陆续隐藏了标题、列表、引用样式的语法标记,显示效果还可以,后面继续优化
9、接下来增加待办事项模块,在导航栏的“备忘录”下面增加“待办事项”,并由Cursor来设计一些待办事项相关功能,同时在搜索、数据统计、回收站中也增加待办事项相关功能,测试一下看看Cursor能够做到什么程度
10、Cursor创建了待办事项数据模型、在DataManager中添加待办事项管理功能、创建待办事项视图模型、创建待办事项主视图、创建添加待办事项视图、创建添加分组视图、创建待办事项详情视图,并更新导航栏、更新搜索功能、更新设置(数据统计、回收站),果然这次创建了很多新文件后,又没有更新项目文件就开始构建,甚至还想使用Xcode的命令行工具来添加文件,但明明可以直接修改项目文件,我叫停了使用脚本的操作,要求Cursor直接修改项目文件
11、然后再次构建测试,修复多个新文件中出现的macOS不支持的API,之后构建成功,据Cursor总结,目前已实现了完整的GRUD操作(创建、读取、更新、删除)、分组管理(支持自定义分组和颜色标识)、优先级系统(四个等级的优先级管理)、截止日期、智能分类(自动分类逾期、今日、其它待办)、搜索集成、数据统计、回收站及UI适配macOS
12、测试待办事项相关功能之前先让Cursor统计了下当前的代码量,目前整个NoteWith共有8292行Swift代码
13、开始测试并修复待办事项模块的问题,包括1.新建待办的界面显示不正常 2.新建分组的界面显示不正常,Cursor不仅修改了这两个视图,还修改了TodoDetailView,并设置了三个视图的固定窗口尺寸,显示不正常的原因在于,在macOS上,NavigationView和Form的组合可能会导致显示问题,改为VStack和ScrollView的自定义布局
14、之后在测试添加分组时,发现DEBUG信息中出现大量的颜色名称(Cursor创建的待办事项模块可以用不同颜色来区分分组),但这些颜色没有在应用的资源目录中定义,导致系统无法找到对应的颜色资源,Cursor修改了多个文件来解决颜色问题,使用了系统预定义颜色,并创建颜色转换函数
15、解决之后,测试待办事项添加、修改相关的功能,比如待办事项列表里看不到星期几,添加待办时可以精确到小时和分钟(其实我只需要精确到年月日),两个问题均已解决,今天就到这里了
16、怎么感觉现在这个NoteWith越来越像Notion了?原本我是在仿ima的