parts/abbrev/abbrevpart.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
#ifndef _ABBREVPART_H_
00017
#define _ABBREVPART_H_
00018
00019
#include <qmap.h>
00020
#include <qptrlist.h>
00021
#include "kdevplugin.h"
00022
00023
#include <ktexteditor/codecompletioninterface.h>
00024
00025
class KDialogBase;
00026
00027
namespace KParts{
00028
class Part;
00029 }
00030
00031
namespace KTextEditor{
00032
class Document;
00033
class EditInterface;
00034
class ViewCursorInterface;
00035 }
00036
00037 struct CodeTemplate {
00038 QString name;
00039 QString description;
00040 QString code;
00041 QString suffixes;
00042 };
00043
00044 class CodeTemplateList {
00045
public:
00046
CodeTemplateList();
00047
~CodeTemplateList();
00048
00049
QMap<QString, CodeTemplate* > operator[](
QString suffix);
00050
void insert(
QString name,
QString description,
QString code,
QString suffixes);
00051
void remove(
const QString &suffixes,
const QString &name);
00052
void clear();
00053
QStringList suffixes();
00054
00055
QPtrList<CodeTemplate> allTemplates()
const;
00056
00057
private:
00058 QMap<QString, QMap<QString, CodeTemplate* > >
templates;
00059 QPtrList<CodeTemplate> allCodeTemplates;
00060 QStringList m_suffixes;
00061 };
00062
00063 class AbbrevPart :
public KDevPlugin
00064 {
00065 Q_OBJECT
00066
00067
public:
00068
AbbrevPart(
QObject *parent,
const char *name,
const QStringList & );
00069
~AbbrevPart();
00070
00071
bool autoWordCompletionEnabled()
const;
00072
void setAutoWordCompletionEnabled(
bool enabled );
00073
00074
void addTemplate(
const QString &templ,
const QString &descr,
00075
const QString &suffixes,
const QString &code);
00076
void removeTemplate(
const QString &suffixes,
const QString &name);
00077
void clearTemplates();
00078
CodeTemplateList templates()
const;
00079
00080
private slots:
00081
void slotExpandText();
00082
void slotExpandAbbrev();
00083
void configWidget(
KDialogBase *dlg);
00084
void slotActivePartChanged(
KParts::Part* );
00085
void slotTextChanged();
00086
void slotCompletionAborted();
00087
void slotCompletionDone();
00088
void slotFilterInsertString(
KTextEditor::CompletionEntry*,
QString* );
00089
void slotAboutToShowCompletionBox();
00090
00091
private:
00092
void updateActions();
00093
void load();
00094
void save();
00095
QString currentWord()
const;
00096
QValueList<KTextEditor::CompletionEntry> findAllWords(
const QString &
text,
const QString &prefix);
00097
void insertChars(
const QString &chars );
00098
00099 CodeTemplateList m_templates;
00100 bool m_inCompletion;
00101 int m_prevLine;
00102 int m_prevColumn;
00103 int m_sequenceLength;
00104 bool m_autoWordCompletionEnabled;
00105 QString m_completionFile;
00106
00107 KTextEditor::Document*
docIface;
00108 KTextEditor::EditInterface*
editIface;
00109 KTextEditor::ViewCursorInterface*
viewCursorIface;
00110 KTextEditor::CodeCompletionInterface*
completionIface;
00111 };
00112
00113
#endif
This file is part of the documentation for KDevelop Version 3.0.4.