• Skip to content
  • Skip to link menu
KDE 4.6 API Reference
  • KDE API Reference
  • kdelibs
  • KDE Home
  • Contact Us
 

KTextEditor

  • KTextEditor
  • CodeCompletionModelControllerInterface3
Public Types | Public Member Functions

KTextEditor::CodeCompletionModelControllerInterface3 Class Reference
CodeCompletionModel Extension Interfaces

Controller interface for a CodeCompletionModel. More...

#include <codecompletionmodelcontrollerinterface.h>

List of all members.

Public Types

enum  MatchReaction { None = 0, HideListIfAutomaticInvocation = 1, ForExtension = 0xffff }

Public Member Functions

 CodeCompletionModelControllerInterface3 ()
virtual ~CodeCompletionModelControllerInterface3 ()
virtual void aborted (View *view)
virtual Range completionRange (View *view, const Cursor &position)
virtual QString filterString (View *view, const Range &range, const Cursor &position)
virtual MatchReaction matchingItem (const QModelIndex &matched)
virtual bool shouldAbortCompletion (View *view, const Range &range, const QString &currentCompletion)
virtual bool shouldExecute (const QModelIndex &selected, QChar inserted)
virtual bool shouldStartCompletion (View *view, const QString &insertedText, bool userInsertion, const Cursor &position)
virtual Range updateCompletionRange (View *view, const Range &range)

Detailed Description

Controller interface for a CodeCompletionModel.

The CodeCompletionModelControllerInterface3 gives an CodeCompletionModel better control over the completion.

By implementing methods defined in this interface you can:

  • control when automatic completion should start (shouldStartCompletion())
  • define a custom completion range (that will be replaced when the completion is executed) (completionRange())
  • dynamically modify the completion range during completion (updateCompletionRange())
  • specify the string used for filtering the completion (filterString())
  • control when completion should stop (shouldAbortCompletion())

When the interface is not implemented, or no methods are overridden the default behaviour is used, which will be correct in many situations.

Implemeting the Interface

To use this class implement it in your CodeCompletionModel.

 class MyCodeCompletion : public KTextEditor::CodeCompletionTestModel,
                    public KTextEditor::CodeCompletionModelControllerInterface3
 {
   Q_OBJECT
   Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface3)
 public:
   KTextEditor::Range completionRange(KTextEditor::View* view, const KTextEditor::Cursor &position);
 };
See also:
CodeCompletionModel
Author:
Niko Sams <niko.sams@gmail.com>
Joseph Wenninger
Since:
4.5

Definition at line 226 of file codecompletionmodelcontrollerinterface.h.


Member Enumeration Documentation

enum KTextEditor::CodeCompletionModelControllerInterface3::MatchReaction
Enumerator:
None 
HideListIfAutomaticInvocation 
ForExtension 

If this is returned, the completion-list is hidden if it was invoked automatically.

Definition at line 326 of file codecompletionmodelcontrollerinterface.h.


Constructor & Destructor Documentation

KTextEditor::CodeCompletionModelControllerInterface3::CodeCompletionModelControllerInterface3 ( )

Definition at line 120 of file codecompletionmodelcontrollerinterface.cpp.

KTextEditor::CodeCompletionModelControllerInterface3::~CodeCompletionModelControllerInterface3 ( ) [virtual]

Definition at line 124 of file codecompletionmodelcontrollerinterface.cpp.


Member Function Documentation

void KTextEditor::CodeCompletionModelControllerInterface3::aborted ( KTextEditor::View *  view) [virtual]

Notification that completion for this model has been aborted.

Parameters:
viewThe view in which the completion for this model was aborted

Definition at line 191 of file codecompletionmodelcontrollerinterface.cpp.

Range KTextEditor::CodeCompletionModelControllerInterface3::completionRange ( View *  view,
const Cursor &  position 
) [virtual]

This function returns the completion range that will be used for the current completion.

This range will be used for filtering the completion list and will get replaced when executing the completion

