@@ -812,6 +812,58 @@ def Completions(self, view, prefix, locations):
812
812
elif stat .type == syn .STAT_EXPRESSION :
813
813
completions .append (self .completionKeywordAs )
814
814
return completions
815
+ elif stat .type == syn .STAT_RETURN :
816
+ if e .signature .data .type :
817
+ for name , obj in e .functions [0 ].items ():
818
+ if obj .type == syn .STAT_FUNCTIONDEF :
819
+ completions .append (SublimePapyrus .MakeFunctionCompletion (obj , sem , True , "parent" , parameters = settingFunctionEventParameters ))
820
+ elif obj .type == syn .STAT_EVENTDEF :
821
+ completions .append (SublimePapyrus .MakeEventCompletion (obj , sem , True , "parent" , parameters = settingFunctionEventParameters ))
822
+ for name , obj in e .functions [1 ].items ():
823
+ if obj .type == syn .STAT_FUNCTIONDEF :
824
+ completions .append (SublimePapyrus .MakeFunctionCompletion (obj , sem , True , "self" , parameters = settingFunctionEventParameters ))
825
+ elif obj .type == syn .STAT_EVENTDEF :
826
+ completions .append (SublimePapyrus .MakeEventCompletion (obj , sem , True , "self" , parameters = settingFunctionEventParameters ))
827
+ for name , obj in e .variables [0 ].items ():
828
+ if obj .type == syn .STAT_PROPERTYDEF :
829
+ completions .append (SublimePapyrus .MakePropertyCompletion (obj , "parent" ))
830
+ for name , obj in e .variables [1 ].items ():
831
+ if obj .type == syn .STAT_PROPERTYDEF :
832
+ completions .append (SublimePapyrus .MakePropertyCompletion (obj , "self" ))
833
+ elif obj .type == syn .STAT_VARIABLEDEF :
834
+ completions .append (SublimePapyrus .MakeVariableCompletion (obj ))
835
+ for scope in e .variables [2 :]:
836
+ for name , obj in scope .items ():
837
+ if obj .type == syn .STAT_VARIABLEDEF :
838
+ completions .append (SublimePapyrus .MakeVariableCompletion (obj ))
839
+ elif obj .type == syn .STAT_PARAMETER :
840
+ completions .append (SublimePapyrus .MakeParameterCompletion (obj ))
841
+ completions .extend (self .GetTypeCompletions (view , False ))
842
+ completions .append (self .completionKeywordFalse )
843
+ completions .append (self .completionKeywordTrue )
844
+ completions .append (self .completionKeywordNone )
845
+ if not sem .KW_GLOBAL in e .signature .data .flags :
846
+ completions .append (self .completionKeywordSelf )
847
+ completions .append (self .completionKeywordParent )
848
+
849
+ # Imported global functions
850
+ for imp in e .imports :
851
+ functions = self .GetFunctionCompletions (imp , True )
852
+ if not functions :
853
+ try :
854
+ script = sem .GetCachedScript (imp )
855
+ if script :
856
+ functions = []
857
+ impLower = imp .lower ()
858
+ for name , obj in script .functions .items ():
859
+ if lex .KW_GLOBAL in obj .data .flags :
860
+ functions .append (SublimePapyrus .MakeFunctionCompletion (obj , sem , True , impLower , parameters = settingFunctionEventParameters ))
861
+ self .SetFunctionCompletions (imp , functions , True )
862
+ except :
863
+ return
864
+ if functions :
865
+ completions .extend (functions )
866
+ return completions
815
867
except Linter .ExpectedTypeError as f :
816
868
completions .extend (self .GetTypeCompletions (view , f .baseTypes ))
817
869
return completions
0 commit comments