From b41b5a0714f6374434d3cf90794340d192423fc6 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 14 Feb 2019 11:07:33 +0100 Subject: [PATCH] move text document for file path convenience function Move it from language client utils to a static function inside the text document. Change-Id: I91bc72d0e978c1d843082e12bb8a0fa60a1bbc5e Reviewed-by: Eike Ziller --- src/plugins/languageclient/client.cpp | 8 +++++--- .../languageclient/languageclientutils.cpp | 18 ++++++------------ .../languageclient/languageclientutils.h | 1 - src/plugins/texteditor/textdocument.cpp | 5 +++++ src/plugins/texteditor/textdocument.h | 1 + src/plugins/texteditor/textmark.cpp | 7 ++----- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 5b1022c8086..dde08c6794c 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -554,7 +554,7 @@ void Client::cursorPositionChanged(TextEditor::TextEditorWidget *widget) void Client::requestCodeActions(const DocumentUri &uri, const QList &diagnostics) { const Utils::FileName fileName = uri.toFileName(); - TextEditor::TextDocument *doc = textDocumentForFileName(fileName); + TextEditor::TextDocument *doc = TextEditor::TextDocument::textDocumentForFileName(fileName); if (!doc) return; @@ -811,7 +811,8 @@ void Client::showMessageBox(const ShowMessageRequestParams &message, const Messa void Client::showDiagnostics(const DocumentUri &uri) { - if (TextEditor::TextDocument *doc = textDocumentForFileName(uri.toFileName())) { + if (TextEditor::TextDocument *doc + = TextEditor::TextDocument::textDocumentForFileName(uri.toFileName())) { for (TextMark *mark : m_diagnostics.value(uri)) doc->addMark(mark); } @@ -819,7 +820,8 @@ void Client::showDiagnostics(const DocumentUri &uri) void Client::removeDiagnostics(const DocumentUri &uri) { - TextEditor::TextDocument *doc = textDocumentForFileName(uri.toFileName()); + TextEditor::TextDocument *doc + = TextEditor::TextDocument::textDocumentForFileName(uri.toFileName()); for (TextMark *mark : m_diagnostics.take(uri)) { if (doc) diff --git a/src/plugins/languageclient/languageclientutils.cpp b/src/plugins/languageclient/languageclientutils.cpp index 5f3f8e06723..f81be2427cc 100644 --- a/src/plugins/languageclient/languageclientutils.cpp +++ b/src/plugins/languageclient/languageclientutils.cpp @@ -40,6 +40,7 @@ using namespace LanguageServerProtocol; using namespace Utils; +using namespace TextEditor; namespace LanguageClient { @@ -72,7 +73,7 @@ bool applyTextDocumentEdit(const TextDocumentEdit &edit) if (edits.isEmpty()) return true; const DocumentUri &uri = edit.id().uri(); - if (TextEditor::TextDocument* doc = textDocumentForFileName(uri.toFileName())) { + if (TextDocument* doc = TextDocument::textDocumentForFileName(uri.toFileName())) { LanguageClientValue version = edit.id().version(); if (!version.isNull() && version.value(0) < doc->document()->revision()) return false; @@ -84,14 +85,14 @@ bool applyTextEdits(const DocumentUri &uri, const QList &edits) { if (edits.isEmpty()) return true; - TextEditor::RefactoringChanges changes; - TextEditor::RefactoringFilePtr file; + RefactoringChanges changes; + RefactoringFilePtr file; file = changes.file(uri.toFileName().toString()); file->setChangeSet(editsToChangeSet(edits, file->document())); return file->apply(); } -void applyTextEdit(TextEditor::TextDocumentManipulatorInterface &manipulator, const TextEdit &edit) +void applyTextEdit(TextDocumentManipulatorInterface &manipulator, const TextEdit &edit) { using namespace Utils::Text; const Range range = edit.range(); @@ -118,12 +119,6 @@ bool applyWorkspaceEdit(const WorkspaceEdit &edit) return result; } -TextEditor::TextDocument *textDocumentForFileName(const FileName &fileName) -{ - return qobject_cast( - Core::DocumentModel::documentForFilePath(fileName.toString())); -} - QTextCursor endOfLineCursor(const QTextCursor &cursor) { QTextCursor ret = cursor; @@ -135,8 +130,7 @@ void updateCodeActionRefactoringMarker(Client *client, const CodeAction &action, const DocumentUri &uri) { - using namespace TextEditor; - TextDocument* doc = textDocumentForFileName(uri.toFileName()); + TextDocument* doc = TextDocument::textDocumentForFileName(uri.toFileName()); if (!doc) return; BaseTextEditor *editor = BaseTextEditor::textEditorForDocument(doc); diff --git a/src/plugins/languageclient/languageclientutils.h b/src/plugins/languageclient/languageclientutils.h index 2891c2d3037..f07b6e18bfb 100644 --- a/src/plugins/languageclient/languageclientutils.h +++ b/src/plugins/languageclient/languageclientutils.h @@ -45,7 +45,6 @@ bool applyTextEdits(const LanguageServerProtocol::DocumentUri &uri, const QList &edits); void applyTextEdit(TextEditor::TextDocumentManipulatorInterface &manipulator, const LanguageServerProtocol::TextEdit &edit); -TextEditor::TextDocument *textDocumentForFileName(const Utils::FileName &fileName); void updateCodeActionRefactoringMarker(Client *client, const LanguageServerProtocol::CodeAction &action, const LanguageServerProtocol::DocumentUri &uri); diff --git a/src/plugins/texteditor/textdocument.cpp b/src/plugins/texteditor/textdocument.cpp index 60af37cadb2..2bfb51439a1 100644 --- a/src/plugins/texteditor/textdocument.cpp +++ b/src/plugins/texteditor/textdocument.cpp @@ -299,6 +299,11 @@ TextDocument *TextDocument::currentTextDocument() return qobject_cast(EditorManager::currentDocument()); } +TextDocument *TextDocument::textDocumentForFileName(const Utils::FileName &fileName) +{ + return qobject_cast(DocumentModel::documentForFilePath(fileName.toString())); +} + QString TextDocument::plainText() const { return document()->toPlainText(); diff --git a/src/plugins/texteditor/textdocument.h b/src/plugins/texteditor/textdocument.h index 580dc0dfeaf..9ea1751b112 100644 --- a/src/plugins/texteditor/textdocument.h +++ b/src/plugins/texteditor/textdocument.h @@ -70,6 +70,7 @@ public: static QMap openedTextDocumentContents(); static QMap openedTextDocumentEncodings(); static TextDocument *currentTextDocument(); + static TextDocument *textDocumentForFileName(const Utils::FileName &fileName); virtual QString plainText() const; virtual QString textAt(int pos, int length) const; diff --git a/src/plugins/texteditor/textmark.cpp b/src/plugins/texteditor/textmark.cpp index 89951675646..22ddbbec03d 100644 --- a/src/plugins/texteditor/textmark.cpp +++ b/src/plugins/texteditor/textmark.cpp @@ -361,11 +361,8 @@ TextMarkRegistry::TextMarkRegistry(QObject *parent) void TextMarkRegistry::add(TextMark *mark) { instance()->m_marks[mark->fileName()].insert(mark); - auto document = qobject_cast( - DocumentModel::documentForFilePath(mark->fileName().toString())); - if (!document) - return; - document->addMark(mark); + if (TextDocument *document = TextDocument::textDocumentForFileName(mark->fileName())) + document->addMark(mark); } bool TextMarkRegistry::remove(TextMark *mark)