forked from qt-creator/qt-creator
LSP: add symbol support class
Declutter the client and client manager by moving find usage and follow symbol into this helper. This functionality was "temporary" put into the client manager, but is more an implementation detail that shouldn't be handled in that central place. Rename symbol will also go into this helper class. Task-number: QTCREATORBUG-21578 Change-Id: I56680f6ccbb8d244066561167178af7b341b8822 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
56
src/plugins/languageclient/languageclientsymbolsupport.h
Normal file
56
src/plugins/languageclient/languageclientsymbolsupport.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <texteditor/textdocument.h>
|
||||
|
||||
#include <languageserverprotocol/languagefeatures.h>
|
||||
|
||||
namespace LanguageClient {
|
||||
|
||||
class Client;
|
||||
|
||||
class SymbolSupport
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(SymbolSupport)
|
||||
public:
|
||||
explicit SymbolSupport(Client *client);
|
||||
|
||||
void findLinkAt(TextEditor::TextDocument *document,
|
||||
const QTextCursor &cursor,
|
||||
Utils::ProcessLinkCallback callback,
|
||||
const bool resolveTarget);
|
||||
void findUsages(TextEditor::TextDocument *document, const QTextCursor &cursor);
|
||||
|
||||
private:
|
||||
void handleFindReferencesResponse(
|
||||
const LanguageServerProtocol::FindReferencesRequest::Response &response,
|
||||
const QString &wordUnderCursor);
|
||||
|
||||
Client *m_client = nullptr;
|
||||
};
|
||||
|
||||
} // namespace LanguageClient
|
||||
Reference in New Issue
Block a user