00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KATE_SCRIPT_DOCUMENT_H
00020 #define KATE_SCRIPT_DOCUMENT_H
00021
00022 #include <QObject>
00023 #include <QtScript/QScriptable>
00024 #include <QtScript/QScriptValue>
00025
00026 #include <ktexteditor/cursor.h>
00027
00028 class KateDocument;
00029
00040 class KateScriptDocument : public QObject, protected QScriptable
00041 {
00043 Q_OBJECT
00044 Q_PROPERTY(QString fileName READ fileName)
00045 Q_PROPERTY(QString url READ url)
00046 Q_PROPERTY(QString mimeType READ mimeType)
00047 Q_PROPERTY(QString encoding READ encoding)
00048 Q_PROPERTY(bool modified READ isModified)
00049 Q_PROPERTY(QString text READ text WRITE setText)
00050
00051 public:
00052 KateScriptDocument(QObject *parent=0);
00053 void setDocument(KateDocument *document);
00054 KateDocument *document();
00055
00056
00057
00058 Q_INVOKABLE QString fileName();
00059 Q_INVOKABLE QString url();
00060 Q_INVOKABLE QString mimeType();
00061 Q_INVOKABLE QString encoding();
00062 Q_INVOKABLE bool isModified();
00063 Q_INVOKABLE QString text();
00064 Q_INVOKABLE QString textRange(int i, int j, int k, int l);
00065 Q_INVOKABLE QString line(int i);
00066 Q_INVOKABLE QString wordAt(int i, int j);
00067 Q_INVOKABLE QString charAt(int i, int j);
00068 Q_INVOKABLE QString firstChar(int i);
00069 Q_INVOKABLE QString lastChar(int i);
00070 Q_INVOKABLE bool isSpace(int i, int j);
00071 Q_INVOKABLE bool matchesAt(int i, int j, const QString &s);
00072 Q_INVOKABLE bool setText(const QString &s);
00073 Q_INVOKABLE bool clear();
00074 Q_INVOKABLE bool truncate(int i, int j);
00075 Q_INVOKABLE bool insertText(int i, int j, const QString &s);
00076 Q_INVOKABLE bool removeText(int i, int j, int k, int l);
00077 Q_INVOKABLE bool insertLine(int i, const QString &s);
00078 Q_INVOKABLE bool removeLine(int i);
00079 Q_INVOKABLE void joinLines(int i, int j);
00080 Q_INVOKABLE int lines();
00081 Q_INVOKABLE int length();
00082 Q_INVOKABLE int lineLength(int i);
00083 Q_INVOKABLE void editBegin();
00084 Q_INVOKABLE void editEnd();
00085 Q_INVOKABLE int firstColumn(int i);
00086 Q_INVOKABLE int lastColumn(int i);
00087 Q_INVOKABLE int prevNonSpaceColumn(int i, int j);
00088 Q_INVOKABLE int nextNonSpaceColumn(int i, int j);
00089 Q_INVOKABLE int prevNonEmptyLine(int i);
00090 Q_INVOKABLE int nextNonEmptyLine(int i);
00091 Q_INVOKABLE bool isInWord(const QString &s, int i);
00092 Q_INVOKABLE bool canBreakAt(const QString &s, int i);
00093 Q_INVOKABLE bool canComment(int i, int j);
00094 Q_INVOKABLE QString commentMarker(int i);
00095 Q_INVOKABLE QString commentStart(int i);
00096 Q_INVOKABLE QString commentEnd(int i);
00097
00101 Q_INVOKABLE int attribute(int line, int column);
00102
00106 Q_INVOKABLE bool isAttribute(int line, int column, int attr);
00107
00111 Q_INVOKABLE QString attributeName(int line, int column);
00112
00116 Q_INVOKABLE bool isAttributeName(int line, int column, const QString &name);
00117
00118 Q_INVOKABLE QString variable(const QString &s);
00119
00120
00121 Q_INVOKABLE int firstVirtualColumn(int line);
00122 Q_INVOKABLE int lastVirtualColumn(int line);
00123 Q_INVOKABLE int toVirtualColumn(int line, int column);
00124 Q_INVOKABLE int fromVirtualColumn(int line, int virtualColumn);
00125
00126 Q_INVOKABLE KTextEditor::Cursor anchor(int line, int column, QChar character);
00127 Q_INVOKABLE QScriptValue rfind(int line, int column, const QString& text, int attribute = -1);
00128
00129 Q_INVOKABLE int defStyleNum(int line, int column);
00130 Q_INVOKABLE bool isCode(int line, int column);
00131 Q_INVOKABLE bool isComment(int line, int column);
00132 Q_INVOKABLE bool isString(int line, int column);
00133 Q_INVOKABLE bool isRegionMarker(int line, int column);
00134 Q_INVOKABLE bool isChar(int line, int column);
00135 Q_INVOKABLE bool isOthers(int line, int column);
00136
00137
00138 Q_INVOKABLE bool startsWith (int line, const QString &pattern, bool skipWhiteSpaces);
00139 Q_INVOKABLE bool endsWith (int line, const QString &pattern, bool skipWhiteSpaces);
00140
00141 private:
00142 bool _isCode(int defaultStyle);
00143
00144 KateDocument *m_document;
00145 };
00146
00147
00148 #endif
00149
00150