eric6/QScintilla/DocstringGenerator/BaseDocstringGenerator.py

Fri, 22 Jan 2021 16:48:43 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 22 Jan 2021 16:48:43 +0100
changeset 7998
cd41c844862f
child 8000
47b15df088e4
permissions
-rw-r--r--

Editor
- added functionality to insert docstring templates via the context menu (cursor placed on first line of function definition) or after entering the docstring start string (e.g. """ for Python)

7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2021 Detlev Offenbach <detlev@die-offenbachs.de>
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a docstring generator base class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import re
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt5.QtCore import Qt
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from PyQt5.QtWidgets import QMenu
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from E5Gui.E5Application import e5App
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import Preferences
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 def getIndentStr(text):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 Function to get the indentation of a text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 @param text text to extract indentation from
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 @type str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @return indentation string
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @rtype str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 indent = ''
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 ret = re.match(r'(\s*)', text)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 if ret:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 indent = ret.group(1)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 return indent
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 class BaseDocstringGenerator(object):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 Class implementing a docstring generator base class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 def __init__(self, editor):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 Constructor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @param editor reference to the editor widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @type Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.editor = editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 def isFunctionStart(self, text):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 Public method to test, if a text is the start of a function or method
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 @param text line of text to be tested
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 @type str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @return flag indicating that the given text starts a function or
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 method definition (always False)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 @rtype bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 return False
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 def hasFunctionDefinition(self, cursorPosition):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 Public method to test, if the cursor is right below a function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 @param cursorPosition current cursor position (line and column)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 @type tuple of (int, int)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 @return flag indicating cursor is right below a function definition
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @rtype bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 return False
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 def isDocstringIntro(self, cursorPosition):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 Public function to test, if the line up to the cursor position might be
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 introducing a docstring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 @param cursorPosition current cursor position (line and column)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 @type tuple of (int, int)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 @return flag indicating a potential start of a docstring
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 @rtype bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 return False
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 def insertDocstring(self, cursorPosition, fromStart=True):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 Public method to insert a docstring for the function at the cursor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 position.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 @param cursorPosition position of the cursor (line and index)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 @type tuple of (int, int)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 @param fromStart flag indicating that the editor text cursor is placed
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 on the line starting the function definition
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 @type bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 # just do nothing in the base class
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 return
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 def getDocstringType(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 Public method to determine the docstring type to be generated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 @return docstring type (one of 'ericdoc', 'numpydoc', 'googledoc',
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 'sphinxdoc')
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 @rtype str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 docstringStyle = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 project = e5App().getObject("Project")
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 filename = self.editor.getFileName()
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 if (
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 filename and
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 project.isOpen() and
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 project.isProjectFile(filename)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 ):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 docstringStyle = project.getDocstringType().lower()
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 if docstringStyle == "":
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 docstringStyle = Preferences.getEditor("DocstringType")
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 return docstringStyle
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 def _generateDocstringList(self, functionInfo, docstringType):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 Protected method to generate type specific docstrings based on the
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 extracted function information.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 @param functionInfo reference to the function info object
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 @type FunctionInfo
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 @param docstringType kind of docstring to be generated
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 @return list of docstring lines
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 @rtype str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 if docstringType == "ericdoc":
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 from .EricdocGenerator import generateEricDoc
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 return generateEricDoc(functionInfo)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 elif docstringType == "numpydoc":
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 from .NumpydocGenerator import generateNumpyDoc
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 return generateNumpyDoc(functionInfo)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 elif docstringType == "googledoc":
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 from .GoogledocGenerator import generateGoogleDoc
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 return generateGoogleDoc(functionInfo, self.editor)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 elif docstringType == "sphinxdoc":
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 from .SphinxdocGenerator import generateSphinxDoc
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 return generateSphinxDoc(functionInfo)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 return []
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 class FunctionInfo(object):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 Class implementing an object to store function information.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 Methods to extract the relevant information need to be implemented in
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 language specific subclasses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 def __init__(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 Constructor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 self.hasInfo = False
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 self.funcionText = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 self.argumentsText = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 self.functionIndent = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 # indentation fo function definition
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 self.argumentsList = []
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 # list of tuples with name, type and value
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 self.returnTypeAnnotated = None
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 # return type extracted from type annotation
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 self.returnValueInBody = []
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 # return values extracted from function body
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 self.raiseList = None
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 # exceptions raised by function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 self.hasYield = False
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 # function is a generator
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 self.functionType = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 # function type with these values
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 # classmethod, staticmethod, qtslot, constructor or empty (i.e.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 # standard)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 self.isAsync = False
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 # function is an asynchronous function, i.e. async def f():
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 self.visibility = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 # function visibility with allowed values:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 # public, protected, private or special (i.e. starting and
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 # ending with '__'
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 class DocstringMenuForEnterOnly(QMenu):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 Class implementing a special menu reacting to the enter/return keys only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 If a keyboard input is not the "enter key", the menu is closed and the
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 input is inserted to the code editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 def __init__(self, editor):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 Constructor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 @param editor reference to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 @type Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 super(DocstringMenuForEnterOnly, self).__init__(editor)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 self.__editor = editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 def keyPressEvent(self, evt):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 Protected method to handle key press events.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 @param evt reference to the key press event object
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 @type QKeyEvent
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 key = evt.key()
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 if key not in (Qt.Key_Enter, Qt.Key_Return):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 self.__editor.keyPressEvent(evt)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 self.close()
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 super(DocstringMenuForEnterOnly, self).keyPressEvent(evt)

eric ide

mercurial