forked from qt-creator/qt-creator
TextEditor: move rename symbol action to text editor
Task-number: QTCREATORBUG-21578 Change-Id: I9a873dcd38bacb2287c45973b6be0091c3eb9480 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -34,7 +34,6 @@ const char CPPEDITOR_ID[] = "CppEditor.C++Editor";
|
|||||||
const char CPPEDITOR_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("OpenWith::Editors", "C++ Editor");
|
const char CPPEDITOR_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("OpenWith::Editors", "C++ Editor");
|
||||||
const char SWITCH_DECLARATION_DEFINITION[] = "CppEditor.SwitchDeclarationDefinition";
|
const char SWITCH_DECLARATION_DEFINITION[] = "CppEditor.SwitchDeclarationDefinition";
|
||||||
const char OPEN_DECLARATION_DEFINITION_IN_NEXT_SPLIT[] = "CppEditor.OpenDeclarationDefinitionInNextSplit";
|
const char OPEN_DECLARATION_DEFINITION_IN_NEXT_SPLIT[] = "CppEditor.OpenDeclarationDefinitionInNextSplit";
|
||||||
const char RENAME_SYMBOL_UNDER_CURSOR[] = "CppEditor.RenameSymbolUnderCursor";
|
|
||||||
const char OPEN_PREPROCESSOR_DIALOG[] = "CppEditor.OpenPreprocessorDialog";
|
const char OPEN_PREPROCESSOR_DIALOG[] = "CppEditor.OpenPreprocessorDialog";
|
||||||
const char ERRORS_IN_HEADER_FILES[] = "CppEditor.ErrorsInHeaderFiles";
|
const char ERRORS_IN_HEADER_FILES[] = "CppEditor.ErrorsInHeaderFiles";
|
||||||
const char MULTIPLE_PARSE_CONTEXTS_AVAILABLE[] = "CppEditor.MultipleParseContextsAvailable";
|
const char MULTIPLE_PARSE_CONTEXTS_AVAILABLE[] = "CppEditor.MultipleParseContextsAvailable";
|
||||||
|
@@ -105,7 +105,8 @@ public:
|
|||||||
setEditorActionHandlers(TextEditorActionHandler::Format
|
setEditorActionHandlers(TextEditorActionHandler::Format
|
||||||
| TextEditorActionHandler::UnCommentSelection
|
| TextEditorActionHandler::UnCommentSelection
|
||||||
| TextEditorActionHandler::UnCollapseAll
|
| TextEditorActionHandler::UnCollapseAll
|
||||||
| TextEditorActionHandler::FollowSymbolUnderCursor);
|
| TextEditorActionHandler::FollowSymbolUnderCursor
|
||||||
|
| TextEditorActionHandler::RenameSymbol);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -118,7 +119,6 @@ public:
|
|||||||
void onAllTasksFinished(Core::Id type);
|
void onAllTasksFinished(Core::Id type);
|
||||||
void inspectCppCodeModel();
|
void inspectCppCodeModel();
|
||||||
|
|
||||||
QAction *m_renameSymbolUnderCursorAction = nullptr;
|
|
||||||
QAction *m_reparseExternallyChangedFiles = nullptr;
|
QAction *m_reparseExternallyChangedFiles = nullptr;
|
||||||
QAction *m_openTypeHierarchyAction = nullptr;
|
QAction *m_openTypeHierarchyAction = nullptr;
|
||||||
QAction *m_openIncludeHierarchyAction = nullptr;
|
QAction *m_openIncludeHierarchyAction = nullptr;
|
||||||
@@ -245,16 +245,7 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
|||||||
Command *sep = contextMenu->addSeparator();
|
Command *sep = contextMenu->addSeparator();
|
||||||
sep->action()->setObjectName(QLatin1String(Constants::M_REFACTORING_MENU_INSERTION_POINT));
|
sep->action()->setObjectName(QLatin1String(Constants::M_REFACTORING_MENU_INSERTION_POINT));
|
||||||
contextMenu->addSeparator();
|
contextMenu->addSeparator();
|
||||||
|
cppToolsMenu->addAction(ActionManager::command(TextEditor::Constants::RENAME_SYMBOL));
|
||||||
d->m_renameSymbolUnderCursorAction = new QAction(tr("Rename Symbol Under Cursor"),
|
|
||||||
this);
|
|
||||||
cmd = ActionManager::registerAction(d->m_renameSymbolUnderCursorAction,
|
|
||||||
Constants::RENAME_SYMBOL_UNDER_CURSOR,
|
|
||||||
context);
|
|
||||||
cmd->setDefaultKeySequence(QKeySequence(tr("CTRL+SHIFT+R")));
|
|
||||||
connect(d->m_renameSymbolUnderCursorAction, &QAction::triggered,
|
|
||||||
this, &CppEditorPlugin::renameSymbolUnderCursor);
|
|
||||||
cppToolsMenu->addAction(cmd);
|
|
||||||
|
|
||||||
// Update context in global context
|
// Update context in global context
|
||||||
cppToolsMenu->addSeparator(Core::Constants::G_DEFAULT_THREE);
|
cppToolsMenu->addSeparator(Core::Constants::G_DEFAULT_THREE);
|
||||||
@@ -342,8 +333,8 @@ void CppEditorPlugin::showPreProcessorDialog()
|
|||||||
void CppEditorPluginPrivate::onTaskStarted(Id type)
|
void CppEditorPluginPrivate::onTaskStarted(Id type)
|
||||||
{
|
{
|
||||||
if (type == CppTools::Constants::TASK_INDEX) {
|
if (type == CppTools::Constants::TASK_INDEX) {
|
||||||
m_renameSymbolUnderCursorAction->setEnabled(false);
|
|
||||||
ActionManager::command(TextEditor::Constants::FIND_USAGES)->action()->setEnabled(false);
|
ActionManager::command(TextEditor::Constants::FIND_USAGES)->action()->setEnabled(false);
|
||||||
|
ActionManager::command(TextEditor::Constants::RENAME_SYMBOL)->action()->setEnabled(false);
|
||||||
m_reparseExternallyChangedFiles->setEnabled(false);
|
m_reparseExternallyChangedFiles->setEnabled(false);
|
||||||
m_openTypeHierarchyAction->setEnabled(false);
|
m_openTypeHierarchyAction->setEnabled(false);
|
||||||
m_openIncludeHierarchyAction->setEnabled(false);
|
m_openIncludeHierarchyAction->setEnabled(false);
|
||||||
@@ -353,8 +344,8 @@ void CppEditorPluginPrivate::onTaskStarted(Id type)
|
|||||||
void CppEditorPluginPrivate::onAllTasksFinished(Id type)
|
void CppEditorPluginPrivate::onAllTasksFinished(Id type)
|
||||||
{
|
{
|
||||||
if (type == CppTools::Constants::TASK_INDEX) {
|
if (type == CppTools::Constants::TASK_INDEX) {
|
||||||
m_renameSymbolUnderCursorAction->setEnabled(true);
|
|
||||||
ActionManager::command(TextEditor::Constants::FIND_USAGES)->action()->setEnabled(true);
|
ActionManager::command(TextEditor::Constants::FIND_USAGES)->action()->setEnabled(true);
|
||||||
|
ActionManager::command(TextEditor::Constants::RENAME_SYMBOL)->action()->setEnabled(true);
|
||||||
m_reparseExternallyChangedFiles->setEnabled(true);
|
m_reparseExternallyChangedFiles->setEnabled(true);
|
||||||
m_openTypeHierarchyAction->setEnabled(true);
|
m_openTypeHierarchyAction->setEnabled(true);
|
||||||
m_openIncludeHierarchyAction->setEnabled(true);
|
m_openIncludeHierarchyAction->setEnabled(true);
|
||||||
|
@@ -860,7 +860,7 @@ protected:
|
|||||||
QMenu *CppEditorWidget::createRefactorMenu(QWidget *parent) const
|
QMenu *CppEditorWidget::createRefactorMenu(QWidget *parent) const
|
||||||
{
|
{
|
||||||
auto *menu = new QMenu(tr("&Refactor"), parent);
|
auto *menu = new QMenu(tr("&Refactor"), parent);
|
||||||
menu->addAction(ActionManager::command(Constants::RENAME_SYMBOL_UNDER_CURSOR)->action());
|
menu->addAction(ActionManager::command(TextEditor::Constants::RENAME_SYMBOL)->action());
|
||||||
|
|
||||||
// ### enable
|
// ### enable
|
||||||
// updateSemanticInfo(m_semanticHighlighter->semanticInfo(currentSource()));
|
// updateSemanticInfo(m_semanticHighlighter->semanticInfo(currentSource()));
|
||||||
|
@@ -81,7 +81,7 @@ public:
|
|||||||
void findUsages(QTextCursor cursor);
|
void findUsages(QTextCursor cursor);
|
||||||
void renameUsages(const QString &replacement = QString(),
|
void renameUsages(const QString &replacement = QString(),
|
||||||
QTextCursor cursor = QTextCursor());
|
QTextCursor cursor = QTextCursor());
|
||||||
void renameSymbolUnderCursor();
|
void renameSymbolUnderCursor() override;
|
||||||
|
|
||||||
bool selectBlockUp() override;
|
bool selectBlockUp() override;
|
||||||
bool selectBlockDown() override;
|
bool selectBlockDown() override;
|
||||||
|
@@ -844,7 +844,7 @@ void QmlJSEditorWidget::findUsages()
|
|||||||
m_findReferences->findUsages(textDocument()->filePath().toString(), textCursor().position());
|
m_findReferences->findUsages(textDocument()->filePath().toString(), textCursor().position());
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlJSEditorWidget::renameUsages()
|
void QmlJSEditorWidget::renameSymbolUnderCursor()
|
||||||
{
|
{
|
||||||
m_findReferences->renameUsages(textDocument()->filePath().toString(), textCursor().position());
|
m_findReferences->renameUsages(textDocument()->filePath().toString(), textCursor().position());
|
||||||
}
|
}
|
||||||
@@ -1100,7 +1100,8 @@ QmlJSEditorFactory::QmlJSEditorFactory(Core::Id _id)
|
|||||||
setEditorActionHandlers(TextEditorActionHandler::Format
|
setEditorActionHandlers(TextEditorActionHandler::Format
|
||||||
| TextEditorActionHandler::UnCommentSelection
|
| TextEditorActionHandler::UnCommentSelection
|
||||||
| TextEditorActionHandler::UnCollapseAll
|
| TextEditorActionHandler::UnCollapseAll
|
||||||
| TextEditorActionHandler::FollowSymbolUnderCursor);
|
| TextEditorActionHandler::FollowSymbolUnderCursor
|
||||||
|
| TextEditorActionHandler::RenameSymbol);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlJSEditorFactory::decorateEditor(TextEditorWidget *editor)
|
void QmlJSEditorFactory::decorateEditor(TextEditorWidget *editor)
|
||||||
|
@@ -74,7 +74,7 @@ public:
|
|||||||
void inspectElementUnderCursor() const;
|
void inspectElementUnderCursor() const;
|
||||||
|
|
||||||
void findUsages() override;
|
void findUsages() override;
|
||||||
void renameUsages();
|
void renameSymbolUnderCursor() override;
|
||||||
void showContextPane();
|
void showContextPane();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
@@ -162,10 +162,7 @@ QmlJSEditorPluginPrivate::QmlJSEditorPluginPrivate()
|
|||||||
contextMenu->addAction(cmd);
|
contextMenu->addAction(cmd);
|
||||||
qmlToolsMenu->addAction(cmd);
|
qmlToolsMenu->addAction(cmd);
|
||||||
|
|
||||||
QAction *renameUsagesAction = new QAction(QmlJSEditorPlugin::tr("Rename Symbol Under Cursor"), this);
|
cmd = ActionManager::command(TextEditor::Constants::RENAME_SYMBOL);
|
||||||
cmd = ActionManager::registerAction(renameUsagesAction, "QmlJSEditor.RenameUsages", context);
|
|
||||||
cmd->setDefaultKeySequence(QKeySequence(QmlJSEditorPlugin::tr("Ctrl+Shift+R")));
|
|
||||||
connect(renameUsagesAction, &QAction::triggered, this, &QmlJSEditorPluginPrivate::renameUsages);
|
|
||||||
contextMenu->addAction(cmd);
|
contextMenu->addAction(cmd);
|
||||||
qmlToolsMenu->addAction(cmd);
|
qmlToolsMenu->addAction(cmd);
|
||||||
|
|
||||||
@@ -247,7 +244,7 @@ QuickToolBar *QmlJSEditorPlugin::quickToolBar()
|
|||||||
void QmlJSEditorPluginPrivate::renameUsages()
|
void QmlJSEditorPluginPrivate::renameUsages()
|
||||||
{
|
{
|
||||||
if (auto editor = qobject_cast<QmlJSEditorWidget*>(EditorManager::currentEditor()->widget()))
|
if (auto editor = qobject_cast<QmlJSEditorWidget*>(EditorManager::currentEditor()->widget()))
|
||||||
editor->renameUsages();
|
editor->renameSymbolUnderCursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlJSEditorPluginPrivate::reformatFile()
|
void QmlJSEditorPluginPrivate::reformatFile()
|
||||||
|
@@ -1965,6 +1965,11 @@ void TextEditorWidget::findUsages()
|
|||||||
emit requestUsages(textCursor());
|
emit requestUsages(textCursor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TextEditorWidget::renameSymbolUnderCursor()
|
||||||
|
{
|
||||||
|
emit requestRename(textCursor());
|
||||||
|
}
|
||||||
|
|
||||||
void TextEditorWidget::abortAssist()
|
void TextEditorWidget::abortAssist()
|
||||||
{
|
{
|
||||||
d->m_codeAssistant.destroyContext();
|
d->m_codeAssistant.destroyContext();
|
||||||
|
@@ -453,6 +453,7 @@ public:
|
|||||||
void openLinkUnderCursorInNextSplit();
|
void openLinkUnderCursorInNextSplit();
|
||||||
|
|
||||||
virtual void findUsages();
|
virtual void findUsages();
|
||||||
|
virtual void renameSymbolUnderCursor();
|
||||||
|
|
||||||
/// Abort code assistant if it is running.
|
/// Abort code assistant if it is running.
|
||||||
void abortAssist();
|
void abortAssist();
|
||||||
@@ -490,6 +491,7 @@ signals:
|
|||||||
void requestLinkAt(const QTextCursor &cursor, Utils::ProcessLinkCallback &callback,
|
void requestLinkAt(const QTextCursor &cursor, Utils::ProcessLinkCallback &callback,
|
||||||
bool resolveTarget, bool inNextSplit);
|
bool resolveTarget, bool inNextSplit);
|
||||||
void requestUsages(const QTextCursor &cursor);
|
void requestUsages(const QTextCursor &cursor);
|
||||||
|
void requestRename(const QTextCursor &cursor);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QTextBlock blockForVisibleRow(int row) const;
|
QTextBlock blockForVisibleRow(int row) const;
|
||||||
|
@@ -182,6 +182,7 @@ public:
|
|||||||
QAction *m_followSymbolAction = nullptr;
|
QAction *m_followSymbolAction = nullptr;
|
||||||
QAction *m_followSymbolInNextSplitAction = nullptr;
|
QAction *m_followSymbolInNextSplitAction = nullptr;
|
||||||
QAction *m_findUsageAction = nullptr;
|
QAction *m_findUsageAction = nullptr;
|
||||||
|
QAction *m_renameSymbolAction = nullptr;
|
||||||
QAction *m_jumpToFileAction = nullptr;
|
QAction *m_jumpToFileAction = nullptr;
|
||||||
QAction *m_jumpToFileInNextSplitAction = nullptr;
|
QAction *m_jumpToFileInNextSplitAction = nullptr;
|
||||||
QList<QAction *> m_modifyingActions;
|
QList<QAction *> m_modifyingActions;
|
||||||
@@ -285,6 +286,9 @@ void TextEditorActionHandlerPrivate::createActions()
|
|||||||
m_findUsageAction = registerAction(FIND_USAGES,
|
m_findUsageAction = registerAction(FIND_USAGES,
|
||||||
[] (TextEditorWidget *w) { w->findUsages(); }, true, tr("Find References to Symbol Under Cursor"),
|
[] (TextEditorWidget *w) { w->findUsages(); }, true, tr("Find References to Symbol Under Cursor"),
|
||||||
QKeySequence(tr("Ctrl+Shift+U")));
|
QKeySequence(tr("Ctrl+Shift+U")));
|
||||||
|
m_renameSymbolAction = registerAction(RENAME_SYMBOL,
|
||||||
|
[] (TextEditorWidget *w) { w->renameSymbolUnderCursor(); }, true, tr("Rename Symbol Under Cursor"),
|
||||||
|
QKeySequence(tr("Ctrl+Shift+R")));
|
||||||
m_jumpToFileAction = registerAction(JUMP_TO_FILE_UNDER_CURSOR,
|
m_jumpToFileAction = registerAction(JUMP_TO_FILE_UNDER_CURSOR,
|
||||||
[] (TextEditorWidget *w) { w->openLinkUnderCursor(); }, true, tr("Jump to File Under Cursor"),
|
[] (TextEditorWidget *w) { w->openLinkUnderCursor(); }, true, tr("Jump to File Under Cursor"),
|
||||||
QKeySequence(Qt::Key_F2));
|
QKeySequence(Qt::Key_F2));
|
||||||
@@ -519,6 +523,7 @@ void TextEditorActionHandlerPrivate::createActions()
|
|||||||
m_jumpToFileAction->setEnabled(m_optionalActions & TextEditorActionHandler::JumpToFileUnderCursor);
|
m_jumpToFileAction->setEnabled(m_optionalActions & TextEditorActionHandler::JumpToFileUnderCursor);
|
||||||
m_jumpToFileInNextSplitAction->setEnabled(m_optionalActions & TextEditorActionHandler::JumpToFileUnderCursor);
|
m_jumpToFileInNextSplitAction->setEnabled(m_optionalActions & TextEditorActionHandler::JumpToFileUnderCursor);
|
||||||
m_unfoldAllAction->setEnabled(m_optionalActions & TextEditorActionHandler::UnCollapseAll);
|
m_unfoldAllAction->setEnabled(m_optionalActions & TextEditorActionHandler::UnCollapseAll);
|
||||||
|
m_renameSymbolAction->setEnabled(m_optionalActions & TextEditorActionHandler::RenameSymbol);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorActionHandlerPrivate::updateActions()
|
void TextEditorActionHandlerPrivate::updateActions()
|
||||||
|
@@ -55,7 +55,8 @@ public:
|
|||||||
UnCommentSelection = 2,
|
UnCommentSelection = 2,
|
||||||
UnCollapseAll = 4,
|
UnCollapseAll = 4,
|
||||||
FollowSymbolUnderCursor = 8,
|
FollowSymbolUnderCursor = 8,
|
||||||
JumpToFileUnderCursor = 16
|
JumpToFileUnderCursor = 16,
|
||||||
|
RenameSymbol = 32,
|
||||||
};
|
};
|
||||||
using TextEditorWidgetResolver = std::function<TextEditorWidget *(Core::IEditor *)>;
|
using TextEditorWidgetResolver = std::function<TextEditorWidget *(Core::IEditor *)>;
|
||||||
|
|
||||||
|
@@ -201,6 +201,8 @@ const char UNINDENT[] = "TextEditor.Unindent";
|
|||||||
const char FOLLOW_SYMBOL_UNDER_CURSOR[] = "TextEditor.FollowSymbolUnderCursor";
|
const char FOLLOW_SYMBOL_UNDER_CURSOR[] = "TextEditor.FollowSymbolUnderCursor";
|
||||||
const char FOLLOW_SYMBOL_UNDER_CURSOR_IN_NEXT_SPLIT[] = "TextEditor.FollowSymbolUnderCursorInNextSplit";
|
const char FOLLOW_SYMBOL_UNDER_CURSOR_IN_NEXT_SPLIT[] = "TextEditor.FollowSymbolUnderCursorInNextSplit";
|
||||||
const char FIND_USAGES[] = "TextEditor.FindUsages";
|
const char FIND_USAGES[] = "TextEditor.FindUsages";
|
||||||
|
// moved from CppEditor to TextEditor avoid breaking the setting by using the old key
|
||||||
|
const char RENAME_SYMBOL[] = "CppEditor.RenameSymbolUnderCursor";
|
||||||
const char JUMP_TO_FILE_UNDER_CURSOR[] = "TextEditor.JumpToFileUnderCursor";
|
const char JUMP_TO_FILE_UNDER_CURSOR[] = "TextEditor.JumpToFileUnderCursor";
|
||||||
const char JUMP_TO_FILE_UNDER_CURSOR_IN_NEXT_SPLIT[] = "TextEditor.JumpToFileUnderCursorInNextSplit";
|
const char JUMP_TO_FILE_UNDER_CURSOR_IN_NEXT_SPLIT[] = "TextEditor.JumpToFileUnderCursorInNextSplit";
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user