-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add commit offsets patch #27
Conversation
记得有空resolve一下review的时候提出的comment~ |
我比较疑惑的是为什么这里需要有段落的概念?感觉直接对着所有 comment range 操作就可以了? |
有一个事情我还不太清楚,假如一个文件里面有两个 insert 操作,那么第二个insert操作的offset是基于原文件的吗,还是基于第一个insert操作修改之后的文件的? |
脑补了一会,好像把所有comment区间按照右端点排序之后,或许可以用差分/或者其他数据结构来维护一些东西,但是我没有仔细想,另外感觉del的处理可能还挺麻烦的。所以我觉得现在可能就直接n * m的暴力就好。。 |
基于原文件 |
目前 diff 确实是差分的模式( |
看起来现在这里确实有一些科技,要不您有空弄一个文档(在hackmd上就行)来demo一下这里的design?或者我们约一个语音的session来聊一下这里的东西 |
a01ff42 我糊了一版我的那个思路,FYI |
改好啦,可以看看 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
记得setup一下测试~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM,我晚上再最后仔细过一次,没问题就merge🚀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Commit offsets patch 用于在源文档发生更改时动态修正 offset,该功能的算法大致如下:
pseudoOffsetsDiffArr.beforeEverything
作为所有 offset 前的伪占位符来辅助计算(不需要afterEverything
,因为 所有 offset 后发生的更改不会影响这些 offset 的相对位置)该 pr 还同时支持了 path 更改,用于在迁移页面路径时使用。