cullmann (Christoph Cullmann)
User

Projects

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Friday

  • Clear sailing ahead.

User Details

User Since
Jul 30 2015, 8:46 PM (175 w, 5 d)
Availability
Available

Recent Activity

Yesterday

cullmann added a comment to D17459: SearchBar: Add Cancel button to stop long running tasks.

For: Um, have updated before read this. have droped your std::unique_ptr because im not familar with, no idea if my solution has ugly drawbacks. Is there a need to delete the hold object now?

Tue, Dec 11, 9:43 PM · Frameworks, Kate
cullmann requested changes to D17422: Falkon inserts incorrect history `count` data in sql.

Hmm, I am not sure this helps, given x lines above one does:

Tue, Dec 11, 8:49 PM · Falkon
cullmann added a comment to D16347: Expose KTextEditor::ViewPrivate:setInputMode(InputMode) to KTextEditor::View.

My change is BC and should have right naming, Dominik, ok?

Tue, Dec 11, 8:33 PM · Frameworks, Kate
cullmann updated the diff for D16347: Expose KTextEditor::ViewPrivate:setInputMode(InputMode) to KTextEditor::View.
Tue, Dec 11, 8:33 PM · Frameworks, Kate
cullmann commandeered D16347: Expose KTextEditor::ViewPrivate:setInputMode(InputMode) to KTextEditor::View.
Tue, Dec 11, 8:33 PM · Frameworks, Kate
Restricted Application added a project to D5656: Adds method to force the reloading of a document: Kate.

See e.g. document.cpp:

Tue, Dec 11, 8:19 PM · Kate, Frameworks
cullmann closed D17307: Fix unreadable Falkon logo text when using a dark theme.
Tue, Dec 11, 8:01 PM · Falkon
cullmann committed R875:3b51982c5dce: Fix unreadable Falkon logo text when using a dark theme (authored by GB_2).
Fix unreadable Falkon logo text when using a dark theme
Tue, Dec 11, 8:01 PM
cullmann committed R875:f43250f880db: Fix hardcoded private browsing icon (authored by GB_2).
Fix hardcoded private browsing icon
Tue, Dec 11, 7:55 PM
cullmann closed D17288: Fix hardcoded private browsing icon.
Tue, Dec 11, 7:55 PM · Falkon
cullmann accepted D17504: [kateproject tool] Fine tune cppcheck.

Hmm, if it really takes that bit of memory, just commit as is, thanks.

Tue, Dec 11, 7:39 PM · Kate
cullmann added a comment to D17459: SearchBar: Add Cancel button to stop long running tasks.

I am atm a bit busy, but from principle the code goes into the right direction :)
Thanks for taking this up!
For the input range, I think it would make sense to store it as std::unique_ptr<KTextEditor::MovingRange> to have it taking care of "edits" in-between the calls (even if that is no good idea, but that could avoid some issues, and saves the re-creation of the range in each call)

Tue, Dec 11, 7:38 PM · Frameworks, Kate
cullmann updated the diff for D17457: use STL were no implicit sharing is required.

no copying of cursor sets, only in-place updates

Tue, Dec 11, 7:18 PM · Frameworks, Kate
cullmann updated the diff for D17457: use STL were no implicit sharing is required.

STL doesn't need qAsConst

Tue, Dec 11, 7:08 PM · Frameworks, Kate
cullmann planned changes to D17457: use STL were no implicit sharing is required.

I will do some more things, therefore one can wait bit with reviewing, beside if you see some faults ;=)

Tue, Dec 11, 7:02 PM · Frameworks, Kate
cullmann updated the diff for D17457: use STL were no implicit sharing is required.

more in-place changes instead of copying

Tue, Dec 11, 6:58 PM · Frameworks, Kate
cullmann requested changes to D17504: [kateproject tool] Fine tune cppcheck.

I am not sure if that is such a good idea.
cppcheck can use a lot of memory, many people with 8 (virtual) cores might not have it ;=)
For parallel levels, I think we should have somewhere an option.

Tue, Dec 11, 6:25 PM · Kate
cullmann accepted D17503: [kateproject] Gracefully exit when analyzer is not finished.

Ok, then I think this can go in.

Tue, Dec 11, 2:49 PM · Kate
cullmann requested changes to D17503: [kateproject] Gracefully exit when analyzer is not finished.
Tue, Dec 11, 2:15 PM · Kate
cullmann added a comment to D17503: [kateproject] Gracefully exit when analyzer is not finished.

Hmm, I don't think you can just delete the QProcess, isn't there the need to at least terminate it first and wait for finished?

