Krita Source Code Documentation
Loading...
Searching...
No Matches
krita.sceditor.indenter.TextIndenter Class Reference
+ Inheritance diagram for krita.sceditor.indenter.TextIndenter:

Public Member Functions

 __init__ (self, editor, indents=4)
 
 correct_indentation (self, lineno)
 
 deindent (self, lineno)
 
 entering_new_line (self, lineno)
 
 indent (self, lineno)
 
 insert_tab (self, index)
 

Public Attributes

 editor
 
 indents
 
 line_editor
 

Protected Member Functions

 _count_line_indents (self, lineno)
 
 _set_line_indents (self, lineno, indents)
 

Detailed Description

A class for formatting texts

Definition at line 10 of file indenter.py.

Constructor & Destructor Documentation

◆ __init__()

krita.sceditor.indenter.TextIndenter.__init__ ( self,
editor,
indents = 4 )

Reimplemented in krita.sceditor.indenter.NormalIndenter, and krita.sceditor.indenter.PythonCodeIndenter.

Definition at line 14 of file indenter.py.

14 def __init__(self, editor, indents=4):
15 self.editor = editor
16 self.indents = indents
17 self.line_editor = editor.line_editor()
18

Member Function Documentation

◆ _count_line_indents()

krita.sceditor.indenter.TextIndenter._count_line_indents ( self,
lineno )
protected

Definition at line 56 of file indenter.py.

56 def _count_line_indents(self, lineno):
57 contents = self.line_editor.get_line(lineno)
58 result = 0
59 for x in contents:
60 if x == ' ':
61 result += 1
62 elif x == '\t':
63 result += 8
64 else:
65 break
66 return result
67
68

References krita.sceditor.indenter.TextIndenter.line_editor, krita.sceditor.indenter.PythonCodeIndenter.line_editor, and krita.sceditor.widget.RopeEditorWrapper.line_editor().

◆ _set_line_indents()

krita.sceditor.indenter.TextIndenter._set_line_indents ( self,
lineno,
indents )
protected

Definition at line 51 of file indenter.py.

51 def _set_line_indents(self, lineno, indents):
52 old_indents = self._count_line_indents(lineno)
53 indent_diffs = indents - old_indents
54 self.line_editor.indent_line(lineno, indent_diffs)
55

References krita.sceditor.indenter.TextIndenter._count_line_indents(), krita.sceditor.indenter.TextIndenter.line_editor, krita.sceditor.indenter.PythonCodeIndenter.line_editor, and krita.sceditor.widget.RopeEditorWrapper.line_editor().

◆ correct_indentation()

krita.sceditor.indenter.TextIndenter.correct_indentation ( self,
lineno )
Correct the indentation of a line

Reimplemented in krita.sceditor.indenter.NormalIndenter, and krita.sceditor.indenter.PythonCodeIndenter.

Definition at line 19 of file indenter.py.

19 def correct_indentation(self, lineno):
20 """Correct the indentation of a line"""
21

◆ deindent()

krita.sceditor.indenter.TextIndenter.deindent ( self,
lineno )
Deindent the a line

Definition at line 22 of file indenter.py.

22 def deindent(self, lineno):
23 """Deindent the a line"""
24 current_indents = self._count_line_indents(lineno)
25 new_indents = max(0, current_indents - self.indents)
26 self._set_line_indents(lineno, new_indents)
27

◆ entering_new_line()

krita.sceditor.indenter.TextIndenter.entering_new_line ( self,
lineno )
Indent a line

Uses `correct_indentation` and last line indents

Definition at line 34 of file indenter.py.

34 def entering_new_line(self, lineno):
35 """Indent a line
36
37 Uses `correct_indentation` and last line indents
38 """
39 last_line = ""
40 if lineno > 1:
41 last_line = self.line_editor.get_line(lineno - 1)
42 if last_line.strip() == '':
43 self._set_line_indents(lineno, len(last_line))
44 else:
45 self.correct_indentation(lineno)
46

References krita.sceditor.indenter.TextIndenter._set_line_indents(), krita.sceditor.indenter.TextIndenter.correct_indentation(), krita.sceditor.indenter.NormalIndenter.correct_indentation(), krita.sceditor.indenter.PythonCodeIndenter.correct_indentation(), krita.sceditor.indenter.TextIndenter.line_editor, krita.sceditor.indenter.PythonCodeIndenter.line_editor, and krita.sceditor.widget.RopeEditorWrapper.line_editor().

◆ indent()

krita.sceditor.indenter.TextIndenter.indent ( self,
lineno )
Indent a line

Definition at line 28 of file indenter.py.

28 def indent(self, lineno):
29 """Indent a line"""
30 current_indents = self._count_line_indents(lineno)
31 new_indents = current_indents + self.indents
32 self._set_line_indents(lineno, new_indents)
33

References krita.sceditor.indenter.TextIndenter._count_line_indents(), krita.sceditor.indenter.TextIndenter._set_line_indents(), and krita.sceditor.indenter.TextIndenter.indents.

◆ insert_tab()

Member Data Documentation

◆ editor

krita.sceditor.indenter.TextIndenter.editor

Definition at line 15 of file indenter.py.

◆ indents

krita.sceditor.indenter.TextIndenter.indents

Definition at line 16 of file indenter.py.

◆ line_editor

krita.sceditor.indenter.TextIndenter.line_editor

Definition at line 17 of file indenter.py.


The documentation for this class was generated from the following file: