Sun, 28 Oct 2018 12:30:45 +0100
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).
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 | |
245
75a35a927952
Updated copyright for 2018.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
232
diff
changeset
|
3 | # Copyright (c) 2008 - 2018 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 | |
101
5098ad8960ed
Fixed issues connecting/disconnecting editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
10 | from __future__ import unicode_literals |
5098ad8960ed
Fixed issues connecting/disconnecting editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
11 | |
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
|
12 | import os |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
13 | import sys |
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
|
14 | |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
15 | from PyQt5.QtCore import pyqtSlot, QCoreApplication, QTimer |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
16 | |
200
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
17 | from E5Gui.E5Application import e5App |
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
|
18 | from E5Gui import E5MessageBox |
200
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
19 | |
202
a111134b5dc7
Started correcting the source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
200
diff
changeset
|
20 | from .JsonServer import JsonServer |
193
47d95438c4d8
Started to change the CodeAssist class to support distributed operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
147
diff
changeset
|
21 | |
104
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
22 | import Globals |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
23 | import Preferences |
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
|
24 | import Utilities |
104
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
25 | |
118
d242ba11a04c
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
106
diff
changeset
|
26 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
27 | class CodeAssistServer(JsonServer): |
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
|
28 | """ |
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
|
29 | 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
|
30 | """ |
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
|
31 | IdProject = "Project" |
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
|
32 | |
118
d242ba11a04c
Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
106
diff
changeset
|
33 | 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
|
34 | """ |
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 | Constructor |
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 | |
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 | @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
|
38 | @type RefactoringRopePlugin |
47d95438c4d8
Started to change the CodeAssist class to support distributed operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
147
diff
changeset
|
39 | @param parent parent |
47d95438c4d8
Started to change the CodeAssist class to support distributed operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
147
diff
changeset
|
40 | @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
|
41 | """ |
197
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
42 | super(CodeAssistServer, self).__init__( |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
43 | "CodeAssistServer", multiplex=True, parent=parent) |
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
|
44 | |
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
|
45 | self.__plugin = plugin |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
46 | self.__ui = parent |
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
|
47 | self.__vm = e5App().getObject("ViewManager") |
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
|
48 | self.__e5project = e5App().getObject("Project") |
104
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
49 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
50 | 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
|
51 | 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
|
52 | self.__editors = {} |
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
|
53 | |
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
|
54 | self.__asyncCompletions = False |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
55 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
56 | self.__documentationViewer = None |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
57 | |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
58 | # 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
|
59 | self.__completions = None |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
60 | self.__calltips = None |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
61 | |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
62 | 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
|
63 | "Config": self.__setConfig, |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
64 | "CompletionsResult": self.__processCompletionsResult, |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
65 | "CallTipsResult": self.__processCallTipsResult, |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
66 | "DocumentationResult": self.__processDocumentationResult, |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
67 | |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
68 | "ClientException": self.__processClientException, |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
69 | } |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
70 | |
232
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
71 | 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
|
72 | "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
|
73 | "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
|
74 | "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
|
75 | "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
|
76 | "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
|
77 | "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
|
78 | "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
|
79 | "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
|
80 | "<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
|
81 | } |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
82 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
83 | # Python 2 |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
84 | self.__ensureActive("Python2") |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
85 | |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
86 | # Python 3 |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
87 | self.__ensureActive("Python3") |
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
|
88 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
89 | def __updateEditorLanguageMapping(self): |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
90 | """ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
91 | 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
|
92 | """ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
93 | self.__editorLanguageMapping = {} |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
94 | for name in self.connectionNames(): |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
95 | if name == "Python2": |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
96 | self.__editorLanguageMapping.update({ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
97 | "Python": "Python2", |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
98 | "Python2": "Python2", |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
99 | "Pygments|Python": "Python2", |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
100 | }) |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
101 | elif name == "Python3": |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
102 | self.__editorLanguageMapping.update({ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
103 | "Python3": "Python3", |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
104 | "Pygments|Python 3": "Python3", |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
105 | }) |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
106 | |
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
|
107 | 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
|
108 | """ |
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
|
109 | Public method to check, if the given language is supported. |
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
|
110 | |
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
|
111 | @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
|
112 | @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
|
113 | @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
|
114 | @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
|
115 | """ |
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
|
116 | return 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
|
117 | |
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
|
118 | 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
|
119 | """ |
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
|
120 | Private method to determine the ID string for the back-end. |
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
|
121 | |
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
|
122 | @param editor reference to the editor to determine the ID string for |
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
|
123 | @type QScintilla.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
|
124 | @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
|
125 | @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
|
126 | """ |
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
|
127 | idString = "" |
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 | |
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 | language = editor.getLanguage() |
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 | if self.__e5project.isOpen() and \ |
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
|
131 | self.__e5project.getProjectLanguage() == 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
|
132 | filename = editor.getFileName() |
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 | if self.__e5project.isProjectSource(filename): |
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 | 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
|
135 | |
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 | 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
|
137 | idString = self.__editorLanguageMapping[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
|
138 | |
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 | return idString |
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 | |
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
|
141 | 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
|
142 | """ |
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
|
143 | 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
|
144 | """ |
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
|
145 | 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
|
146 | self.sendJson("getConfig", {}, idString=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
|
147 | |
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
|
148 | 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
|
149 | """ |
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
|
150 | Private method to set the rope client 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
|
151 | |
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
|
152 | @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
|
153 | @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
|
154 | """ |
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
|
155 | 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
|
156 | ropeFolder = params["RopeFolderName"] |
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
|
157 | |
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
|
158 | self.__clientConfigs[idString] = ropeFolder |
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
|
159 | |
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
|
160 | 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
|
161 | """ |
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
|
162 | Private method to get the 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
|
163 | |
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
|
164 | @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
|
165 | @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
|
166 | @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
|
167 | @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
|
168 | """ |
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
|
169 | 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
|
170 | 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
|
171 | 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
|
172 | 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
|
173 | configfile = os.path.join(ropedir, "config.py") |
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 | if not 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
|
175 | 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
|
176 | return 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
|
177 | |
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 __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
|
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 slot called, when the rope config file has changed. |
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
|
181 | |
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 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
|
183 | @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
|
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 | self.sendJson("configChanged", {}, idString=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
|
186 | |
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
|
187 | 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
|
188 | """ |
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
|
189 | Public slot to open the rope configuration file in an 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
|
190 | |
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 | @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
|
192 | @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
|
193 | """ |
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 | 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
|
195 | 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
|
196 | 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
|
197 | from QScintilla.MiniEditor import MiniEditor |
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 | 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
|
199 | editor.show() |
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 | editor.editorSaved.connect( |
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 | lambda: self.__configChanged(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 | 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
|
203 | return |
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
|
204 | else: |
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 | E5MessageBox.critical( |
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
|
206 | self.__ui, |
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 | self.tr("Configure Rope"), |
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 | self.tr("""The Rope configuration file '{0}' does""" |
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 | """ not exist.""").format(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
|
210 | |
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 | def getCompletions(self, editor, context): |
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
|
212 | """ |
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
|
213 | Public method to calculate the possible completions. |
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
|
214 | |
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
|
215 | Note: This is the synchronous variant for eric6 before 17.11. |
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 | |
104
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
217 | @param editor reference to the editor object, that called this method |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
218 | @type QScintilla.Editor.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
|
219 | @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
|
220 | @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
|
221 | @return list of possible completions |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
222 | @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
|
223 | """ |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
224 | # reset the completions buffer |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
225 | self.__completions = None |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
226 | |
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
|
227 | if not self.__idString(editor): |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
228 | return [] |
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
|
229 | |
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
|
230 | self.requestCompletions(editor, 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
|
231 | |
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 | # emulate the synchronous behaviour |
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
|
233 | timer = QTimer() |
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
|
234 | timer.setSingleShot(True) |
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
|
235 | timer.start(5000) # 5s timeout |
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
|
236 | while self.__completions is None and timer.isActive(): |
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
|
237 | QCoreApplication.processEvents() |
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
|
238 | |
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
|
239 | return [] if self.__completions is None else self.__completions |
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
|
240 | |
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 | def requestCompletions(self, editor, context, acText): |
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
|
242 | """ |
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 | Public method to request a list of possible completions. |
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
|
244 | |
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
|
245 | Note: This is part of the asynchronous variant for eric6 17.11 and |
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
|
246 | later. |
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
|
247 | |
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
|
248 | @param editor reference to the editor object, that called this method |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
249 | @type QScintilla.Editor.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
|
250 | @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
|
251 | @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
|
252 | @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
|
253 | @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
|
254 | """ |
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
|
255 | 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
|
256 | 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
|
257 | return |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
258 | |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
259 | filename = editor.getFileName() |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
260 | line, index = editor.getCursorPosition() |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
261 | source = editor.text() |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
262 | 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
|
263 | maxfixes = self.__plugin.getPreferences("MaxFixes") |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
264 | |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
265 | self.__ensureActive(idString) |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
266 | self.sendJson("getCompletions", { |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
267 | "FileName": filename, |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
268 | "Source": source, |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
269 | "Offset": offset, |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
270 | "MaxFixes": maxfixes, |
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
|
271 | "CompletionText": acText, |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
272 | "SysPath": sys.path, |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
273 | }, idString=idString) |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
274 | |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
275 | def __processCompletionsResult(self, result): |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
276 | """ |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
277 | Private method to process the completions sent by the client. |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
278 | |
202
a111134b5dc7
Started correcting the source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
200
diff
changeset
|
279 | @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
|
280 | @type dict |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
281 | """ |
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
|
282 | if self.__asyncCompletions: |
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 | # asynchronous variant for eric6 17.11 and later |
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 | if "Error" not in result: |
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
|
285 | editor = self.__vm.getOpenEditor(result["FileName"]) |
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 | if editor is not 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
|
287 | editor.completionsListReady(result["Completions"], |
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 | result["CompletionText"]) |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
289 | else: |
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
|
290 | # synchronous variant for eric6 before 17.11 |
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 | if "Error" in result: |
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 | self.__completions = [] |
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
|
293 | else: |
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
|
294 | self.__completions = result["Completions"] |
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
|
295 | |
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
|
296 | def getCallTips(self, editor, pos, commas): |
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
|
297 | """ |
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
|
298 | Public method to calculate calltips. |
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
|
299 | |
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
|
300 | @param editor reference to the editor object, that called this method |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
301 | @type QScintilla.Editor.Editor |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
302 | @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
|
303 | @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
|
304 | @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
|
305 | @type int |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
306 | @return list of possible calltips |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
307 | @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
|
308 | """ |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
309 | # reset the calltips buffer |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
310 | self.__calltips = None |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
311 | |
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
|
312 | 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
|
313 | if not idString: |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
314 | return [] |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
315 | |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
316 | filename = editor.getFileName() |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
317 | source = editor.text() |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
318 | line, index = editor.lineIndexFromPosition(pos) |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
319 | 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
|
320 | maxfixes = self.__plugin.getPreferences("CalltipsMaxFixes") |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
321 | |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
322 | self.__ensureActive(idString) |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
323 | self.sendJson("getCallTips", { |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
324 | "FileName": filename, |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
325 | "Source": source, |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
326 | "Offset": offset, |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
327 | "MaxFixes": maxfixes, |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
328 | "SysPath": sys.path, |
199
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
329 | }, idString=idString) |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
330 | |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
331 | # emulate the synchronous behaviour |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
332 | timer = QTimer() |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
333 | timer.setSingleShot(True) |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
334 | timer.start(5000) # 5s timeout |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
335 | 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
|
336 | QCoreApplication.processEvents() |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
337 | |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
338 | return [] if self.__calltips is None else self.__calltips |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
339 | |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
340 | def __processCallTipsResult(self, result): |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
341 | """ |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
342 | Private method to process the calltips sent by the client. |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
343 | |
202
a111134b5dc7
Started correcting the source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
200
diff
changeset
|
344 | @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
|
345 | @type dict |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
346 | """ |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
347 | if "Error" in result: |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
348 | self.__calltips = [] |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
349 | else: |
ae2ad82725b0
Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
198
diff
changeset
|
350 | self.__calltips = result["CallTips"] |
104
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
351 | |
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
352 | 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
|
353 | """ |
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
354 | Public slot to report some changed sources. |
f6049d39f83d
Made the code completion work in case no project is open.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
103
diff
changeset
|
355 | |
200
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
356 | @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
|
357 | @type str |
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
358 | @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
|
359 | @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
|
360 | """ |
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
|
361 | 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
|
362 | 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
|
363 | 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
|
364 | if idString: |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
365 | self.__ensureActive(idString) |
200
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
366 | self.sendJson("reportChanged", { |
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
367 | "FileName": filename, |
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
368 | "OldSource": oldSource, |
1584892147ef
Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
199
diff
changeset
|
369 | }, idString=idString) |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
370 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
371 | def requestCodeDocumentation(self, editor): |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
372 | """ |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
373 | 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
|
374 | editor. |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
375 | |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
376 | @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
|
377 | for |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
378 | @type QScintilla.Editor.Editor |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
379 | """ |
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
|
380 | 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
|
381 | return |
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
|
382 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
383 | language = editor.getLanguage() |
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
|
384 | if not self.isSupportedLanguage(language): |
223
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
385 | if Preferences.getDocuViewer("ShowInfoAsRichText"): |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
386 | warning = self.tr("Language <b>{0}</b> is not supported.")\ |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
387 | .format(language) |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
388 | else: |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
389 | warning = self.tr("Language '{0}' is not supported.")\ |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
390 | .format(language) |
220
763ef93fabee
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
219
diff
changeset
|
391 | self.__documentationViewer.documentationReady( |
248
59e983db024b
Adjusted the code style checking parameters and fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
392 | warning, isWarning=True) |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
393 | return |
223
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
394 | |
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
|
395 | 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
|
396 | if not idString: |
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
|
397 | return |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
398 | |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
399 | filename = editor.getFileName() |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
400 | source = editor.text() |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
401 | line, index = editor.getCursorPosition() |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
402 | 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
|
403 | maxfixes = self.__plugin.getPreferences("CalltipsMaxFixes") |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
404 | |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
405 | offset = editor.positionBefore(offset) |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
406 | if editor.charAt(offset) == "(": |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
407 | offset = editor.positionBefore(offset) |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
408 | |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
409 | self.__ensureActive(idString) |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
410 | self.sendJson("getDocumentation", { |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
411 | "FileName": filename, |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
412 | "Source": source, |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
413 | "Offset": offset, |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
414 | "MaxFixes": maxfixes, |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
415 | "SysPath": sys.path, |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
416 | }, idString=idString) |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
417 | |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
418 | def __processDocumentationResult(self, result): |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
419 | """ |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
420 | Private method to process the documentation sent by the client. |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
421 | |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
422 | @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
|
423 | @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
|
424 | """ |
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
|
425 | 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
|
426 | return |
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
|
427 | |
219
c85d02ca2fa9
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
217
diff
changeset
|
428 | docu = None |
c85d02ca2fa9
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
217
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 | 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
|
431 | documentationDict = result["DocumentationDict"] |
219
c85d02ca2fa9
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
217
diff
changeset
|
432 | if documentationDict: |
c85d02ca2fa9
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
217
diff
changeset
|
433 | 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
|
434 | if documentationDict["module"]: |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
435 | if Preferences.getDocuViewer("ShowInfoAsRichText"): |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
436 | documentationDict["note"] = \ |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
437 | self.tr("Present in <i>{0}</i> module")\ |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
438 | .format(documentationDict["module"]) |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
439 | else: |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
440 | documentationDict["note"] = \ |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
441 | self.tr("Present in '{0}' module")\ |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
442 | .format(documentationDict["module"]) |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
443 | del documentationDict["module"] |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
444 | |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
445 | 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
|
446 | 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
|
447 | del documentationDict["typ"] |
220
763ef93fabee
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
219
diff
changeset
|
448 | else: |
232
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
449 | documentationDict["typ"] = \ |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
450 | self.__typeMapping[documentationDict["typ"]] |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
451 | |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
452 | 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
|
453 | documentationDict["note"] = "" |
65d7d745543d
Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
223
diff
changeset
|
454 | |
219
c85d02ca2fa9
Fixed an issue in the CodeAssistServer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
217
diff
changeset
|
455 | docu = documentationDict |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
456 | |
223
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
457 | if docu is None: |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
458 | msg = self.tr("No documentation available.") |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
459 | self.__documentationViewer.documentationReady( |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
460 | msg, isDocWarning=True) |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
461 | else: |
d30d3b0d1df5
Adjusted to the latest eric6 development state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
221
diff
changeset
|
462 | self.__documentationViewer.documentationReady(docu) |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
463 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
464 | ####################################################################### |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
465 | ## Methods below handle the network connection |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
466 | ####################################################################### |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
467 | |
198
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
468 | def handleCall(self, method, params): |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
469 | """ |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
470 | Public method to handle a method call from the client. |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
471 | |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
472 | @param method requested method name |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
473 | @type str |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
474 | @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
|
475 | @type dict |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
476 | """ |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
477 | self.__methodMapping[method](params) |
898d8b4187de
IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
197
diff
changeset
|
478 | |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
479 | def __processClientException(self, params): |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
480 | """ |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
481 | Private method to handle exceptions of the refactoring client. |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
482 | |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
483 | @param params dictionary containing the exception data |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
484 | @type dict |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
485 | """ |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
486 | if params["ExceptionType"] == "ProtocolError": |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
487 | self.__ui.appendToStderr( |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
488 | self.tr("""The data received from the code assist""" |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
489 | """ server could not be decoded. Please report""" |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
490 | """ this issue with the received data to the""" |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
491 | """ eric bugs email address.\n""" |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
492 | """Error: {0}\n""" |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
493 | """Data: {1}\n""").format( |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
494 | params["ExceptionValue"], |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
495 | params["ProtocolData"])) |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
496 | else: |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
497 | self.__ui.appendToStderr( |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
498 | self.tr("An exception happened in the code assist" |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
499 | " client. Please report it to the eric bugs" |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
500 | " email address.\n" |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
501 | "Exception: {0}\n" |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
502 | "Value: {1}\n" |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
503 | "Traceback: {2}\n").format( |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
504 | params["ExceptionType"], |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
505 | params["ExceptionValue"], |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
506 | params["Traceback"])) |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
507 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
508 | def __startCodeAssistClient(self, interpreter, idString): |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
509 | """ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
510 | 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
|
511 | interpreter. |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
512 | |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
513 | @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
|
514 | @type str |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
515 | @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
|
516 | @type str |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
517 | @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
|
518 | @rtype bool |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
519 | """ |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
520 | ok = False |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
521 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
522 | 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
|
523 | 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
|
524 | 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
|
525 | 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
|
526 | configDir = os.path.join(Globals.getConfigDir(), "rope", |
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
|
527 | 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
|
528 | 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
|
529 | os.makedirs(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
|
530 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
531 | client = os.path.join(os.path.dirname(__file__), |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
532 | "CodeAssistClient.py") |
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
|
533 | ok = self.startClient(interpreter, client, [configDir], |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
534 | idString=idString) |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
535 | if not ok: |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
536 | self.__ui.appendToStderr(self.tr( |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
537 | "'{0}' is not supported because the configured interpreter" |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
538 | " could not be started.\n" |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
539 | ).format(idString)) |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
540 | else: |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
541 | self.__ui.appendToStderr(self.tr( |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
542 | "'{0}' is not supported because no suitable interpreter is" |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
543 | " configured.\n" |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
544 | ).format(idString)) |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
545 | |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
546 | return ok |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
547 | |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
548 | def __ensureActive(self, idString): |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
549 | """ |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
550 | Private method to ensure, that the requested client is active. |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
551 | |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
552 | A non-active client will be started. |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
553 | |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
554 | @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
|
555 | @type str |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
556 | @return flag indicating an active client |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
557 | @rtype bool |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
558 | """ |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
559 | ok = idString in self.connectionNames() |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
560 | if not ok: |
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
561 | # 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
|
562 | 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
|
563 | interpreter = self.__interpreterForProject() |
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
|
564 | 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
|
565 | 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
|
566 | venvName = "" |
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
|
567 | try: |
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
|
568 | # new code using virtual environments |
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
|
569 | venvManager = e5App().getObject("VirtualEnvManager") |
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
|
570 | if idString == "Python2": |
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
|
571 | # Python 2 |
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
|
572 | venvName = Preferences.getDebugger("Python2VirtualEnv") |
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
|
573 | if not venvName and sys.version_info[0] == 2: |
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
|
574 | try: |
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
|
575 | venvName, _ = \ |
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
|
576 | venvManager.getDefaultEnvironment() |
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
|
577 | except AttributeError: |
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
|
578 | # ignore for eric6 < 18.10 |
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
|
579 | pass |
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
|
580 | elif idString == "Python3": |
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
|
581 | # Python 3 |
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
|
582 | venvName = Preferences.getDebugger("Python3VirtualEnv") |
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
|
583 | if not venvName and sys.version_info[0] == 3: |
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
|
584 | try: |
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
|
585 | venvName, _ = \ |
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
|
586 | venvManager.getDefaultEnvironment() |
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
|
587 | except AttributeError: |
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
|
588 | # ignore for eric6 < 18.10 |
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
|
589 | pass |
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
|
590 | if venvName: |
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
|
591 | 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
|
592 | venvManager.getVirtualenvInterpreter(venvName) |
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
|
593 | except KeyError: |
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
|
594 | # backward compatibility (eric <18.07) |
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
|
595 | if idString == "Python2": |
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
|
596 | # Python 2 |
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
|
597 | 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
|
598 | Preferences.getDebugger("PythonInterpreter") |
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
|
599 | elif idString == "Python3": |
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
|
600 | # Python 3 |
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
|
601 | 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
|
602 | Preferences.getDebugger("Python3Interpreter") |
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
|
603 | if interpreter: |
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
|
604 | ok = self.__startCodeAssistClient(interpreter, idString) |
270
efc48da49a75
Fixed some bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
269
diff
changeset
|
605 | else: |
efc48da49a75
Fixed some bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
269
diff
changeset
|
606 | ok = False |
209
c1dce8630555
Improved handling of died connections/processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
607 | return ok |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
608 | |
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
|
609 | 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
|
610 | """ |
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
|
611 | Private method to determine the interpreter for the current project. |
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
|
612 | |
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
|
613 | @return interpreter of the current project |
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
|
614 | @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
|
615 | """ |
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
|
616 | 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
|
617 | projectLanguage = self.__e5project.getProjectLanguage() |
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
|
618 | |
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
|
619 | if projectLanguage.startswith("Python"): |
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
|
620 | try: |
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
|
621 | # new code using virtual environments |
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
|
622 | venvManager = e5App().getObject("VirtualEnvManager") |
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
|
623 | |
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
|
624 | # get virtual environment from project first |
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
|
625 | venvName = self.__e5project.getDebugProperty("VIRTUALENV") |
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
|
626 | if not venvName: |
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
|
627 | # get it from debugger settings next |
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
|
628 | if projectLanguage == "Python2": |
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
|
629 | # Python 2 |
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
|
630 | venvName = Preferences.getDebugger("Python2VirtualEnv") |
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
|
631 | if not venvName and sys.version_info[0] == 2: |
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
|
632 | try: |
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
|
633 | venvName, _ = \ |
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
|
634 | venvManager.getDefaultEnvironment() |
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
|
635 | except AttributeError: |
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
|
636 | # ignore for eric6 < 18.10 |
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
|
637 | pass |
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
|
638 | elif projectLanguage == "Python3": |
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
|
639 | # Python 3 |
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
|
640 | venvName = Preferences.getDebugger("Python3VirtualEnv") |
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
|
641 | if not venvName and sys.version_info[0] == 3: |
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
|
642 | try: |
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
|
643 | venvName, _ = \ |
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
|
644 | venvManager.getDefaultEnvironment() |
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
|
645 | except AttributeError: |
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
|
646 | # ignore for eric6 < 18.10 |
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
|
647 | pass |
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
|
648 | 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
|
649 | venvName = "" |
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
|
650 | if venvName: |
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
|
651 | 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
|
652 | venvManager.getVirtualenvInterpreter(venvName) |
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
|
653 | except KeyError: |
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
|
654 | # backward compatibility (eric < 18.07) |
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
|
655 | # get interpreter from project first |
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
|
656 | interpreter = self.__e5project.getDebugProperty("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
|
657 | if not interpreter or not Utilities.isinpath(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
|
658 | # get it from debugger settings second |
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
|
659 | if projectLanguage == "Python2": |
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
|
660 | interpreter = Preferences.getDebugger( |
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
|
661 | "PythonInterpreter") |
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
|
662 | elif projectLanguage == "Python3": |
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
|
663 | interpreter = Preferences.getDebugger( |
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
|
664 | "Python3Interpreter") |
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
|
665 | |
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
|
666 | return 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
|
667 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
668 | @pyqtSlot() |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
669 | def handleNewConnection(self): |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
670 | """ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
671 | 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
|
672 | """ |
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
673 | super(CodeAssistServer, self).handleNewConnection() |
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
|
674 | |
195
5d614a567be3
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
193
diff
changeset
|
675 | self.__updateEditorLanguageMapping() |
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
|
676 | |
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
|
677 | self.__getConfigs() |
197
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
678 | |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
679 | def activate(self): |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
680 | """ |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
681 | 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
|
682 | """ |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
683 | try: |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
684 | self.__documentationViewer = self.__ui.documentationViewer() |
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
|
685 | if self.__documentationViewer is not 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
|
686 | self.__documentationViewer.registerProvider( |
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
|
687 | "rope", self.tr("Rope"), self.requestCodeDocumentation, |
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
|
688 | self.isSupportedLanguage) |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
689 | except AttributeError: |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
690 | # eric6 before 17.11 doesn't have this |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
691 | pass |
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
|
692 | |
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
|
693 | self.__e5project.projectClosed.connect(self.__projectClosed) |
197
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
694 | |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
695 | def deactivate(self): |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
696 | """ |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
697 | 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
|
698 | """ |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
699 | """ |
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
700 | 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
|
701 | """ |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
702 | 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
|
703 | self.__documentationViewer.unregisterProvider("rope") |
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
704 | |
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
|
705 | 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
|
706 | self.sendJson("closeProject", {}, flush=True, idString=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
|
707 | |
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
|
708 | try: |
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
|
709 | self.__e5project.projectClosed.disconnect(self.__projectClosed) |
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
|
710 | except TypeError: |
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
|
711 | # ignore it, the signal may be disconnected already |
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
|
712 | pass |
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
|
713 | |
197
7046ac1bcb4b
Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
195
diff
changeset
|
714 | self.stopAllClients() |
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
|
715 | |
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
|
716 | @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
|
717 | 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
|
718 | """ |
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
|
719 | 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
|
720 | """ |
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
|
721 | self.stopClient(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
|
722 | |
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
|
723 | ####################################################################### |
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
|
724 | ## Methods below handle setting/unsetting the hook methods |
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
|
725 | ####################################################################### |
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
|
726 | |
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
|
727 | def connectEditor(self, 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
|
728 | """ |
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
|
729 | Public method to connect an 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
|
730 | |
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
|
731 | @param editor reference to the editor |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
732 | @type QScintilla.Editor.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
|
733 | """ |
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
|
734 | if self.isSupportedLanguage(editor.getLanguage()): |
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
|
735 | if self.__plugin.getPreferences("CodeAssistEnabled") and \ |
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
|
736 | editor.getCompletionListHook("rope") is 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
|
737 | self.__setAutoCompletionHook(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
|
738 | if self.__plugin.getPreferences("CodeAssistCalltipsEnabled") and \ |
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
|
739 | editor.getCallTipHook("rope") is 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
|
740 | self.__setCalltipsHook(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
|
741 | else: |
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
|
742 | self.disconnectEditor(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
|
743 | |
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
|
744 | def disconnectEditor(self, 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
|
745 | """ |
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
|
746 | Public method to disconnect an 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
|
747 | |
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
|
748 | @param editor reference to the editor |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
749 | @type QScintilla.Editor.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
|
750 | """ |
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
|
751 | if editor.getCompletionListHook("rope"): |
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
|
752 | self.__unsetAutoCompletionHook(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
|
753 | if editor.getCallTipHook("rope"): |
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
|
754 | self.__unsetCalltipsHook(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
|
755 | |
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
|
756 | def __setAutoCompletionHook(self, 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
|
757 | """ |
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
|
758 | Private method to set the auto-completion hook. |
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
|
759 | |
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
|
760 | @param editor reference to the editor |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
761 | @type QScintilla.Editor.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
|
762 | """ |
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
|
763 | try: |
263
a2fee57f83cf
compatibility fix for eric 18.05
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
248
diff
changeset
|
764 | editor.addCompletionListHook("rope", self.requestCompletions, True) |
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
|
765 | self.__asyncCompletions = True |
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
|
766 | except TypeError: |
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
|
767 | # backward compatibility for eric6 before 17.11 |
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
|
768 | editor.addCompletionListHook("rope", self.getCompletions) |
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
|
769 | self.__asyncCompletions = False |
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
|
770 | |
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
|
771 | def __unsetAutoCompletionHook(self, 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
|
772 | """ |
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
|
773 | Private method to unset the auto-completion hook. |
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
|
774 | |
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
|
775 | @param editor reference to the editor |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
776 | @type QScintilla.Editor.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
|
777 | """ |
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
|
778 | editor.removeCompletionListHook("rope") |
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
|
779 | |
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
|
780 | def __setCalltipsHook(self, 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
|
781 | """ |
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
|
782 | Private method to set the calltip hook. |
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
|
783 | |
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
|
784 | @param editor reference to the editor |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
785 | @type QScintilla.Editor.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
|
786 | """ |
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
|
787 | editor.addCallTipHook("rope", self.getCallTips) |
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
|
788 | |
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
|
789 | def __unsetCalltipsHook(self, 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
|
790 | """ |
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
|
791 | Private method to unset the calltip hook. |
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
|
792 | |
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
|
793 | @param editor reference to the editor |
217
874115c79ca7
Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
794 | @type QScintilla.Editor.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
|
795 | """ |
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
|
796 | editor.removeCallTipHook("rope") |