\section{Kate\-Var\-Indent Class Reference}
\label{classKateVarIndent}\index{KateVarIndent@{KateVarIndent}}
This indenter uses document variables to determine when to add/remove indents.  


{\tt \#include $<$kateautoindent.h$>$}

Inheritance diagram for Kate\-Var\-Indent:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=101pt]{classKateVarIndent__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for Kate\-Var\-Indent:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=101pt]{classKateVarIndent__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item 
enum {\bf pairs} \{ {\bf Parens} = 1, 
{\bf Braces} = 2, 
{\bf Brackets} = 4, 
{\bf Angle\-Brackets} = 8
 \}
\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf Kate\-Var\-Indent} (Kate\-Document $\ast$doc)\label{classKateVarIndent_a0}

\item 
virtual void {\bf process\-Newline} ({\bf Kate\-Doc\-Cursor} \&begin, bool need\-Continue)
\item 
virtual void {\bf process\-Char} ({\bf QChar} c)
\item 
virtual void {\bf process\-Line} ({\bf Kate\-Doc\-Cursor} \&line)
\item 
virtual void {\bf process\-Section} ({\bf Kate\-Doc\-Cursor} \&begin, {\bf Kate\-Doc\-Cursor} \&end)
\item 
virtual bool {\bf can\-Process\-Line} () const 
\item 
virtual uint {\bf mode\-Number} () const 
\end{CompactItemize}


\subsection{Detailed Description}
This indenter uses document variables to determine when to add/remove indents. 

It attempts to get the following variables from the document:\begin{itemize}
\item 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.\item var-indent-indent: A regular expression, which will cause a matching line to be indented by one unit.\item var-indent-unindent: A regular expression which will cause the line to be unindented by one unit if matching.\item var-indent-triggerchars: a list of characters that should cause the indentiou to be recalculated immediately when typed.\item 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.\item 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 \char`\"{}Symbol\char`\"{}. If it's not specified, attribute 0 is used (usually 'Normal Text').\end{itemize}


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 418 of file kateautoindent.h.

\subsection{Member Enumeration Documentation}
\index{KateVarIndent@{Kate\-Var\-Indent}!pairs@{pairs}}
\index{pairs@{pairs}!KateVarIndent@{Kate\-Var\-Indent}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf Kate\-Var\-Indent::pairs}}\label{classKateVarIndent_w4}


Purely for readability, couples we know and love. 



Definition at line 425 of file kateautoindent.h.

\subsection{Member Function Documentation}
\index{KateVarIndent@{Kate\-Var\-Indent}!processNewline@{processNewline}}
\index{processNewline@{processNewline}!KateVarIndent@{Kate\-Var\-Indent}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Kate\-Var\-Indent::process\-Newline ({\bf Kate\-Doc\-Cursor} \& {\em begin}, bool {\em need\-Continue})\hspace{0.3cm}{\tt  [virtual]}}\label{classKateVarIndent_a2}


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

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em cur}]The position to start processing. Contains the new cursor position after the indention. \item[{\em need\-Continue}]Used to determine whether to calculate a continue indent or not. \end{description}
\end{Desc}


Reimplemented from {\bf Kate\-Normal\-Indent} {\rm (p.\,\pageref{classKateNormalIndent_a4})}.

Definition at line 1970 of file kateautoindent.cpp.

References process\-Line().\index{KateVarIndent@{Kate\-Var\-Indent}!processChar@{processChar}}
\index{processChar@{processChar}!KateVarIndent@{Kate\-Var\-Indent}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Kate\-Var\-Indent::process\-Char ({\bf QChar} {\em c})\hspace{0.3cm}{\tt  [virtual]}}\label{classKateVarIndent_a3}


Called every time a character is inserted into the document. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em c}]character inserted \end{description}
\end{Desc}


Reimplemented from {\bf Kate\-Normal\-Indent} {\rm (p.\,\pageref{classKateNormalIndent_a5})}.

Definition at line 1978 of file kateautoindent.cpp.

References endl(), kd\-Debug(), and process\-Line().\index{KateVarIndent@{Kate\-Var\-Indent}!processLine@{processLine}}
\index{processLine@{processLine}!KateVarIndent@{Kate\-Var\-Indent}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Kate\-Var\-Indent::process\-Line ({\bf Kate\-Doc\-Cursor} \& {\em line})\hspace{0.3cm}{\tt  [virtual]}}\label{classKateVarIndent_a4}


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



Reimplemented from {\bf Kate\-Normal\-Indent} {\rm (p.\,\pageref{classKateNormalIndent_a6})}.

Definition at line 1994 of file kateautoindent.cpp.

References endl(), kd\-Debug(), Kate\-Normal\-Indent::tab\-String(), and Kate\-Normal\-Indent::update\-Config().

Referenced by process\-Char(), process\-Newline(), and process\-Section().\index{KateVarIndent@{Kate\-Var\-Indent}!processSection@{processSection}}
\index{processSection@{processSection}!KateVarIndent@{Kate\-Var\-Indent}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Kate\-Var\-Indent::process\-Section ({\bf Kate\-Doc\-Cursor} \& {\em begin}, {\bf Kate\-Doc\-Cursor} \& {\em end})\hspace{0.3cm}{\tt  [virtual]}}\label{classKateVarIndent_a5}


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



Reimplemented from {\bf Kate\-Normal\-Indent} {\rm (p.\,\pageref{classKateNormalIndent_a7})}.

Definition at line 2133 of file kateautoindent.cpp.

References Kate\-Doc\-Cursor::goto\-Next\-Line(), Kate\-Text\-Cursor::line(), and process\-Line().\index{KateVarIndent@{Kate\-Var\-Indent}!canProcessLine@{canProcessLine}}
\index{canProcessLine@{canProcessLine}!KateVarIndent@{Kate\-Var\-Indent}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool Kate\-Var\-Indent::can\-Process\-Line () const\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classKateVarIndent_a6}


Set to true if an actual implementation of 'process\-Line' is present. 

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

Reimplemented from {\bf Kate\-Normal\-Indent} {\rm (p.\,\pageref{classKateNormalIndent_a8})}.

Definition at line 441 of file kateautoindent.h.\index{KateVarIndent@{Kate\-Var\-Indent}!modeNumber@{modeNumber}}
\index{modeNumber@{modeNumber}!KateVarIndent@{Kate\-Var\-Indent}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual uint Kate\-Var\-Indent::mode\-Number () const\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classKateVarIndent_a7}


Mode index of this mode. 

\begin{Desc}
\item[Returns:]mode\-Number \end{Desc}


Reimplemented from {\bf Kate\-Normal\-Indent} {\rm (p.\,\pageref{classKateNormalIndent_a9})}.

Definition at line 443 of file kateautoindent.h.

The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
kateautoindent.h\item 
kateautoindent.cpp\end{CompactItemize}