Tue, Dec 11, 2:15 PM · Kate
cullmann added a comment to D17459: SearchBar: Add Cancel button to stop long running tasks.

If you get deleted in-between that, the slot is never called again by the timer.
That means you are save.
It will just naturally stop work if the widget/... is destroyed.

Tue, Dec 11, 6:33 AM · Frameworks, Kate
cullmann added a comment to D17459: SearchBar: Add Cancel button to stop long running tasks.

After you return from processEvents, everything could have happened, e.g. the search bar got deleted because the view got delete => all things you do afterwards might do "something".

Tue, Dec 11, 6:18 AM · Frameworks, Kate

Mon, Dec 10

cullmann added a comment to D17441: tune editing actions for large number of small edits.

I guess it's ok to have this in. But please use this version at your daily work ;) I think we don't have many testers...

I always use Kate from git master. Is there anything in particular I should keep an eye out for?

Mon, Dec 10, 7:22 PM · Frameworks, Kate
cullmann added a comment to D17459: SearchBar: Add Cancel button to stop long running tasks.

You can't really do that in threads, you need to access the buffer, otherwise you can redo all things again in extra logic (like using the ranges for getting replacement ranges....)

Mon, Dec 10, 6:21 PM · Frameworks, Kate
cullmann added a comment to D17459: SearchBar: Add Cancel button to stop long running tasks.

A good explanation for the timer stuff can be found here:

Mon, Dec 10, 6:51 AM · Frameworks, Kate

Sun, Dec 9

cullmann accepted D17461: [KDirOperator] Don't squeeze Name column when there isn't enough horizontal space.

I think the proposed change is already an improvement.

Sun, Dec 9, 9:54 PM · Frameworks
cullmann requested changes to D17459: SearchBar: Add Cancel button to stop long running tasks.

The idea is good, I only am not sure that we want it with process events.
That always leads to evil things, like e.g. what happens if you press the X button of the view/window during that.
It would be better to refactor the replaceAll method in a way that it does

Sun, Dec 9, 7:50 PM · Frameworks, Kate
cullmann updated the diff for D17457: use STL were no implicit sharing is required.

more STL

Sun, Dec 9, 6:33 PM · Frameworks, Kate
cullmann committed R246:454d4d8be9dc: DictionaryComboBox: Keep user preferred dictionaries on top (authored by loh.tar).
DictionaryComboBox: Keep user preferred dictionaries on top
Sun, Dec 9, 6:26 PM
cullmann closed D17030: DictionaryComboBox: Keep user preferred dictionaries on top.
Sun, Dec 9, 6:26 PM · Frameworks
cullmann accepted D17030: DictionaryComboBox: Keep user preferred dictionaries on top.

The intermediate diff looks strange, but the final diff is IMHO ok. Will apply that, thanks.

Sun, Dec 9, 5:45 PM · Frameworks
cullmann requested review of D17457: use STL were no implicit sharing is required.
Sun, Dec 9, 5:35 PM · Frameworks, Kate
cullmann added a comment to D17030: DictionaryComboBox: Keep user preferred dictionaries on top.

Ah, one thing: Could you add some @since 5.xxx to the new function in speller.h?

Only in speller? In settings_p.h are also two new, but there was no docu, so I also wrote nothing, but could

I think only speller.h is installed as public API, yes.

Sun, Dec 9, 5:31 PM · Frameworks
cullmann added a comment to D17441: tune editing actions for large number of small edits.

Fixed my QSet issues, I was just stupid, I shall have guarded the push_back with the bool, not the later use. ;=)

Sun, Dec 9, 5:05 PM · Frameworks, Kate
cullmann committed R39:2138e1d27c83: improve range handling, no allocations for common updates (authored by cullmann).
improve range handling, no allocations for common updates
Sun, Dec 9, 5:04 PM
cullmann closed D17441: tune editing actions for large number of small edits.
Sun, Dec 9, 5:04 PM · Frameworks, Kate
cullmann added a comment to D17128: DocumentPrivate: Remove comment mark when joining lines.

I think we could do that in two steps:

Sun, Dec 9, 3:17 PM · Frameworks, KTextEditor, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

Yes, there is now a limit for how many highlightings are done.
If its too much, we skip that, else the rendering will break everthing down ;=)

Doing these highliting "on the fly" (only what is/became visible) is probably not possible(?)

In principle yes, but I think that is too much work for the case that "mostly all things" are marked ;=)

Sun, Dec 9, 3:11 PM · Frameworks, Kate
cullmann added a comment to D16336: BuildView: Avoid to show ToolView when build is invoked.

In principle, less message boxes are good ;=)

