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.1.2.