edbee - Qt Editor Library v0.11.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
textautocompleteprovider.h
Go to the documentation of this file.
1// edbee - Copyright (c) 2012-2025 by Rick Blommers and contributors
2// SPDX-License-Identifier: MIT
3
4#pragma once
5
6#include "edbee/exports.h"
7
8#include <QList>
9#include <QString>
10#include <QMultiMap>
11#include <QStandardItemModel>
12#include <QSortFilterProxyModel>
13#include <QStandardItem>
14
15namespace edbee {
16
17class TextDocument;
18class TextRange;
19
20
21// We don't have lang-server support, but for future support, the constants of langserver are used
22// https://microsoft.github.io/language-server-protocol/specifications/specification-3-14/#textDocument_completion
52
53
58public:
59 TextAutoCompleteItem( const QString& label, const int kind = 0, const QString& detail = "", const QString& documentation = "");
60 QString label() const;
61 int kind() const;
62 QString detail() const;
63 QString documentation() const;
64
65 int matchLabelScore( TextDocument* document, const TextRange& range, const QString& word );
66
67protected:
68 QString label_;
69 int kind_;
70 QString detail_;
72};
73
74
77public:
79 virtual QList<TextAutoCompleteItem*> findAutoCompleteItemsForRange( TextDocument* document, const TextRange& range, const QString& word ) = 0;
80};
81
82
85{
86public:
88 virtual QList<TextAutoCompleteItem*> findAutoCompleteItemsForRange( TextDocument* document, const TextRange& range, const QString& word ) ;
89
90 virtual void add(const QString& label, const int kind = 0, const QString& detail = "", const QString& documentation = "");
91 virtual void give(TextAutoCompleteItem* item);
92protected:
93 QList<TextAutoCompleteItem*> itemList_;
94
95};
96
97
98
115{
116public:
119
120 virtual QList<TextAutoCompleteItem*> findAutoCompleteItemsForRange(TextDocument* document, const TextRange &range, const QString& word );
121 virtual void giveProvider(TextAutoCompleteProvider* provider);
122 virtual void setParentProvider(TextAutoCompleteProvider* provider);
123
124protected:
125 QList<TextAutoCompleteProvider*> providerList_;
127};
128
129
130
131/*
133class EDBEE_EXPORT ScopeBasedTextAutoCompleteProvider : public TextAutoCompleteProvider
134{
135public:
136 virtual QList<TextAutoCompleteItem*> findAutoCompleteItemsForRange( TextDocument* document, TextRange& range );
137
138protected:
140};
141
142
144class EDBEE_EXPORT TextEditorSpecificTextAutoCompleteProvider : public TextAutoCompleteProvider
145{
146public:
147 virtual QList<TextAutoCompleteItem*> findAutoCompleteItemsForRange( TextDocument* document, TextRange& range );
148
149};
150
151
152
153
155class EDBEE_EXPORT TextAutoCompleteManager {
156public:
157 TextAutoCompleteManager();
158 virtual ~TextAutoCompleteProvider();
159
160 void giveProvider(TextAutoCompleteProvider* provider);
161
162protected:
163
164 QList<TextAutoCompleteProvider*> providerList_;
165};
166
167*/
168
169}
a fixed stringlist autocompleter
Definition textautocompleteprovider.h:85
QList< TextAutoCompleteItem * > itemList_
Definition textautocompleteprovider.h:93
virtual QList< TextAutoCompleteItem * > findAutoCompleteItemsForRange(TextDocument *document, const TextRange &range, const QString &word)
Search auto-complete items in the list.
Definition textautocompleteprovider.cpp:86
An autocomplete item that is being returned Currently simply a string. It is placed in a separate cla...
Definition textautocompleteprovider.h:57
QString detail_
Definition textautocompleteprovider.h:70
QString label() const
returns the autocmomplete label
Definition textautocompleteprovider.cpp:26
int kind_
Definition textautocompleteprovider.h:69
int matchLabelScore(TextDocument *document, const TextRange &range, const QString &word)
Compares the given text-autocomplete item with the label This method should return a match score,...
Definition textautocompleteprovider.cpp:54
QString documentation_
Definition textautocompleteprovider.h:71
QString label_
Definition textautocompleteprovider.h:68
TextAutoCompleteItem(const QString &label, const int kind=0, const QString &detail="", const QString &documentation="")
Definition textautocompleteprovider.cpp:16
int kind() const
Definition textautocompleteprovider.cpp:31
QString detail() const
Definition textautocompleteprovider.cpp:36
QString documentation() const
Definition textautocompleteprovider.cpp:41
A base autocomplete provider.
Definition textautocompleteprovider.h:76
virtual QList< TextAutoCompleteItem * > findAutoCompleteItemsForRange(TextDocument *document, const TextRange &range, const QString &word)=0
virtual ~TextAutoCompleteProvider()
Definition textautocompleteprovider.h:78
TextAutoCompleteProviderList(TextAutoCompleteProvider *parentProvider=0)
Definition textautocompleteprovider.cpp:123
TextAutoCompleteProvider * parentProviderRef_
A reference to the global autocomplete provider.
Definition textautocompleteprovider.h:126
QList< TextAutoCompleteProvider * > providerList_
The autocomplete provider list.
Definition textautocompleteprovider.h:125
virtual void giveProvider(TextAutoCompleteProvider *provider)
adds a provider
Definition textautocompleteprovider.cpp:149
virtual QList< TextAutoCompleteItem * > findAutoCompleteItemsForRange(TextDocument *document, const TextRange &range, const QString &word)
builds an auto-complete list by querying all providers
Definition textautocompleteprovider.cpp:135
virtual void setParentProvider(TextAutoCompleteProvider *provider)
set the parent provider
Definition textautocompleteprovider.cpp:156
This is the base and abstract class of a text document A TextDocument is the model part of the editor...
Definition textdocument.h:42
A single text region A region constists of an anchor and a caret: The anchor defines the 'start' of t...
Definition textrange.h:29
#define EDBEE_EXPORT
Definition exports.h:15
#define give(key, command)
Definition factorycommandmap.cpp:30
#define add(key, value)
Definition factorykeymap.cpp:13
Definition textautocompleteprovider.h:23
TextAutoCompleteKindEnum
Definition textautocompleteprovider.h:24
@ Function
Definition textautocompleteprovider.h:27
@ Value
Definition textautocompleteprovider.h:36
@ Operator
Definition textautocompleteprovider.h:48
@ Keyword
Definition textautocompleteprovider.h:38
@ Reference
Definition textautocompleteprovider.h:42
@ Text
Definition textautocompleteprovider.h:25
@ Interface
Definition textautocompleteprovider.h:32
@ Color
Definition textautocompleteprovider.h:40
@ Field
Definition textautocompleteprovider.h:29
@ File
Definition textautocompleteprovider.h:41
@ Unit
Definition textautocompleteprovider.h:35
@ Event
Definition textautocompleteprovider.h:47
@ Struct
Definition textautocompleteprovider.h:46
@ EnumMember
Definition textautocompleteprovider.h:44
@ Module
Definition textautocompleteprovider.h:33
@ Snippet
Definition textautocompleteprovider.h:39
@ Variable
Definition textautocompleteprovider.h:30
@ TypeParameter
Definition textautocompleteprovider.h:49
@ Class
Definition textautocompleteprovider.h:31
@ Property
Definition textautocompleteprovider.h:34
@ Constant
Definition textautocompleteprovider.h:45
@ Constructor
Definition textautocompleteprovider.h:28
@ Enum
Definition textautocompleteprovider.h:37
@ Method
Definition textautocompleteprovider.h:26
@ Folder
Definition textautocompleteprovider.h:43
QT Acessibility has an issue with reporting blank lines between elements lines. defining 'WINDOWS_EMP...
Definition commentcommand.cpp:20