Sun, Dec 9, 3:09 PM · Kate
cullmann committed R216:d4c10b4533ed: BrightScript: Remove unused keyword list 'end' (authored by dhaumann).
BrightScript: Remove unused keyword list 'end'
Sun, Dec 9, 3:04 PM
cullmann closed D17436: BrightScript: Remove unused keyword list 'end'.
Sun, Dec 9, 3:04 PM · Frameworks, Kate
cullmann accepted D17436: BrightScript: Remove unused keyword list 'end'.

If not used, I shall go, no need to have the warning around.

Sun, Dec 9, 3:03 PM · Frameworks, Kate
cullmann added a comment to D17437: SearchBar: Avoid malfunction with very large files.

Ok, I would prefer then if you retract that and submit the cancel thingy.

Sun, Dec 9, 3:01 PM · Frameworks, Kate
cullmann accepted D17055: Avoid Q_FOREACH.

I would say it looks reasonable and either only stuff const stuff or fresh things inside the for.

Sun, Dec 9, 2:57 PM · Frameworks
cullmann closed D17028: Loader: Avoid Q_FOREACH.
Sun, Dec 9, 2:55 PM · Frameworks
cullmann committed R246:bf8f3067fd3a: Loader: Avoid Q_FOREACH (authored by loh.tar).
Loader: Avoid Q_FOREACH
Sun, Dec 9, 2:55 PM
cullmann added a comment to D17028: Loader: Avoid Q_FOREACH.

We started to accept his patches for other frameworks, I think there is no harm in doing so, here, too. Real name or not.

Sun, Dec 9, 2:54 PM · Frameworks
cullmann committed R246:a38e1c04a035: Dialog: Use DictionaryComboBox instead of plain QComboBox (authored by loh.tar).
Dialog: Use DictionaryComboBox instead of plain QComboBox
Sun, Dec 9, 2:53 PM
cullmann closed D17056: Dialog: Use DictionaryComboBox instead of plain QComboBox.
Sun, Dec 9, 2:53 PM · Frameworks
cullmann accepted D17056: Dialog: Use DictionaryComboBox instead of plain QComboBox.

Like the change in KTextEditor, I think this should go in.

Sun, Dec 9, 2:52 PM · Frameworks
cullmann requested changes to D17030: DictionaryComboBox: Keep user preferred dictionaries on top.

Ah, one thing: Could you add some @since 5.xxx to the new function in speller.h? I assume 5.54 would be the right one.

Sun, Dec 9, 2:48 PM · Frameworks
cullmann added a comment to D17030: DictionaryComboBox: Keep user preferred dictionaries on top.

I think this makes sense, it improves the usability of the dictionary selection.
I see no API issues, should be BC and docs are there, too.

Sun, Dec 9, 2:46 PM · Frameworks
cullmann added a comment to D17441: tune editing actions for large number of small edits.

The only curiosity I noticed is that no highliting take effect when there are too much hits(?) Search some number like 5 "142926 matches found" no highlight. Char A "10565 matches found" is highlighted

Sun, Dec 9, 2:42 PM · Frameworks, Kate
cullmann added a comment to D17437: SearchBar: Avoid malfunction with very large files.

I think the current state after the improvements in the other bug is good enough to avoid such a message.
Would it be ok for you to abandon this?

Sun, Dec 9, 2:41 PM · Frameworks, Kate
cullmann committed R39:9ed6507bce24: KateViewInternal: Rename getMouse/Cursor() => mouse/cursorPosition() to fit… (authored by loh.tar).
KateViewInternal: Rename getMouse/Cursor() => mouse/cursorPosition() to fit…
Sun, Dec 9, 2:40 PM
cullmann closed D17382: KateViewInternal: Rename getMouse/Cursor() => mouse/cursorPosition() to fit coding style.
Sun, Dec 9, 2:40 PM · Frameworks, Kate
cullmann reopened D17441: tune editing actions for large number of small edits.

Hmm, the keys test seem to fail not for all Qt versions.
Qt 5.9 ok
Qt 5.11 bad
see e.g. CI.
Before and after this commit...

Sun, Dec 9, 2:14 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

Hmpf, I amended my commit message to contain a CHANGELOG... and stuff bug unfortunately arc land ate that again :P

Sun, Dec 9, 2:10 PM · Frameworks, Kate
cullmann committed R39:85a1c56ed832: tune editing actions for large number of small edits (authored by cullmann).
tune editing actions for large number of small edits
Sun, Dec 9, 2:09 PM
cullmann closed D17441: tune editing actions for large number of small edits.
Sun, Dec 9, 2:09 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

This needs now some user testing ;=)

Sun, Dec 9, 2:03 PM · Frameworks, Kate
cullmann added inline comments to D17441: tune editing actions for large number of small edits.
Sun, Dec 9, 1:59 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

One issue I have with the auto-tests:

Sun, Dec 9, 1:58 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

Crash fixed again.
Updated comments to make more clear what happens.

Sun, Dec 9, 1:53 PM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

go back to QSet for the checkValidity, mark in the comments that ranges might be deleted

Sun, Dec 9, 1:51 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

Ok, the optimization with the vector fails due delets inside checkValidity(), need to revert that and update docs.

Sun, Dec 9, 1:39 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

:P Crash for the win.

Sun, Dec 9, 1:22 PM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

save 1% total runtime in addItem

Sun, Dec 9, 12:50 PM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

next minor bottleneck: QList with things a bit larger than a pointer
in addition, here zero sharing is needed or wanted, we can use a plain vector

Sun, Dec 9, 12:33 PM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

avoid most allocations for the common cases of a few affected ranges

Sun, Dec 9, 12:25 PM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

improve m_isCheckValidityRequired management

Sun, Dec 9, 12:16 PM · Frameworks, Kate
cullmann added a comment to D17432: WIP: Add Analyzer Tool "Cppcheck (for C)".

Hmm, actually, would it not be just nicer to enhance the one cppcheck analysis class to feed the different language files with the correct parameters to cppcheck?
That way, we just can have one analyzer object dealing with cppcheck.

Sun, Dec 9, 12:10 PM · Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

I have tried this one. Yes, works much more better!
Nice to see that my own (unloved) patch wake your interest to dig into that issue :-)

:=) Nice that it helps a bit for the speed isue.

Sun, Dec 9, 12:08 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

For the unit test: we have tests for ranges, it makes no sense to test if the bool is set.
As long as the range tests still work, the updates are ok.

Sun, Dec 9, 12:03 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

Will improve further ;=)

Sun, Dec 9, 11:59 AM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.
85.51%     0.00%  kwrite           kwrite                              [.] main
85.49%     0.00%  kwrite           libc-2.28.so                        [.] __libc_start_main
85.47%     0.00%  kwrite           kwrite                              [.] _start
85.09%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] QApplicationPrivate::notify_helper
85.09%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] QApplication::notify
85.08%     0.00%  kwrite           libQt5Core.so.5.11.2                [.] QCoreApplication::notifyInternal2
84.95%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] QWidget::event
84.82%     0.00%  kwrite           libQt5Core.so.5.11.2                [.] QEventLoop::exec
84.81%     0.00%  kwrite           libQt5Core.so.5.11.2                [.] QCoreApplication::exec
83.75%     2.45%  kwrite           libQt5Core.so.5.11.2                [.] QMetaObject::activate
83.66%     0.00%  kwrite           libQt5Gui.so.5.11.2                 [.] QGuiApplicationPrivate::processWindowSystemEvent
83.66%     0.00%  kwrite           libQt5Gui.so.5.11.2                 [.] QWindowSystemInterface::sendWindowSystemEvents
83.66%     0.00%  kwrite           libQt5XcbQpa.so.5.11.2              [.] 0x00007f8e008eadac
83.64%     0.00%  kwrite           libQt5Gui.so.5.11.2                 [.] QGuiApplicationPrivate::processMouseEvent
83.64%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] 0x00007f8e084575d4
83.64%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] QApplicationPrivate::sendMouseEvent
83.64%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] 0x00007f8e0845498b
83.63%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] QAbstractButton::mouseReleaseEvent
83.01%     0.00%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateSearchBar::qt_static_metacall
83.01%     0.00%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateSearchBar::replaceAll
83.01%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] QAbstractButton::clicked
83.01%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] 0x00007f8e084e4a1b
83.01%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] 0x00007f8e084e5e11
82.95%     0.28%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateSearchBar::findAll
69.05%     0.17%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateMatch::replace
65.42%     0.12%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::replaceText
34.14%     0.19%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::insertText
32.93%     0.22%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::editInsertText
31.05%     0.18%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::removeText
29.85%     0.32%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::editRemoveText
17.63%     0.17%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBuffer::removeText
17.45%     0.22%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBuffer::insertText
10.64%     0.87%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBlock::removeText
 9.25%     0.02%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::textInserted
 9.20%     0.06%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateMatch::searchText
 8.96%     0.98%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBlock::insertText
 7.97%     0.11%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::searchText
 7.65%     0.04%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBuffer::textInserted
 6.54%     0.04%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::QSlotObject<void (KateVi::NormalViMode::*)(KTextEditor::Document*, KTextEditor::Range), QtPrivate::List<KTextEditor::Document*, KTextEditor::Range const&>, void>::impl
 6.54%     0.07%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::FunctionPointer<void (KateVi::NormalViMode::*)(KTextEditor::Document*, KTextEditor::Range)>::call<QtPrivate::List<KTextEditor::Document*, KTextEditor::Range const&>, void>
 6.46%     0.08%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<KTextEditor::Document*, KTextEditor::Range const&>, void, void (KateVi::NormalViMode::*)(KTextEditor::Document*, KTextEditor::Range)>::call
 5.81%     0.09%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBuffer::textRemoved
 5.12%     0.05%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::textRemoved
 4.92%     0.29%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateBuffer::plainLine
 4.88%     0.09%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateUndoManager::addUndoItem
 4.41%     0.26%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBuffer::line
 4.25%     0.24%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextRange::checkValidity
 4.18%     0.09%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateUndoManager::slotTextRemoved
 4.17%     0.24%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateVi::NormalViMode::textInserted
 4.13%     0.03%  kwrite           libKF5TextEditor.so.5.53.0          [.] std::vector<Kate::TextRange*, std::allocator<Kate::TextRange*> >::push_back
 4.06%     0.11%  kwrite           libKF5TextEditor.so.5.53.0          [.] std::vector<Kate::TextRange*, std::allocator<Kate::TextRange*> >::emplace_back<Kate::TextRange*>
 4.02%     0.36%  kwrite           libKF5TextEditor.so.5.53.0          [.] KatePlainTextSearch::search
 3.92%     0.07%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateLayoutCache::qt_static_metacall
 3.80%     0.05%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateUndoManager::slotTextInserted
 3.69%     0.26%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateLineLayoutMap::slotEditDone
 3.66%     0.34%  kwrite           libKF5TextEditor.so.5.53.0          [.] std::vector<Kate::TextRange*, std::allocator<Kate::TextRange*> >::_M_realloc_insert<Kate::TextRange*>
 3.63%     0.03%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::QSlotObject<void (KateViewInternal::*)(KTextEditor::Document*, KTextEditor::Range const&), QtPrivate::List<KTextEditor::Document*, KTextEditor::Range const&>, void>::impl
 3.61%     0.04%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::FunctionPointer<void (KateViewInternal::*)(KTextEditor::Document*, KTextEditor::Range const&)>::call<QtPrivate::List<KTextEditor::Document*, KTextEditor::Range const&>, void>
 3.59%     0.21%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::SwapFile::qt_static_metacall
 3.56%     0.04%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<KTextEditor::Document*, KTextEditor::Range const&>, void, void (KateViewInternal::*)(KTextEditor::Document*, KTextEditor::Range const&)>::call
 3.55%     0.06%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateViewInternal::documentTextInserted
 3.55%     0.91%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::RefCount::deref
 3.51%     0.40%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateUndoGroup::addItem
 3.39%     0.07%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateCompletionWidget::qt_static_metacall
 3.33%     0.25%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::text
 3.24%     0.49%  kwrite           libKF5TextEditor.so.5.53.0          [.] QString::~QString
 3.01%     0.86%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateVi::Marks::setMark
 2.84%     0.84%  kwrite           libKF5TextEditor.so.5.53.0          [.] QBasicAtomicInteger<int>::load
 2.77%     0.24%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextRange::fixLookup
 2.52%     0.38%  kwrite           libKF5TextEditor.so.5.53.0          [.] QBasicAtomicInteger<int>::deref
 2.41%     0.16%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextRange::setRange
 2.33%     2.01%  kwrite           libKF5TextEditor.so.5.53.0          [.] QAtomicOps<int>::load<int>
 2.32%     0.81%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBuffer::blockForLine
 2.29%     0.25%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBlock::line
 2.19%     0.09%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::SwapFile::insertText
 2.18%     0.20%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateCompletionWidget::insertText
 2.16%     0.33%  kwrite           libKF5TextEditor.so.5.53.0          [.] QAtomicOps<int>::deref<int>
 2.14%     0.17%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateVi::NormalViMode::textRemoved
 2.09%     0.10%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::kateTextLine
 2.01%     0.07%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateLayoutCache::removeText
 1.97%     0.09%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateRegExpSearch::escapePlaintext
 1.87%     0.05%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateLayoutCache::insertText
 1.87%     1.87%  kwrite           kwrite                              [.] std::__atomic_base<int>::operator--
 1.82%     0.02%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::QSlotObject<void (KateViewInternal::*)(KTextEditor::Document*, KTextEditor::Range const&, QString const&), QtPrivate::List<KTextEditor::Document*, KTextEditor::Range const&, QString const&>, void>::impl
 1.81%     0.32%  kwrite           libstdc++.so.6.0.25                 [.] __dynamic_cast
 1.81%     0.02%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::FunctionPointer<void (KateViewInternal::*)(KTextEditor::Document*, KTextEditor::Range const&, QString const&)>::call<QtPrivate::List<KTextEditor::Document*, KTextEditor::Range const&, QString const&>, void>
 1.80%     0.03%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2>, QtPrivate::List<KTextEditor::Document*, KTextEditor::Range const&, QString const&>, void, void (KateViewInternal::*)(KTextEditor::Document*, KTextEditor::Range const&, QString const&)>::call
 1.76%     0.05%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateViewInternal::documentTextRemoved
 1.71%     0.21%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateRegExpSearch::buildReplacement
 1.70%     0.13%  kwrite           libKF5TextEditor.so.5.53.0          [.] std::__uninitialized_move_if_noexcept_a<Kate::TextRange**, Kate::TextRange**, std::allocator<Kate::TextRange*> >
 1.64%     0.12%  kwrite           libKF5TextEditor.so.5.53.0          [.] QSharedPointer<Kate::TextLineData>::~QSharedPointer
 1.64%     0.00%  kwrite           libc-2.28.so                        [.] __GI___libc_malloc (inlined)
 1.62%     0.27%  kwrite           libKF5TextEditor.so.5.53.0          [.] QSharedPointer<Kate::TextLineData>::deref
 1.58%     0.21%  kwrite           libKF5TextEditor.so.5.53.0          [.] QBasicAtomicInteger<int>::ref
 1.56%     0.64%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::RefCount::isShared
 1.55%     0.23%  kwrite           libstdc++.so.6.0.25                 [.] __cxxabiv1::__si_class_type_info::__do_dyncast
 1.51%     0.87%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextCursor::line
 1.49%     1.49%  kwrite           libKF5TextEditor.so.5.53.0          [.] QArrayData::data
 1.48%     0.10%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateModifiedRemoveText::KateModifiedRemoveText
 1.47%     1.47%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::Cursor::line
 1.47%     0.43%  kwrite           libKF5TextEditor.so.5.53.0          [.] QSharedPointer<Kate::TextLineData>::QSharedPointer
 1.46%     0.05%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateVi::Marks::setLastChange
 1.43%     0.36%  kwrite           libQt5Core.so.5.11.2                [.] QArrayData::allocate
 1.42%     0.22%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextHistory::addEntry
 1.42%     0.33%  kwrite           libQt5Core.so.5.11.2                [.] QIODevice::write
 1.41%     0.22%  kwrite           libKF5TextEditor.so.5.53.0          [.] QAtomicOps<int>::ref<int>
 1.40%     0.83%  kwrite           libQt5Gui.so.5.11.2                 [.] QAccessible::queryAccessibleInterface
 1.40%     0.34%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::RefCount::ref
 1.35%     0.10%  kwrite           libKF5TextEditor.so.5.53.0          [.] qDeleteAll<QList<KateUndoGroup*> >
 1.35%     0.17%  kwrite           libKF5TextEditor.so.5.53.0          [.] QSharedPointer<Kate::TextLineData>::deref
 1.34%     0.05%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateModifiedInsertText::KateModifiedInsertText
 1.34%     0.32%  kwrite           libKF5TextEditor.so.5.53.0          [.] QString::QString
 1.33%     1.33%  kwrite           libc-2.28.so                        [.] __strcmp_avx2
 1.33%     0.24%  kwrite           libKF5TextEditor.so.5.53.0          [.] QVector<KTextEditor::Range>::append
 1.32%     1.32%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBlock::startLine
 1.30%     0.24%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::operator<
 1.30%     0.09%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::plainKateTextLine
 1.25%     0.27%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::Range::Range
 1.25%     0.09%  kwrite           libKF5TextEditor.so.5.53.0          [.] std::__uninitialized_copy_a<std::move_iterator<Kate::TextRange**>, Kate::TextRange**, Kate::TextRange*>
 1.24%     0.26%  kwrite           libQt5Gui.so.5.11.2                 [.] QAccessibleEvent::accessibleInterface
 1.23%     0.10%  kwrite           libKF5TextEditor.so.5.53.0          [.] QSet<Kate::TextCursor*>::const_iterator::operator++
 1.23%     0.30%  kwrite           libQt5Core.so.5.11.2                [.] QFileDevice::writeData
 1.23%     0.10%  kwrite           libQt5Core.so.5.11.2                [.] QDataStream::operator<<
 1.23%     1.23%  kwrite           libc-2.28.so                        [.] malloc
 1.23%     0.04%  kwrite           libQt5Core.so.5.11.2                [.] QTimer::start
 1.23%     0.00%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::openFile
 1.22%     0.00%  kwrite           libKF5XmlGui.so.5.53.0              [.] KMainWindow::event
 1.22%     0.00%  kwrite           libQt5Widgets.so.5.11.2             [.] QMainWindow::event
 1.22%     0.16%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBlock::updateRange
 1.21%     0.17%  kwrite           libQt5Core.so.5.11.2                [.] QObject::startTimer
 1.20%     0.00%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateBuffer::openFile
 1.19%     1.19%  kwrite           kwrite                              [.] std::__atomic_base<int>::operator++
 1.18%     0.00%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextBuffer::load
 1.17%     0.09%  kwrite           libKF5TextEditor.so.5.53.0          [.] std::uninitialized_copy<std::move_iterator<Kate::TextRange**>, Kate::TextRange**>
 1.17%     0.00%  kwrite           libKF5XmlGui.so.5.53.0              [.] KXmlGuiWindow::event
 1.16%     0.07%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::SwapFile::removeText
 1.16%     0.05%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::MovingRange::setRange
 1.16%     0.15%  kwrite           libKF5TextEditor.so.5.53.0          [.] QHash<Kate::TextCursor*, QHashDummyValue>::const_iterator::operator++
 1.16%     0.00%  kwrite           libQt5Core.so.5.11.2                [.] QEventDispatcherGlib::processEvents
 1.16%     0.00%  kwrite           libQt5XcbQpa.so.5.11.2              [.] 0x00007f8e008eada1
 1.16%     0.00%  kwrite           libglib-2.0.so.0.5800.1             [.] g_main_context_iteration
 1.16%     0.00%  kwrite           libglib-2.0.so.0.5800.1             [.] g_main_context_dispatch
 1.16%     0.00%  kwrite           libglib-2.0.so.0.5800.1             [.] 0x00007f8e04ebcf88
 1.16%     0.14%  kwrite           libKF5TextEditor.so.5.53.0          [.] QMap<QChar, KTextEditor::MovingCursor*>::value
 1.15%     0.17%  kwrite           libKF5TextEditor.so.5.53.0          [.] Kate::TextLoader::readLine
 1.14%     0.07%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateCompletionWidget::removeText
 1.13%     0.18%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateEditInsertTextUndo::mergeWith
 1.13%     0.00%  kwrite           [unknown]                           [.] 0xffffffffffffffff
 1.12%     0.27%  kwrite           libQt5Core.so.5.11.2                [.] QString::mid
 1.11%     0.05%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::qMakeForeachContainer<QSet<Kate::TextCursor*>&>
 1.11%     0.09%  kwrite           libKF5TextEditor.so.5.53.0          [.] std::__uninitialized_copy<true>::__uninit_copy<std::move_iterator<Kate::TextRange**>, Kate::TextRange**>
 1.10%     0.07%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::DocumentPrivate::line
 1.10%     0.48%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::operator>=
 1.08%     0.23%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::Range::Range
 1.08%     0.12%  kwrite           libKF5TextEditor.so.5.53.0          [.] QVector<QPair<int, QExplicitlySharedDataPointer<KateLineLayout> > >::end
 1.07%     0.17%  kwrite           libKF5TextEditor.so.5.53.0          [.] QVector<QPair<int, QExplicitlySharedDataPointer<KateLineLayout> > >::detach
 1.07%     0.00%  kwrite           libQt5Core.so.5.11.2                [.] QObject::event
 1.06%     0.18%  kwrite           libKF5TextEditor.so.5.53.0          [.] QSharedPointer<Kate::TextLineData>::ref
 1.05%     0.00%  kwrite           libQt5Core.so.5.11.2                [.] QCoreApplicationPrivate::sendPostedEvents
 1.05%     0.19%  kwrite           libKF5TextEditor.so.5.53.0          [.] QtPrivate::QForeachContainer<QSet<Kate::TextCursor*> >::QForeachContainer
 1.04%     0.28%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::MovingRange::toRange
 1.04%     0.03%  kwrite           libKF5TextEditor.so.5.53.0          [.] KateVi::Marks::setFinishEditYanked
 1.04%     0.00%  kwrite           libQt5Core.so.5.11.2                [.] 0x00007f8e07a449d3
 1.03%     0.22%  kwrite           libKF5TextEditor.so.5.53.0          [.] QMapData<QChar, KTextEditor::MovingCursor*>::findNode
 1.03%     1.03%  kwrite           libQt5Core.so.5.11.2                [.] QRingBuffer::reserve
 1.00%     0.62%  kwrite           libKF5TextEditor.so.5.53.0          [.] KTextEditor::MovingCursor::toCursor
