aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient/client.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/languageclient/client.h')
-rw-r--r--src/plugins/languageclient/client.h29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/plugins/languageclient/client.h b/src/plugins/languageclient/client.h
index b2a91307f1..85609efdea 100644
--- a/src/plugins/languageclient/client.h
+++ b/src/plugins/languageclient/client.h
@@ -34,9 +34,11 @@
#include "languageclienthoverhandler.h"
#include "languageclientquickfix.h"
#include "languageclientsettings.h"
+#include "languageclientsymbolsupport.h"
-#include <coreplugin/id.h>
#include <coreplugin/messagemanager.h>
+
+#include <utils/id.h>
#include <utils/link.h>
#include <languageserverprotocol/client.h>
@@ -59,6 +61,7 @@ namespace Core { class IDocument; }
namespace ProjectExplorer { class Project; }
namespace TextEditor
{
+class IAssistProcessor;
class TextDocument;
class TextEditorWidget;
class TextMark;
@@ -110,10 +113,10 @@ public:
int charsAdded);
void registerCapabilities(const QList<LanguageServerProtocol::Registration> &registrations);
void unregisterCapabilities(const QList<LanguageServerProtocol::Unregistration> &unregistrations);
- bool findLinkAt(LanguageServerProtocol::GotoDefinitionRequest &request);
- bool findUsages(LanguageServerProtocol::FindReferencesRequest &request);
void cursorPositionChanged(TextEditor::TextEditorWidget *widget);
+ SymbolSupport &symbolSupport();
+
void requestCodeActions(const LanguageServerProtocol::DocumentUri &uri,
const QList<LanguageServerProtocol::Diagnostic> &diagnostics);
void requestCodeActions(const LanguageServerProtocol::CodeActionRequest &request);
@@ -129,6 +132,7 @@ public:
const ProjectExplorer::Project *project() const;
void projectOpened(ProjectExplorer::Project *project);
void projectClosed(ProjectExplorer::Project *project);
+ void projectFileListChanged();
void sendContent(const LanguageServerProtocol::IContent &content);
void sendContent(const LanguageServerProtocol::DocumentUri &uri,
@@ -136,14 +140,18 @@ public:
void cancelRequest(const LanguageServerProtocol::MessageId &id);
void setSupportedLanguage(const LanguageFilter &filter);
+ void setInitializationOptions(const QJsonObject& initializationOptions);
bool isSupportedDocument(const TextEditor::TextDocument *document) const;
bool isSupportedFile(const Utils::FilePath &filePath, const QString &mimeType) const;
bool isSupportedUri(const LanguageServerProtocol::DocumentUri &uri) const;
+ void addAssistProcessor(TextEditor::IAssistProcessor *processor);
+ void removeAssistProcessor(TextEditor::IAssistProcessor *processor);
+
void setName(const QString &name) { m_displayName = name; }
QString name() const { return m_displayName; }
- Core::Id id() const { return m_id; }
+ Utils::Id id() const { return m_id; }
bool needsRestart(const BaseSettings *) const;
@@ -171,8 +179,11 @@ public:
HoverHandler *hoverHandler();
void rehighlight();
+ bool documentUpdatePostponed(const QString &fileName) const;
+
signals:
void initialized(LanguageServerProtocol::ServerCapabilities capabilities);
+ void documentUpdated(TextEditor::TextDocument *document);
void finished();
protected:
@@ -200,6 +211,7 @@ private:
void showDiagnostics(const LanguageServerProtocol::DocumentUri &uri);
void removeDiagnostics(const LanguageServerProtocol::DocumentUri &uri);
void resetAssistProviders(TextEditor::TextDocument *document);
+ void sendPostponedDocumentUpdates();
using ContentHandler = std::function<void(const QByteArray &, QTextCodec *, QString &,
LanguageServerProtocol::ResponseHandlers,
@@ -210,8 +222,13 @@ private:
QHash<QByteArray, ContentHandler> m_contentHandler;
QString m_displayName;
LanguageFilter m_languagFilter;
+ QJsonObject m_initializationOptions;
QMap<TextEditor::TextDocument *, QString> m_openedDocument;
- Core::Id m_id;
+ QMap<TextEditor::TextDocument *,
+ QList<LanguageServerProtocol::DidChangeTextDocumentParams::TextDocumentContentChangeEvent>>
+ m_documentsToUpdate;
+ QTimer m_documentUpdateTimer;
+ Utils::Id m_id;
LanguageServerProtocol::ServerCapabilities m_serverCapabilities;
DynamicCapabilities m_dynamicCapabilities;
struct AssistProviders
@@ -231,6 +248,8 @@ private:
HoverHandler m_hoverHandler;
QHash<LanguageServerProtocol::DocumentUri, TextEditor::HighlightingResults> m_highlights;
const ProjectExplorer::Project *m_project = nullptr;
+ QSet<TextEditor::IAssistProcessor *> m_runningAssistProcessors;
+ SymbolSupport m_symbolSupport;
};
} // namespace LanguageClient