<table><tr><td style="">loh.tar updated this revision to Diff 55346.<br />loh.tar edited the summary of this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-gukualgn5zb6fxf/">(Show Details)</a><br />loh.tar edited the test plan for this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-oxun5mwwfc44r23/">(Show Details)</a><br />loh.tar added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D19446">View Revision</a></tr></table><br /><div><div><ul class="remarkup-list">
<li class="remarkup-list-item">Ensure the new added brackets will not be part of the selection when selection was done from right->left</li>
<li class="remarkup-list-item">Enhance autotest</li>
</ul>

<p>There is already toVirtualColumn used by rangeOnLine() and I have no idea how to fix the remaining issues, maybe you. <br />
<a href="https://phabricator.kde.org/F6749018" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">F6749018: 1554301567.png</a><br />
In the pic was the selection always done from right->left which seems to be the problems to increase. Everything looks good (even it looks odd) except the highlighted case.<br />
The problem occurs when the selection start/end has mixed(different) space/tabs. The block below the highlighted is the same but works fine. So I think rangeOnLine() may need an improved.</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">KTextEditor::Range KTextEditor::DocumentPrivate::rangeOnLine(KTextEditor::Range range, int line) const
{
    const int col1 = toVirtualColumn(range.start());
    const int col2 = toVirtualColumn(range.end());
    return KTextEditor::Range(line, fromVirtualColumn(line, col1), line, fromVirtualColumn(line, col2));
}</pre></div></div></div><br /><div><strong>CHANGES TO REVISION SUMMARY</strong><div><div style="white-space: pre-wrap; color: #74777D;">..how it should be by adding brackets to each line of the block<br />
<br />
<span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">- Ensure the new added brackets will never be part of the selection <br />
</span>- Encapsulate in editBegin/End<br />
- Reduce if/else nesting<span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);"> which make this patch looking bad, sorry</span><br />
<br />
BUG:382213<div style="padding: 8px 0;">...</div></div></div></div><br /><div><strong>CHANGES TO TEST PLAN</strong><div><div style="white-space: pre-wrap; color: #74777D;"><span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Oops?! I'm sorry the diff looks terrible. In the past were leading space changes ignored, so I had done these "Reduce if/else nesting" :-/<br />
<br />
- Feature or bug? Select in block mode from right->left on a single line after last char a block. The brackets are exchanged )( and placed at the end of the block<br />
- Code use MovingRange, old(?) similar code fumble around with backup cursors, I hope not for some optimizing but only because its older than MovingRange</span><br />
<span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">- No use of toVirtualColumn or similar. It looks so far good anyway.</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">- Feature or bug?</span> <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">Only when you mix tabs and spaces the result may sometimes odd</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">Select in block mode from right->left on a single line after last char a block</span>. <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">But I think there is no solution in using toVirtualColumn in</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">The brackets are exchanged )( and placed at</span> the <span style="padding: 0 2px; color: #333333; background: rgba(251, 175, 175, .7);">cases I had played around</span><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">end of the block</span><br />
- No call of view->slotTextInserted (will only emit signal) can't see any effect and isn't such signal not already emit by the doc itself?<br />
<br />
</div></div></div><br /><div><strong>CHANGES SINCE LAST UPDATE</strong><div><a href="https://phabricator.kde.org/D19446?vs=55303&id=55346">https://phabricator.kde.org/D19446?vs=55303&id=55346</a></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D19446">https://phabricator.kde.org/D19446</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>autotests/src/katedocument_test.cpp<br />
src/document/katedocument.cpp</div></div></div><br /><div><strong>To: </strong>loh.tar, KTextEditor, cullmann<br /><strong>Cc: </strong>cullmann, kwrite-devel, kde-frameworks-devel, KTextEditor, gennad, domson, michaelh, ngraham, bruns, demsking, sars, dhaumann<br /></div>