Sun, Dec 9, 12:35 AM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

save expensive buildReplacement call if no place holders around

Sun, Dec 9, 12:28 AM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

:P ROFL

Sun, Dec 9, 12:19 AM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

avoid costly lineLength computation

Sun, Dec 9, 12:18 AM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

New state:

Sun, Dec 9, 12:07 AM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

only update edit position stack once per transaction with last position of any primitive

Sun, Dec 9, 12:02 AM · Frameworks, Kate

Sat, Dec 8

cullmann added a comment to D17441: tune editing actions for large number of small edits.

Current profile

Sat, Dec 8, 11:37 PM · Frameworks, Kate
cullmann committed R216:72bffaf5648f: increment file version (authored by cullmann).
increment file version
Sat, Dec 8, 11:36 PM
cullmann committed R216:8741ced7fe71: add attributes `shared` and `__gshared` (authored by cullmann).
add attributes `shared` and `__gshared`
Sat, Dec 8, 11:35 PM
cullmann closed D17406: add attributes `shared` and `__gshared`.
Sat, Dec 8, 11:35 PM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

avoid massive moving range creation

Sat, Dec 8, 11:17 PM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

avoid a lot of allocations for the sets

Sat, Dec 8, 10:42 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

:=) at least we now beat atom, with the test case file and replace all \t >= ; it just crashed here after "non responding".

Sat, Dec 8, 10:18 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

Same issue with the marks of the vimode.
Perhaps they should not triggered at all if vi mode is off ;=)
In any case, this test shows a lot of bottlenecks.
e.g. even the l->toVirtualColumn that is used for block mode did show up like hell because it was accidently done always ;=)
that had a >> 10% usage here for some runs during patching.

Sat, Dec 8, 9:45 PM · Frameworks, Kate
cullmann added a comment to D17441: tune editing actions for large number of small edits.

Yes, even after this optimization :P 10%

Sat, Dec 8, 9:40 PM · Frameworks, Kate
cullmann added a reviewer for D17441: tune editing actions for large number of small edits: loh.tar.

Could you try this patch?
With it, the test case from the bug properly works with < 3GB of memory.
It is still VERY slow, but it doesn't lead to an unusable state.
Before, alone the replacement moving ranges that are used for the hl at the end did take extra 4-5 GB of memory.

Sat, Dec 8, 9:35 PM · Frameworks, Kate
cullmann updated the diff for D17441: tune editing actions for large number of small edits.

limit number of highlightings for replace
more than 2^16 things will not be marked

Sat, Dec 8, 9:33 PM · Frameworks, Kate
cullmann added a comment to D17437: SearchBar: Avoid malfunction with very large files.