The default implementation will work for most languages that don't have special chars in identifiers.

Parameters:
viewThe view to generate completions for
positionCurrent cursor position
Returns:
the completion range

Definition at line 143 of file codecompletionmodelcontrollerinterface.cpp.

QString KTextEditor::CodeCompletionModelControllerInterface3::filterString ( View *  view,
const Range &  range,
const Cursor &  position 
) [virtual]

This function returns the filter-text used for the current completion.

Can return an empty string to disable filtering.

The default implementation will return the text from range start to the cursor position.

The smart-mutex is not locked when this is called.

Parameters:
viewThe view to generate completions for
rangeThe completion range
positionCurrent cursor position
Returns:
the string used for filtering the completion list

Definition at line 174 of file codecompletionmodelcontrollerinterface.cpp.

KTextEditor::CodeCompletionModelControllerInterface3::MatchReaction KTextEditor::CodeCompletionModelControllerInterface3::matchingItem ( const QModelIndex &  matched) [virtual]

Called whenever an item in the completion-list perfectly matches the current filter text.

Parameters:
Theindex that is matched
Returns:
Whether the completion-list should be hidden on this event. The default-implementation always returns HideListIfAutomaticInvocation

Definition at line 201 of file codecompletionmodelcontrollerinterface.cpp.

bool KTextEditor::CodeCompletionModelControllerInterface3::shouldAbortCompletion ( View *  view,
const Range &  range,
const QString &  currentCompletion 
) [virtual]

This function decides if the completion should be aborted.

Called after every change to the range (eg. when user entered text)

The default implementation will return true when any special character was entered, or when the range is empty.

The smart-mutex is not locked when this is called.

Parameters:
viewThe view to generate completions for
rangeThe completion range
currentCompletionThe text typed so far
Returns:
true, if the completion should be aborted, otherwise false

Definition at line 179 of file codecompletionmodelcontrollerinterface.cpp.

bool KTextEditor::CodeCompletionModelControllerInterface3::shouldExecute ( const QModelIndex &  selected,
QChar  inserted 
) [virtual]

When an item within this model is currently selected in the completion-list, and the user inserted the given character, should the completion-item be executed? This can be used to execute items from other inputs than the return-key.

For example a function item could be executed by typing '(', or variable items by typing '.'.

Parameters:
selectedThe currently selected index
insertedThe character that was inserted by tue user

Definition at line 195 of file codecompletionmodelcontrollerinterface.cpp.

bool KTextEditor::CodeCompletionModelControllerInterface3::shouldStartCompletion ( View *  view,
const QString &  insertedText,
bool  userInsertion,
const Cursor &  position 
) [virtual]

This function decides if the automatic completion should be started when the user entered some text.

The default implementation will return true if the last character in insertedText is a letter, a number, '.', '_' or '>'

Parameters:
viewThe view to generate completions for
insertedTextThe text that was inserted by the user
userInsertionWhether the the text was inserted by the user using typing. If false, it may have been inserted for example by code-completion.
positionCurrent cursor position
Returns:
true, if the completion should be started, otherwise false

Definition at line 128 of file codecompletionmodelcontrollerinterface.cpp.

Range KTextEditor::CodeCompletionModelControllerInterface3::updateCompletionRange ( View *  view,
const Range &  range 
) [virtual]

This function lets the CompletionModel dynamically modify the range.

Called after every change to the range (eg. when user entered text)

The default implementation does nothing.

The smart-mutex is not locked when this is called.

Warning:
Make sure you lock it before you change the range
Parameters:
viewThe view to generate completions for
rangeReference to the current range
Returns:
the modified range

Definition at line 164 of file codecompletionmodelcontrollerinterface.cpp.


The documentation for this class was generated from the following files:
  • codecompletionmodelcontrollerinterface.h
  • codecompletionmodelcontrollerinterface.cpp

KTextEditor

Skip menu "KTextEditor"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.7.3
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal