diff options
Diffstat (limited to 'src/plugins/qmljseditor')
18 files changed, 67 insertions, 32 deletions
diff --git a/src/plugins/qmljseditor/CMakeLists.txt b/src/plugins/qmljseditor/CMakeLists.txt new file mode 100644 index 0000000000..c931d1729d --- /dev/null +++ b/src/plugins/qmljseditor/CMakeLists.txt @@ -0,0 +1,33 @@ +add_qtc_plugin(QmlJSEditor + DEPENDS LanguageUtils qmljs QmlEditorWidgets + PLUGIN_DEPENDS Core ProjectExplorer QmlJSTools TextEditor + SOURCES + qmlexpressionundercursor.cpp qmlexpressionundercursor.h + qmljsautocompleter.cpp qmljsautocompleter.h + qmljscompletionassist.cpp qmljscompletionassist.h + qmljscomponentfromobjectdef.cpp qmljscomponentfromobjectdef.h + qmljscomponentnamedialog.cpp qmljscomponentnamedialog.h qmljscomponentnamedialog.ui + qmljseditingsettingspage.cpp qmljseditingsettingspage.h qmljseditingsettingspage.ui + qmljseditor.cpp qmljseditor.h + qmljseditor_global.h + qmljseditorconstants.h + qmljseditordocument.cpp qmljseditordocument.h qmljseditordocument_p.h + qmljseditorplugin.cpp qmljseditorplugin.h + qmljsfindreferences.cpp qmljsfindreferences.h + qmljshighlighter.cpp qmljshighlighter.h + qmljshoverhandler.cpp qmljshoverhandler.h + qmljsoutline.cpp qmljsoutline.h + qmljsoutlinetreeview.cpp qmljsoutlinetreeview.h + qmljsquickfix.cpp qmljsquickfix.h + qmljsquickfixassist.cpp qmljsquickfixassist.h + qmljsquickfixes.cpp + qmljsreuse.cpp qmljsreuse.h + qmljssemantichighlighter.cpp qmljssemantichighlighter.h + qmljssemanticinfoupdater.cpp qmljssemanticinfoupdater.h + qmljstextmark.cpp qmljstextmark.h + qmljswrapinloader.cpp qmljswrapinloader.h + qmloutlinemodel.cpp qmloutlinemodel.h + qmltaskmanager.cpp qmltaskmanager.h + quicktoolbar.cpp quicktoolbar.h + EXPLICIT_MOC qmljseditor.h +) diff --git a/src/plugins/qmljseditor/qmljscompletionassist.cpp b/src/plugins/qmljseditor/qmljscompletionassist.cpp index b307cb59ab..a581a2a2f3 100644 --- a/src/plugins/qmljseditor/qmljscompletionassist.cpp +++ b/src/plugins/qmljseditor/qmljscompletionassist.cpp @@ -24,6 +24,7 @@ ****************************************************************************/ #include "qmljscompletionassist.h" +#include "qmljseditor.h" #include "qmljseditorconstants.h" #include "qmljsreuse.h" #include "qmlexpressionundercursor.h" diff --git a/src/plugins/qmljseditor/qmljscompletionassist.h b/src/plugins/qmljseditor/qmljscompletionassist.h index c737587f88..df697ef5e1 100644 --- a/src/plugins/qmljseditor/qmljscompletionassist.h +++ b/src/plugins/qmljseditor/qmljscompletionassist.h @@ -25,8 +25,9 @@ #pragma once -#include "qmljseditor.h" +#include "qmljseditor_global.h" +#include <qmljstools/qmljssemanticinfo.h> #include <texteditor/codeassist/assistproposalitem.h> #include <texteditor/codeassist/genericproposalmodel.h> #include <texteditor/codeassist/completionassistprovider.h> diff --git a/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp b/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp index a88d615082..3afca0b036 100644 --- a/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp +++ b/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp @@ -192,7 +192,7 @@ public: if (path == QFileInfo(currentFileName).path()) { // hack for the common case, next version should use the wizard ProjectExplorer::Node * oldFileNode = - ProjectExplorer::ProjectTree::nodeForFile(Utils::FileName::fromString(currentFileName)); + ProjectExplorer::ProjectTree::nodeForFile(Utils::FilePath::fromString(currentFileName)); if (oldFileNode) { ProjectExplorer::FolderNode *containingFolder = oldFileNode->parentFolderNode(); if (containingFolder) diff --git a/src/plugins/qmljseditor/qmljscomponentfromobjectdef.h b/src/plugins/qmljseditor/qmljscomponentfromobjectdef.h index e61b992996..1d6dc4cdc4 100644 --- a/src/plugins/qmljseditor/qmljscomponentfromobjectdef.h +++ b/src/plugins/qmljseditor/qmljscomponentfromobjectdef.h @@ -25,6 +25,7 @@ #pragma once +#include "qmljseditor_global.h" #include "qmljsquickfix.h" namespace QmlJSEditor { diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 458cb55b6e..61576372ea 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -119,7 +119,7 @@ void QmlJSEditorWidget::finalizeInitialization() m_updateUsesTimer.setSingleShot(true); connect(&m_updateUsesTimer, &QTimer::timeout, this, &QmlJSEditorWidget::updateUses); connect(this, &QPlainTextEdit::cursorPositionChanged, - &m_updateUsesTimer, static_cast<void (QTimer::*)()>(&QTimer::start)); + &m_updateUsesTimer, QOverload<>::of(&QTimer::start)); m_updateOutlineIndexTimer.setInterval(UPDATE_OUTLINE_INTERVAL); m_updateOutlineIndexTimer.setSingleShot(true); @@ -138,7 +138,7 @@ void QmlJSEditorWidget::finalizeInitialization() connect(&m_contextPaneTimer, &QTimer::timeout, this, &QmlJSEditorWidget::updateContextPane); if (m_contextPane) { connect(this, &QmlJSEditorWidget::cursorPositionChanged, - &m_contextPaneTimer, static_cast<void (QTimer::*)()>(&QTimer::start)); + &m_contextPaneTimer, QOverload<>::of(&QTimer::start)); connect(m_contextPane, &IContextPane::closed, this, &QmlJSEditorWidget::showTextMarker); } @@ -520,13 +520,13 @@ void QmlJSEditorWidget::createToolBar() policy.setHorizontalPolicy(QSizePolicy::Expanding); m_outlineCombo->setSizePolicy(policy); - connect(m_outlineCombo, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), + connect(m_outlineCombo, QOverload<int>::of(&QComboBox::activated), this, &QmlJSEditorWidget::jumpToOutlineElement); connect(m_qmlJsEditorDocument->outlineModel(), &QmlOutlineModel::updated, static_cast<QTreeView *>(m_outlineCombo->view()), &QTreeView::expandAll); connect(this, &QmlJSEditorWidget::cursorPositionChanged, - &m_updateOutlineIndexTimer, static_cast<void (QTimer::*)()>(&QTimer::start)); + &m_updateOutlineIndexTimer, QOverload<>::of(&QTimer::start)); insertExtraToolBarWidget(TextEditorWidget::Left, m_outlineCombo); } diff --git a/src/plugins/qmljseditor/qmljseditordocument.cpp b/src/plugins/qmljseditor/qmljseditordocument.cpp index 2f30f324cb..18348907f4 100644 --- a/src/plugins/qmljseditor/qmljseditordocument.cpp +++ b/src/plugins/qmljseditor/qmljseditordocument.cpp @@ -459,7 +459,7 @@ QmlJSEditorDocumentPrivate::QmlJSEditorDocumentPrivate(QmlJSEditorDocument *pare m_updateDocumentTimer.setInterval(UPDATE_DOCUMENT_DEFAULT_INTERVAL); m_updateDocumentTimer.setSingleShot(true); connect(q->document(), &QTextDocument::contentsChanged, - &m_updateDocumentTimer, static_cast<void (QTimer::*)()>(&QTimer::start)); + &m_updateDocumentTimer, QOverload<>::of(&QTimer::start)); connect(&m_updateDocumentTimer, &QTimer::timeout, this, &QmlJSEditorDocumentPrivate::reparseDocument); connect(modelManager, &ModelManagerInterface::documentUpdated, @@ -477,7 +477,7 @@ QmlJSEditorDocumentPrivate::QmlJSEditorDocumentPrivate(QmlJSEditorDocument *pare connect(&m_reupdateSemanticInfoTimer, &QTimer::timeout, this, &QmlJSEditorDocumentPrivate::reupdateSemanticInfo); connect(modelManager, &ModelManagerInterface::libraryInfoUpdated, - &m_reupdateSemanticInfoTimer, static_cast<void (QTimer::*)()>(&QTimer::start)); + &m_reupdateSemanticInfoTimer, QOverload<>::of(&QTimer::start)); // outline model m_updateOutlineModelTimer.setInterval(UPDATE_OUTLINE_INTERVAL); diff --git a/src/plugins/qmljseditor/qmljshoverhandler.cpp b/src/plugins/qmljseditor/qmljshoverhandler.cpp index 6479ba13ad..9cea65e3ef 100644 --- a/src/plugins/qmljseditor/qmljshoverhandler.cpp +++ b/src/plugins/qmljseditor/qmljshoverhandler.cpp @@ -43,9 +43,9 @@ #include <qmljs/parser/qmljsast_p.h> #include <qmljs/parser/qmljsastfwd_p.h> #include <qmljs/qmljsutils.h> -#include <qmljs/qmljsqrcparser.h> #include <texteditor/texteditor.h> #include <utils/executeondestruction.h> +#include <utils/qrcparser.h> #include <utils/tooltip/tooltip.h> #include <QDir> @@ -133,7 +133,7 @@ static inline QString getModuleName(const ScopeChain &scopeChain, const Document const QString name = relativeDir.replace(QLatin1Char('/'), QLatin1Char('.')); return name; } else if (importInfo.isValid() && importInfo.type() == ImportType::QrcDirectory) { - QString path = QrcParser::normalizedQrcDirectoryPath(importInfo.path()); + QString path = Utils::QrcParser::normalizedQrcDirectoryPath(importInfo.path()); path = path.mid(1, path.size() - ((path.size() > 1) ? 2 : 1)); const QString name = path.replace(QLatin1Char('/'), QLatin1Char('.')); return name; diff --git a/src/plugins/qmljseditor/qmljsoutline.cpp b/src/plugins/qmljseditor/qmljsoutline.cpp index 228839573b..0eb0d40161 100644 --- a/src/plugins/qmljseditor/qmljsoutline.cpp +++ b/src/plugins/qmljseditor/qmljsoutline.cpp @@ -47,7 +47,6 @@ enum { namespace QmlJSEditor { namespace Internal { - QmlJSOutlineFilterModel::QmlJSOutlineFilterModel(QObject *parent) : QSortFilterProxyModel(parent) { diff --git a/src/plugins/qmljseditor/qmljsoutline.h b/src/plugins/qmljseditor/qmljsoutline.h index 0a50667ae2..1e4b1d20d1 100644 --- a/src/plugins/qmljseditor/qmljsoutline.h +++ b/src/plugins/qmljseditor/qmljsoutline.h @@ -25,8 +25,6 @@ #pragma once -#include "qmljseditor.h" - #include <texteditor/ioutlinewidget.h> #include <QSortFilterProxyModel> @@ -42,6 +40,7 @@ namespace QmlJS { class Editor; } namespace QmlJSEditor { namespace Internal { +class QmlJSEditorWidget; class QmlJSOutlineTreeView; class QmlJSOutlineFilterModel : public QSortFilterProxyModel diff --git a/src/plugins/qmljseditor/qmljsquickfix.h b/src/plugins/qmljseditor/qmljsquickfix.h index 856b4f29c8..37d4c134b6 100644 --- a/src/plugins/qmljseditor/qmljsquickfix.h +++ b/src/plugins/qmljseditor/qmljsquickfix.h @@ -25,8 +25,6 @@ #pragma once -#include "qmljseditor.h" - #include <texteditor/quickfix.h> #include <qmljs/parser/qmljsastfwd_p.h> #include <qmljs/qmljsdocument.h> diff --git a/src/plugins/qmljseditor/qmljsquickfixassist.cpp b/src/plugins/qmljseditor/qmljsquickfixassist.cpp index 21b44faaa5..37efbaf39c 100644 --- a/src/plugins/qmljseditor/qmljsquickfixassist.cpp +++ b/src/plugins/qmljseditor/qmljsquickfixassist.cpp @@ -24,6 +24,7 @@ ****************************************************************************/ #include "qmljsquickfixassist.h" +#include "qmljseditor.h" #include "qmljseditorconstants.h" #include "qmljseditordocument.h" diff --git a/src/plugins/qmljseditor/qmljsquickfixassist.h b/src/plugins/qmljseditor/qmljsquickfixassist.h index f638465d4b..83d328fc80 100644 --- a/src/plugins/qmljseditor/qmljsquickfixassist.h +++ b/src/plugins/qmljseditor/qmljsquickfixassist.h @@ -25,9 +25,8 @@ #pragma once -#include "qmljseditor.h" - #include <qmljstools/qmljsrefactoringchanges.h> +#include <qmljstools/qmljssemanticinfo.h> #include <texteditor/codeassist/assistinterface.h> #include <texteditor/codeassist/iassistprovider.h> @@ -35,6 +34,8 @@ namespace QmlJSEditor { namespace Internal { +class QmlJSEditorWidget; + class QmlJSQuickFixAssistInterface : public TextEditor::AssistInterface { public: diff --git a/src/plugins/qmljseditor/qmljssemanticinfoupdater.h b/src/plugins/qmljseditor/qmljssemanticinfoupdater.h index 85a3fce29f..bfd32596fb 100644 --- a/src/plugins/qmljseditor/qmljssemanticinfoupdater.h +++ b/src/plugins/qmljseditor/qmljssemanticinfoupdater.h @@ -25,7 +25,8 @@ #pragma once -#include "qmljseditor.h" +#include <qmljs/qmljsdocument.h> +#include <qmljstools/qmljssemanticinfo.h> #include <QWaitCondition> #include <QModelIndex> diff --git a/src/plugins/qmljseditor/qmljstextmark.cpp b/src/plugins/qmljseditor/qmljstextmark.cpp index 7c427a4d00..4ef80eb7a2 100644 --- a/src/plugins/qmljseditor/qmljstextmark.cpp +++ b/src/plugins/qmljseditor/qmljstextmark.cpp @@ -59,7 +59,7 @@ static Core::Id cartegoryForSeverity(QmlJS::Severity::Enum kind) return isWarning(kind) ? QMLJS_WARNING : QMLJS_ERROR; } -QmlJSTextMark::QmlJSTextMark(const FileName &fileName, +QmlJSTextMark::QmlJSTextMark(const FilePath &fileName, const QmlJS::DiagnosticMessage &diagnostic, const QmlJSTextMark::RemovedFromEditorHandler &removedHandler) : TextEditor::TextMark(fileName, int(diagnostic.loc.startLine), @@ -70,7 +70,7 @@ QmlJSTextMark::QmlJSTextMark(const FileName &fileName, init(isWarning(diagnostic.kind), diagnostic.message); } -QmlJSTextMark::QmlJSTextMark(const FileName &fileName, +QmlJSTextMark::QmlJSTextMark(const FilePath &fileName, const QmlJS::StaticAnalysis::Message &message, const QmlJSTextMark::RemovedFromEditorHandler &removedHandler) : TextEditor::TextMark(fileName, int(message.location.startLine), diff --git a/src/plugins/qmljseditor/qmljstextmark.h b/src/plugins/qmljseditor/qmljstextmark.h index e9bc567451..7034838e66 100644 --- a/src/plugins/qmljseditor/qmljstextmark.h +++ b/src/plugins/qmljseditor/qmljstextmark.h @@ -38,10 +38,10 @@ class QmlJSTextMark : public TextEditor::TextMark public: using RemovedFromEditorHandler = std::function<void(QmlJSTextMark *)>; - QmlJSTextMark(const Utils::FileName &fileName, + QmlJSTextMark(const Utils::FilePath &fileName, const QmlJS::DiagnosticMessage &diagnostic, const RemovedFromEditorHandler &removedHandler); - QmlJSTextMark(const Utils::FileName &fileName, + QmlJSTextMark(const Utils::FilePath &fileName, const QmlJS::StaticAnalysis::Message &message, const RemovedFromEditorHandler &removedHandler); diff --git a/src/plugins/qmljseditor/qmltaskmanager.cpp b/src/plugins/qmljseditor/qmltaskmanager.cpp index 0a20b7569f..c9b5b83b24 100644 --- a/src/plugins/qmljseditor/qmltaskmanager.cpp +++ b/src/plugins/qmljseditor/qmltaskmanager.cpp @@ -60,9 +60,9 @@ QmlTaskManager::QmlTaskManager() connect(&m_updateDelay, &QTimer::timeout, this, [this] { updateMessagesNow(); }); } -static QList<Task> convertToTasks(const QList<DiagnosticMessage> &messages, const FileName &fileName, Core::Id category) +static Tasks convertToTasks(const QList<DiagnosticMessage> &messages, const FilePath &fileName, Core::Id category) { - QList<Task> result; + Tasks result; foreach (const DiagnosticMessage &msg, messages) { Task::TaskType type = msg.isError() ? Task::Error : Task::Warning; Task task(type, msg.message, fileName, msg.loc.startLine, category); @@ -71,7 +71,7 @@ static QList<Task> convertToTasks(const QList<DiagnosticMessage> &messages, cons return result; } -static QList<Task> convertToTasks(const QList<StaticAnalysis::Message> &messages, const FileName &fileName, Core::Id category) +static Tasks convertToTasks(const QList<StaticAnalysis::Message> &messages, const FilePath &fileName, Core::Id category) { QList<DiagnosticMessage> diagnostics; foreach (const StaticAnalysis::Message &msg, messages) @@ -101,17 +101,17 @@ void QmlTaskManager::collectMessages( result.fileName = fileName; if (document->language().isFullySupportedLanguage()) { result.tasks = convertToTasks(document->diagnosticMessages(), - FileName::fromString(fileName), + FilePath::fromString(fileName), Constants::TASK_CATEGORY_QML); if (updateSemantic) { result.tasks += convertToTasks(linkMessages.value(fileName), - FileName::fromString(fileName), + FilePath::fromString(fileName), Constants::TASK_CATEGORY_QML_ANALYSIS); Check checker(document, context); result.tasks += convertToTasks(checker(), - FileName::fromString(fileName), + FilePath::fromString(fileName), Constants::TASK_CATEGORY_QML_ANALYSIS); } } @@ -179,7 +179,7 @@ void QmlTaskManager::displayAllResults() void QmlTaskManager::insertTask(const Task &task) { - QList<Task> tasks = m_docsWithTasks.value(task.file.toString()); + Tasks tasks = m_docsWithTasks.value(task.file.toString()); tasks.append(task); m_docsWithTasks.insert(task.file.toString(), tasks); TaskHub::addTask(task); @@ -188,7 +188,7 @@ void QmlTaskManager::insertTask(const Task &task) void QmlTaskManager::removeTasksForFile(const QString &fileName) { if (m_docsWithTasks.contains(fileName)) { - const QList<Task> tasks = m_docsWithTasks.value(fileName); + const Tasks tasks = m_docsWithTasks.value(fileName); foreach (const Task &task, tasks) TaskHub::removeTask(task); m_docsWithTasks.remove(fileName); diff --git a/src/plugins/qmljseditor/qmltaskmanager.h b/src/plugins/qmljseditor/qmltaskmanager.h index 646aed7a22..dfc8174ba1 100644 --- a/src/plugins/qmljseditor/qmltaskmanager.h +++ b/src/plugins/qmljseditor/qmltaskmanager.h @@ -65,7 +65,7 @@ private: { public: QString fileName; - QList<ProjectExplorer::Task> tasks; + ProjectExplorer::Tasks tasks; }; static void collectMessages(QFutureInterface<FileErrorMessages> &future, QmlJS::Snapshot snapshot, @@ -74,7 +74,7 @@ private: bool updateSemantic); private: - QHash<QString, QList<ProjectExplorer::Task> > m_docsWithTasks; + QHash<QString, ProjectExplorer::Tasks > m_docsWithTasks; QFutureWatcher<FileErrorMessages> m_messageCollector; QTimer m_updateDelay; bool m_updatingSemantic = false; |