I am still not that happy with a hard limit, I will first work a bit on the root causes: that the speed sucks ;=)

Sat, Dec 8, 9:15 PM · Frameworks, Kate
cullmann added reviewers for D17441: tune editing actions for large number of small edits: dhaumann, Kate.
Sat, Dec 8, 9:14 PM · Frameworks, Kate
cullmann requested review of D17441: tune editing actions for large number of small edits.
Sat, Dec 8, 9:14 PM · Frameworks, Kate
cullmann added a comment to D17437: SearchBar: Avoid malfunction with very large files.

For the: I like to suggest to get rid of most of that S&R code and use instead code from the Search plugin. There is the S&R done in an own thread and did not block the UI.

Sat, Dec 8, 5:52 PM · Frameworks, Kate
cullmann requested changes to D17437: SearchBar: Avoid malfunction with very large files.

Hmm, I don't like such hard limits.
e.g. in our company, more or less all machines have 32 or 64 GB of memory and that should work fine.
(not that I say we should use that much memory).

Sat, Dec 8, 5:48 PM · Frameworks, Kate
cullmann added a comment to D17432: WIP: Add Analyzer Tool "Cppcheck (for C)".

If cppcheck works at least a bit like other checkers (like the one I work on, too: https://www.absint.com/rulechecker/ ), it should work on header files, too, and not only on compilation units.

Sat, Dec 8, 5:44 PM · Kate
cullmann accepted D16779: kate-ctags plugin: support KDevelop (WIP).

> ok to have that go in now, thanks!

Sat, Dec 8, 5:35 PM · KDevelop, KTextEditor, Kate
cullmann abandoned D5804: KatePluginSearchView: use selection foreground for search highlights.
Sat, Dec 8, 5:34 PM · Kate