feat: Add refactor editor widget

This commit is contained in:
Petr Mironychev
2025-11-22 13:00:00 +01:00
parent 07de415346
commit 0aed886e31
11 changed files with 1420 additions and 7 deletions

View File

@ -155,6 +155,16 @@ QuickRefactorSettings::QuickRefactorSettings()
readStringsAfterCursor.setRange(0, 10000);
readStringsAfterCursor.setDefaultValue(30);
displayMode.setSettingsKey(Constants::QR_DISPLAY_MODE);
displayMode.setLabelText(Tr::tr("Display Mode:"));
displayMode.setToolTip(
Tr::tr("Choose how to display refactoring suggestions:\n"
"- Inline Widget: Shows refactor in a widget overlay with Apply/Decline buttons (default)\n"
"- Qt Creator Suggestion: Uses Qt Creator's built-in suggestion system"));
displayMode.addOption(Tr::tr("Inline Widget"));
displayMode.addOption(Tr::tr("Qt Creator Suggestion"));
displayMode.setDefaultValue(0);
systemPrompt.setSettingsKey(Constants::QR_SYSTEM_PROMPT);
systemPrompt.setLabelText(Tr::tr("System Prompt:"));
systemPrompt.setDisplayStyle(Utils::StringAspect::TextEditDisplay);
@ -198,6 +208,9 @@ QuickRefactorSettings::QuickRefactorSettings()
contextGrid.addRow({Row{readFullFile}});
contextGrid.addRow({Row{readFileParts, readStringsBeforeCursor, readStringsAfterCursor}});
auto displayGrid = Grid{};
displayGrid.addRow({Row{displayMode}});
return Column{
Row{Stretch{1}, resetToDefaults},
Space{8},
@ -212,6 +225,8 @@ QuickRefactorSettings::QuickRefactorSettings()
Space{8},
Group{title(Tr::tr("Context Settings")), Column{Row{contextGrid, Stretch{1}}}},
Space{8},
Group{title(Tr::tr("Display Settings")), Column{Row{displayGrid, Stretch{1}}}},
Space{8},
Group{title(Tr::tr("Prompt Settings")), Column{Row{systemPrompt}}},
Space{8},
Group{title(Tr::tr("Ollama Settings")), Column{Row{ollamaGrid, Stretch{1}}}},
@ -272,6 +287,7 @@ void QuickRefactorSettings::resetSettingsToDefaults()
resetAspect(readFileParts);
resetAspect(readStringsBeforeCursor);
resetAspect(readStringsAfterCursor);
resetAspect(displayMode);
resetAspect(systemPrompt);
writeSettings();
}

View File

@ -67,6 +67,9 @@ public:
Utils::IntegerAspect readStringsBeforeCursor{this};
Utils::IntegerAspect readStringsAfterCursor{this};
// Display Settings
Utils::SelectionAspect displayMode{this};
// Prompt Settings
Utils::StringAspect systemPrompt{this};

View File

@ -220,5 +220,6 @@ const char QR_READ_FULL_FILE[] = "QodeAssist.qrReadFullFile";
const char QR_READ_STRINGS_BEFORE_CURSOR[] = "QodeAssist.qrReadStringsBeforeCursor";
const char QR_READ_STRINGS_AFTER_CURSOR[] = "QodeAssist.qrReadStringsAfterCursor";
const char QR_SYSTEM_PROMPT[] = "QodeAssist.qrSystemPrompt";
const char QR_DISPLAY_MODE[] = "QodeAssist.qrDisplayMode";
} // namespace QodeAssist::Constants