RefactoringRope/CodeAssistClient.py

changeset 354
a967ff16629a
parent 347
b5048b5ff454
child 360
2b35968f3d02
equal deleted inserted replaced
353:d38295fd97c2 354:a967ff16629a
7 Module implementing the code assist client interface to rope. 7 Module implementing the code assist client interface to rope.
8 """ 8 """
9 9
10 import sys 10 import sys
11 import os 11 import os
12 import contextlib
12 13
13 sys.path.insert(0, os.path.dirname(__file__)) 14 sys.path.insert(0, os.path.dirname(__file__))
14 15
15 import rope.base.libutils 16 import rope.base.libutils
16 import rope.contrib.codeassist 17 import rope.contrib.codeassist
37 order to identify the connection 38 order to identify the connection
38 @type str 39 @type str
39 @param projectPath path to the project 40 @param projectPath path to the project
40 @type str 41 @type str
41 """ 42 """
42 super(CodeAssistClient, self).__init__(host, port, idString) 43 super().__init__(host, port, idString)
43 44
44 self.__methodMapping = { 45 self.__methodMapping = {
45 "getConfig": self.__getConfig, 46 "getConfig": self.__getConfig,
46 "configChanged": self.__configChanged, 47 "configChanged": self.__configChanged,
47 "closeProject": self.__closeProject, 48 "closeProject": self.__closeProject,
138 source = params["Source"] 139 source = params["Source"]
139 offset = params["Offset"] 140 offset = params["Offset"]
140 maxfixes = params["MaxFixes"] 141 maxfixes = params["MaxFixes"]
141 142
142 self.__project.prefs.set("python_path", params["SysPath"]) 143 self.__project.prefs.set("python_path", params["SysPath"])
143 if filename: 144 resource = (
144 resource = rope.base.libutils.path_to_resource( 145 rope.base.libutils.path_to_resource(self.__project, filename)
145 self.__project, filename) 146 if filename else
146 else: 147 None
147 resource = None 148 )
148 149
149 errorDict = {} 150 errorDict = {}
150 completions = [] 151 completions = []
151 152
152 try: 153 try:
185 source = params["Source"] 186 source = params["Source"]
186 offset = params["Offset"] 187 offset = params["Offset"]
187 maxfixes = params["MaxFixes"] 188 maxfixes = params["MaxFixes"]
188 189
189 self.__project.prefs.set("python_path", params["SysPath"]) 190 self.__project.prefs.set("python_path", params["SysPath"])
190 if filename: 191 resource = (
191 resource = rope.base.libutils.path_to_resource( 192 rope.base.libutils.path_to_resource(self.__project, filename)
192 self.__project, filename) 193 if filename else
193 else: 194 None
194 resource = None 195 )
195 196
196 errorDict = {} 197 errorDict = {}
197 calltips = [] 198 calltips = []
198 199
199 try: 200 try:
222 filename = params["FileName"] 223 filename = params["FileName"]
223 source = params["Source"] 224 source = params["Source"]
224 offset = params["Offset"] 225 offset = params["Offset"]
225 maxfixes = params["MaxFixes"] 226 maxfixes = params["MaxFixes"]
226 227
227 if not self.__id == CodeAssistClient.IdProject: 228 if self.__id != CodeAssistClient.IdProject:
228 self.__project.prefs.set("python_path", params["SysPath"]) 229 self.__project.prefs.set("python_path", params["SysPath"])
229 if filename: 230 resource = (
230 resource = rope.base.libutils.path_to_resource( 231 rope.base.libutils.path_to_resource(self.__project, filename)
231 self.__project, filename) 232 if filename else
232 else: 233 None
233 resource = None 234 )
234 235
235 errorDict = {} 236 errorDict = {}
236 documentation = "" 237 documentation = ""
237 cts = None 238 cts = None
238 239
239 try: 240 with contextlib.suppress(Exception):
240 cts = rope.contrib.codeassist.get_calltip( 241 cts = rope.contrib.codeassist.get_calltip(
241 self.__project, source, offset, resource, maxfixes=maxfixes, 242 self.__project, source, offset, resource, maxfixes=maxfixes,
242 remove_self=True) 243 remove_self=True)
243 except Exception: # secok
244 pass
245 244
246 if cts is not None: 245 if cts is not None:
247 while '..' in cts: 246 while '..' in cts:
248 cts = cts.replace('..', '.') 247 cts = cts.replace('..', '.')
249 if '(.)' in cts: 248 if '(.)' in cts:
389 filename = params["FileName"] 388 filename = params["FileName"]
390 offset = params["Offset"] 389 offset = params["Offset"]
391 source = params["Source"] 390 source = params["Source"]
392 391
393 self.__project.prefs.set("python_path", params["SysPath"]) 392 self.__project.prefs.set("python_path", params["SysPath"])
394 if filename: 393 resource = (
395 resource = rope.base.libutils.path_to_resource( 394 rope.base.libutils.path_to_resource(self.__project, filename)
396 self.__project, filename) 395 if filename else
397 else: 396 None
398 resource = None 397 )
399 398
400 errorDict = {} 399 errorDict = {}
401 result = {} 400 result = {}
402 401
403 import rope.contrib.findit 402 import rope.contrib.findit
426 @type dict 425 @type dict
427 """ 426 """
428 filename = params["FileName"] 427 filename = params["FileName"]
429 oldSource = params["OldSource"] 428 oldSource = params["OldSource"]
430 429
431 try: 430 with contextlib.suppress(Exception):
432 rope.base.libutils.report_change( 431 rope.base.libutils.report_change(
433 self.__project, filename, oldSource) 432 self.__project, filename, oldSource)
434 except Exception: # secok
435 # simply ignore it
436 pass
437 433
438 434
439 if __name__ == '__main__': 435 if __name__ == '__main__':
440 if len(sys.argv) != 5: 436 if len(sys.argv) != 5:
441 print('Host, port, id and project path parameters are missing. Abort.') 437 print('Host, port, id and project path parameters are missing. Abort.')

eric ide

mercurial