Core: add aboutToSave and saved signal to IDocument

We need reliable signals that gets emitted when documents are saved to
inform the language server about the document state change.

Change-Id: I0a1e8a5317ae6984ff17d878952c74f69765e3f9
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
David Schulz
2023-06-13 15:00:15 +02:00
parent 16bfc82ef0
commit 95609551a1
26 changed files with 134 additions and 65 deletions

View File

@@ -63,10 +63,6 @@ LanguageClientManager::LanguageClientManager(QObject *parent)
this, &LanguageClientManager::documentOpened);
connect(EditorManager::instance(), &EditorManager::documentClosed,
this, &LanguageClientManager::documentClosed);
connect(EditorManager::instance(), &EditorManager::saved,
this, &LanguageClientManager::documentContentsSaved);
connect(EditorManager::instance(), &EditorManager::aboutToSave,
this, &LanguageClientManager::documentWillSave);
connect(ProjectManager::instance(), &ProjectManager::projectAdded,
this, &LanguageClientManager::projectAdded);
connect(ProjectManager::instance(), &ProjectManager::projectRemoved,
@@ -550,24 +546,6 @@ void LanguageClientManager::documentClosed(Core::IDocument *document)
m_clientForDocument.remove(textDocument);
}
void LanguageClientManager::documentContentsSaved(Core::IDocument *document)
{
if (auto textDocument = qobject_cast<TextEditor::TextDocument *>(document)) {
const QList<Client *> &clients = reachableClients();
for (Client *client : clients)
client->documentContentsSaved(textDocument);
}
}
void LanguageClientManager::documentWillSave(Core::IDocument *document)
{
if (auto textDocument = qobject_cast<TextEditor::TextDocument *>(document)) {
const QList<Client *> &clients = reachableClients();
for (Client *client : clients)
client->documentWillSave(textDocument);
}
}
void LanguageClientManager::updateProject(ProjectExplorer::Project *project)
{
for (BaseSettings *setting : std::as_const(m_currentSettings)) {