File indexing completed on 2024-04-28 05:49:01
0001 /* 0002 SPDX-FileCopyrightText: 2019 Mark Nauwelaerts <mark.nauwelaerts@gmail.com> 0003 SPDX-FileCopyrightText: 2019 Christoph Cullmann <cullmann@kde.org> 0004 0005 SPDX-License-Identifier: MIT 0006 */ 0007 0008 #pragma once 0009 0010 #include "lspclientplugin.h" 0011 #include "lspclientservermanager.h" 0012 0013 #include <QObject> 0014 0015 class LSPClientSymbolView 0016 { 0017 public: 0018 // only needs a factory; no other public interface 0019 static LSPClientSymbolView *new_(LSPClientPlugin *plugin, KTextEditor::MainWindow *mainWin, std::shared_ptr<LSPClientServerManager> manager); 0020 0021 virtual ~LSPClientSymbolView(); 0022 0023 virtual class QAbstractItemModel *documentSymbolsModel() = 0; 0024 }; 0025 0026 class LSPClientViewTracker : public QObject 0027 { 0028 Q_OBJECT 0029 public: 0030 // factory method; private implementation by interface 0031 static LSPClientViewTracker *new_(LSPClientPlugin *plugin, KTextEditor::MainWindow *mainWin, int change_ms, int motion_ms); 0032 0033 enum State { 0034 ViewChanged, 0035 TextChanged, 0036 LineChanged, 0037 }; 0038 0039 Q_SIGNALS: 0040 void newState(KTextEditor::View *, State); 0041 };