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

Kate

  • kde-4.14
  • applications
  • kate
  • part
  • script
katescriptdocument.cpp
Go to the documentation of this file.
1 // This file is part of the KDE libraries
2 // Copyright (C) 2008 Paul Giannaros <paul@giannaros.org>
3 // Copyright (C) 2009 Dominik Haumann <dhaumann kde org>
4 //
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Library General Public
7 // License as published by the Free Software Foundation; either
8 // version 2 of the License, or (at your option) version 3.
9 //
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // Library General Public License for more details.
14 //
15 // You should have received a copy of the GNU Library General Public License
16 // along with this library; see the file COPYING.LIB. If not, write to
17 // the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 // Boston, MA 02110-1301, USA.
19 
20 #include "katescriptdocument.h"
21 
22 #include "katedocument.h"
23 #include "kateview.h"
24 #include "katerenderer.h"
25 #include "kateconfig.h"
26 #include "katehighlight.h"
27 #include "katescript.h"
28 
29 #include <ktexteditor/highlightinterface.h>
30 #include <ktexteditor/movingcursor.h>
31 
32 #include <QtScript/QScriptEngine>
33 
34 KateScriptDocument::KateScriptDocument(QObject *parent)
35  : QObject(parent), m_document(0)
36 {
37 }
38 
39 void KateScriptDocument::setDocument(KateDocument *document)
40 {
41  m_document = document;
42 }
43 
44 KateDocument *KateScriptDocument::document()
45 {
46  return m_document;
47 }
48 
49 int KateScriptDocument::defStyleNum(int line, int column)
50 {
51  return m_document->defStyleNum(line,column);
52 }
53 
54 int KateScriptDocument::defStyleNum(const KTextEditor::Cursor& cursor)
55 {
56  return defStyleNum(cursor.line(), cursor.column());
57 }
58 
59 
60 bool KateScriptDocument::isCode(int line, int column)
61 {
62  const int defaultStyle = defStyleNum(line, column);
63  return _isCode(defaultStyle);
64 }
65 
66 bool KateScriptDocument::isCode(const KTextEditor::Cursor& cursor)
67 {
68  return isCode(cursor.line(), cursor.column());
69 }
70 
71 bool KateScriptDocument::isComment(int line, int column)
72 {
73  return m_document->isComment(line, column);
74 }
75 
76 bool KateScriptDocument::isComment(const KTextEditor::Cursor& cursor)
77 {
78  return isComment(cursor.line(), cursor.column());
79 }
80 
81 bool KateScriptDocument::isString(int line, int column)
82 {
83  const int defaultStyle = defStyleNum(line, column);
84  return defaultStyle == KTextEditor::HighlightInterface::dsString;
85 }
86 
87 bool KateScriptDocument::isString(const KTextEditor::Cursor& cursor)
88 {
89  return isString(cursor.line(), cursor.column());
90 }
91 
92 bool KateScriptDocument::isRegionMarker(int line, int column)
93 {
94  const int defaultStyle = defStyleNum(line, column);
95  return defaultStyle == KTextEditor::HighlightInterface::dsRegionMarker;
96 }
97 
98 bool KateScriptDocument::isRegionMarker(const KTextEditor::Cursor& cursor)
99 {
100  return isRegionMarker(cursor.line(), cursor.column());
101 }
102 
103 bool KateScriptDocument::isChar(int line, int column)
104 {
105  const int defaultStyle = defStyleNum(line, column);
106  return defaultStyle == KTextEditor::HighlightInterface::dsChar;
107 }
108 
109 bool KateScriptDocument::isChar(const KTextEditor::Cursor& cursor)
110 {
111  return isChar(cursor.line(), cursor.column());
112 }
113 
114 bool KateScriptDocument::isOthers(int line, int column)
115 {
116  const int defaultStyle = defStyleNum(line, column);
117  return defaultStyle == KTextEditor::HighlightInterface::dsOthers;
118 }
119 
120 bool KateScriptDocument::isOthers(const KTextEditor::Cursor& cursor)
121 {
122  return isOthers(cursor.line(), cursor.column());
123 }
124 
125 int KateScriptDocument::firstVirtualColumn(int line)
126 {
127  const int tabWidth = m_document->config()->tabWidth();
128  Kate::TextLine textLine = m_document->plainKateTextLine(line);
129  const int firstPos = textLine ? textLine->firstChar() : -1;
130  if(!textLine || firstPos == -1)
131  return -1;
132  return textLine->indentDepth(tabWidth);
133 }
134 
135 int KateScriptDocument::lastVirtualColumn(int line)
136 {
137  const int tabWidth = m_document->config()->tabWidth();
138  Kate::TextLine textLine = m_document->plainKateTextLine(line);
139  const int lastPos = textLine ? textLine->lastChar() : -1;
140  if(!textLine || lastPos == -1)
141  return -1;
142  return textLine->toVirtualColumn(lastPos, tabWidth);
143 }
144 
145 int KateScriptDocument::toVirtualColumn(int line, int column)
146 {
147  const int tabWidth = m_document->config()->tabWidth();
148  Kate::TextLine textLine = m_document->plainKateTextLine(line);
149  if (!textLine || column < 0 || column > textLine->length()) return -1;
150  return textLine->toVirtualColumn(column, tabWidth);
151 }
152 
153 int KateScriptDocument::toVirtualColumn(const KTextEditor::Cursor& cursor)
154 {
155  return toVirtualColumn(cursor.line(), cursor.column());
156 }
157 
158 KTextEditor::Cursor KateScriptDocument::toVirtualCursor(const KTextEditor::Cursor& cursor)
159 {
160  return KTextEditor::Cursor(cursor.line(),
161  toVirtualColumn(cursor.line(), cursor.column()));
162 }
163 
164 int KateScriptDocument::fromVirtualColumn(int line, int virtualColumn)
165 {
166  const int tabWidth = m_document->config()->tabWidth();
167  Kate::TextLine textLine = m_document->plainKateTextLine(line);
168  if(!textLine || virtualColumn < 0 || virtualColumn > textLine->virtualLength(tabWidth))
169  return -1;
170  return textLine->fromVirtualColumn(virtualColumn, tabWidth);
171 }
172 
173 int KateScriptDocument::fromVirtualColumn(const KTextEditor::Cursor& virtualCursor)
174 {
175  return fromVirtualColumn(virtualCursor.line(), virtualCursor.column());
176 }
177 
178 KTextEditor::Cursor KateScriptDocument::fromVirtualCursor(const KTextEditor::Cursor& virtualCursor)
179 {
180  return KTextEditor::Cursor(virtualCursor.line(),
181  fromVirtualColumn(virtualCursor.line(), virtualCursor.column()));
182 }
183 
184 KTextEditor::Cursor KateScriptDocument::rfind(int line, int column, const QString& text, int attribute)
185 {
186  QScopedPointer<KTextEditor::MovingCursor> cursor(document()->newMovingCursor(KTextEditor::Cursor(line, column)));
187  const int start = cursor->line();
188  QList<KTextEditor::Attribute::Ptr> attributes =
189  m_document->highlight()->attributes(static_cast<KateView*>(m_document->activeView())->renderer()->config()->schema());
190 
191  do {
192  Kate::TextLine textLine = m_document->plainKateTextLine(cursor->line());
193  if (!textLine)
194  break;
195 
196  if (cursor->line() != start) {
197  cursor->setColumn(textLine->length());
198  } else if (column >= textLine->length()) {
199  cursor->setColumn(qMax(textLine->length(), 0));
200  }
201 
202  int foundAt;
203  while ((foundAt = textLine->string().left(cursor->column()).lastIndexOf(text, -1, Qt::CaseSensitive)) >= 0) {
204  bool hasStyle = true;
205  if (attribute != -1) {
206  KTextEditor::Attribute::Ptr a = attributes[textLine->attribute(foundAt)];
207  const int ds = a->property(KateExtendedAttribute::AttributeDefaultStyleIndex).toInt();
208  hasStyle = (ds == attribute);
209  }
210 
211  if (hasStyle) {
212  return KTextEditor::Cursor(cursor->line(), foundAt);
213  } else {
214  cursor->setColumn(foundAt);
215  }
216  }
217  } while (cursor->gotoPreviousLine());
218 
219  return KTextEditor::Cursor::invalid();
220 }
221 
222 KTextEditor::Cursor KateScriptDocument::rfind(const KTextEditor::Cursor& cursor, const QString& text, int attribute)
223 {
224  return rfind(cursor.line(), cursor.column(), text, attribute);
225 }
226 
227 KTextEditor::Cursor KateScriptDocument::anchor(int line, int column, QChar character)
228 {
229  QList<KTextEditor::Attribute::Ptr> attributes =
230  m_document->highlight()->attributes(static_cast<KateView*>( m_document->activeView())->renderer()->config()->schema());
231  int count = 1;
232  QChar lc;
233  QChar rc;
234  if (character == '(' || character == ')') {
235  lc = '(';
236  rc = ')';
237  } else if (character == '{' || character == '}') {
238  lc = '{';
239  rc = '}';
240  } else if (character == '[' || character == ']') {
241  lc = '[';
242  rc = ']';
243  } else {
244  kDebug(13060) << "invalid anchor character:" << character << " allowed are: (){}[]";
245  return KTextEditor::Cursor::invalid();
246  }
247 
248  QScopedPointer<KTextEditor::MovingCursor> cursor(document()->newMovingCursor(KTextEditor::Cursor(line, column)));
249 
250  // Move backwards char by char and find the opening character
251  while (cursor->move(-1)) {
252  QChar ch = document()->character(cursor->toCursor());
253  if (ch == lc) {
254  KTextEditor::Attribute::Ptr a = attributes[document()->plainKateTextLine(cursor->line())->attribute(cursor->column())];
255  const int ds = a->property(KateExtendedAttribute::AttributeDefaultStyleIndex).toInt();
256  if (_isCode(ds)) {
257  --count;
258  }
259  }
260  else if (ch == rc) {
261  KTextEditor::Attribute::Ptr a = attributes[document()->plainKateTextLine(cursor->line())->attribute(cursor->column())];
262  const int ds = a->property(KateExtendedAttribute::AttributeDefaultStyleIndex).toInt();
263  if (_isCode(ds)) {
264  ++count;
265  }
266  }
267 
268  if (count == 0) {
269  return cursor->toCursor();
270  }
271  }
272  return KTextEditor::Cursor::invalid ();
273 }
274 
275 KTextEditor::Cursor KateScriptDocument::anchor(const KTextEditor::Cursor& cursor, QChar character)
276 {
277  return anchor(cursor.line(), cursor.column(), character);
278 }
279 
280 bool KateScriptDocument::startsWith (int line, const QString &pattern, bool skipWhiteSpaces)
281 {
282  Kate::TextLine textLine = m_document->plainKateTextLine(line);
283 
284  if (!textLine)
285  return false;
286 
287  if (skipWhiteSpaces)
288  return textLine->matchesAt(textLine->firstChar(), pattern);
289 
290  return textLine->startsWith (pattern);
291 }
292 
293 bool KateScriptDocument::endsWith (int line, const QString &pattern, bool skipWhiteSpaces)
294 {
295  Kate::TextLine textLine = m_document->plainKateTextLine(line);
296 
297  if (!textLine)
298  return false;
299 
300  if (skipWhiteSpaces)
301  return textLine->matchesAt(textLine->lastChar() - pattern.length() + 1, pattern);
302 
303  return textLine->endsWith (pattern);
304 }
305 
306 //BEGIN Automatically generated
307 
308 QString KateScriptDocument::fileName()
309 {
310  return m_document->documentName();
311 }
312 
313 QString KateScriptDocument::url()
314 {
315  return m_document->url().prettyUrl();
316 }
317 
318 QString KateScriptDocument::mimeType()
319 {
320  return m_document->mimeType();
321 }
322 
323 QString KateScriptDocument::encoding()
324 {
325  return m_document->encoding();
326 }
327 
328 QString KateScriptDocument::highlightingMode()
329 {
330  return m_document->highlightingMode();
331 }
332 
333 QStringList KateScriptDocument::embeddedHighlightingModes()
334 {
335  return m_document->embeddedHighlightingModes();
336 }
337 
338 QString KateScriptDocument::highlightingModeAt(const KTextEditor::Cursor& pos)
339 {
340  return m_document->highlightingModeAt(pos);
341 }
342 
343 bool KateScriptDocument::isModified()
344 {
345  return m_document->isModified();
346 }
347 
348 QString KateScriptDocument::text()
349 {
350  return m_document->text();
351 }
352 
353 QString KateScriptDocument::text(int fromLine, int fromColumn, int toLine, int toColumn)
354 {
355  return text(KTextEditor::Range(fromLine, fromColumn, toLine, toColumn));
356 }
357 
358 QString KateScriptDocument::text(const KTextEditor::Cursor& from, const KTextEditor::Cursor& to)
359 {
360  return text(KTextEditor::Range(from, to));
361 }
362 
363 QString KateScriptDocument::text(const KTextEditor::Range& range)
364 {
365  return m_document->text(range);
366 }
367 
368 QString KateScriptDocument::line(int line)
369 {
370  return m_document->line(line);
371 }
372 
373 QString KateScriptDocument::wordAt(int line, int column)
374 {
375  return m_document->getWord(KTextEditor::Cursor(line, column));
376 }
377 
378 QString KateScriptDocument::wordAt(const KTextEditor::Cursor& cursor)
379 {
380  return m_document->getWord(cursor);
381 }
382 
383 KTextEditor::Range KateScriptDocument::wordRangeAt(int line, int column)
384 {
385  return wordRangeAt(KTextEditor::Cursor(line, column));
386 }
387 
388 KTextEditor::Range KateScriptDocument::wordRangeAt(const KTextEditor::Cursor& cursor)
389 {
390  Kate::TextLine textLine = m_document->plainKateTextLine(cursor.line());
391 
392  const int len = textLine->length();
393  int start = cursor.column();
394  int end = start;
395 
396  // Probably because of non-wrapping cursor mode
397  if (start > len)
398  return KTextEditor::Range::invalid();
399 
400  while (start > 0 && m_document->highlight()->isInWord(textLine->at(start - 1), textLine->attribute(start - 1))) start--;
401  while (end < len && m_document->highlight()->isInWord(textLine->at(end), textLine->attribute(end))) end++;
402 
403  return KTextEditor::Range(cursor.line(), start, cursor.line(), end);
404 }
405 
406 QString KateScriptDocument::charAt(int line, int column)
407 {
408  return charAt(KTextEditor::Cursor(line, column));
409 }
410 
411 QString KateScriptDocument::charAt(const KTextEditor::Cursor& cursor)
412 {
413  const QChar c = m_document->character(cursor);
414  return c.isNull() ? "" : QString(c);
415 }
416 
417 QString KateScriptDocument::firstChar(int line)
418 {
419  Kate::TextLine textLine = m_document->plainKateTextLine(line);
420  if(!textLine) return "";
421  // check for isNull(), as the returned character then would be "\0"
422  const QChar c = textLine->at(textLine->firstChar());
423  return c.isNull() ? "" : QString(c);
424 }
425 
426 QString KateScriptDocument::lastChar(int line)
427 {
428  Kate::TextLine textLine = m_document->plainKateTextLine(line);
429  if(!textLine) return "";
430  // check for isNull(), as the returned character then would be "\0"
431  const QChar c = textLine->at(textLine->lastChar());
432  return c.isNull() ? "" : QString(c);
433 }
434 
435 bool KateScriptDocument::isSpace(int line, int column)
436 {
437  return isSpace(KTextEditor::Cursor(line, column));
438 }
439 
440 bool KateScriptDocument::isSpace(const KTextEditor::Cursor& cursor)
441 {
442  return m_document->character(cursor).isSpace();
443 }
444 
445 bool KateScriptDocument::matchesAt(int line, int column, const QString &s)
446 {
447  Kate::TextLine textLine = m_document->plainKateTextLine(line);
448  return textLine ? textLine->matchesAt(column, s) : false;
449 }
450 
451 bool KateScriptDocument::matchesAt(const KTextEditor::Cursor& cursor, const QString &s)
452 {
453  return matchesAt(cursor.line(), cursor.column(), s);
454 }
455 
456 bool KateScriptDocument::setText(const QString &s)
457 {
458  return m_document->setText(s);
459 }
460 
461 bool KateScriptDocument::clear()
462 {
463  return m_document->clear();
464 }
465 
466 bool KateScriptDocument::truncate(int line, int column)
467 {
468  Kate::TextLine textLine = m_document->plainKateTextLine(line);
469  if (!textLine || textLine->text().size() < column)
470  return false;
471 
472  KTextEditor::Cursor from (line, column), to (line, textLine->text().size() - column);
473  return removeText(KTextEditor::Range(from, to));
474 }
475 
476 bool KateScriptDocument::truncate(const KTextEditor::Cursor& cursor)
477 {
478  return truncate(cursor.line(), cursor.column());
479 }
480 
481 bool KateScriptDocument::insertText(int line, int column, const QString &s)
482 {
483  return insertText(KTextEditor::Cursor(line, column), s);
484 }
485 
486 bool KateScriptDocument::insertText(const KTextEditor::Cursor& cursor, const QString &s)
487 {
488  return m_document->insertText(cursor, s);
489 }
490 
491 bool KateScriptDocument::removeText(int fromLine, int fromColumn, int toLine, int toColumn)
492 {
493  return removeText(KTextEditor::Range(fromLine, fromColumn, toLine, toColumn));
494 }
495 
496 bool KateScriptDocument::removeText(const KTextEditor::Cursor& from, const KTextEditor::Cursor& to)
497 {
498  return removeText(KTextEditor::Range(from, to));
499 }
500 
501 bool KateScriptDocument::removeText(const KTextEditor::Range& range)
502 {
503  return m_document->removeText(range);
504 }
505 
506 bool KateScriptDocument::insertLine(int line, const QString &s)
507 {
508  return m_document->insertLine (line, s);
509 }
510 
511 bool KateScriptDocument::removeLine(int line)
512 {
513  return m_document->removeLine (line);
514 }
515 
516 bool KateScriptDocument::wrapLine(int line, int column)
517 {
518  return m_document->editWrapLine(line, column);
519 }
520 
521 bool KateScriptDocument::wrapLine(const KTextEditor::Cursor& cursor)
522 {
523  return wrapLine(cursor.line(), cursor.column());
524 }
525 
526 void KateScriptDocument::joinLines(int startLine, int endLine)
527 {
528  m_document->joinLines (startLine, endLine);
529 }
530 
531 int KateScriptDocument::lines()
532 {
533  return m_document->lines();
534 }
535 
536 int KateScriptDocument::length()
537 {
538  return m_document->totalCharacters();
539 }
540 
541 int KateScriptDocument::lineLength(int line)
542 {
543  return m_document->lineLength(line);
544 }
545 
546 void KateScriptDocument::editBegin()
547 {
548  m_document->editBegin();
549 }
550 
551 void KateScriptDocument::editEnd()
552 {
553  m_document->editEnd ();
554 }
555 
556 int KateScriptDocument::firstColumn(int line)
557 {
558  Kate::TextLine textLine = m_document->plainKateTextLine(line);
559  return textLine ? textLine->firstChar() : -1;
560 }
561 
562 int KateScriptDocument::lastColumn(int line)
563 {
564  Kate::TextLine textLine = m_document->plainKateTextLine(line);
565  return textLine ? textLine->lastChar() : -1;
566 }
567 
568 int KateScriptDocument::prevNonSpaceColumn(int line, int column)
569 {
570  Kate::TextLine textLine = m_document->plainKateTextLine(line);
571  if(!textLine) return -1;
572  return textLine->previousNonSpaceChar(column);
573 }
574 
575 int KateScriptDocument::prevNonSpaceColumn(const KTextEditor::Cursor& cursor)
576 {
577  return prevNonSpaceColumn(cursor.line(), cursor.column());
578 }
579 
580 int KateScriptDocument::nextNonSpaceColumn(int line, int column)
581 {
582  Kate::TextLine textLine = m_document->plainKateTextLine(line);
583  if(!textLine) return -1;
584  return textLine->nextNonSpaceChar(column);
585 }
586 
587 int KateScriptDocument::nextNonSpaceColumn(const KTextEditor::Cursor& cursor)
588 {
589  return nextNonSpaceColumn(cursor.line(), cursor.column());
590 }
591 
592 int KateScriptDocument::prevNonEmptyLine(int line)
593 {
594  const int startLine = line;
595  for (int currentLine = startLine; currentLine >= 0; --currentLine) {
596  Kate::TextLine textLine = m_document->plainKateTextLine(currentLine);
597  if(!textLine)
598  return -1;
599  if(textLine->firstChar() != -1)
600  return currentLine;
601  }
602  return -1;
603 }
604 
605 int KateScriptDocument::nextNonEmptyLine(int line)
606 {
607  const int startLine = line;
608  for (int currentLine = startLine; currentLine < m_document->lines(); ++currentLine) {
609  Kate::TextLine textLine = m_document->plainKateTextLine(currentLine);
610  if(!textLine)
611  return -1;
612  if(textLine->firstChar() != -1)
613  return currentLine;
614  }
615  return -1;
616 }
617 
618 bool KateScriptDocument::isInWord(const QString &character, int attribute)
619 {
620  return m_document->highlight()->isInWord(character.at(0), attribute);
621 }
622 
623 bool KateScriptDocument::canBreakAt(const QString &character, int attribute)
624 {
625  return m_document->highlight()->canBreakAt(character.at(0), attribute);
626 }
627 
628 bool KateScriptDocument::canComment(int startAttribute, int endAttribute)
629 {
630  return m_document->highlight()->canComment(startAttribute, endAttribute);
631 }
632 
633 QString KateScriptDocument::commentMarker(int attribute)
634 {
635  return m_document->highlight()->getCommentSingleLineStart(attribute);
636 }
637 
638 QString KateScriptDocument::commentStart(int attribute)
639 {
640  return m_document->highlight()->getCommentStart(attribute);
641 }
642 
643 QString KateScriptDocument::commentEnd(int attribute)
644 {
645  return m_document->highlight()->getCommentEnd(attribute);
646 }
647 
648 KTextEditor::Range KateScriptDocument::documentRange()
649 {
650  return m_document->documentRange();
651 }
652 
653 KTextEditor::Cursor KateScriptDocument::documentEnd()
654 {
655  return m_document->documentEnd();
656 }
657 
658 int KateScriptDocument::attribute(int line, int column)
659 {
660  Kate::TextLine textLine = m_document->kateTextLine(line);
661  if(!textLine) return 0;
662  return textLine->attribute(column);
663 }
664 
665 int KateScriptDocument::attribute(const KTextEditor::Cursor& cursor)
666 {
667  return attribute(cursor.line(), cursor.column());
668 }
669 
670 bool KateScriptDocument::isAttribute(int line, int column, int attr)
671 {
672  return attr == attribute(line, column);
673 }
674 
675 bool KateScriptDocument::isAttribute(const KTextEditor::Cursor& cursor, int attr)
676 {
677  return isAttribute(cursor.line(), cursor.column(), attr);
678 }
679 
680 QString KateScriptDocument::attributeName(int line, int column)
681 {
682  QList<KTextEditor::Attribute::Ptr> attributes = m_document->highlight()->attributes(static_cast<KateView*>(m_document->activeView())->renderer()->config()->schema());
683  KTextEditor::Attribute::Ptr a = attributes[document()->plainKateTextLine(line)->attribute(column)];
684  return a->property(KateExtendedAttribute::AttributeName).toString();
685 }
686 
687 QString KateScriptDocument::attributeName(const KTextEditor::Cursor& cursor)
688 {
689  return attributeName(cursor.line(), cursor.column());
690 }
691 
692 bool KateScriptDocument::isAttributeName(int line, int column, const QString &name)
693 {
694  return name == attributeName(line, column);
695 }
696 
697 bool KateScriptDocument::isAttributeName(const KTextEditor::Cursor& cursor, const QString &name)
698 {
699  return isAttributeName(cursor.line(), cursor.column(), name);
700 }
701 
702 QString KateScriptDocument::variable(const QString &s)
703 {
704  return m_document->variable(s);
705 }
706 
707 QString KateScriptDocument::setVariable(const QString &s, const QString &v)
708 {
709  return m_document->setVariable(s, v);
710 }
711 
712 //END
713 
714 bool KateScriptDocument::_isCode(int defaultStyle)
715 {
716  return (defaultStyle != KTextEditor::HighlightInterface::dsComment
717  && defaultStyle != KTextEditor::HighlightInterface::dsString
718  && defaultStyle != KTextEditor::HighlightInterface::dsRegionMarker
719  && defaultStyle != KTextEditor::HighlightInterface::dsChar
720  && defaultStyle != KTextEditor::HighlightInterface::dsOthers);
721 }
722 
723 void KateScriptDocument::indent(KTextEditor::Range range, int change)
724 {
725  m_document->indent(range, change);
726 }
727 
728 void KateScriptDocument::align(const KTextEditor::Range& range)
729 {
730  if (m_document->activeKateView()) {
731  m_document->align(m_document->activeKateView(), range);
732  }
733 }
734 
735 // kate: space-indent on; indent-width 2; replace-tabs on;
736 
KateDocument::documentName
virtual const QString & documentName() const
Definition: katedocument.h:828
KateDocument::line
virtual QString line(int line) const
Definition: katedocument.cpp:447
KateDocument::align
void align(KateView *view, const KTextEditor::Range &range)
Definition: katedocument.cpp:2909
KateDocument::insertLine
virtual bool insertLine(int line, const QString &s)
Definition: katedocument.cpp:701
KateDocument::highlightingMode
virtual QString highlightingMode() const
Return the name of the currently used mode.
Definition: katedocument.cpp:1494
KateScriptDocument::firstColumn
Q_INVOKABLE int firstColumn(int line)
Definition: katescriptdocument.cpp:556
KateDocument::setText
virtual bool setText(const QString &)
Definition: katedocument.cpp:457
KateDocument::config
KateDocumentConfig * config()
Configuration.
Definition: katedocument.h:1009
KateExtendedAttribute::AttributeName
Definition: kateextendedattribute.h:43
KateScriptDocument::toVirtualCursor
Q_INVOKABLE KTextEditor::Cursor toVirtualCursor(const KTextEditor::Cursor &cursor)
Definition: katescriptdocument.cpp:158
KateScriptDocument::prevNonSpaceColumn
Q_INVOKABLE int prevNonSpaceColumn(int line, int column)
Definition: katescriptdocument.cpp:568
KateDocument::mimeType
virtual QString mimeType()
Definition: katedocument.cpp:1860
katehighlight.h
kateview.h
KateScriptDocument::toVirtualColumn
Q_INVOKABLE int toVirtualColumn(int line, int column)
Definition: katescriptdocument.cpp:145
KateScriptDocument::commentStart
Q_INVOKABLE QString commentStart(int attribute)
Definition: katescriptdocument.cpp:638
KateScriptDocument::rfind
Q_INVOKABLE KTextEditor::Cursor rfind(int line, int column, const QString &text, int attribute=-1)
Definition: katescriptdocument.cpp:184
KateHighlighting::canComment
bool canComment(int startAttr, int endAttr) const
Definition: katehighlight.cpp:1149
KateScriptDocument::align
Q_INVOKABLE void align(const KTextEditor::Range &range)
Definition: katescriptdocument.cpp:728
KateScriptDocument::startsWith
Q_INVOKABLE bool startsWith(int line, const QString &pattern, bool skipWhiteSpaces)
Definition: katescriptdocument.cpp:280
katerenderer.h
KateDocument::removeLine
virtual bool removeLine(int line)
Definition: katedocument.cpp:727
KateDocument::editBegin
void editBegin()
Alias for editStart()
Definition: katedocument.h:213
KateDocument::highlight
KateHighlighting * highlight() const
Definition: katedocument.cpp:4701
KateScriptDocument::joinLines
Q_INVOKABLE void joinLines(int startLine, int endLine)
Definition: katescriptdocument.cpp:526
KateScriptDocument::highlightingModeAt
Q_INVOKABLE QString highlightingModeAt(const KTextEditor::Cursor &pos)
Definition: katescriptdocument.cpp:338
KateDocument::activeView
virtual KTextEditor::View * activeView() const
Definition: katedocument.h:156
KateScriptDocument::text
Q_INVOKABLE QString text()
Definition: katescriptdocument.cpp:348
QChar
KateDocument::clear
virtual bool clear()
Definition: katedocument.cpp:509
KateScriptDocument::line
Q_INVOKABLE QString line(int line)
Definition: katescriptdocument.cpp:368
KateDocument::lineLength
virtual int lineLength(int line) const
Definition: katedocument.cpp:758
KateScriptDocument::encoding
Q_INVOKABLE QString encoding()
Definition: katescriptdocument.cpp:323
KateScriptDocument::canBreakAt
Q_INVOKABLE bool canBreakAt(const QString &character, int attribute)
Definition: katescriptdocument.cpp:623
KateHighlighting::getCommentStart
QString getCommentStart(int attrib=0) const
Definition: katehighlight.cpp:1157
KateScriptDocument::highlightingMode
Q_INVOKABLE QString highlightingMode()
Definition: katescriptdocument.cpp:328
KateScriptDocument::isComment
Q_INVOKABLE bool isComment(int line, int column)
Definition: katescriptdocument.cpp:71
KateScriptDocument::endsWith
Q_INVOKABLE bool endsWith(int line, const QString &pattern, bool skipWhiteSpaces)
Definition: katescriptdocument.cpp:293
katedocument.h
KateDocument::highlightingModeAt
virtual QString highlightingModeAt(const KTextEditor::Cursor &position)
Definition: katedocument.cpp:5419
KateScriptDocument::attribute
Q_INVOKABLE int attribute(int line, int column)
Get the syntax highlighting attribute at a given position in the document.
Definition: katescriptdocument.cpp:658
katescript.h
KateDocument::embeddedHighlightingModes
virtual QStringList embeddedHighlightingModes() const
Definition: katedocument.cpp:5414
KateScriptDocument::isOthers
Q_INVOKABLE bool isOthers(int line, int column)
Definition: katescriptdocument.cpp:114
KateScriptDocument::removeLine
Q_INVOKABLE bool removeLine(int line)
Definition: katescriptdocument.cpp:511
KateExtendedAttribute::AttributeDefaultStyleIndex
Definition: kateextendedattribute.h:44
KateScriptDocument::wrapLine
Q_INVOKABLE bool wrapLine(int line, int column)
Definition: katescriptdocument.cpp:516
KateScriptDocument::defStyleNum
Q_INVOKABLE int defStyleNum(int line, int column)
Definition: katescriptdocument.cpp:49
KateScriptDocument::wordRangeAt
Q_INVOKABLE KTextEditor::Range wordRangeAt(int line, int column)
Definition: katescriptdocument.cpp:383
KateHighlighting::canBreakAt
bool canBreakAt(QChar c, int attrib=0) const
Definition: katehighlight.cpp:1129
KateScriptDocument::isChar
Q_INVOKABLE bool isChar(int line, int column)
Definition: katescriptdocument.cpp:103
KateDocument::totalCharacters
virtual int totalCharacters() const
Definition: katedocument.cpp:738
KateDocument::plainKateTextLine
Kate::TextLine plainKateTextLine(uint i)
Definition: katedocument.cpp:4712
KateDocument::indent
void indent(KTextEditor::Range range, int change)
Definition: katedocument.cpp:2899
KateScriptDocument::isRegionMarker
Q_INVOKABLE bool isRegionMarker(int line, int column)
Definition: katescriptdocument.cpp:92
KateScriptDocument::firstChar
Q_INVOKABLE QString firstChar(int line)
Definition: katescriptdocument.cpp:417
KateHighlighting::getCommentEnd
QString getCommentEnd(int attrib=0) const
Definition: katehighlight.cpp:1162
KateScriptDocument::document
KateDocument * document()
Definition: katescriptdocument.cpp:44
KateScriptDocument::attributeName
Q_INVOKABLE QString attributeName(int line, int column)
Get the name of the syntax highlighting attribute at the given position.
Definition: katescriptdocument.cpp:680
KateScriptDocument::lastColumn
Q_INVOKABLE int lastColumn(int line)
Definition: katescriptdocument.cpp:562
KateScriptDocument::nextNonSpaceColumn
Q_INVOKABLE int nextNonSpaceColumn(int line, int column)
Definition: katescriptdocument.cpp:580
KateScriptDocument::commentMarker
Q_INVOKABLE QString commentMarker(int attribute)
Definition: katescriptdocument.cpp:633
QObject::name
const char * name() const
KateScriptDocument::insertText
Q_INVOKABLE bool insertText(int line, int column, const QString &s)
Definition: katescriptdocument.cpp:481
KateDocument::insertText
virtual bool insertText(const KTextEditor::Cursor &position, const QString &s, bool block=false)
Definition: katedocument.cpp:530
KateScriptDocument::isSpace
Q_INVOKABLE bool isSpace(int line, int column)
Definition: katescriptdocument.cpp:435
KateScriptDocument::embeddedHighlightingModes
Q_INVOKABLE QStringList embeddedHighlightingModes()
Definition: katescriptdocument.cpp:333
KateScriptDocument::insertLine
Q_INVOKABLE bool insertLine(int line, const QString &s)
Definition: katescriptdocument.cpp:506
QChar::isSpace
bool isSpace() const
KateScriptDocument::matchesAt
Q_INVOKABLE bool matchesAt(int line, int column, const QString &s)
Definition: katescriptdocument.cpp:445
KateDocument::character
virtual QChar character(const KTextEditor::Cursor &position) const
Definition: katedocument.cpp:388
QSharedPointer
QObject
KateHighlighting::attributes
QList< KTextEditor::Attribute::Ptr > attributes(const QString &schema)
Definition: katehighlight.cpp:2172
KateScriptDocument::prevNonEmptyLine
Q_INVOKABLE int prevNonEmptyLine(int line)
Definition: katescriptdocument.cpp:592
QScopedPointer
KateScriptDocument::firstVirtualColumn
Q_INVOKABLE int firstVirtualColumn(int line)
Definition: katescriptdocument.cpp:125
KateScriptDocument::isModified
Q_INVOKABLE bool isModified()
Definition: katescriptdocument.cpp:343
KateDocument::variable
virtual QString variable(const QString &name) const
Definition: katedocument.cpp:4338
KateDocument::defStyleNum
int defStyleNum(int line, int column)
Definition: katedocument.cpp:5464
KateDocument::lines
virtual int lines() const
Definition: katedocument.cpp:753
KateDocument::documentEnd
virtual KTextEditor::Cursor documentEnd() const
Definition: katedocument.cpp:4681
KateScriptDocument::setDocument
void setDocument(KateDocument *document)
Definition: katescriptdocument.cpp:39
KateScriptDocument::removeText
Q_INVOKABLE bool removeText(int fromLine, int fromColumn, int toLine, int toColumn)
Definition: katescriptdocument.cpp:491
KateScriptDocument::clear
Q_INVOKABLE bool clear()
Definition: katescriptdocument.cpp:461
KateScriptDocument::isInWord
Q_INVOKABLE bool isInWord(const QString &character, int attribute)
Definition: katescriptdocument.cpp:618
QString
QList< KTextEditor::Attribute::Ptr >
KateScriptDocument::wordAt
Q_INVOKABLE QString wordAt(int line, int column)
Definition: katescriptdocument.cpp:373
KateScriptDocument::truncate
Q_INVOKABLE bool truncate(int line, int column)
Definition: katescriptdocument.cpp:466
QStringList
KateDocument::encoding
virtual const QString & encoding() const
Definition: katedocument.cpp:3959
QChar::isNull
bool isNull() const
KateScriptDocument::lineLength
Q_INVOKABLE int lineLength(int line)
Definition: katescriptdocument.cpp:541
KateDocument
Definition: katedocument.h:74
katescriptdocument.h
KateScriptDocument::length
Q_INVOKABLE int length()
Definition: katescriptdocument.cpp:536
KateScriptDocument::fromVirtualCursor
Q_INVOKABLE KTextEditor::Cursor fromVirtualCursor(const KTextEditor::Cursor &virtualCursor)
Definition: katescriptdocument.cpp:178
KateScriptDocument::mimeType
Q_INVOKABLE QString mimeType()
Definition: katescriptdocument.cpp:318
KateDocument::kateTextLine
Kate::TextLine kateTextLine(uint i)
Definition: katedocument.cpp:4706
KateDocument::editWrapLine
bool editWrapLine(int line, int col, bool newLine=true, bool *newLineAdded=0)
Wrap line.
Definition: katedocument.cpp:1083
KateScriptDocument::lines
Q_INVOKABLE int lines()
Definition: katescriptdocument.cpp:531
KateScriptDocument::charAt
Q_INVOKABLE QString charAt(int line, int column)
Definition: katescriptdocument.cpp:406
KateDocument::isComment
bool isComment(int line, int column)
Definition: katedocument.cpp:5511
KateScriptDocument::documentRange
Q_INVOKABLE KTextEditor::Range documentRange()
Definition: katescriptdocument.cpp:648
KateDocument::getWord
QString getWord(const KTextEditor::Cursor &cursor)
Definition: katedocument.cpp:3538
KateScriptDocument::indent
Q_INVOKABLE void indent(KTextEditor::Range range, int change)
Definition: katescriptdocument.cpp:723
KateHighlighting::getCommentSingleLineStart
QString getCommentSingleLineStart(int attrib=0) const
Definition: katehighlight.cpp:1167
KateScriptDocument::variable
Q_INVOKABLE QString variable(const QString &s)
Definition: katescriptdocument.cpp:702
KateScriptDocument::setText
Q_INVOKABLE bool setText(const QString &s)
Definition: katescriptdocument.cpp:456
KateScriptDocument::documentEnd
Q_INVOKABLE KTextEditor::Cursor documentEnd()
Definition: katescriptdocument.cpp:653
KateScriptDocument::editEnd
Q_INVOKABLE void editEnd()
Definition: katescriptdocument.cpp:551
KateDocument::editEnd
void editEnd()
End a editor operation.
Definition: katedocument.cpp:796
KateDocument::setVariable
virtual QString setVariable(const QString &name, const QString &value)
Definition: katedocument.cpp:4343
QString::at
const QChar at(int position) const
KateScriptDocument::KateScriptDocument
KateScriptDocument(QObject *parent=0)
Definition: katescriptdocument.cpp:34
KateScriptDocument::isAttributeName
Q_INVOKABLE bool isAttributeName(int line, int column, const QString &name)
Return true is the name of the syntax attribute equals name.
Definition: katescriptdocument.cpp:692
KateScriptDocument::fileName
Q_INVOKABLE QString fileName()
Definition: katescriptdocument.cpp:308
KateScriptDocument::commentEnd
Q_INVOKABLE QString commentEnd(int attribute)
Definition: katescriptdocument.cpp:643
KateScriptDocument::lastVirtualColumn
Q_INVOKABLE int lastVirtualColumn(int line)
Definition: katescriptdocument.cpp:135
QString::length
int length() const
KateDocument::text
virtual QString text(const KTextEditor::Range &range, bool blockwise=false) const
Definition: katedocument.cpp:337
KateScriptDocument::setVariable
Q_INVOKABLE QString setVariable(const QString &s, const QString &v)
Definition: katescriptdocument.cpp:707
KateScriptDocument::canComment
Q_INVOKABLE bool canComment(int startAttribute, int endAttribute)
Definition: katescriptdocument.cpp:628
KateScriptDocument::isCode
Q_INVOKABLE bool isCode(int line, int column)
Definition: katescriptdocument.cpp:60
KateScriptDocument::editBegin
Q_INVOKABLE void editBegin()
Definition: katescriptdocument.cpp:546
KateScriptDocument::isAttribute
Q_INVOKABLE bool isAttribute(int line, int column, int attr)
Return true if the highlight attribute equals attr.
Definition: katescriptdocument.cpp:670
KateScriptDocument::nextNonEmptyLine
Q_INVOKABLE int nextNonEmptyLine(int line)
Definition: katescriptdocument.cpp:605
KateScriptDocument::isString
Q_INVOKABLE bool isString(int line, int column)
Definition: katescriptdocument.cpp:81
KateDocumentConfig::tabWidth
int tabWidth() const
Definition: kateconfig.cpp:444
KateHighlighting::isInWord
bool isInWord(QChar c, int attrib=0) const
Definition: katehighlight.cpp:1122
kateconfig.h
KateDocument::activeKateView
KateView * activeKateView() const
Definition: katedocument.cpp:4676
KateDocument::joinLines
void joinLines(uint first, uint last)
Unwrap a range of lines.
Definition: katedocument.cpp:3497
KateScriptDocument::url
Q_INVOKABLE QString url()
Definition: katescriptdocument.cpp:313
KateDocument::removeText
virtual bool removeText(const KTextEditor::Range &range, bool block=false)
Definition: katedocument.cpp:633
KateScriptDocument::anchor
Q_INVOKABLE KTextEditor::Cursor anchor(int line, int column, QChar character)
Definition: katescriptdocument.cpp:227
KateScriptDocument::lastChar
Q_INVOKABLE QString lastChar(int line)
Definition: katescriptdocument.cpp:426
KateScriptDocument::fromVirtualColumn
Q_INVOKABLE int fromVirtualColumn(int line, int virtualColumn)
Definition: katescriptdocument.cpp:164
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sat May 9 2020 03:56:58 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Kate

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

applications API Reference

Skip menu "applications API Reference"
  •   kate
  •       kate
  •   KTextEditor
  •   Kate
  • Konsole

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal