Tue, 10 Dec 2024 15:48:50 +0100
Updated copyright for 2025.
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
216
42ded9008f96
Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
3 | # Copyright (c) 2008 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the eric assistant, an alternative autocompletion and |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | calltips system. |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | |
18
b8ece0b784e8
Fixed a few unicode related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
11 | import re |
b8ece0b784e8
Fixed a few unicode related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
12 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
13 | from PyQt6.QtCore import QObject |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
191
6798a98189da
Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
190
diff
changeset
|
15 | from eric7.EricWidgets.EricApplication import ericApp |
206
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
16 | from eric7.Utilities.ModuleParser import PY_SOURCE, Module |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | from .APIsManager import APIsManager, ApisNameProject |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
20 | try: |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
21 | from eric7.QScintilla.Editor import EditorIconId |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
22 | |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
23 | AttributeID = EditorIconId.Attribute |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
24 | AttributeProtectedID = EditorIconId.AttributeProtected |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
25 | AttributePrivateID = EditorIconId.AttributePrivate |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
26 | FromDocumentID = EditorIconId.FromDocument |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
27 | MethodID = EditorIconId.Method |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
28 | MethodProtectedID = EditorIconId.MethodProtected |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
29 | MethodPrivateID = EditorIconId.MethodPrivate |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
30 | except ImportError: |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
31 | # backward compatibility for eric < 24.2 |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
32 | from eric7.QScintilla.Editor import Editor |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
33 | |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
34 | AttributeID = Editor.AttributeID |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
35 | AttributeProtectedID = Editor.AttributeProtectedID |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
36 | AttributePrivateID = Editor.AttributePrivateID |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
37 | FromDocumentID = Editor.FromDocumentID |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
38 | MethodID = Editor.MethodID |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
39 | MethodProtectedID = Editor.MethodProtectedID |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
40 | MethodPrivateID = Editor.MethodPrivateID |
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
41 | |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
42 | AcsAPIs = 0x0001 |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | AcsDocument = 0x0002 |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
44 | AcsProject = 0x0004 |
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
45 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | class Assistant(QObject): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | Class implementing the autocompletion and calltips system. |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | """ |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
51 | |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
52 | def __init__(self, plugin, parent=None): |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | Constructor |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
55 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | @param plugin reference to the plugin object |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
57 | @type AssistantEricPlugin |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
58 | @param parent parent |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
59 | @type QObject |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | QObject.__init__(self, parent) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
62 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | self.__plugin = plugin |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | self.__ui = parent |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
65 | self.__project = ericApp().getObject("Project") |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
66 | self.__viewmanager = ericApp().getObject("ViewManager") |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
67 | self.__pluginManager = ericApp().getObject("PluginManager") |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
68 | |
69
9082f14126d9
Activated status messages for processing API files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
69 | self.__apisManager = APIsManager(self.__ui, self) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
70 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | self.__editors = [] |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | self.__lastContext = None |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | self.__lastFullContext = None |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
74 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | def activate(self): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | Public method to perform actions upon activation. |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | """ |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
79 | self.__pluginManager.shutdown.connect(self.__shutdown) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
80 | |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
81 | self.__ui.preferencesChanged.connect(self.__preferencesChanged) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
82 | |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
83 | self.__viewmanager.editorOpenedEd.connect(self.__editorOpened) |
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
84 | self.__viewmanager.editorClosedEd.connect(self.__editorClosed) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
85 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | # preload the project APIs object |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | self.__apisManager.getAPIs(ApisNameProject) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
88 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | for editor in self.__viewmanager.getOpenEditors(): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | self.__editorOpened(editor) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
91 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | def deactivate(self): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | Public method to perform actions upon deactivation. |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | """ |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
96 | self.__pluginManager.shutdown.disconnect(self.__shutdown) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
97 | |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
98 | self.__ui.preferencesChanged.disconnect(self.__preferencesChanged) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
99 | |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
100 | self.__viewmanager.editorOpenedEd.disconnect(self.__editorOpened) |
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
101 | self.__viewmanager.editorClosedEd.disconnect(self.__editorClosed) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
102 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | self.__shutdown() |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
104 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | def __shutdown(self): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | Private slot to handle the shutdown signal. |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | for editor in self.__editors[:]: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | self.__editorClosed(editor) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
111 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | self.__apisManager.deactivate() |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
113 | |
206
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
114 | def setEnabled( |
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
115 | self, |
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
116 | key, # noqa: U100 |
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
117 | enabled, # noqa: U100 |
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
118 | ): |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | Public method to enable or disable a feature. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
121 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
122 | @param key feature to set |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
123 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
124 | @param enabled flag indicating the status |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
125 | @type bool |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | for editor in self.__editors[:]: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | self.__editorClosed(editor) |
174 | 129 | for editor in self.__viewmanager.getOpenEditors(): |
130 | self.__editorOpened(editor) | |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
131 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | def __editorOpened(self, editor): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | Private slot called, when a new editor was opened. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
135 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
136 | @param editor reference to the new editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
137 | @type Editor |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | if self.__plugin.getPreferences("AutoCompletionEnabled"): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | self.__setAutoCompletionHook(editor) |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | if self.__plugin.getPreferences("CalltipsEnabled"): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | self.__setCalltipsHook(editor) |
208
5c77d52e97cd
Fixed a bug connecting/disconnecting the "editorSaved" signal of an editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
206
diff
changeset
|
143 | if (api := self.__apisManager.getAPIs(ApisNameProject)) is not None: |
5c77d52e97cd
Fixed a bug connecting/disconnecting the "editorSaved" signal of an editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
206
diff
changeset
|
144 | editor.editorSaved.connect(api.editorSaved) |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | self.__editors.append(editor) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
146 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | # preload the api to give the manager a chance to prepare the database |
177
25cb41783971
- applied some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
174
diff
changeset
|
148 | language = editor.getApiLanguage() |
119
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
149 | if language: |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
150 | projectType = self.__getProjectType(editor) |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
151 | self.__apisManager.getAPIs(language, projectType=projectType) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
152 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | def __editorClosed(self, editor): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | Private slot called, when an editor was closed. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
156 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
157 | @param editor reference to the editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
158 | @type Editor |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | if editor in self.__editors: |
208
5c77d52e97cd
Fixed a bug connecting/disconnecting the "editorSaved" signal of an editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
206
diff
changeset
|
161 | if (api := self.__apisManager.getAPIs(ApisNameProject)) is not None: |
5c77d52e97cd
Fixed a bug connecting/disconnecting the "editorSaved" signal of an editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
206
diff
changeset
|
162 | editor.editorSaved.disconnect(api.editorSaved) |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | self.__editors.remove(editor) |
140
a0ea7418d433
Removed bckward compatibility for eric6 before 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
136
diff
changeset
|
164 | if editor.getCompletionListHook("Assistant"): |
a0ea7418d433
Removed bckward compatibility for eric6 before 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
136
diff
changeset
|
165 | self.__unsetAutoCompletionHook(editor) |
a0ea7418d433
Removed bckward compatibility for eric6 before 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
136
diff
changeset
|
166 | if editor.getCallTipHook("Assistant"): |
a0ea7418d433
Removed bckward compatibility for eric6 before 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
136
diff
changeset
|
167 | self.__unsetCalltipsHook(editor) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
168 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | def __preferencesChanged(self): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | Private method to handle a change of the global configuration. |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | self.__apisManager.reloadAPIs() |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
174 | |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
175 | def __getProjectType(self, editor): |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
176 | """ |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
177 | Private method to determine the project type to be used. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
178 | |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
179 | @param editor reference to the editor to check |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
180 | @type Editor |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
181 | @return project type |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
182 | @rtype str |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
183 | """ |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
184 | filename = editor.getFileName() |
177
25cb41783971
- applied some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
174
diff
changeset
|
185 | projectType = ( |
25cb41783971
- applied some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
174
diff
changeset
|
186 | self.__project.getProjectType() |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
187 | if ( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
188 | self.__project.isOpen() |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
189 | and filename |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
190 | and self.__project.isProjectFile(filename) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
191 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
192 | else "" |
177
25cb41783971
- applied some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
174
diff
changeset
|
193 | ) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
194 | |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
195 | return projectType |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
196 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | ################################# |
119
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
198 | ## auto-completion methods below |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | ################################# |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
200 | |
136
5cfe53b474a9
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
135
diff
changeset
|
201 | def __recordSelectedContext(self, userListId, txt): |
119
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
202 | """ |
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
203 | Private slot to handle the selection from the completion list to |
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
204 | record the selected completion context. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
205 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
206 | @param userListId the ID of the user list (should be 1) |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
207 | @type int |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
208 | @param txt the selected text |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
209 | @type str |
119
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
210 | """ |
191
6798a98189da
Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
190
diff
changeset
|
211 | from eric7.QScintilla.Editor import EditorAutoCompletionListID |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
212 | |
136
5cfe53b474a9
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
135
diff
changeset
|
213 | if userListId == EditorAutoCompletionListID: |
119
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
214 | lst = txt.split() |
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
215 | if len(lst) > 1: |
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
216 | self.__lastFullContext = lst[1][1:].split(")")[0] |
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
217 | else: |
263a95431e41
Adapted to the extended Editor API as of eric 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
118
diff
changeset
|
218 | self.__lastFullContext = None |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
219 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | def __setAutoCompletionHook(self, editor): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | Private method to set the autocompletion hook. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
223 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
224 | @param editor reference to the editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
225 | @type Editor |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | """ |
140
a0ea7418d433
Removed bckward compatibility for eric6 before 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
136
diff
changeset
|
227 | editor.userListActivated.connect(self.__recordSelectedContext) |
a0ea7418d433
Removed bckward compatibility for eric6 before 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
136
diff
changeset
|
228 | editor.addCompletionListHook("Assistant", self.getCompletionsList) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
229 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | def __unsetAutoCompletionHook(self, editor): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | Private method to unset the autocompletion hook. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
233 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
234 | @param editor reference to the editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
235 | @type Editor |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | """ |
140
a0ea7418d433
Removed bckward compatibility for eric6 before 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
136
diff
changeset
|
237 | editor.userListActivated.disconnect(self.__recordSelectedContext) |
a0ea7418d433
Removed bckward compatibility for eric6 before 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
136
diff
changeset
|
238 | editor.removeCompletionListHook("Assistant") |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
239 | |
116
a109c6b8ac77
Fixed a bug and made the method to get a list of completions publicly available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
107
diff
changeset
|
240 | def getCompletionsList(self, editor, context): |
a109c6b8ac77
Fixed a bug and made the method to get a list of completions publicly available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
107
diff
changeset
|
241 | """ |
a109c6b8ac77
Fixed a bug and made the method to get a list of completions publicly available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
107
diff
changeset
|
242 | Public method to get a list of possible completions. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
243 | |
116
a109c6b8ac77
Fixed a bug and made the method to get a list of completions publicly available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
107
diff
changeset
|
244 | @param editor reference to the editor object, that called this method |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
245 | @type Editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
246 | @param context flag indicating to autocomplete a context |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
247 | @type bool |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
248 | @return list of possible completions |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
249 | @rtype list of str |
116
a109c6b8ac77
Fixed a bug and made the method to get a list of completions publicly available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
107
diff
changeset
|
250 | """ |
177
25cb41783971
- applied some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
174
diff
changeset
|
251 | language = editor.getApiLanguage() |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
252 | completeFromDocumentOnly = False |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
253 | if language in ["", "Guessed"] or language.startswith("Pygments|"): |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
254 | if self.__plugin.getPreferences("AutoCompletionSource") & AcsDocument: |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
255 | completeFromDocumentOnly = True |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
256 | else: |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
257 | return [] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
258 | |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
259 | projectType = self.__getProjectType(editor) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
260 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | line, col = editor.getCursorPosition() |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | sep = "" |
132
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
263 | if language and context: |
206
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
264 | wc = re.sub(r"\w", "", editor.wordCharacters()) |
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
265 | pat = re.compile(r"\w{0}".format(re.escape(wc))) |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | text = editor.text(line) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
267 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | beg = text[:col] |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | for wsep in editor.getLexer().autoCompletionWordSeparators(): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | if beg.endswith(wsep): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | sep = wsep |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | break |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
273 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | depth = 0 |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
275 | while col > 0 and not pat.match(text[col - 1]): |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | ch = text[col - 1] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
277 | if ch == ")": |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | depth = 1 |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
279 | |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
280 | # ignore everything back to the start of the |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | # corresponding parenthesis |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | col -= 1 |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | while col > 0: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | ch = text[col - 1] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
285 | if ch == ")": |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | depth += 1 |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
287 | elif ch == "(": |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | depth -= 1 |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | if depth == 0: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | break |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | col -= 1 |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
292 | elif ch == "(": |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | break |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | col -= 1 |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
295 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | word = editor.getWordLeft(line, col) |
41
333735b1a460
Corrected the context completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
39
diff
changeset
|
297 | if context and not sep: |
333735b1a460
Corrected the context completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
39
diff
changeset
|
298 | # no separator was found -> no context completion |
333735b1a460
Corrected the context completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
39
diff
changeset
|
299 | context = False |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | if context: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | self.__lastContext = word |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | else: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | self.__lastContext = None |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
304 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
305 | prefix = "" |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
306 | mod = None |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
307 | beg = beg[: col + 1] if context else editor.text(line)[:col] |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
308 | col = len(beg) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
309 | wseps = editor.getLexer().autoCompletionWordSeparators() if language else [] |
132
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
310 | if wseps: |
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
311 | wseps.append(" ") |
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
312 | if col > 0 and beg[col - 1] in wseps: |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
313 | col -= 1 |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
314 | else: |
132
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
315 | while col > 0 and beg[col - 1] not in wseps: |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
316 | col -= 1 |
51
b70595b49b3e
Fixed a bug causing a traceback.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
50
diff
changeset
|
317 | if col > 0 and beg[col - 1] != " ": |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
318 | col -= 1 |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
319 | prefix = editor.getWordLeft(line, col) |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
320 | if editor.isPyFile(): |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
321 | src = editor.text() |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
322 | fn = editor.getFileName() |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
323 | if fn is None: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
324 | fn = "" |
206
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
325 | mod = Module("", fn, PY_SOURCE) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
326 | mod.scan(src) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
327 | |
42
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
328 | importCompletion = False |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
329 | if editor.isPyFile(): |
42
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
330 | # check, if we are completing a from import statement |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
331 | maxLines = 10 |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
332 | text = editor.text(line).strip() |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
333 | while maxLines and line > 0 and not text.startswith("from"): |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
334 | line -= 1 |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
335 | textm1 = editor.text(line).strip() |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
336 | if not textm1.endswith("\\"): |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
337 | break |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
338 | text = textm1[:-1] + text |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
339 | maxLines -= 1 |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
340 | if text.startswith("from"): |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
341 | tokens = text.split() |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
342 | if len(tokens) >= 3 and tokens[2] == "import": |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
343 | importCompletion = True |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
344 | prefix = tokens[1] |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
345 | col = len(prefix) - 1 |
132
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
346 | wseps = editor.getLexer().autoCompletionWordSeparators() |
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
347 | while col >= 0 and prefix[col] not in wseps: |
42
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
348 | col -= 1 |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
349 | if col >= 0: |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
350 | prefix = prefix[col + 1 :] |
42
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
351 | if word == tokens[2]: |
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
352 | word = "" |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
353 | |
42
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
354 | if word or importCompletion: |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
355 | completionsList = self.__getCompletions( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
356 | word, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
357 | context, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
358 | prefix, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
359 | language, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
360 | projectType, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
361 | mod, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
362 | editor, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
363 | importCompletion, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
364 | completeFromDocumentOnly, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
365 | sep, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
366 | ) |
46
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
367 | if len(completionsList) == 0 and prefix: |
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
368 | # searching with prefix didn't return anything, try without |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
369 | completionsList = self.__getCompletions( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
370 | word, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
371 | context, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
372 | "", |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
373 | language, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
374 | projectType, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
375 | mod, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
376 | editor, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
377 | importCompletion, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
378 | completeFromDocumentOnly, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
379 | sep, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
380 | ) |
116
a109c6b8ac77
Fixed a bug and made the method to get a list of completions publicly available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
107
diff
changeset
|
381 | return completionsList |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
382 | |
116
a109c6b8ac77
Fixed a bug and made the method to get a list of completions publicly available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
107
diff
changeset
|
383 | return [] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
384 | |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
385 | def __getCompletions( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
386 | self, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
387 | word, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
388 | context, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
389 | prefix, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
390 | language, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
391 | projectType, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
392 | module, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
393 | editor, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
394 | importCompletion, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
395 | documentOnly, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
396 | sep, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
397 | ): |
46
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
398 | """ |
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
399 | Private method to get the list of possible completions. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
400 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
401 | @param word word (or wordpart) to complete |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
402 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
403 | @param context flag indicating to autocomplete a context |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
404 | @type bool |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
405 | @param prefix prefix of the word to be completed |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
406 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
407 | @param language programming language of the source |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
408 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
409 | @param projectType type of the project |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
410 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
411 | @param module reference to the scanned module info |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
412 | @type Module |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
413 | @param editor reference to the editor object |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
414 | @type Editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
415 | @param importCompletion flag indicating an import completion |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
416 | @type bool |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
417 | @param documentOnly flag indicating to complete from the document only |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
418 | @type bool |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
419 | @param sep separator string |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
420 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
421 | @return list of possible completions |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
422 | @rtype list of str |
46
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
423 | """ |
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
424 | apiCompletionsList = [] |
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
425 | docCompletionsList = [] |
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
426 | projectCompletionList = [] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
427 | |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
428 | if not documentOnly: |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
429 | if self.__plugin.getPreferences("AutoCompletionSource") & AcsAPIs: |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
430 | api = self.__apisManager.getAPIs(language, projectType=projectType) |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
431 | apiCompletionsList = self.__getApiCompletions( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
432 | api, word, context, prefix, module, editor |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
433 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
434 | |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
435 | if self.__plugin.getPreferences("AutoCompletionSource") & AcsProject: |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
436 | api = self.__apisManager.getAPIs(ApisNameProject) |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
437 | projectCompletionList = self.__getApiCompletions( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
438 | api, word, context, prefix, module, editor |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
439 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
440 | |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
441 | if ( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
442 | self.__plugin.getPreferences("AutoCompletionSource") & AcsDocument |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
443 | and not importCompletion |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
444 | ): |
46
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
445 | docCompletionsList = self.__getDocumentCompletions( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
446 | editor, word, context, sep, prefix, module |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
447 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
448 | |
46
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
449 | completionsList = list( |
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
450 | set(apiCompletionsList) |
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
451 | .union(set(docCompletionsList)) |
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
452 | .union(set(projectCompletionList)) |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
453 | ) |
46
5e928f308f55
Refined the autocompletion function even further.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
454 | return completionsList |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
455 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
456 | def __getApiCompletions(self, api, word, context, prefix, module, editor): |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | Private method to determine a list of completions from an API object. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
459 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
460 | @param api reference to the API object to be used |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
461 | @type APIsManager.DbAPIs |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
462 | @param word word (or wordpart) to complete |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
463 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
464 | @param context flag indicating to autocomplete a context |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
465 | @type bool |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
466 | @param prefix prefix of the word to be completed |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
467 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
468 | @param module reference to the scanned module info |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
469 | @type Module |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
470 | @param editor reference to the editor object |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
471 | @type Editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
472 | @return list of possible completions |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
473 | @rtype list of str |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
474 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
475 | completionsList = [] |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
476 | if api is not None: |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
477 | if prefix and module and prefix == "self": |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
478 | line, col = editor.getCursorPosition() |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
479 | for cl in module.classes.values(): |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
480 | if line >= cl.lineno and ( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
481 | cl.endlineno == -1 or line <= cl.endlineno |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
482 | ): |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
483 | completions = [] |
136
5cfe53b474a9
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
135
diff
changeset
|
484 | for superClass in cl.super: |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
485 | if prefix == word: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
486 | completions.extend( |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
487 | api.getCompletions( |
136
5cfe53b474a9
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
135
diff
changeset
|
488 | context=superClass, |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
489 | followHierarchy=self.__plugin.getPreferences( |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
490 | "AutoCompletionFollowHierarchy" |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
491 | ), |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
492 | ) |
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
493 | ) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
494 | else: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
495 | completions.extend( |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
496 | api.getCompletions( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
497 | start=word, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
498 | context=superClass, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
499 | followHierarchy=self.__plugin.getPreferences( |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
500 | "AutoCompletionFollowHierarchy" |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
501 | ), |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
502 | ) |
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
503 | ) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
504 | for completion in completions: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
505 | if not completion["context"]: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
506 | entry = completion["completion"] |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
507 | else: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
508 | entry = "{0} ({1})".format( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
509 | completion["completion"], completion["context"] |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
510 | ) |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
511 | if entry in completionsList: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
512 | completionsList.remove(entry) |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
513 | if completion["pictureId"]: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
514 | entry += "?{0}".format(completion["pictureId"]) |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
515 | else: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
516 | cont = False |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
517 | regexp = re.compile(re.escape(entry) + r"\?\d{,2}") |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
518 | for comp in completionsList: |
182
0df33a07a6c8
Assistant: fixed a type causing an exception.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
180
diff
changeset
|
519 | if regexp.fullmatch(comp): |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
520 | cont = True |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
521 | break |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
522 | if cont: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
523 | continue |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
524 | if entry not in completionsList: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
525 | completionsList.append(entry) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
526 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
527 | break |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
528 | elif context: |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
529 | completions = api.getCompletions(context=word) |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | for completion in completions: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | entry = completion["completion"] |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | if completion["pictureId"]: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | entry += "?{0}".format(completion["pictureId"]) |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | if entry not in completionsList: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | completionsList.append(entry) |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
536 | else: |
42
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
537 | if prefix: |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
538 | completions = api.getCompletions(start=word, context=prefix) |
48
baeee0cf39eb
Changed code such, that prefixed completions are retried without a prefix, if the retrieval with one didn't return anything (i.e. that is the old behavior).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
539 | if not prefix or not completions: |
baeee0cf39eb
Changed code such, that prefixed completions are retried without a prefix, if the retrieval with one didn't return anything (i.e. that is the old behavior).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
46
diff
changeset
|
540 | # if no completions were returned try without prefix |
42
2489ae0286ef
Added Python from import completion function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
41
diff
changeset
|
541 | completions = api.getCompletions(start=word) |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | for completion in completions: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | if not completion["context"]: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
544 | entry = completion["completion"] |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
545 | else: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | entry = "{0} ({1})".format( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
547 | completion["completion"], completion["context"] |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
548 | ) |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
549 | if entry in completionsList: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
550 | completionsList.remove(entry) |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
551 | if completion["pictureId"]: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
552 | entry += "?{0}".format(completion["pictureId"]) |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | else: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
554 | cont = False |
206
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
555 | regexp = re.compile(re.escape(entry) + r"\?\d{,2}") |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
556 | for comp in completionsList: |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
557 | if regexp.fullmatch(comp): |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
558 | cont = True |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
559 | break |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
560 | if cont: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
561 | continue |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | if entry not in completionsList: |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | completionsList.append(entry) |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | return completionsList |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
565 | |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
566 | def __getDocumentCompletions( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
567 | self, editor, word, context, sep, prefix, module, doHierarchy=False |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
568 | ): |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
569 | """ |
35
6b706b02c2dd
Small enhancement to the autocompletions change in order to show context for document derived completions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
32
diff
changeset
|
570 | Private method to determine autocompletion proposals from the document. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
571 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
572 | @param editor reference to the editor object |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
573 | @type Editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
574 | @param word string to be completed |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
575 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
576 | @param context flag indicating to autocomplete a context |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
577 | @type bool |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
578 | @param sep separator string |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
579 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
580 | @param prefix prefix of the word to be completed |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
581 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
582 | @param module reference to the scanned module info |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
583 | @type Module |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
584 | @param doHierarchy flag indicating a hierarchical search |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
585 | @type bool |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
586 | @return list of possible completions |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
587 | @rtype list of str |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
588 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
589 | completionsList = [] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
590 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
591 | prefixFound = False |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
592 | if prefix and module: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
593 | line, col = editor.getCursorPosition() |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
594 | if prefix in ["cls", "self"]: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
595 | prefixFound = True |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
596 | for cl in module.classes.values(): |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
597 | if line >= cl.lineno and ( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
598 | cl.endlineno == -1 or line <= cl.endlineno |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
599 | ): |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
600 | comps = [] |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
601 | for method in cl.methods.values(): |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
602 | if method.name == "__init__": |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
603 | continue |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
604 | # determine icon type |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
605 | if method.isPrivate(): |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
606 | iconID = MethodPrivateID |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
607 | elif method.isProtected(): |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
608 | iconID = MethodProtectedID |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
609 | else: |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
610 | iconID = MethodID |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
611 | if ( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
612 | prefix == "cls" and method.modifier == method.Class |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
613 | ) or prefix == "self": |
35
6b706b02c2dd
Small enhancement to the autocompletions change in order to show context for document derived completions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
32
diff
changeset
|
614 | comps.append((method.name, cl.name, iconID)) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
615 | if prefix != "cls": |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
616 | for attribute in cl.attributes.values(): |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
617 | # determine icon type |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
618 | if attribute.isPrivate(): |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
619 | iconID = AttributePrivateID |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
620 | elif attribute.isProtected(): |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
621 | iconID = AttributeProtectedID |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
622 | else: |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
623 | iconID = AttributeID |
35
6b706b02c2dd
Small enhancement to the autocompletions change in order to show context for document derived completions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
32
diff
changeset
|
624 | comps.append((attribute.name, cl.name, iconID)) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
625 | for attribute in cl.globals.values(): |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
626 | # determine icon type |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
627 | if attribute.isPrivate(): |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
628 | iconID = AttributePrivateID |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
629 | elif attribute.isProtected(): |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
630 | iconID = AttributeProtectedID |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
631 | else: |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
632 | iconID = AttributeID |
35
6b706b02c2dd
Small enhancement to the autocompletions change in order to show context for document derived completions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
32
diff
changeset
|
633 | comps.append((attribute.name, cl.name, iconID)) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
634 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
635 | if word != prefix: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
636 | completionsList.extend( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
637 | [ |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
638 | "{0} ({1})?{2}".format(c[0], c[1], c[2]) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
639 | for c in comps |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
640 | if c[0].startswith(word) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
641 | ] |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
642 | ) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
643 | else: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
644 | completionsList.extend( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
645 | [ |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
646 | "{0} ({1})?{2}".format(c[0], c[1], c[2]) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
647 | for c in comps |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
648 | ] |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
649 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
650 | |
39
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
651 | for sup in cl.super: |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
652 | if sup in module.classes: |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
653 | if word == prefix: |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
654 | nword = sup |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
655 | else: |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
656 | nword = word |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
657 | completionsList.extend( |
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
658 | self.__getDocumentCompletions( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
659 | editor, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
660 | nword, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
661 | context, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
662 | sep, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
663 | sup, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
664 | module, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
665 | doHierarchy=True, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
666 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
667 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
668 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
669 | break |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
670 | else: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
671 | # possibly completing a named class attribute or method |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
672 | if prefix in module.classes: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
673 | prefixFound = True |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
674 | cl = module.classes[prefix] |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
675 | comps = [] |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
676 | for method in cl.methods.values(): |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
677 | if method.name == "__init__": |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
678 | continue |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
679 | if doHierarchy or method.modifier in [ |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
680 | method.Class, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
681 | method.Static, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
682 | ]: |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
683 | # determine icon type |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
684 | if method.isPrivate(): |
39
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
685 | if doHierarchy: |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
686 | continue |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
687 | iconID = MethodPrivateID |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
688 | elif method.isProtected(): |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
689 | iconID = MethodProtectedID |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
690 | else: |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
691 | iconID = MethodID |
35
6b706b02c2dd
Small enhancement to the autocompletions change in order to show context for document derived completions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
32
diff
changeset
|
692 | comps.append((method.name, cl.name, iconID)) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
693 | for attribute in cl.globals.values(): |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
694 | # determine icon type |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
695 | if attribute.isPrivate(): |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
696 | iconID = AttributePrivateID |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
697 | elif attribute.isProtected(): |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
698 | iconID = AttributeProtectedID |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
699 | else: |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
700 | iconID = AttributeID |
35
6b706b02c2dd
Small enhancement to the autocompletions change in order to show context for document derived completions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
32
diff
changeset
|
701 | comps.append((attribute.name, cl.name, iconID)) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
702 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
703 | if word != prefix: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
704 | completionsList.extend( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
705 | [ |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
706 | "{0} ({1})?{2}".format(c[0], c[1], c[2]) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
707 | for c in comps |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
708 | if c[0].startswith(word) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
709 | ] |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
710 | ) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
711 | else: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
712 | completionsList.extend( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
713 | ["{0} ({1})?{2}".format(c[0], c[1], c[2]) for c in comps] |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
714 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
715 | |
39
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
716 | for sup in cl.super: |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
717 | if sup in module.classes: |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
718 | if word == prefix: |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
719 | nword = sup |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
720 | else: |
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
721 | nword = word |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
722 | completionsList.extend( |
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
723 | self.__getDocumentCompletions( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
724 | editor, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
725 | nword, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
726 | context, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
727 | sep, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
728 | sup, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
729 | module, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
730 | doHierarchy=True, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
731 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
732 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
733 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
734 | if not prefixFound: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
735 | currentPos = editor.currentPosition() |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
736 | if context: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
737 | word += sep |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
738 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
739 | if editor.isUtf8(): |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
740 | sword = word.encode("utf-8") |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
741 | else: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
742 | sword = word |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
743 | res = editor.findFirstTarget( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
744 | sword, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
745 | False, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
746 | editor.autoCompletionCaseSensitivity(), |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
747 | False, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
748 | begline=0, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
749 | begindex=0, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
750 | ws_=True, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
751 | ) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
752 | while res: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
753 | start, length = editor.getFoundTarget() |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
754 | pos = start + length |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
755 | if pos != currentPos: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
756 | if context: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
757 | completion = "" |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
758 | else: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
759 | completion = word |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
760 | line, index = editor.lineIndexFromPosition(pos) |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
761 | curWord = editor.getWord(line, index, useWordChars=False) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
762 | completion += curWord[len(completion) :] |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
763 | if ( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
764 | completion |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
765 | and completion not in completionsList |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
766 | and completion != word |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
767 | ): |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
768 | completionsList.append( |
212
24d6bae09db6
Adjusted some code for eric7 24.2 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
210
diff
changeset
|
769 | "{0}?{1}".format(completion, FromDocumentID) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
770 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
771 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
772 | res = editor.findNextTarget() |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
773 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
774 | completionsList.sort() |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
775 | return completionsList |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
776 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
777 | ########################### |
30
8f4d794d8ee0
Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
25
diff
changeset
|
778 | ## calltips methods below |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
779 | ########################### |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
780 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
781 | def __setCalltipsHook(self, editor): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
782 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
783 | Private method to set the calltip hook. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
784 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
785 | @param editor reference to the editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
786 | @type Editor |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
787 | """ |
140
a0ea7418d433
Removed bckward compatibility for eric6 before 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
136
diff
changeset
|
788 | editor.addCallTipHook("Assistant", self.calltips) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
789 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
790 | def __unsetCalltipsHook(self, editor): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
791 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
792 | Private method to unset the calltip hook. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
793 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
794 | @param editor reference to the editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
795 | @type Editor |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
796 | """ |
140
a0ea7418d433
Removed bckward compatibility for eric6 before 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
136
diff
changeset
|
797 | editor.removeCallTipHook("Assistant") |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
798 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
799 | def calltips(self, editor, pos, commas): |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
800 | """ |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
801 | Public method to return a list of calltips. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
802 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
803 | @param editor reference to the editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
804 | @type Editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
805 | @param pos position in the text for the calltip |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
806 | @type int |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
807 | @param commas minimum number of commas contained in the calltip |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
808 | @type int |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
809 | @return list of possible calltips |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
810 | @rtype list of str |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
811 | """ |
177
25cb41783971
- applied some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
174
diff
changeset
|
812 | language = editor.getApiLanguage() |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
813 | completeFromDocumentOnly = False |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
814 | if language in ["", "Guessed"] or language.startswith("Pygments|"): |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
815 | if self.__plugin.getPreferences("AutoCompletionSource") & AcsDocument: |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
816 | completeFromDocumentOnly = True |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
817 | else: |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
818 | return [] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
819 | |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
820 | projectType = self.__getProjectType(editor) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
821 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
822 | line, col = editor.lineIndexFromPosition(pos) |
206
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
823 | wc = re.sub(r"\w", "", editor.wordCharacters()) |
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
824 | pat = re.compile(r"\w{0}".format(re.escape(wc))) |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
825 | text = editor.text(line) |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
826 | while col > 0 and not pat.match(text[col - 1]): |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
827 | col -= 1 |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
828 | word = editor.getWordLeft(line, col) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
829 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
830 | prefix = "" |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
831 | mod = None |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
832 | beg = editor.text(line)[:col] |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
833 | col = len(beg) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
834 | wseps = editor.getLexer().autoCompletionWordSeparators() if language else [] |
132
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
835 | if wseps: |
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
836 | if col > 0 and beg[col - 1] in wseps: |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
837 | col -= 1 |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
838 | else: |
132
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
839 | while col > 0 and beg[col - 1] not in wseps + [" ", "\t"]: |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
840 | col -= 1 |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
841 | if col >= 0: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
842 | col -= 1 |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
843 | prefix = editor.getWordLeft(line, col) |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
844 | if editor.isPyFile(): |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
845 | src = editor.text() |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
846 | fn = editor.getFileName() |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
847 | if fn is None: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
848 | fn = "" |
206
0e83bc0cc7fd
Corrected some code style and formatting issues and prepared the code for Python 3.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
201
diff
changeset
|
849 | mod = Module("", fn, PY_SOURCE) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
850 | mod.scan(src) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
851 | |
2
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
852 | apiCalltips = [] |
89cbc07f4bf0
First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
853 | projectCalltips = [] |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
854 | documentCalltips = [] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
855 | |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
856 | if not completeFromDocumentOnly: |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
857 | if self.__plugin.getPreferences("AutoCompletionSource") & AcsAPIs: |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
858 | api = self.__apisManager.getAPIs(language, projectType=projectType) |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
859 | if api is not None: |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
860 | apiCalltips = self.__getApiCalltips( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
861 | api, word, commas, prefix, mod, editor |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
862 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
863 | |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
864 | if self.__plugin.getPreferences("AutoCompletionSource") & AcsProject: |
131
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
865 | api = self.__apisManager.getAPIs(ApisNameProject) |
7d868e8e1cfb
Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
122
diff
changeset
|
866 | projectCalltips = self.__getApiCalltips( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
867 | api, word, commas, prefix, mod, editor |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
868 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
869 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
870 | if self.__plugin.getPreferences("AutoCompletionSource") & AcsDocument: |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
871 | documentCalltips = self.__getDocumentCalltips(word, prefix, mod, editor) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
872 | |
189
c0d638327085
Fixed a code style issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
186
diff
changeset
|
873 | return sorted( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
874 | set(apiCalltips).union(set(projectCalltips)).union(set(documentCalltips)) |
189
c0d638327085
Fixed a code style issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
186
diff
changeset
|
875 | ) |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
876 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
877 | def __getApiCalltips(self, api, word, commas, prefix, module, editor): |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
878 | """ |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
879 | Private method to determine calltips from APIs. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
880 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
881 | @param api reference to the API object to be used |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
882 | @type APIsManager.DbAPIs |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
883 | @param word function to get calltips for |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
884 | @type str |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
885 | @param commas minimum number of commas contained in the calltip |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
886 | @type int |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
887 | @param prefix prefix of the word to be completed |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
888 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
889 | @param module reference to the scanned module info |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
890 | @type Module |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
891 | @param editor reference to the editor object |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
892 | @type Editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
893 | @return list of calltips |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
894 | @rtype list of str |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
895 | """ |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
896 | calltips = [] |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
897 | if prefix and module and prefix == "self": |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
898 | line, col = editor.getCursorPosition() |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
899 | for cl in module.classes.values(): |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
900 | if line >= cl.lineno and (cl.endlineno == -1 or line <= cl.endlineno): |
136
5cfe53b474a9
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
135
diff
changeset
|
901 | for superClass in cl.super: |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
902 | calltips.extend( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
903 | api.getCalltips( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
904 | word, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
905 | commas, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
906 | superClass, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
907 | None, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
908 | self.__plugin.getPreferences("CallTipsContextShown"), |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
909 | followHierarchy=self.__plugin.getPreferences( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
910 | "CallTipsFollowHierarchy" |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
911 | ), |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
912 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
913 | ) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
914 | break |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
915 | else: |
84
67197c1f11eb
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
76
diff
changeset
|
916 | calltips = api.getCalltips( |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
917 | word, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
918 | commas, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
919 | self.__lastContext, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
920 | self.__lastFullContext, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
921 | self.__plugin.getPreferences("CallTipsContextShown"), |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
922 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
923 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
924 | return calltips |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
925 | |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
926 | def __getDocumentCalltips(self, word, prefix, module, editor, doHierarchy=False): |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
927 | """ |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
928 | Private method to determine calltips from the document. |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
929 | |
180
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
930 | @param word function to get calltips for |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
931 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
932 | @param prefix prefix of the word to be completed |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
933 | @type str |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
934 | @param module reference to the scanned module info |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
935 | @type Module |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
936 | @param editor reference to the editor object |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
937 | @type Editor |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
938 | @param doHierarchy flag indicating a hierarchical search |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
939 | @type bool |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
940 | @return list of calltips |
89ff060ef0d9
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
177
diff
changeset
|
941 | @rtype list of str |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
942 | """ |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
943 | calltips = [] |
132
eb12cd27384f
Fixed an issue dealing with source documents without a recodnized lexer language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
131
diff
changeset
|
944 | if module and bool(editor.getLexer()): |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
945 | if prefix: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
946 | # prefix can be 'self', 'cls' or a class name |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
947 | sep = editor.getLexer().autoCompletionWordSeparators()[0] |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
948 | if prefix in ["self", "cls"]: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
949 | line, col = editor.getCursorPosition() |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
950 | for cl in module.classes.values(): |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
951 | if line >= cl.lineno and ( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
952 | cl.endlineno == -1 or line <= cl.endlineno |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
953 | ): |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
954 | if word in cl.methods: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
955 | method = cl.methods[word] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
956 | if prefix == "self" or ( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
957 | prefix == "cls" and method.modifier == method.Class |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
958 | ): |
98
9c331ebb4b8c
Removed some code dealing with early eric5 versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
959 | calltips.append( |
9c331ebb4b8c
Removed some code dealing with early eric5 versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
960 | "{0}{1}{2}({3})".format( |
9c331ebb4b8c
Removed some code dealing with early eric5 versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
961 | cl.name, |
9c331ebb4b8c
Removed some code dealing with early eric5 versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
962 | sep, |
9c331ebb4b8c
Removed some code dealing with early eric5 versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
963 | word, |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
964 | ", ".join(method.parameters[1:]), |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
965 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
966 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
967 | |
39
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
968 | for sup in cl.super: |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
969 | calltips.extend( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
970 | self.__getDocumentCalltips( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
971 | word, sup, module, editor, doHierarchy=True |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
972 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
973 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
974 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
975 | break |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
976 | else: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
977 | if prefix in module.classes: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
978 | cl = module.classes[prefix] |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
979 | if word in cl.methods: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
980 | method = cl.methods[word] |
98
9c331ebb4b8c
Removed some code dealing with early eric5 versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
981 | if doHierarchy or method.modifier == method.Class: |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
982 | calltips.append( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
983 | "{0}{1}{2}({3})".format( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
984 | cl.name, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
985 | sep, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
986 | word, |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
987 | ", ".join(method.parameters[1:]), |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
988 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
989 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
990 | |
39
7b6ca9397ecc
More improvements of auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
38
diff
changeset
|
991 | for sup in cl.super: |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
992 | calltips.extend( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
993 | self.__getDocumentCalltips( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
994 | word, sup, module, editor, doHierarchy=True |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
995 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
996 | ) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
997 | else: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
998 | # calltip for a module function or class |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
999 | if word in module.functions: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
1000 | fun = module.functions[word] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
1001 | calltips.append("{0}({1})".format(word, ", ".join(fun.parameters))) |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
1002 | elif word in module.classes: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
1003 | cl = module.classes[word] |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
1004 | if "__init__" in cl.methods: |
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
1005 | method = cl.methods["__init__"] |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
1006 | calltips.append( |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
1007 | "{0}({1})".format(word, ", ".join(method.parameters[1:])) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
1008 | ) |
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
1009 | |
32
68ef15fe34c3
Improved auto-completions and calltips for Python sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
1010 | return calltips |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
1011 | |
190
3104a5a3ea13
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
189
diff
changeset
|
1012 | |
163
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
1013 | # |
842fce9b31ce
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
156
diff
changeset
|
1014 | # eflag: noqa = M834, W605 |