eric7/QScintilla/TypingCompleters/CompleterYaml.py

Sat, 15 May 2021 18:45:04 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 15 May 2021 18:45:04 +0200
branch
eric7
changeset 8312
800c432b34c8
parent 8228
eric6/QScintilla/TypingCompleters/CompleterYaml.py@772103b14c18
child 8318
962bce857696
permissions
-rw-r--r--

Started to rename eric6 to eric7.

7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
7923
91e843545d9a Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
3 # Copyright (c) 2019 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a typing completer for Python.
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import re
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt5.Qsci import QsciScintilla
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from .CompleterBase import CompleterBase
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 import Preferences
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 class CompleterYaml(CompleterBase):
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Class implementing typing completer for Python.
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self, editor, parent=None):
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param editor reference to the editor object
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @type QScintilla.Editor
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @param parent reference to the parent object
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @type QObject
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
32 super().__init__(editor, parent)
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.readSettings()
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 def readSettings(self):
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 Public slot called to reread the configuration parameters.
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.setEnabled(
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 Preferences.getEditorTyping("Yaml/EnabledTypingAids"))
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.__insertClosingBrace = Preferences.getEditorTyping(
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 "Yaml/InsertClosingBrace")
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.__skipBrace = Preferences.getEditorTyping(
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 "Yaml/SkipBrace")
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.__insertQuote = Preferences.getEditorTyping(
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 "Yaml/InsertQuote")
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.__autoIndentation = Preferences.getEditorTyping(
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 "Yaml/AutoIndentation")
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.__colonDetection = Preferences.getEditorTyping(
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 "Yaml/ColonDetection")
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.__insertBlankDash = Preferences.getEditorTyping(
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 "Yaml/InsertBlankDash")
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.__insertBlankColon = Preferences.getEditorTyping(
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 "Yaml/InsertBlankColon")
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.__insertBlankQuestion = Preferences.getEditorTyping(
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 "Yaml/InsertBlankQuestion")
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.__insertBlankComma = Preferences.getEditorTyping(
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 "Yaml/InsertBlankComma")
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 def charAdded(self, charNumber):
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 Public slot called to handle the user entering a character.
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 @param charNumber value of the character entered
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 @type int
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 char = chr(charNumber)
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 if char not in ['{', '}', '[', ']', "'", '"', '-', ':', '?', ',',
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 '\n']:
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 return # take the short route
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 line, col = self.editor.getCursorPosition()
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 if self.__inComment(line, col):
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 return
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 # open curly brace
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 # insert closing brace
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
80 if char == '{' and self.__insertClosingBrace:
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
81 self.editor.insert('}')
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 # open bracket
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 # insert closing bracket
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
85 elif char == '[' and self.__insertClosingBrace:
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
86 self.editor.insert(']')
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 # closing parenthesis
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 # skip matching closing parenthesis
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 elif char in ['}', ']']:
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 txt = self.editor.text(line)
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
92 if col < len(txt) and char == txt[col] and self.__skipBrace:
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
93 self.editor.setSelection(line, col, line, col + 1)
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
94 self.editor.removeSelectedText()
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 # colon
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 # 1. skip colon if not last character
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 # 2. insert blank if last character
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 elif char == ':':
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 text = self.editor.text(line)
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 if col < len(text) and char == text[col]:
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 if self.__colonDetection:
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 self.editor.setSelection(line, col, line, col + 1)
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 self.editor.removeSelectedText()
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
105 elif self.__insertBlankColon and col == len(text.rstrip()):
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 self.editor.insert(' ')
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 self.editor.setCursorPosition(line, col + 1)
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108
8228
772103b14c18 Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
109 # dash, question mark or comma
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
110 # insert blank
8228
772103b14c18 Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
111 elif (
772103b14c18 Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
112 (char == '-' and self.__insertBlankDash) or
772103b14c18 Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
113 (char == '?' and self.__insertBlankQuestion) or
772103b14c18 Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
114 (char == ',' and self.__insertBlankComma)
772103b14c18 Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
115 ):
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
116 self.editor.insert(' ')
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
117 self.editor.setCursorPosition(line, col + 1)
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 # double quote
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 # insert double quote
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
121 elif char == '"' and self.__insertQuote:
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
122 self.editor.insert('"')
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 # quote
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 # insert quote
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
126 elif char == "'" and self.__insertQuote:
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
127 self.editor.insert("'")
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 # new line
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 # indent after line ending with ':'
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
131 elif char == '\n' and self.__autoIndentation:
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
132 txt = self.editor.text(line - 1)
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
133 match = re.search(
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
134 "(?:\||\|-|\|\+|>|>-|>\+|-|:)(\s*)\r?\n",
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
135 # __IGNORE_WARNING_W605__
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
136 txt)
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
137 if match is not None:
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
138 startBlanks = match.start(1)
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
139 endBlanks = match.end(1)
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
140 if startBlanks != -1 and startBlanks != endBlanks:
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
141 # previous line ends with whitespace, e.g. caused by
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
142 # blank insertion above
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
143 self.editor.setSelection(line - 1, startBlanks,
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
144 line - 1, endBlanks)
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
145 self.editor.removeSelectedText()
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
146
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
147 self.editor.indent(line)
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
148 self.editor.setCursorPosition(line, 0)
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
149 self.editor.editorCommand(QsciScintilla.SCI_VCHOME)
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 def __inComment(self, line, col):
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 Private method to check, if the cursor is inside a comment.
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 @param line current line
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 @type int
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 @param col current position within line
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @type int
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 @return flag indicating, if the cursor is inside a comment
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 @rtype bool
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 txt = self.editor.text(line)
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 if col == len(txt):
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 col -= 1
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 while col >= 0:
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 if txt[col] == "#":
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 return True
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 col -= 1
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 return False

eric ide

mercurial