eric6/QScintilla/TypingCompleters/CompleterYaml.py

Sun, 11 Apr 2021 18:45:10 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 11 Apr 2021 18:45:10 +0200
changeset 8222
5994b80b8760
parent 8218
7c09585bd960
child 8228
772103b14c18
permissions
-rw-r--r--

Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).

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 # dash
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 # insert blank
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
98 elif char == '-' and self.__insertBlankDash:
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
99 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
100 self.editor.setCursorPosition(line, col + 1)
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 # colon
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 # 1. skip colon if not last character
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 # 2. insert blank if last character
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 elif char == ':':
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 text = self.editor.text(line)
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 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
108 if self.__colonDetection:
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 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
110 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
111 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
112 self.editor.insert(' ')
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.editor.setCursorPosition(line, col + 1)
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114
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
115 # question mark
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 # insert blank
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 elif char == '?' and self.__insertBlankQuestion:
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
118 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
119 self.editor.setCursorPosition(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
120
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 # comma
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 # insert blank
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
123 elif char == ',' and self.__insertBlankComma:
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
124 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
125 self.editor.setCursorPosition(line, col + 1)
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 # double quote
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 # 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
129 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
130 self.editor.insert('"')
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 # quote
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 # 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
134 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
135 self.editor.insert("'")
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 # new line
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 # 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
139 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
140 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
141 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
142 "(?:\||\|-|\|\+|>|>-|>\+|-|:)(\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
143 # __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
144 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
145 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
146 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
147 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
148 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
149 # 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
150 # 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
151 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
152 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
153 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
154
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
155 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
156 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
157 self.editor.editorCommand(QsciScintilla.SCI_VCHOME)
7281
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 def __inComment(self, line, col):
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 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
162
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 @param line current line
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 @type int
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 @param col current position within line
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 @type int
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 @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
168 @rtype bool
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 """
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 txt = self.editor.text(line)
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 if col == len(txt):
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 col -= 1
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 while col >= 0:
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 if txt[col] == "#":
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 return True
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 col -= 1
8087ef6df2e4 Editor: added a typing aid for YAML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 return False

eric ide

mercurial