KateVarIndent Class Reference

#include <kateautoindent.h>

Inheritance diagram for KateVarIndent:

QObject KateNormalIndent KateAutoIndent List of all members.

Detailed Description

This indenter uses document variables to determine when to add/remove indents.

It attempts to get the following variables from the document:

  • var-indent-indent-after: A rerular expression which will cause a line to be indented by one unit, if the first non-whitespace-only line above matches.
  • var-indent-indent: A regular expression, which will cause a matching line to be indented by one unit.
  • var-indent-unindent: A regular expression which will cause the line to be unindented by one unit if matching.
  • var-indent-triggerchars: a list of characters that should cause the indentiou to be recalculated immediately when typed.
  • var-indent-handle-couples: a list of paren sets to handle. Any combination of 'parens' 'braces' and 'brackets'. Each set type is handled the following way: If there are unmatched opening instances on the above line, one indent unit is added, if there are unmatched closing instances on the current line, one indent unit is removed.
  • var-indent-couple-attribute: When looking for unmatched couple openings/closings, only characters with this attribute is considered. The value must be the attribute name from the syntax xml file, for example "Symbol". If it's not specified, attribute 0 is used (usually 'Normal Text').

The idea is to provide a somewhat intelligent indentation for perl, php, bash, scheme and in general formats with humble indentation needs.

Definition at line 470 of file kateautoindent.h.


Public Types

 Parens = 1
 Braces = 2
 Brackets = 4
 AngleBrackets = 8
enum  pairs { Parens = 1, Braces = 2, Brackets = 4, AngleBrackets = 8 }

Public Member Functions

 KateVarIndent (KateDocument *doc)
virtual ~KateVarIndent ()
virtual void processNewline (KateDocCursor &cur, bool needContinue)
virtual void processChar (QChar c)
virtual void processLine (KateDocCursor &line)
virtual void processSection (const KateDocCursor &begin, const KateDocCursor &end)
virtual bool canProcessLine () const
virtual uint modeNumber () const

Member Enumeration Documentation

Purely for readability, couples we know and love.

Definition at line 477 of file kateautoindent.h.


Member Function Documentation

virtual bool KateVarIndent::canProcessLine (  )  const [inline, virtual]

Set to true if an actual implementation of 'processLine' is present.

This is used to prevent a needless Undo action from being created.

Reimplemented from KateNormalIndent.

Definition at line 493 of file kateautoindent.h.

virtual uint KateVarIndent::modeNumber (  )  const [inline, virtual]

Mode index of this mode.

Returns:
modeNumber

Reimplemented from KateNormalIndent.

Definition at line 495 of file kateautoindent.h.

void KateVarIndent::processChar ( QChar  c  )  [virtual]

Called every time a character is inserted into the document.

Parameters:
c character inserted

Reimplemented from KateNormalIndent.

Definition at line 2023 of file kateautoindent.cpp.

void KateVarIndent::processLine ( KateDocCursor line  )  [virtual]

Aligns/indents the given line to the proper indent position.

Reimplemented from KateNormalIndent.

Definition at line 2039 of file kateautoindent.cpp.

void KateVarIndent::processNewline ( KateDocCursor cur,
bool  needContinue 
) [virtual]

Called every time a newline character is inserted in the document.

Parameters:
cur The position to start processing. Contains the new cursor position after the indention.
needContinue Used to determine whether to calculate a continue indent or not.

Reimplemented from KateNormalIndent.

Definition at line 2015 of file kateautoindent.cpp.

void KateVarIndent::processSection ( const KateDocCursor begin,
const KateDocCursor end 
) [virtual]

Processes a section of text, indenting each line in between.

Reimplemented from KateNormalIndent.

Definition at line 2178 of file kateautoindent.cpp.


The documentation for this class was generated from the following files:
KDE Home | KDE Accessibility Home | Description of Access Keys