@@ -317,6 +317,7 @@ def get_completions( self, document, complete_event):
317317 else : # normal behavior for remainder
318318 yield from super ().get_completions (document , complete_event )
319319
320+
320321def make_completion_dict (contacts , pending = {}, to = None , channels = None ):
321322 contact_list = {}
322323 pending_list = {}
@@ -353,8 +354,7 @@ def make_completion_dict(contacts, pending={}, to=None, channels=None):
353354 "chan" : None ,
354355 }
355356
356- if to is None :
357- completion_list .update ({
357+ root_completion_list = {
358358 "ver" : None ,
359359 "infos" : None ,
360360 "advert" : None ,
@@ -452,16 +452,9 @@ def make_completion_dict(contacts, pending={}, to=None, channels=None):
452452 "flood_after" :None ,
453453 "custom" :None ,
454454 },
455- })
456- completion_list ["set" ].update (make_completion_dict .custom_vars )
457- completion_list ["get" ].update (make_completion_dict .custom_vars )
458- else :
459- completion_list .update ({
460- "send" : None ,
461- })
455+ }
462456
463- if to ['type' ] > 0 : # contact
464- completion_list .update ({
457+ contact_completion_list = {
465458 "contact_info" : None ,
466459 "export_contact" : None ,
467460 "share_contact" : None ,
@@ -475,20 +468,16 @@ def make_completion_dict(contacts, pending={}, to=None, channels=None):
475468 "change_flags" : None ,
476469 "req_telemetry" : None ,
477470 "req_binary" : None ,
478- })
471+ }
479472
480- if to ['type' ] == 1 :
481- completion_list .update ({
482- "get" : {
483- "timeout" :None ,
484- },
485- "set" : {
486- "timeout" :None ,
487- },
488- })
473+ client_completion_list = dict (contact_completion_list )
474+ client_completion_list .update ({
475+ "get" : { "timeout" :None , },
476+ "set" : { "timeout" :None , },
477+ })
489478
490- if to [ 'type' ] > 1 : # repeaters and room servers
491- completion_list .update ({
479+ repeater_completion_list = dict ( contact_completion_list )
480+ repeater_completion_list .update ({
492481 "login" : None ,
493482 "logout" : None ,
494483 "req_status" : None ,
@@ -563,19 +552,29 @@ def make_completion_dict(contacts, pending={}, to=None, channels=None):
563552 },
564553 "erase" : None ,
565554 "log" : {"start" : None , "stop" : None , "erase" : None }
566- })
555+ })
567556
568- if (to ['type' ] == 4 ) : #specific to sensors
569- completion_list .update ({
570- "req_mma" :{"begin end" :None },
571- })
557+ sensor_completion_list = dict (repeater_completion_list )
558+ sensor_completion_list .update ({"req_mma" :{"begin end" :None }})
559+ sensor_completion_list ["get" ].update ({ "mma" :None , })
560+
561+ if to is None :
562+ completion_list .update (dict (root_completion_list ))
563+ completion_list ["set" ].update (make_completion_dict .custom_vars )
564+ completion_list ["get" ].update (make_completion_dict .custom_vars )
565+ else :
566+ completion_list .update ({
567+ "send" : None ,
568+ })
572569
573- completion_list ["get" ].update ({
574- "mma" :None ,
575- })
570+ if to ['type' ] == 1 :
571+ completion_list .update (client_completion_list )
576572
577- completion_list ["set" ].update ({
578- })
573+ if to ['type' ] > 1 : # repeaters and room servers
574+ completion_list .update (repeater_completion_list )
575+
576+ if (to ['type' ] == 4 ) : #specific to sensors
577+ completion_list .update (sensor_completion_list )
579578
580579 completion_list .update ({
581580 "script" : None ,
0 commit comments