Editor: fix assist actions

Amends 411100b037

Fixes: QTCREATORBUG-30673
Change-Id: Icc82b6f5526d229a13a7061cbc44904837c25f06
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
David Schulz
2024-04-11 15:04:36 +02:00
parent cdc4a8e42b
commit 41e581d0e1
2 changed files with 41 additions and 47 deletions

View File

@@ -3869,6 +3869,22 @@ void TextEditorWidgetPrivate::registerActions()
using namespace Core::Constants;
using namespace TextEditor::Constants;
ActionBuilder(this, Constants::COMPLETE_THIS)
.setContext(m_editorContext)
.addOnTriggered(this, [this] { q->invokeAssist(Completion); });
ActionBuilder(this, Constants::FUNCTION_HINT)
.setContext(m_editorContext)
.addOnTriggered(this, [this] { q->invokeAssist(FunctionHint); });
ActionBuilder(this, Constants::QUICKFIX_THIS)
.setContext(m_editorContext)
.addOnTriggered(this, [this] { q->invokeAssist(QuickFix); });
ActionBuilder(this, Constants::SHOWCONTEXTMENU)
.setContext(m_editorContext)
.addOnTriggered(this, [this] { q->showContextMenu(); });
m_undoAction = ActionBuilder(this, UNDO)
.setContext(m_editorContext)
.addOnTriggered([this] { q->undo(); })

View File

@@ -123,53 +123,6 @@ void TextEditorPlugin::initialize()
setupMarkdownEditor();
setupJsonEditor();
Context context(TextEditor::Constants::C_TEXTEDITOR);
// Add shortcut for invoking automatic completion
Command *command = nullptr;
ActionBuilder(this, Constants::COMPLETE_THIS)
.setText(Tr::tr("Trigger Completion"))
.setContext(context)
.bindCommand(&command)
.setDefaultKeySequence(Tr::tr("Meta+Space"), Tr::tr("Ctrl+Space"))
.addOnTriggered(this, [] {
if (BaseTextEditor *editor = BaseTextEditor::currentTextEditor())
editor->editorWidget()->invokeAssist(Completion);
});
connect(command, &Command::keySequenceChanged, [command] {
FancyLineEdit::setCompletionShortcut(command->keySequence());
});
FancyLineEdit::setCompletionShortcut(command->keySequence());
// Add shortcut for invoking function hint completion
ActionBuilder(this, Constants::FUNCTION_HINT)
.setText(Tr::tr("Display Function Hint"))
.setContext(context)
.setDefaultKeySequence(Tr::tr("Meta+Shift+D"), Tr::tr("Ctrl+Shift+D"))
.addOnTriggered(this, [] {
if (BaseTextEditor *editor = BaseTextEditor::currentTextEditor())
editor->editorWidget()->invokeAssist(FunctionHint);
});
// Add shortcut for invoking quick fix options
ActionBuilder(this, Constants::QUICKFIX_THIS)
.setText(Tr::tr("Trigger Refactoring Action"))
.setContext(context)
.setDefaultKeySequence(Tr::tr("Alt+Return"))
.addOnTriggered(this, [] {
if (BaseTextEditor *editor = BaseTextEditor::currentTextEditor())
editor->editorWidget()->invokeAssist(QuickFix);
});
ActionBuilder(this, Constants::SHOWCONTEXTMENU)
.setText(Tr::tr("Show Context Menu"))
.setContext(context)
.addOnTriggered(this, [] {
if (BaseTextEditor *editor = BaseTextEditor::currentTextEditor())
editor->editorWidget()->showContextMenu();
});
// Add text snippet provider.
SnippetProvider::registerGroup(Constants::TEXT_SNIPPET_GROUP_ID,
Tr::tr("Text", "SnippetProvider"));
@@ -354,6 +307,31 @@ void TextEditorPlugin::createStandardContextMenu()
void TextEditorPlugin::createEditorCommands()
{
using namespace Core::Constants;
// Add shortcut for invoking automatic completion
Command *command = nullptr;
ActionBuilder(this, Constants::COMPLETE_THIS)
.setText(Tr::tr("Trigger Completion"))
.bindCommand(&command)
.setDefaultKeySequence(Tr::tr("Meta+Space"), Tr::tr("Ctrl+Space"));
connect(command, &Command::keySequenceChanged, [command] {
FancyLineEdit::setCompletionShortcut(command->keySequence());
});
FancyLineEdit::setCompletionShortcut(command->keySequence());
// Add shortcut for invoking function hint completion
ActionBuilder(this, Constants::FUNCTION_HINT)
.setText(Tr::tr("Display Function Hint"))
.setDefaultKeySequence(Tr::tr("Meta+Shift+D"), Tr::tr("Ctrl+Shift+D"));
// Add shortcut for invoking quick fix options
ActionBuilder(this, Constants::QUICKFIX_THIS)
.setText(Tr::tr("Trigger Refactoring Action"))
.setDefaultKeySequence(Tr::tr("Alt+Return"));
ActionBuilder(this, Constants::SHOWCONTEXTMENU)
.setText(Tr::tr("Show Context Menu"));
ActionBuilder(this, DELETE_LINE).setText(Tr::tr("Delete &Line"));
ActionBuilder(this, DELETE_END_OF_LINE).setText(Tr::tr("Delete Line from Cursor On"));
ActionBuilder(this, DELETE_END_OF_WORD).setText(Tr::tr("Delete Word from Cursor On"));