mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2025-07-18 13:04:28 -04:00
fix: Apply part of code suggestion (#203)
This commit is contained in:
@ -131,16 +131,21 @@ bool LLMSuggestion::applyPart(Part part, TextEditor::TextEditorWidget *widget)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTextBlock currentBlock = currentCursor.block();
|
|
||||||
QString textAfterCursor = currentBlock.text().mid(currentCursor.positionInBlock());
|
|
||||||
|
|
||||||
if (!subText.contains('\n')) {
|
if (!subText.contains('\n')) {
|
||||||
QTextCursor deleteCursor = currentCursor;
|
currentCursor.insertText(subText);
|
||||||
deleteCursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);
|
|
||||||
deleteCursor.removeSelectedText();
|
|
||||||
|
|
||||||
QString mergedText = mergeWithRightText(subText, textAfterCursor);
|
const QString remainingText = text.mid(next);
|
||||||
currentCursor.insertText(mergedText);
|
if (!remainingText.isEmpty()) {
|
||||||
|
QTextCursor newCursor = widget->textCursor();
|
||||||
|
const Utils::Text::Position newStart = Utils::Text::Position::fromPositionInDocument(
|
||||||
|
newCursor.document(), newCursor.position());
|
||||||
|
const Utils::Text::Position
|
||||||
|
newEnd{newStart.line, newStart.column + int(remainingText.length())};
|
||||||
|
const Utils::Text::Range newRange{newStart, newEnd};
|
||||||
|
const QList<Data> newSuggestion{{newRange, newStart, remainingText}};
|
||||||
|
widget->insertSuggestion(
|
||||||
|
std::make_unique<LLMSuggestion>(newSuggestion, widget->document(), 0));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
currentCursor.insertText(subText);
|
currentCursor.insertText(subText);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user