RefactoringRope/CodeAssistClient.py

Sun, 05 Nov 2017 17:23:30 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 05 Nov 2017 17:23:30 +0100
changeset 232
65d7d745543d
parent 228
e76a4991faef
child 234
a9d03af34d28
permissions
-rw-r--r--

Extended the code info provider to return the object type as well.

196
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the code assist client interface to rope.
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from __future__ import unicode_literals
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import sys
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 import os
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 sys.path.insert(0, os.path.dirname(__file__))
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 if sys.version_info[0] >= 3:
216
47fb0119f0be Updated rope (for Python 2) to version 0.10.7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
17 # TODO: unify this
47fb0119f0be Updated rope (for Python 2) to version 0.10.7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
18 ## path = os.path.join(os.path.dirname(__file__), 'rope_py3')
47fb0119f0be Updated rope (for Python 2) to version 0.10.7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
19 path = os.path.join(os.path.dirname(__file__), 'rope_py2')
196
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 else:
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 path = os.path.join(os.path.dirname(__file__), 'rope_py2')
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 str = unicode # __IGNORE_WARNING__
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 sys.path.insert(0, path)
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 import rope.base.libutils
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 import rope.contrib.codeassist
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 from JsonClient import JsonClient
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 class CodeAssistClient(JsonClient):
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 Class implementing the code assist client interface to rope.
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
35 PictureIDs = {
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
36 "class": "?{0}".format(1), # Editor.ClassID
201
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
37 "_class": "?{0}".format(2), # Editor.ClassProtectedID
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
38 "__class": "?{0}".format(3), # Editor.ClassPrivateID
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
39 "instance": "?{0}".format(1), # Editor.ClassID
201
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
40 "_instance": "?{0}".format(2), # Editor.ClassProtectedID
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
41 "__instance": "?{0}".format(3), # Editor.ClassPrivateID
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
42 "function": "?{0}".format(4), # Editor.MethodID
201
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
43 "_function": "?{0}".format(5), # Editor.MethodProtectedID
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
44 "__function": "?{0}".format(6), # Editor.MethodPrivateID
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
45 "module": "?{0}".format(7), # Editor.AttributeID
201
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
46 "_module": "?{0}".format(8), # Editor.AttributeProtectedID
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
47 "__module": "?{0}".format(9), # Editor.AttributePrivateID
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
48 "None": "",
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
49 }
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
50 # The various ID values are a copy of the ones found in the Editor
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
51 # class in order to make this module/script independent from an
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
52 # installed eric
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
53
196
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 def __init__(self, host, port, idString, projectPath):
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 """
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 Constructor
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @param host ip address the background service is listening
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 @type str
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 @param port port of the background service
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 @type int
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 @param idString assigned client id to be sent back to the server in
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 order to identify the connection
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
64 @type str
196
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 @param projectPath path to the project
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 @type str
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 super(CodeAssistClient, self).__init__(host, port, idString)
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 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
71 "getConfig": self.__getConfig,
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
72 "configChanged": self.__configChanged,
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
73 "closeProject": self.__closeProject,
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
74 "getCompletions": self.__getCompletions,
199
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
75 "getCallTips": self.__getCallTips,
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
76 "getDocumentation": self.__getDocumentation,
200
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
77 "reportChanged": self.__reportChanged,
196
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 }
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.__projectpath = projectPath
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 self.__project = rope.base.project.Project(self.__projectpath)
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.__project.validate(self.__project.root)
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
83
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
84 self.__id = idString
196
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 def handleCall(self, method, params):
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 Public method to handle a method call from the server.
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 @param method requested method name
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 @type str
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 @param params dictionary with method specific parameters
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 @type dict
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 """
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 self.__methodMapping[method](params)
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
96
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
97 def __handleRopeError(self, err):
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
98 """
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
99 Private method to process a rope error.
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
100
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
101 @param err rope exception object
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
102 @type Exception
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
103 @return dictionary containing the error information
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
104 @rtype dict
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
105 """
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
106 ropeError = str(type(err)).split()[-1]
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
107 ropeError = ropeError[1:-2].split('.')[-1]
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
108 errorDict = {
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
109 "Error": ropeError,
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
110 "ErrorString": str(err),
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
111 }
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
112 if ropeError == 'ModuleSyntaxError':
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
113 errorDict["ErrorFile"] = err.filename
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
114 errorDict["ErrorLine"] = err.lineno
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
115
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
116 return errorDict
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
117
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
118 def __getConfig(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
119 """
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
120 Private method to send some configuration data to the server.
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
121
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
122 @param params dictionary containing the method parameters sent by
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
123 the server
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
124 @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
125 """
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
126 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
127 "RopeFolderName": self.__project.ropefolder.real_path,
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
128 "Id": self.__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
129 }
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
130
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
131 self.sendJson("Config", 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
132
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
133 def __configChanged(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
134 """
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
135 Private method to handle a change of 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
136
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
137 @param params dictionary containing the method parameters sent by
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
138 the server
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
139 @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
140 """
f05681349336 Changed code assist to use the new 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 self.__project.close()
f05681349336 Changed code assist to use the new 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 self.__project = rope.base.project.Project(self.__projectpath)
f05681349336 Changed code assist to use the new 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 self.__project.validate(self.__project.root)
f05681349336 Changed code assist to use the new 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 def __closeProject(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
146 """
f05681349336 Changed code assist to use the new 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 Private slot to validate the project.
f05681349336 Changed code assist to use the new 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
f05681349336 Changed code assist to use the new 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 @param params dictionary containing the method parameters sent by
f05681349336 Changed code assist to use the new 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 the server
f05681349336 Changed code assist to use the new 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 @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
152 """
f05681349336 Changed code assist to use the new 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 self.__project.close()
f05681349336 Changed code assist to use the new 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
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
155 def __getCompletions(self, params):
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
156 """
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
157 Private method to calculate possible completions.
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
158
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
159 @param params dictionary containing the method parameters
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
160 @type dict
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
161 """
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
162 filename = params["FileName"]
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
163 source = params["Source"]
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
164 offset = params["Offset"]
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
165 maxfixes = params["MaxFixes"]
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
166
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
167 self.__project.prefs.set("python_path", params["SysPath"])
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
168 if filename:
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
169 resource = rope.base.libutils.path_to_resource(
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
170 self.__project, filename)
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
171 else:
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
172 resource = None
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
173
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
174 errorDict = {}
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
175 completions = []
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
176
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
177 try:
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
178 proposals = rope.contrib.codeassist.code_assist(
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
179 self.__project, source, offset, resource, maxfixes=maxfixes)
201
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
180 for proposal in proposals:
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
181 proposalType = proposal.type
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
182 if proposal.name.startswith("__"):
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
183 proposalType = "__" + proposalType
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
184 elif proposal.name.startswith("_"):
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
185 proposalType = "_" + proposalType
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
186 completions.append(
e677d82706d4 Extended the auto completions pictures supported by code assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 200
diff changeset
187 proposal.name + self.PictureIDs[proposalType])
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
188 except Exception as err:
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
189 errorDict = self.__handleRopeError(err)
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
190
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
191 result = {
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
192 "Completions": completions,
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
193 "CompletionText": params["CompletionText"],
f05681349336 Changed code assist to use the new 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 "FileName": filename,
198
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
195 }
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
196 result.update(errorDict)
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
197
898d8b4187de IMplemented the distributed code assist completions method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
198 self.sendJson("CompletionsResult", result)
199
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
199
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
200 def __getCallTips(self, params):
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
201 """
200
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
202 Private method to calculate possible calltips.
199
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
203
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
204 @param params dictionary containing the method parameters
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
205 @type dict
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
206 """
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
207 filename = params["FileName"]
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
208 source = params["Source"]
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
209 offset = params["Offset"]
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
210 maxfixes = params["MaxFixes"]
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
211
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
212 self.__project.prefs.set("python_path", params["SysPath"])
199
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
213 if filename:
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
214 resource = rope.base.libutils.path_to_resource(
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
215 self.__project, filename)
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
216 else:
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
217 resource = None
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
218
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
219 errorDict = {}
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
220 calltips = []
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
221
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
222 try:
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
223 cts = rope.contrib.codeassist.get_calltip(
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
224 self.__project, source, offset, resource, maxfixes=maxfixes,
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
225 remove_self=True)
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
226 if cts is not None:
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
227 calltips = [cts]
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
228 except Exception as err:
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
229 errorDict = self.__handleRopeError(err)
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
230
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
231 result = {
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
232 "CallTips": calltips,
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
233 }
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
234 result.update(errorDict)
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
235
ae2ad82725b0 Implemented the distributed code assist calltips method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
236 self.sendJson("CallTipsResult", result)
200
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
237
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
238 def __getDocumentation(self, params):
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
239 """
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
240 Private method to get some source code documentation.
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
241
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
242 @param params dictionary containing the method parameters
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
243 @type dict
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
244 """
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
245 filename = params["FileName"]
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
246 source = params["Source"]
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
247 offset = params["Offset"]
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
248 maxfixes = params["MaxFixes"]
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
249
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
250 self.__project.prefs.set("python_path", params["SysPath"])
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
251 if filename:
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
252 resource = rope.base.libutils.path_to_resource(
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
253 self.__project, filename)
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
254 else:
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
255 resource = None
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
256
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
257 errorDict = {}
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
258 documentation = ""
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
259 cts = None
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
260
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
261 try:
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
262 cts = rope.contrib.codeassist.get_calltip(
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
263 self.__project, source, offset, resource, maxfixes=maxfixes,
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
264 remove_self=True)
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
265 except Exception:
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
266 pass
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
267
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
268 if cts is not None:
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
269 while '..' in cts:
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
270 cts = cts.replace('..', '.')
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
271 if '(.)' in cts:
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
272 cts = cts.replace('(.)', '(...)')
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
273
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
274 try:
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
275 documentation = rope.contrib.codeassist.get_doc(
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
276 self.__project, source, offset, resource, maxfixes=maxfixes)
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
277 except Exception as err:
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
278 errorDict = self.__handleRopeError(err)
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
279
232
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
280 typeName = self.__getObjectTypeAnName(
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
281 self.__project, source, offset, resource, maxfixes=maxfixes)
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
282
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
283 documentationDict = self.__processDocumentation(cts, documentation,
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
284 typeName)
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
285 result = {
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
286 "DocumentationDict": documentationDict,
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
287 }
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
288 result.update(errorDict)
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
289
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
290 self.sendJson("DocumentationResult", result)
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
291
232
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
292 def __processDocumentation(self, cts, documentation, typeName):
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
293 """
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
294 Private method to process the call-tips and documentation.
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
295
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
296 @param cts call-tips
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
297 @type str
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
298 @param documentation extracted source code documentation
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
299 @type str
232
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
300 @param typeName type and name of the object
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
301 @type tuple of (str, str)
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
302 @return dictionary containing document information
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
303 @rtype dictionary with keys "name", "argspec", "module" and
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
304 "docstring"
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
305 """
228
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
306 objectFullname = ""
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
307 calltip = ""
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
308 argspec = ""
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
309 module = ""
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
310
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
311 if cts:
228
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
312 cts = cts.replace(".__init__", "")
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
313 parenthesisPos = cts.find("(")
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
314 if parenthesisPos != -1:
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
315 objectFullname = cts[:parenthesisPos]
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
316 objectName = objectFullname.split('.')[-1]
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
317 cts = cts.replace(objectFullname, objectName)
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
318 calltip = cts
228
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
319 else:
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
320 objectFullname = cts
232
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
321
228
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
322 if objectFullname and not objectFullname.startswith("self."):
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
323 if calltip:
228
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
324 argspecStart = calltip.find("(")
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
325 argspec = calltip[argspecStart:]
228
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
326
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
327 moduleEnd = objectFullname.rfind('.')
e76a4991faef Fixed a few bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 217
diff changeset
328 module = objectFullname[:moduleEnd]
232
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
329
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
330 if not objectFullname and typeName[1] not in ["", "<unknown>"]:
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
331 objectFullname = typeName[1]
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
332
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
333 return dict(name=objectFullname, argspec=argspec, module=module,
232
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
334 docstring=documentation, typ=typeName[0])
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
335
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
336 def __getObjectTypeAnName(self, project, sourceCode, offset,
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
337 resource=None, maxfixes=1):
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
338 """
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
339 Private method to determine an object type and name for the given
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
340 location.
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
341
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
342 @param project reference to the rope project object
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
343 @type rope.base.project.Project
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
344 @param sourceCode source code
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
345 @type str
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
346 @param offset offset to base the calculation on
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
347 @type int
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
348 @param resource reference to the rope resource object
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
349 @type rope.base.resources.Resource
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
350 @param maxfixes number of fixes to be done
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
351 @type int
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
352 """
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
353 from rope.base import pyobjects, pyobjectsdef, pynames
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
354 from rope.contrib import fixsyntax
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
355
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
356 fixer = fixsyntax.FixSyntax(project, sourceCode, resource, maxfixes)
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
357 pyname = fixer.pyname_at(offset)
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
358 if pyname is None:
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
359 return "<unknown>", "<unknown>"
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
360
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
361 pyobject = pyname.get_object()
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
362 if isinstance(pyobject, pyobjectsdef.PyPackage):
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
363 typ = "package"
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
364 if isinstance(pyname, pynames.ImportedModule):
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
365 name = pyname.module_name
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
366 else:
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
367 name = "<unknown>"
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
368 elif isinstance(pyobject, pyobjectsdef.PyModule):
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
369 typ = "module"
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
370 name = pyobject.get_name()
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
371 elif isinstance(pyobject, pyobjectsdef.PyClass):
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
372 typ = "class"
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
373 name = pyobject.get_name()
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
374 elif isinstance(pyobject, pyobjectsdef.PyFunction):
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
375 typ = pyobject.get_kind()
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
376 name = pyobject.get_name()
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
377 elif isinstance(pyobject, pyobjects.PyObject):
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
378 typ = "object"
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
379 name = ""
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
380 else:
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
381 typ = ""
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
382 name = ""
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
383
65d7d745543d Extended the code info provider to return the object type as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 228
diff changeset
384 return(typ, name)
217
874115c79ca7 Added support for the extraction of source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
385
200
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
386 def __reportChanged(self, params):
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
387 """
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
388 Private method to register some changed sources.
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
389
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
390 @param params dictionary containing the method parameters sent by
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
391 the server
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
392 @type dict
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
393 """
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
394 filename = params["FileName"]
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
395 oldSource = params["OldSource"]
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
396
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
397 try:
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
398 rope.base.libutils.report_change(
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
399 self.__project, filename, oldSource)
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
400 except Exception:
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
401 # simply ignore it
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
402 pass
196
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 if __name__ == '__main__':
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 if len(sys.argv) != 5:
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 print('Host, port, id and project path parameters are missing. Abort.')
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 sys.exit(1)
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 host, port, idString, projectPath = sys.argv[1:]
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 # Create a Qt4/5 application object in order to allow the processing of
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413 # modules containing Qt stuff.
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414 try:
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415 from PyQt5.QtCore import QCoreApplication
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 except ImportError:
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 try:
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418 from PyQt4.QtCore import QCoreApplication
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 except ImportError:
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
420 QCoreApplication = None
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421 if QCoreApplication is not None:
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 app = QCoreApplication(sys.argv)
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 client = CodeAssistClient(host, int(port), idString, projectPath)
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 # Start the main loop
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426 client.run()
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 sys.exit(0)
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 #
26986d285975 Added the new code assist client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 # eflag: noqa = M801

eric ide

mercurial