Brussels / 2 & 3 February 2013


New data structure for Writer core?

One major problem that is hard to fix with the current core data structures of Writer is anything that relates to tracking of changes - undo and change-tracking (redlining) itself. It is because the data structures use naive approach to the document - there is one array of 'nodes' (BigPtrArray), and additional data structures that take care of the changes. There are editors that use different data structure, so called "piece table", that has the advantage that it contains the change tracking information in the data structure itself, so it is trivial to traverse the changes. But, it is unusable for us because it would mean a complete Writer core rewrite. But - is there a possibility to upgrade/rewrite BigPtrArray so that it would contain the change tracking information in itself in a git-like fashion? ;-) That would allow us to do the changes incrementally - first upgrade the BigPtrArray without affecting the current functionality, and then do the rest.


Jan Holesovsky