Revision 870066
Go back to digest for 12th October 2008Optimization in KDE Base
David Nolden committed changes in /trunk/KDE/kdelibs:
Improve the smart-ranges so they don't confine child-ranges to each other, without significant performance-overhead in the case of non-overlapping children.
This undocumented behavior was very hard to deal with in complex applications like KDevelop's C++ support, and hard to debug.
Now the child-ranges are sorted by end-cursor, and each range maintains the count of later ranges it is overlapped by. This allows efficient manipulation and efficient rendering.
This includes a lot of #ifdeffed debugging and verification code, that has proven that it works quite well.
Rendering of overlapped child-ranges works too. Whenever overlapped children are encountered, a new KateRenderRange is created for the additional overlapping children.
File Changes
Modified 7 files
- /trunk/KDE/kdelibs
- /interfaces/ktexteditor/smartrange.cpp
- /interfaces/ktexteditor/smartrange.h
- /kate/render/katerenderrange.cpp
- /kate/render/katerenderrange.h
- /kate/smart/katesmartcursor.cpp
- /kate/smart/katesmartmanager.cpp
- /kate/smart/katesmartmanager.h
7 files changed in total