/usr/include/ktexteditor/codecompletioninterface.h is in kdelibs5-dev 4:4.8.4-4+deb7u1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | /* This file is part of the KDE libraries
Copyright (C) 2005-2006 Hamish Rodda <rodda@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KDELIBS_KTEXTEDITOR_CODECOMPLETIONINTERFACE_H
#define KDELIBS_KTEXTEDITOR_CODECOMPLETIONINTERFACE_H
#include <ktexteditor/ktexteditor_export.h>
#include <QtCore/QObject>
#include <ktexteditor/range.h>
namespace KTextEditor {
class CodeCompletionModel;
/**
* \brief Code completion extension interface for the View.
*
* \ingroup kte_group_view_extensions
*
* \section compiface_intro Introduction
*
* The CodeCompletionInterface is designed to provide code completion
* functionality for a KTextEditor::View. This interface provides the basic
* mechanisms to display a list of completions, update this list according
* to user input, and allow the user to select a completion.
*
* Essentially, this provides an item view for the available completions. In
* order to use this interface, you will need to implement a
* CodeCompletionModel that generates the relevant completions given the
* current input.
*
* \section compiface_access Accessing the CodeCompletionInterface
*
* The CodeCompletionInterface is an extension interface for a
* View, i.e. the View inherits the interface \e provided that the
* used KTextEditor library implements the interface. Use qobject_cast to
* access the interface:
* \code
* // view is of type KTextEditor::View*
* KTextEditor::CodeCompletionInterface *iface =
* qobject_cast<KTextEditor::CodeCompletionInterface*>( view );
*
* if( iface ) {
* // the implementation supports the interface
* // do stuff
* }
* \endcode
*
* \section compiface_usage Using the CodeCompletionInterface
*
* The CodeCompletionInterface can be used in different ways, which we
* will call "automatic", and "manual".
*
* \subsection compiface_automatic Automatic
*
* In automatic mode, the CodeCompletionInterface will take care of
* starting and aborting the generation of code completions as
* appropriate, when the users inserts or changes text.
*
* To use the interface in this way, first register a CodeCompletionModel
* using registerCompletionModel(). Now call setAutomaticCompletionEnabled()
* to enabled automatic completions.
*
* \subsection compiface_manual Manual
*
* If you need more control over when code completions get shown or not,
* or which fragment of the text should be considered as the basis for
* generated completions, proceed as follows:
*
* Call setAutomaticCompletionEnabled(false) to disable automatic
* completions. To start the generation of code completions for the current
* word, call startCompletion(), with the appropriate parameters. To hide the
* generated completions, use abortCompletion().
*
* \see KTextEditor::View, KTextEditor::CodeCompletionModel
*/
class KTEXTEDITOR_EXPORT CodeCompletionInterface
{
public:
virtual ~CodeCompletionInterface();
/**
* Query whether the code completion box is currently displayed.
*/
virtual bool isCompletionActive() const = 0;
/**
* Invoke code completion over a given range, with a specific \a model.
*/
virtual void startCompletion(const Range& word, CodeCompletionModel* model) = 0;
/**
* Abort the currently displayed code completion without executing any currently
* selected completion. This is safe, even when the completion box is not currently
* active.
* \see isCompletionActive()
*/
virtual void abortCompletion() = 0;
/**
* Force execution of the currently selected completion, and hide the code completion
* box.
*/
virtual void forceCompletion() = 0;
/**
* Register a new code completion \p model.
* \param model new completion model
* \see unregisterCompletionModel()
*/
virtual void registerCompletionModel(CodeCompletionModel* model) = 0;
/**
* Unregister a code completion \p model.
* \param model the model that should be unregistered
* \see registerCompletionModel()
*/
virtual void unregisterCompletionModel(CodeCompletionModel* model) = 0;
/**
* Determine the status of automatic code completion invocation.
*/
virtual bool isAutomaticInvocationEnabled() const = 0;
/**
* Enable or disable automatic code completion invocation.
*/
virtual void setAutomaticInvocationEnabled(bool enabled = true) = 0;
//signals:
//void completionExecuted(KTextEditor::View* view, const KTextEditor::Cursor& position, KTextEditor::CodeCompletionModel* model, int row);
//void completionAborted(KTextEditor::View* view);
};
}
Q_DECLARE_INTERFACE(KTextEditor::CodeCompletionInterface, "org.kde.KTextEditor.CodeCompletionInterface")
#endif // KDELIBS_KTEXTEDITOR_CODECOMPLETIONINTERFACE_H
|