KDevelop/RandomTODO: Difference between revisions
m (Ochurlaud moved page Projects/KDevelop4/RandomTODO to KDevelop/RandomTODO) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
= coherent menu = | |||
A rather obvious problem is the menu: For example, all settings relating to "views" in a wider sense (i.e. FULLSCREEN , concentration mode, status-line-ON-OFF asf.) should not be scattered around in various submenus but be placed all together in a single "VIEW" submenu instead. | |||
= Optimize Shared-Pointer Usage = | = Optimize Shared-Pointer Usage = | ||
So far our API and codebase passes shared pointers by value. This should be made const& to optimize the superflous refcounting in such cases. This was also mentioned in one of the talks here: http://channel9.msdn.com/Events/GoingNative/GoingNative-2012 I (milian) will try to find out which one it was if anyone doubts the above statement. | So far our API and codebase passes shared pointers by value. This should be made const& to optimize the superflous refcounting in such cases. This was also mentioned in one of the talks here: http://channel9.msdn.com/Events/GoingNative/GoingNative-2012 I (milian) will try to find out which one it was if anyone doubts the above statement. | ||
= Refactor ParseJob to use a Stream API = | = Refactor ParseJob to use a Stream API = | ||
Line 18: | Line 17: | ||
- no recursive mutex locking | - no recursive mutex locking | ||
- no superfluous type conversions (like const char* <-> QString or similar) | - no superfluous type conversions (like const char* <-> QString or similar) | ||
Latest revision as of 07:04, 11 March 2019
A rather obvious problem is the menu: For example, all settings relating to "views" in a wider sense (i.e. FULLSCREEN , concentration mode, status-line-ON-OFF asf.) should not be scattered around in various submenus but be placed all together in a single "VIEW" submenu instead.
So far our API and codebase passes shared pointers by value. This should be made const& to optimize the superflous refcounting in such cases. This was also mentioned in one of the talks here: http://channel9.msdn.com/Events/GoingNative/GoingNative-2012 I (milian) will try to find out which one it was if anyone doubts the above statement.
Refactor ParseJob to use a Stream API
Instead of the monolithic QString/QByteArray in ParseJob::Contents we should have some API that yields the contents on a line-by-line basis. This would be especially good for files that are read from disk. For files that are open in the editor though we'll have to see what to do. Probably copying a QVector<QString> would be good there, since Kate stores the strings also on a line-by-line basis - this could potentially share some memory then.
Optimize ItemRepositories
Redo what I did for the IndexedString item repository for the other repository. This includes:
- use fast hash methods (no RunningHash, investigate hashlittle, ...) - no recursive mutex locking - no superfluous type conversions (like const char* <-> QString or similar)