forked from qt-creator/qt-creator
LanguageClient: export LanguageClientCompletionItem
Change-Id: Idc1a222d18e2fc64bd33c9bc89e60178c83ee856 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -31,7 +31,6 @@
|
|||||||
|
|
||||||
#include <languageserverprotocol/completion.h>
|
#include <languageserverprotocol/completion.h>
|
||||||
#include <texteditor/codeassist/assistinterface.h>
|
#include <texteditor/codeassist/assistinterface.h>
|
||||||
#include <texteditor/codeassist/assistproposalitem.h>
|
|
||||||
#include <texteditor/codeassist/genericproposal.h>
|
#include <texteditor/codeassist/genericproposal.h>
|
||||||
#include <texteditor/codeassist/genericproposalmodel.h>
|
#include <texteditor/codeassist/genericproposalmodel.h>
|
||||||
#include <texteditor/snippets/snippet.h>
|
#include <texteditor/snippets/snippet.h>
|
||||||
@@ -55,38 +54,6 @@ using namespace TextEditor;
|
|||||||
|
|
||||||
namespace LanguageClient {
|
namespace LanguageClient {
|
||||||
|
|
||||||
class LanguageClientCompletionItem : public AssistProposalItemInterface
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
LanguageClientCompletionItem(CompletionItem item, const CompletionApplyHelper &applyHelper);
|
|
||||||
|
|
||||||
// AssistProposalItemInterface interface
|
|
||||||
QString text() const override;
|
|
||||||
QString filterText() const override;
|
|
||||||
bool implicitlyApplies() const override;
|
|
||||||
bool prematurelyApplies(const QChar &typedCharacter) const override;
|
|
||||||
void apply(TextDocumentManipulatorInterface &manipulator, int basePosition) const override;
|
|
||||||
QIcon icon() const override;
|
|
||||||
QString detail() const override;
|
|
||||||
bool isSnippet() const override;
|
|
||||||
bool isValid() const override;
|
|
||||||
quint64 hash() const override;
|
|
||||||
|
|
||||||
const QString &sortText() const;
|
|
||||||
bool hasSortText() const;
|
|
||||||
|
|
||||||
bool operator <(const LanguageClientCompletionItem &other) const;
|
|
||||||
|
|
||||||
bool isPerfectMatch(int pos, QTextDocument *doc) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
CompletionItem m_item;
|
|
||||||
const CompletionApplyHelper m_applyHelper;
|
|
||||||
mutable QChar m_triggeredCommitCharacter;
|
|
||||||
mutable QString m_sortText;
|
|
||||||
mutable QString m_filterText;
|
|
||||||
};
|
|
||||||
|
|
||||||
LanguageClientCompletionItem::LanguageClientCompletionItem(CompletionItem item,
|
LanguageClientCompletionItem::LanguageClientCompletionItem(CompletionItem item,
|
||||||
const CompletionApplyHelper &applyHelper)
|
const CompletionApplyHelper &applyHelper)
|
||||||
: m_item(std::move(item)), m_applyHelper(applyHelper)
|
: m_item(std::move(item)), m_applyHelper(applyHelper)
|
||||||
|
@@ -28,6 +28,7 @@
|
|||||||
#include "languageclient_global.h"
|
#include "languageclient_global.h"
|
||||||
|
|
||||||
#include <languageserverprotocol/completion.h>
|
#include <languageserverprotocol/completion.h>
|
||||||
|
#include <texteditor/codeassist/assistproposaliteminterface.h>
|
||||||
#include <texteditor/codeassist/completionassistprovider.h>
|
#include <texteditor/codeassist/completionassistprovider.h>
|
||||||
#include <texteditor/codeassist/iassistprocessor.h>
|
#include <texteditor/codeassist/iassistprocessor.h>
|
||||||
|
|
||||||
@@ -121,4 +122,39 @@ private:
|
|||||||
int m_basePos = -1;
|
int m_basePos = -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class LANGUAGECLIENT_EXPORT LanguageClientCompletionItem
|
||||||
|
: public TextEditor::AssistProposalItemInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LanguageClientCompletionItem(LanguageServerProtocol::CompletionItem item,
|
||||||
|
const CompletionApplyHelper &applyHelper);
|
||||||
|
|
||||||
|
// AssistProposalItemInterface interface
|
||||||
|
QString text() const override;
|
||||||
|
QString filterText() const override;
|
||||||
|
bool implicitlyApplies() const override;
|
||||||
|
bool prematurelyApplies(const QChar &typedCharacter) const override;
|
||||||
|
void apply(TextEditor::TextDocumentManipulatorInterface &manipulator,
|
||||||
|
int basePosition) const override;
|
||||||
|
QIcon icon() const override;
|
||||||
|
QString detail() const override;
|
||||||
|
bool isSnippet() const override;
|
||||||
|
bool isValid() const override;
|
||||||
|
quint64 hash() const override;
|
||||||
|
|
||||||
|
const QString &sortText() const;
|
||||||
|
bool hasSortText() const;
|
||||||
|
|
||||||
|
bool operator <(const LanguageClientCompletionItem &other) const;
|
||||||
|
|
||||||
|
bool isPerfectMatch(int pos, QTextDocument *doc) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
LanguageServerProtocol::CompletionItem m_item;
|
||||||
|
const CompletionApplyHelper m_applyHelper;
|
||||||
|
mutable QChar m_triggeredCommitCharacter;
|
||||||
|
mutable QString m_sortText;
|
||||||
|
mutable QString m_filterText;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace LanguageClient
|
} // namespace LanguageClient
|
||||||
|
Reference in New Issue
Block a user