Sat, 23 Dec 2023 17:58:35 +0100
Corrected some code style issues and converted some source code documentation to the new style.
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
412
6fa5892b9097
Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
3 | # Copyright (c) 2008 - 2024 Detlev Offenbach <detlev@die-offenbachs.de> |
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the autocompletion interface to rope. |
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
10 | import contextlib |
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | import os |
394
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
12 | import shutil |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
13 | import sys |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
14 | import uuid |
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
409
65153bf17e8d
Fixed a bug and resorted the imports with isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
406
diff
changeset
|
16 | from PyQt6.QtCore import QCoreApplication, QTimer, pyqtSlot |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
17 | |
396
933b8fcd854f
Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
394
diff
changeset
|
18 | from eric7 import Globals, Preferences |
933b8fcd854f
Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
394
diff
changeset
|
19 | from eric7.EricNetwork.EricJsonServer import EricJsonServer |
409
65153bf17e8d
Fixed a bug and resorted the imports with isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
406
diff
changeset
|
20 | from eric7.EricWidgets import EricMessageBox |
396
933b8fcd854f
Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
394
diff
changeset
|
21 | from eric7.EricWidgets.EricApplication import ericApp |
933b8fcd854f
Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
394
diff
changeset
|
22 | from eric7.QScintilla.Editor import Editor |
104
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
23 | |
406
923d7f711cae
Adjusted code for eric7 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
24 | try: |
923d7f711cae
Adjusted code for eric7 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
25 | from eric7.SystemUtilities.PythonUtilities import ( |
409
65153bf17e8d
Fixed a bug and resorted the imports with isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
406
diff
changeset
|
26 | getPythonExecutable, |
406
923d7f711cae
Adjusted code for eric7 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
27 | getPythonLibraryDirectory, |
923d7f711cae
Adjusted code for eric7 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
28 | ) |
923d7f711cae
Adjusted code for eric7 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
29 | except ImportError: |
923d7f711cae
Adjusted code for eric7 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
30 | # imports for eric < 23.1 |
923d7f711cae
Adjusted code for eric7 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
31 | from eric7.Globals import getPythonExecutable, getPythonLibraryDirectory |
923d7f711cae
Adjusted code for eric7 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
32 | |
118
d242ba11a04c
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
106
diff
changeset
|
33 | |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
34 | class CodeAssistServer(EricJsonServer): |
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | Class implementing the autocompletion interface to rope. |
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
38 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
39 | IdProject = "Project" |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
40 | |
291
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
41 | PictureIDs = { |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
42 | "class": "?{0}".format(Editor.ClassID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
43 | "_class": "?{0}".format(Editor.ClassProtectedID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
44 | "__class": "?{0}".format(Editor.ClassPrivateID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
45 | "instance": "?{0}".format(Editor.ClassID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
46 | "_instance": "?{0}".format(Editor.ClassProtectedID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
47 | "__instance": "?{0}".format(Editor.ClassPrivateID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
48 | "function": "?{0}".format(Editor.MethodID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
49 | "_function": "?{0}".format(Editor.MethodProtectedID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
50 | "__function": "?{0}".format(Editor.MethodPrivateID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
51 | "module": "?{0}".format(Editor.ModuleID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
52 | "_module": "?{0}".format(Editor.ModuleID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
53 | "__module": "?{0}".format(Editor.ModuleID), |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
54 | "None": "", |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
55 | } |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
56 | |
118
d242ba11a04c
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
106
diff
changeset
|
57 | def __init__(self, plugin, parent=None): |
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | """ |
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | Constructor |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
60 | |
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | @param plugin reference to the plugin object |
193
47d95438c4d8
Started to change the CodeAssist class to support distributed operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
147
diff
changeset
|
62 | @type RefactoringRopePlugin |
47d95438c4d8
Started to change the CodeAssist class to support distributed operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
147
diff
changeset
|
63 | @param parent parent |
47d95438c4d8
Started to change the CodeAssist class to support distributed operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
147
diff
changeset
|
64 | @type QObject |
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | """ |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
66 | super().__init__("CodeAssistServer", multiplex=True, parent=parent) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
67 | |
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | self.__plugin = plugin |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
69 | self.__ui = parent |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
70 | self.__vm = ericApp().getObject("ViewManager") |
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
71 | self.__e5project = ericApp().getObject("Project") |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
72 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
73 | self.__editorLanguageMapping = {} |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
74 | self.__clientConfigs = {} |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
75 | self.__editors = {} |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
76 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
77 | self.__documentationViewer = None |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
78 | |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
79 | # attributes to store the resuls of the client side |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
80 | self.__completions = None |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
81 | self.__calltips = None |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
82 | |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
83 | self.__methodMapping = { |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
84 | "Config": self.__setConfig, |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
85 | "CompletionsResult": self.__processCompletionsResult, |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
86 | "CallTipsResult": self.__processCallTipsResult, |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
87 | "DocumentationResult": self.__processDocumentationResult, |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
88 | "GotoDefinitionResult": self.__gotoDefinitionResult, |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
89 | "GotoReferencesResult": self.__processGotoReferencesResult, |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
90 | "ClientException": self.__processClientException, |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
91 | } |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
92 | |
232
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
93 | self.__typeMapping = { |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
94 | "staticmethod": self.tr("static method"), |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
95 | "classmethod": self.tr("class method"), |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
96 | "method": self.tr("method"), |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
97 | "function": self.tr("function"), |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
98 | "class": self.tr("class"), |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
99 | "module": self.tr("module"), |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
100 | "package": self.tr("package"), |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
101 | "object": self.tr("object"), |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
102 | "<unknown>": self.tr("not known"), |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
103 | } |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
104 | |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
105 | # temporary store for editor references indexed by Uuid |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
106 | self.__editors = {} |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
107 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
108 | # Python 3 |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
109 | self.__ensureActive("Python3") |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
110 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
111 | def __updateEditorLanguageMapping(self): |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
112 | """ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
113 | Private method to update the editor language to connection mapping. |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
114 | """ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
115 | self.__editorLanguageMapping = {} |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
116 | for name in self.connectionNames(): |
335
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
117 | if name == "Python3": |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
118 | self.__editorLanguageMapping.update( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
119 | { |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
120 | "Python3": "Python3", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
121 | "MicroPython": "Python3", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
122 | "Pygments|Python": "Python3", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
123 | "Pygments|Python 2.x": "Python3", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
124 | "Cython": "Python3", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
125 | } |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
126 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
127 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
128 | def isSupportedLanguage(self, language): |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
129 | """ |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
130 | Public method to check, if the given language is supported. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
131 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
132 | @param language editor programming language to check |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
133 | @type str |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
134 | @return flag indicating the support status |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
135 | @rtype bool |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
136 | """ |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
137 | return language in self.__editorLanguageMapping |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
138 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
139 | def __idString(self, editor): |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
140 | """ |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
141 | Private method to determine the ID string for the back-end. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
142 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
143 | @param editor reference to the editor to determine the ID string for |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
144 | @type Editor |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
145 | @return ID string |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
146 | @rtype str |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
147 | """ |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
148 | idString = "" |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
149 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
150 | language = editor.getLanguage() |
320
91b171fdd85f
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
315
diff
changeset
|
151 | if ( |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
152 | self.__e5project.isOpen() |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
153 | and self.__e5project.getProjectLanguage() == language |
320
91b171fdd85f
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
315
diff
changeset
|
154 | ): |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
155 | filename = editor.getFileName() |
404
c855f98a5217
Adjusted code for eric7 22.12 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
396
diff
changeset
|
156 | try: |
c855f98a5217
Adjusted code for eric7 22.12 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
396
diff
changeset
|
157 | isProjectSource = self.__e5project.isProjectCategory( |
c855f98a5217
Adjusted code for eric7 22.12 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
396
diff
changeset
|
158 | filename, "SOURCES" |
c855f98a5217
Adjusted code for eric7 22.12 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
396
diff
changeset
|
159 | ) |
c855f98a5217
Adjusted code for eric7 22.12 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
396
diff
changeset
|
160 | except AttributeError: |
c855f98a5217
Adjusted code for eric7 22.12 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
396
diff
changeset
|
161 | # backward compatibility for eric < 22.12 |
c855f98a5217
Adjusted code for eric7 22.12 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
396
diff
changeset
|
162 | isProjectSource = self.__e5project.isProjectSource(filename) |
c855f98a5217
Adjusted code for eric7 22.12 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
396
diff
changeset
|
163 | if isProjectSource: |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
164 | idString = CodeAssistServer.IdProject |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
165 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
166 | if not idString and language in self.__editorLanguageMapping: |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
167 | idString = self.__editorLanguageMapping[language] |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
168 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
169 | return idString |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
170 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
171 | def __getConfigs(self): |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
172 | """ |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
173 | Private method to get the configurations of all connected clients. |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
174 | """ |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
175 | for idString in self.connectionNames(): |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
176 | self.sendJson("getConfig", {}, idString=idString) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
177 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
178 | def __setConfig(self, params): |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
179 | """ |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
180 | Private method to set the rope client configuration data. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
181 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
182 | @param params dictionary containing the configuration data |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
183 | @type dict |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
184 | """ |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
185 | idString = params["Id"] |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
186 | ropeFolder = params["RopeFolderName"] |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
187 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
188 | self.__clientConfigs[idString] = ropeFolder |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
189 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
190 | def __ropeConfigFile(self, idString): |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
191 | """ |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
192 | Private method to get the name of the rope configuration file. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
193 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
194 | @param idString id for which to get the configuration file |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
195 | @type str |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
196 | @return name of the rope configuration file |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
197 | @rtype str |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
198 | """ |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
199 | configfile = None |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
200 | if idString in self.__clientConfigs: |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
201 | ropedir = self.__clientConfigs[idString] |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
202 | if ropedir: |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
203 | configfile = os.path.join(ropedir, "config.py") |
394
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
204 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
205 | return configfile |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
206 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
207 | def __configChanged(self, idString): |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
208 | """ |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
209 | Private slot called, when the rope config file has changed. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
210 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
211 | @param idString id for which to get the configuration file |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
212 | @type str |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
213 | """ |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
214 | self.sendJson("configChanged", {}, idString=idString) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
215 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
216 | def editConfig(self, idString): |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
217 | """ |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
218 | Public slot to open the rope configuration file in an editor. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
219 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
220 | @param idString id for which to get the configuration file |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
221 | @type str |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
222 | """ |
413
a4cba20ad7ab
Corrected some code style issues and converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
412
diff
changeset
|
223 | from eric7.QScintilla.MiniEditor import MiniEditor |
a4cba20ad7ab
Corrected some code style issues and converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
412
diff
changeset
|
224 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
225 | configfile = self.__ropeConfigFile(idString) |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
226 | if configfile: |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
227 | if os.path.exists(configfile): |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
228 | editor = MiniEditor(configfile) |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
229 | editor.show() |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
230 | editor.editorSaved.connect(lambda: self.__configChanged(idString)) |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
231 | self.__editors[idString] = editor |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
232 | return |
394
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
233 | else: |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
234 | EricMessageBox.critical( |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
235 | self.__ui, |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
236 | self.tr("Configure rope"), |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
237 | self.tr( |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
238 | """The rope configuration file '{0}' does not exist.""" |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
239 | ).format(configfile), |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
240 | ) |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
241 | else: |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
242 | EricMessageBox.critical( |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
243 | self.__ui, |
394
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
244 | self.tr("Configure rope"), |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
245 | self.tr( |
394
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
246 | "The path of the rope configuration file could not be determined." |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
247 | ).format(configfile), |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
248 | ) |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
249 | |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
250 | def createConfig(self, idString): |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
251 | """ |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
252 | Public slot to create a new default rope configuration file. |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
253 | |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
254 | @param idString id for which to create the configuration file |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
255 | @type str |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
256 | """ |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
257 | configfile = self.__ropeConfigFile(idString) |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
258 | if configfile: |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
259 | defaultConfigFile = os.path.join( |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
260 | os.path.dirname(__file__), "default_config.py" |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
261 | ) |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
262 | try: |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
263 | shutil.copyfile(defaultConfigFile, configfile) |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
264 | except OSError as err: |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
265 | EricMessageBox.critical( |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
266 | self.__ui, |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
267 | self.tr("Configure Rope"), |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
268 | self.tr( |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
269 | "<p>A new Rope default configuration could not be written to" |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
270 | " the file '{0}'.</p><p>Reason: {1}</p>" |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
271 | ).format(configfile, str(err)), |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
272 | ) |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
273 | else: |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
274 | EricMessageBox.critical( |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
275 | self.__ui, |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
276 | self.tr("Configure rope"), |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
277 | self.tr( |
b34f5dd3db27
Enhanced the default configuration handling (for refactoring and code assist).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
392
diff
changeset
|
278 | "The path of the rope configuration file could not be determined." |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
279 | ).format(configfile), |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
280 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
281 | |
413
a4cba20ad7ab
Corrected some code style issues and converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
412
diff
changeset
|
282 | def requestCompletions(self, editor, context, acText): # noqa: U100 |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
283 | """ |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
284 | Public method to request a list of possible completions. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
285 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
286 | @param editor reference to the editor object, that called this method |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
287 | @type Editor |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
288 | @param context flag indicating to autocomplete a context |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
289 | @type bool |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
290 | @param acText text to be completed |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
291 | @type str |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
292 | """ |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
293 | if not self.__plugin.getPreferences("CodeAssistEnabled"): |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
294 | return |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
295 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
296 | idString = self.__idString(editor) |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
297 | if not idString: |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
298 | return |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
299 | |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
300 | filename = editor.getFileName() |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
301 | line, index = editor.getCursorPosition() |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
302 | source = editor.text() |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
303 | offset = len("".join(source.splitlines(True)[:line])) + index |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
304 | maxfixes = self.__plugin.getPreferences("MaxFixes") |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
305 | |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
306 | self.__ensureActive(idString) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
307 | self.sendJson( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
308 | "getCompletions", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
309 | { |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
310 | "FileName": filename, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
311 | "Source": source, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
312 | "Offset": offset, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
313 | "MaxFixes": maxfixes, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
314 | "CompletionText": acText, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
315 | "SysPath": sys.path, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
316 | }, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
317 | idString=idString, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
318 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
319 | |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
320 | def __processCompletionsResult(self, result): |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
321 | """ |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
322 | Private method to process the completions sent by the client. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
323 | |
202
a111134b5dc7
Started correcting the source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
200
diff
changeset
|
324 | @param result dictionary containing the result sent by the client |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
325 | @type dict |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
326 | """ |
291
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
327 | names = [] |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
328 | for completion in result["Completions"]: |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
329 | name = completion["Name"] |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
330 | |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
331 | name += CodeAssistServer.PictureIDs.get(completion["CompletionType"], "") |
291
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
332 | names.append(name) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
333 | |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
334 | if "Error" not in result: |
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
335 | editor = self.__vm.getOpenEditor(result["FileName"]) |
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
336 | if editor is not None: |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
337 | editor.completionsListReady(names, result["CompletionText"]) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
338 | |
413
a4cba20ad7ab
Corrected some code style issues and converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
412
diff
changeset
|
339 | def getCallTips(self, editor, pos, commas): # noqa: U100 |
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | """ |
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341 | Public method to calculate calltips. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
342 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
343 | @param editor reference to the editor object, that called this method |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
344 | @type Editor |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
345 | @param pos position in the text for the calltip |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
346 | @type int |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
347 | @param commas minimum number of commas contained in the calltip |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
348 | @type int |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
349 | @return list of possible calltips |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
350 | @rtype list of str |
100
2bfe9e3fad8d
Ported the code completion and calltips support of the eric4 variant of this plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | """ |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
352 | if not self.__plugin.getPreferences("CodeAssistCalltipsEnabled"): |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
353 | return [] |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
354 | |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
355 | # reset the calltips buffer |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
356 | self.__calltips = None |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
357 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
358 | idString = self.__idString(editor) |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
359 | if not idString: |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
360 | return [] |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
361 | |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
362 | filename = editor.getFileName() |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
363 | source = editor.text() |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
364 | line, index = editor.lineIndexFromPosition(pos) |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
365 | offset = len("".join(source.splitlines(True)[:line])) + index |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
366 | maxfixes = self.__plugin.getPreferences("CalltipsMaxFixes") |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
367 | |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
368 | self.__ensureActive(idString) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
369 | self.sendJson( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
370 | "getCallTips", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
371 | { |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
372 | "FileName": filename, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
373 | "Source": source, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
374 | "Offset": offset, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
375 | "MaxFixes": maxfixes, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
376 | "SysPath": sys.path, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
377 | }, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
378 | idString=idString, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
379 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
380 | |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
381 | # emulate the synchronous behaviour |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
382 | timer = QTimer() |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
383 | timer.setSingleShot(True) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
384 | timer.start(5000) # 5s timeout |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
385 | while self.__calltips is None and timer.isActive(): |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
386 | QCoreApplication.processEvents() |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
387 | |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
388 | return [] if self.__calltips is None else self.__calltips |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
389 | |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
390 | def __processCallTipsResult(self, result): |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
391 | """ |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
392 | Private method to process the calltips sent by the client. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
393 | |
202
a111134b5dc7
Started correcting the source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
200
diff
changeset
|
394 | @param result dictionary containing the result sent by the client |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
395 | @type dict |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
396 | """ |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
397 | if "Error" in result: |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
398 | self.__calltips = [] |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
399 | else: |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
400 | self.__calltips = result["CallTips"] |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
401 | |
104
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
402 | def reportChanged(self, filename, oldSource): |
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
403 | """ |
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
404 | Public slot to report some changed sources. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
405 | |
200
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
406 | @param filename file name of the changed source |
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
407 | @type str |
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
408 | @param oldSource source code before the change |
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
409 | @type str |
104
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
410 | """ |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
411 | editor = self.__vm.getOpenEditor(filename) |
200
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
412 | if editor is not None: |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
413 | idString = self.__idString(editor) |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
414 | if idString: |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
415 | self.__ensureActive(idString) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
416 | self.sendJson( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
417 | "reportChanged", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
418 | { |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
419 | "FileName": filename, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
420 | "OldSource": oldSource, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
421 | }, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
422 | idString=idString, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
423 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
424 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
425 | def requestCodeDocumentation(self, editor): |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
426 | """ |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
427 | Public method to request source code documentation for the given |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
428 | editor. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
429 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
430 | @param editor reference to the editor to get source code documentation |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
431 | for |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
432 | @type Editor |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
433 | """ |
273
803593e12756
CodeAssistServer: added code to cope with the code documentation viewer not being active in the IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
270
diff
changeset
|
434 | if self.__documentationViewer is None: |
803593e12756
CodeAssistServer: added code to cope with the code documentation viewer not being active in the IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
270
diff
changeset
|
435 | return |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
436 | |
291
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
437 | idString = self.__idString(editor) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
438 | |
291
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
439 | if not idString: |
da88cb84ae30
CodeAssistServer, CodeAssistClient: moved determination of the Picture ID to the server side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
287
diff
changeset
|
440 | language = editor.getLanguage() |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
441 | warning = self.tr("Language <b>{0}</b> is not supported.").format(language) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
442 | self.__documentationViewer.documentationReady(warning, isWarning=True) |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
443 | return |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
444 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
445 | filename = editor.getFileName() |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
446 | source = editor.text() |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
447 | line, index = editor.getCursorPosition() |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
448 | offset = len("".join(source.splitlines(True)[:line])) + index |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
449 | maxfixes = self.__plugin.getPreferences("CalltipsMaxFixes") |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
450 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
451 | offset = editor.positionBefore(offset) |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
452 | if editor.charAt(offset) == "(": |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
453 | offset = editor.positionBefore(offset) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
454 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
455 | self.__ensureActive(idString) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
456 | self.sendJson( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
457 | "getDocumentation", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
458 | { |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
459 | "FileName": filename, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
460 | "Source": source, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
461 | "Offset": offset, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
462 | "MaxFixes": maxfixes, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
463 | "SysPath": sys.path, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
464 | }, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
465 | idString=idString, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
466 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
467 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
468 | def __processDocumentationResult(self, result): |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
469 | """ |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
470 | Private method to process the documentation sent by the client. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
471 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
472 | @param result dictionary containing the result sent by the client |
232
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
473 | @type dict with keys 'name', 'argspec', 'note', 'docstring', 'typ' |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
474 | """ |
273
803593e12756
CodeAssistServer: added code to cope with the code documentation viewer not being active in the IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
270
diff
changeset
|
475 | if self.__documentationViewer is None: |
803593e12756
CodeAssistServer: added code to cope with the code documentation viewer not being active in the IDE.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
270
diff
changeset
|
476 | return |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
477 | |
219
c85d02ca2fa9
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
217
diff
changeset
|
478 | docu = None |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
479 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
480 | if "Error" not in result: |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
481 | documentationDict = result["DocumentationDict"] |
219
c85d02ca2fa9
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
217
diff
changeset
|
482 | if documentationDict: |
c85d02ca2fa9
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
217
diff
changeset
|
483 | if "module" in documentationDict: |
232
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
484 | if documentationDict["module"]: |
368
c206d08c28e7
Removed some obsolete code and obsolete files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
365
diff
changeset
|
485 | documentationDict["note"] = self.tr( |
c206d08c28e7
Removed some obsolete code and obsolete files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
365
diff
changeset
|
486 | "Present in <i>{0}</i> module" |
c206d08c28e7
Removed some obsolete code and obsolete files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
365
diff
changeset
|
487 | ).format(documentationDict["module"]) |
232
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
488 | del documentationDict["module"] |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
489 | |
232
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
490 | if "typ" in documentationDict: |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
491 | if documentationDict["typ"] not in self.__typeMapping: |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
492 | del documentationDict["typ"] |
220
763ef93fabee
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
219
diff
changeset
|
493 | else: |
320
91b171fdd85f
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
315
diff
changeset
|
494 | documentationDict["typ"] = self.__typeMapping[ |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
495 | documentationDict["typ"] |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
496 | ] |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
497 | |
232
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
498 | if "note" not in documentationDict: |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
499 | documentationDict["note"] = "" |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
500 | |
219
c85d02ca2fa9
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
217
diff
changeset
|
501 | docu = documentationDict |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
502 | |
223
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
503 | if docu is None: |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
504 | msg = self.tr("No documentation available.") |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
505 | self.__documentationViewer.documentationReady(msg, isDocWarning=True) |
223
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
506 | else: |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
507 | self.__documentationViewer.documentationReady(docu) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
508 | |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
509 | def gotoDefinition(self, editor): |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
510 | """ |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
511 | Public slot to find the definition for the word at the cursor position |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
512 | and go to it. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
513 | |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
514 | Note: This is executed upon a mouse click sequence. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
515 | |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
516 | @param editor reference to the calling editor |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
517 | @type Editor |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
518 | """ |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
519 | if not self.__plugin.getPreferences("MouseClickEnabled"): |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
520 | return |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
521 | |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
522 | idString = self.__idString(editor) |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
523 | if not idString: |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
524 | return |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
525 | |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
526 | filename = editor.getFileName() |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
527 | source = editor.text() |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
528 | line, index = editor.getCursorPosition() |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
529 | offset = len("".join(source.splitlines(True)[:line])) + index |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
530 | |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
531 | self.__ensureActive(idString) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
532 | |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
533 | euuid = str(uuid.uuid4()) |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
534 | self.__editors[euuid] = editor |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
535 | |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
536 | self.sendJson( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
537 | "gotoDefinition", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
538 | { |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
539 | "FileName": filename, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
540 | "Offset": offset, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
541 | "Source": source, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
542 | "SysPath": sys.path, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
543 | "Uuid": euuid, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
544 | }, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
545 | idString=idString, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
546 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
547 | |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
548 | def __gotoDefinitionResult(self, result): |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
549 | """ |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
550 | Private method to handle the "Goto Definition" result sent by |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
551 | the client. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
552 | |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
553 | @param result dictionary containing the result data |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
554 | @type dict |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
555 | """ |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
556 | if "Error" not in result: |
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
557 | # ignore errors silently |
390
e6848531c902
Corrected an issue causing an exception if no definition was found in 'gotoDefinition'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
389
diff
changeset
|
558 | location = result.get("Location") |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
559 | euuid = result["Uuid"] |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
560 | if location: |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
561 | try: |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
562 | editor = self.__editors[euuid] |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
563 | except KeyError: |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
564 | editor = None |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
565 | |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
566 | if ( |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
567 | editor is not None |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
568 | and editor.getFileName() == location["ModulePath"] |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
569 | and editor.getCursorPosition()[0] + 1 == location["Line"] |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
570 | ): |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
571 | # this was a click onto the definition line |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
572 | # -> get references |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
573 | idString = self.__idString(editor) |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
574 | filename = editor.getFileName() |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
575 | source = editor.text() |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
576 | line, index = editor.getCursorPosition() |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
577 | offset = len("".join(source.splitlines(True)[:line])) + index |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
578 | self.sendJson( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
579 | "gotoReferences", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
580 | { |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
581 | "FileName": filename, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
582 | "Offset": offset, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
583 | "Line": line + 1, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
584 | "SysPath": sys.path, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
585 | "Uuid": euuid, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
586 | }, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
587 | idString=idString, |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
588 | ) |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
589 | return |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
590 | |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
591 | self.__vm.openSourceFile( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
592 | location["ModulePath"], location["Line"], addNext=True |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
593 | ) |
293
dd1c7ed6d880
Code Assist: started to move the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
291
diff
changeset
|
594 | else: |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
595 | ericApp().getObject("UserInterface").statusBar().showMessage( |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
596 | self.tr("Code Assist: No definition found"), 5000 |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
597 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
598 | |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
599 | with contextlib.suppress(KeyError): |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
600 | del self.__editors[euuid] |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
601 | |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
602 | def __processGotoReferencesResult(self, result): |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
603 | """ |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
604 | Private method callback for the goto references result. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
605 | |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
606 | @param result dictionary containing the result data |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
607 | @type dict |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
608 | """ |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
609 | with contextlib.suppress(ImportError): |
413
a4cba20ad7ab
Corrected some code style issues and converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
412
diff
changeset
|
610 | from eric7.QScintilla.Editor import ReferenceItem # noqa: I101 |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
611 | |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
612 | if "Error" not in result: |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
613 | # ignore errors silently |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
614 | references = result["GotoReferencesList"] |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
615 | euuid = result["Uuid"] |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
616 | if references: |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
617 | try: |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
618 | editor = self.__editors[euuid] |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
619 | except KeyError: |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
620 | editor = None |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
621 | if editor is not None: |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
622 | referenceItemsList = [ |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
623 | ReferenceItem( |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
624 | modulePath=ref["ModulePath"], |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
625 | codeLine=ref["Code"], |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
626 | line=ref["Line"], |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
627 | column=0, |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
628 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
629 | for ref in references |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
630 | ] |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
631 | editor.gotoReferenceHandler(referenceItemsList) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
632 | |
370
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
633 | with contextlib.suppress(KeyError): |
9d246420f284
Added code to jump to references when clicked on a definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
368
diff
changeset
|
634 | del self.__editors[euuid] |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
635 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
636 | ####################################################################### |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
637 | ## Methods below handle the network connection |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
638 | ####################################################################### |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
639 | |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
640 | def handleCall(self, method, params): |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
641 | """ |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
642 | Public method to handle a method call from the client. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
643 | |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
644 | @param method requested method name |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
645 | @type str |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
646 | @param params dictionary with method specific parameters |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
647 | @type dict |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
648 | """ |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
649 | self.__methodMapping[method](params) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
650 | |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
651 | def __processClientException(self, params): |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
652 | """ |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
653 | Private method to handle exceptions of the refactoring client. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
654 | |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
655 | @param params dictionary containing the exception data |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
656 | @type dict |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
657 | """ |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
658 | if params["ExceptionType"] == "ProtocolError": |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
659 | self.__ui.appendToStderr( |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
660 | self.tr( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
661 | "The data received from the code assist" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
662 | " server could not be decoded. Please report" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
663 | " this issue with the received data to the" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
664 | " eric bugs email address.\n" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
665 | "Error: {0}\n" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
666 | "Data:\n{1}\n" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
667 | ).format(params["ExceptionValue"], params["ProtocolData"]) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
668 | ) |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
669 | else: |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
670 | self.__ui.appendToStderr( |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
671 | self.tr( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
672 | "An exception happened in the code assist" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
673 | " client. Please report it to the eric bugs" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
674 | " email address.\n" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
675 | "Exception: {0}\n" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
676 | "Value: {1}\n" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
677 | "Traceback: {2}\n" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
678 | ).format( |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
679 | params["ExceptionType"], |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
680 | params["ExceptionValue"], |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
681 | params["Traceback"], |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
682 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
683 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
684 | |
285
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
685 | def __startCodeAssistClient(self, interpreter, idString, clientEnv): |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
686 | """ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
687 | Private method to start the code assist client with the given |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
688 | interpreter. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
689 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
690 | @param interpreter interpreter to be used for the code assist client |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
691 | @type str |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
692 | @param idString id of the client to be started |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
693 | @type str |
285
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
694 | @param clientEnv dictionary with environment variables to run the |
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
695 | interpreter with |
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
696 | @type dict |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
697 | @return flag indicating a successful start of the client |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
698 | @rtype bool |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
699 | """ |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
700 | ok = False |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
701 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
702 | if interpreter: |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
703 | if idString == CodeAssistServer.IdProject: |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
704 | configDir = self.__e5project.getProjectPath() |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
705 | else: |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
706 | configDir = os.path.join(Globals.getConfigDir(), "rope", idString) |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
707 | if not os.path.exists(configDir): |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
708 | os.makedirs(configDir) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
709 | |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
710 | client = os.path.join(os.path.dirname(__file__), "CodeAssistClient.py") |
360 | 711 | ok, exitCode = self.startClient( |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
712 | interpreter, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
713 | client, |
406
923d7f711cae
Adjusted code for eric7 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
714 | clientArgs=[configDir, getPythonLibraryDirectory()], |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
715 | idString=idString, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
716 | environment=clientEnv, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
717 | ) |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
718 | if not ok: |
360 | 719 | if exitCode == 42: |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
720 | self.__ui.appendToStderr( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
721 | "CodeAssistServer: " |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
722 | + self.tr("The rope refactoring library is not installed.\n") |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
723 | ) |
360 | 724 | else: |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
725 | self.__ui.appendToStderr( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
726 | "CodeAssistServer: " |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
727 | + self.tr( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
728 | "'{0}' is not supported because the configured" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
729 | " interpreter could not be started.\n" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
730 | ).format(idString) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
731 | ) |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
732 | else: |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
733 | self.__ui.appendToStderr( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
734 | "CodeAssistServer: " |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
735 | + self.tr( |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
736 | "'{0}' is not supported because no suitable interpreter is" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
737 | " configured.\n" |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
738 | ).format(idString) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
739 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
740 | |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
741 | return ok |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
742 | |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
743 | def __ensureActive(self, idString): |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
744 | """ |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
745 | Private method to ensure, that the requested client is active. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
746 | |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
747 | A non-active client will be started. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
748 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
749 | @param idString id of the client to be checked |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
750 | @type str |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
751 | @return flag indicating an active client |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
752 | @rtype bool |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
753 | """ |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
754 | ok = idString in self.connectionNames() |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
755 | if not ok: |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
756 | # client is not running |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
757 | if idString == CodeAssistServer.IdProject: |
285
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
758 | interpreter, clientEnv = self.__interpreterForProject() |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
759 | else: |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
760 | interpreter = "" |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
761 | venvName = "" |
285
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
762 | clientEnv = os.environ.copy() |
287
09afe26b734c
Changes to start the backend clients with a clean PATH setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
285
diff
changeset
|
763 | if "PATH" in clientEnv: |
335
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
764 | clientEnv["PATH"] = self.__ui.getOriginalPathString() |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
765 | venvManager = ericApp().getObject("VirtualEnvManager") |
335
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
766 | if idString == "Python3": |
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
767 | venvName = Preferences.getDebugger("Python3VirtualEnv") |
354
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
768 | if not venvName: |
335
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
769 | venvName, _ = venvManager.getDefaultEnvironment() |
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
770 | if venvName: |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
771 | interpreter = venvManager.getVirtualenvInterpreter(venvName) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
772 | |
335
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
773 | execPath = venvManager.getVirtualenvExecPath(venvName) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
774 | |
335
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
775 | # build a suitable environment |
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
776 | if execPath: |
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
777 | if "PATH" in clientEnv: |
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
778 | clientEnv["PATH"] = os.pathsep.join( |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
779 | [execPath, clientEnv["PATH"]] |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
780 | ) |
335
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
781 | else: |
9438c2ed7732
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
326
diff
changeset
|
782 | clientEnv["PATH"] = execPath |
269
02bf946efbdc
CodeAssistServer, RefactoringServer: changed to support the use of Virtual Environments as of eric 18.07.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
263
diff
changeset
|
783 | if interpreter: |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
784 | ok = self.__startCodeAssistClient(interpreter, idString, clientEnv) |
270
efc48da49a75
Fixed some bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
269
diff
changeset
|
785 | else: |
efc48da49a75
Fixed some bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
269
diff
changeset
|
786 | ok = False |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
787 | return ok |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
788 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
789 | def __interpreterForProject(self): |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
790 | """ |
285
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
791 | Private method to determine the interpreter for the current project and |
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
792 | the environment to run it. |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
793 | |
285
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
794 | @return tuple containing the interpreter of the current project and the |
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
795 | environment variables |
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
796 | @rtype tuple of (str, dict) |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
797 | """ |
287
09afe26b734c
Changes to start the backend clients with a clean PATH setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
285
diff
changeset
|
798 | projectLanguage = self.__e5project.getProjectLanguage() |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
799 | interpreter = "" |
285
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
800 | clientEnv = os.environ.copy() |
287
09afe26b734c
Changes to start the backend clients with a clean PATH setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
285
diff
changeset
|
801 | if "PATH" in clientEnv: |
354
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
802 | clientEnv["PATH"] = self.__ui.getOriginalPathString() |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
803 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
804 | if projectLanguage.startswith("Python"): |
365
f740b50380df
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
360
diff
changeset
|
805 | venvManager = ericApp().getObject("VirtualEnvManager") |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
806 | |
354
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
807 | # get virtual environment from project first |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
808 | venvName = self.__e5project.getDebugProperty("VIRTUALENV") |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
809 | if not venvName: |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
810 | # get it from debugger settings next |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
811 | if projectLanguage == "Python3": |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
812 | venvName = Preferences.getDebugger("Python3VirtualEnv") |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
813 | if not venvName: |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
814 | venvName, _ = venvManager.getDefaultEnvironment() |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
815 | else: |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
816 | venvName = "" |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
817 | if venvName: |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
818 | interpreter = venvManager.getVirtualenvInterpreter(venvName) |
392
b9b0a462123d
Fixed an issue resolving the project specific interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
390
diff
changeset
|
819 | if not interpreter: |
406
923d7f711cae
Adjusted code for eric7 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
404
diff
changeset
|
820 | interpreter = getPythonExecutable() |
354
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
821 | execPath = venvManager.getVirtualenvExecPath(venvName) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
822 | |
354
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
823 | # build a suitable environment |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
824 | if execPath: |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
825 | if "PATH" in clientEnv: |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
826 | clientEnv["PATH"] = os.pathsep.join( |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
827 | [execPath, clientEnv["PATH"]] |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
828 | ) |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
829 | else: |
354
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
830 | clientEnv["PATH"] = execPath |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
831 | |
285
247d62c682dc
CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
283
diff
changeset
|
832 | return interpreter, clientEnv |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
833 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
834 | @pyqtSlot() |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
835 | def handleNewConnection(self): |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
836 | """ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
837 | Public slot for new incoming connections from a client. |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
838 | """ |
354
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
839 | super().handleNewConnection() |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
840 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
841 | self.__updateEditorLanguageMapping() |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
842 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
843 | self.__getConfigs() |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
844 | |
197
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
845 | def activate(self): |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
846 | """ |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
847 | Public method to activate the code assist server. |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
848 | """ |
354
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
849 | self.__documentationViewer = self.__ui.documentationViewer() |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
850 | if self.__documentationViewer is not None: |
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
851 | self.__documentationViewer.registerProvider( |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
852 | "rope", |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
853 | self.tr("Rope"), |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
854 | self.requestCodeDocumentation, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
855 | self.isSupportedLanguage, |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
856 | ) |
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
857 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
858 | self.__e5project.projectClosed.connect(self.__projectClosed) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
859 | |
197
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
860 | def deactivate(self): |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
861 | """ |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
862 | Public method to deactivate the code assist server. |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
863 | """ |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
864 | """ |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
865 | Public method to shut down the code assist server. |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
866 | """ |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
867 | if self.__documentationViewer is not None: |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
868 | self.__documentationViewer.unregisterProvider("rope") |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
869 | |
212
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
870 | for idString in self.connectionNames(): |
f05681349336
Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
871 | self.sendJson("closeProject", {}, flush=True, idString=idString) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
872 | |
354
a967ff16629a
- implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
347
diff
changeset
|
873 | with contextlib.suppress(TypeError): |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
874 | self.__e5project.projectClosed.disconnect(self.__projectClosed) |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
875 | |
197
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
876 | self.stopAllClients() |
389
4f53795beff0
Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
374
diff
changeset
|
877 | |
283
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
878 | @pyqtSlot() |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
879 | def __projectClosed(self): |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
880 | """ |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
881 | Private slot to handle the projectClosed signal. |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
882 | """ |
d98e971d9e4c
CodeAssistServer: improved code completions and calltips for files belonging to a project (that may be using an interpreter different from the one used by eric or configured globally).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
280
diff
changeset
|
883 | self.stopClient(idString=CodeAssistServer.IdProject) |