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 <eike.ziller@qt.io>
This commit is contained in:
David Schulz
2019-02-14 11:07:33 +01:00
parent fa4f925fda
commit b41b5a0714
6 changed files with 19 additions and 21 deletions

View File

@@ -554,7 +554,7 @@ void Client::cursorPositionChanged(TextEditor::TextEditorWidget *widget)
void Client::requestCodeActions(const DocumentUri &uri, const QList<Diagnostic> &diagnostics) void Client::requestCodeActions(const DocumentUri &uri, const QList<Diagnostic> &diagnostics)
{ {
const Utils::FileName fileName = uri.toFileName(); const Utils::FileName fileName = uri.toFileName();
TextEditor::TextDocument *doc = textDocumentForFileName(fileName); TextEditor::TextDocument *doc = TextEditor::TextDocument::textDocumentForFileName(fileName);
if (!doc) if (!doc)
return; return;
@@ -811,7 +811,8 @@ void Client::showMessageBox(const ShowMessageRequestParams &message, const Messa
void Client::showDiagnostics(const DocumentUri &uri) 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)) for (TextMark *mark : m_diagnostics.value(uri))
doc->addMark(mark); doc->addMark(mark);
} }
@@ -819,7 +820,8 @@ void Client::showDiagnostics(const DocumentUri &uri)
void Client::removeDiagnostics(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)) { for (TextMark *mark : m_diagnostics.take(uri)) {
if (doc) if (doc)

View File

@@ -40,6 +40,7 @@
using namespace LanguageServerProtocol; using namespace LanguageServerProtocol;
using namespace Utils; using namespace Utils;
using namespace TextEditor;
namespace LanguageClient { namespace LanguageClient {
@@ -72,7 +73,7 @@ bool applyTextDocumentEdit(const TextDocumentEdit &edit)
if (edits.isEmpty()) if (edits.isEmpty())
return true; return true;
const DocumentUri &uri = edit.id().uri(); const DocumentUri &uri = edit.id().uri();
if (TextEditor::TextDocument* doc = textDocumentForFileName(uri.toFileName())) { if (TextDocument* doc = TextDocument::textDocumentForFileName(uri.toFileName())) {
LanguageClientValue<int> version = edit.id().version(); LanguageClientValue<int> version = edit.id().version();
if (!version.isNull() && version.value(0) < doc->document()->revision()) if (!version.isNull() && version.value(0) < doc->document()->revision())
return false; return false;
@@ -84,14 +85,14 @@ bool applyTextEdits(const DocumentUri &uri, const QList<TextEdit> &edits)
{ {
if (edits.isEmpty()) if (edits.isEmpty())
return true; return true;
TextEditor::RefactoringChanges changes; RefactoringChanges changes;
TextEditor::RefactoringFilePtr file; RefactoringFilePtr file;
file = changes.file(uri.toFileName().toString()); file = changes.file(uri.toFileName().toString());
file->setChangeSet(editsToChangeSet(edits, file->document())); file->setChangeSet(editsToChangeSet(edits, file->document()));
return file->apply(); return file->apply();
} }
void applyTextEdit(TextEditor::TextDocumentManipulatorInterface &manipulator, const TextEdit &edit) void applyTextEdit(TextDocumentManipulatorInterface &manipulator, const TextEdit &edit)
{ {
using namespace Utils::Text; using namespace Utils::Text;
const Range range = edit.range(); const Range range = edit.range();
@@ -118,12 +119,6 @@ bool applyWorkspaceEdit(const WorkspaceEdit &edit)
return result; return result;
} }
TextEditor::TextDocument *textDocumentForFileName(const FileName &fileName)
{
return qobject_cast<TextEditor::TextDocument *>(
Core::DocumentModel::documentForFilePath(fileName.toString()));
}
QTextCursor endOfLineCursor(const QTextCursor &cursor) QTextCursor endOfLineCursor(const QTextCursor &cursor)
{ {
QTextCursor ret = cursor; QTextCursor ret = cursor;
@@ -135,8 +130,7 @@ void updateCodeActionRefactoringMarker(Client *client,
const CodeAction &action, const CodeAction &action,
const DocumentUri &uri) const DocumentUri &uri)
{ {
using namespace TextEditor; TextDocument* doc = TextDocument::textDocumentForFileName(uri.toFileName());
TextDocument* doc = textDocumentForFileName(uri.toFileName());
if (!doc) if (!doc)
return; return;
BaseTextEditor *editor = BaseTextEditor::textEditorForDocument(doc); BaseTextEditor *editor = BaseTextEditor::textEditorForDocument(doc);

View File

@@ -45,7 +45,6 @@ bool applyTextEdits(const LanguageServerProtocol::DocumentUri &uri,
const QList<LanguageServerProtocol::TextEdit> &edits); const QList<LanguageServerProtocol::TextEdit> &edits);
void applyTextEdit(TextEditor::TextDocumentManipulatorInterface &manipulator, void applyTextEdit(TextEditor::TextDocumentManipulatorInterface &manipulator,
const LanguageServerProtocol::TextEdit &edit); const LanguageServerProtocol::TextEdit &edit);
TextEditor::TextDocument *textDocumentForFileName(const Utils::FileName &fileName);
void updateCodeActionRefactoringMarker(Client *client, void updateCodeActionRefactoringMarker(Client *client,
const LanguageServerProtocol::CodeAction &action, const LanguageServerProtocol::CodeAction &action,
const LanguageServerProtocol::DocumentUri &uri); const LanguageServerProtocol::DocumentUri &uri);

View File

@@ -299,6 +299,11 @@ TextDocument *TextDocument::currentTextDocument()
return qobject_cast<TextDocument *>(EditorManager::currentDocument()); return qobject_cast<TextDocument *>(EditorManager::currentDocument());
} }
TextDocument *TextDocument::textDocumentForFileName(const Utils::FileName &fileName)
{
return qobject_cast<TextDocument *>(DocumentModel::documentForFilePath(fileName.toString()));
}
QString TextDocument::plainText() const QString TextDocument::plainText() const
{ {
return document()->toPlainText(); return document()->toPlainText();

View File

@@ -70,6 +70,7 @@ public:
static QMap<QString, QString> openedTextDocumentContents(); static QMap<QString, QString> openedTextDocumentContents();
static QMap<QString, QTextCodec *> openedTextDocumentEncodings(); static QMap<QString, QTextCodec *> openedTextDocumentEncodings();
static TextDocument *currentTextDocument(); static TextDocument *currentTextDocument();
static TextDocument *textDocumentForFileName(const Utils::FileName &fileName);
virtual QString plainText() const; virtual QString plainText() const;
virtual QString textAt(int pos, int length) const; virtual QString textAt(int pos, int length) const;

View File

@@ -361,10 +361,7 @@ TextMarkRegistry::TextMarkRegistry(QObject *parent)
void TextMarkRegistry::add(TextMark *mark) void TextMarkRegistry::add(TextMark *mark)
{ {
instance()->m_marks[mark->fileName()].insert(mark); instance()->m_marks[mark->fileName()].insert(mark);
auto document = qobject_cast<TextDocument *>( if (TextDocument *document = TextDocument::textDocumentForFileName(mark->fileName()))
DocumentModel::documentForFilePath(mark->fileName().toString()));
if (!document)
return;
document->addMark(mark); document->addMark(mark);
} }