Support FixIts in TypeScript completions
This commit is contained in:
parent
1df76bbb39
commit
5981809681
@ -39,7 +39,8 @@ class CompletionRequest( BaseRequest ):
|
|||||||
self._response_future = None
|
self._response_future = None
|
||||||
self._complete_done_hooks = {
|
self._complete_done_hooks = {
|
||||||
'cs': self._OnCompleteDone_Csharp,
|
'cs': self._OnCompleteDone_Csharp,
|
||||||
'java': self._OnCompleteDone_Java,
|
'java': self._OnCompleteDone_FixIt,
|
||||||
|
'typescript': self._OnCompleteDone_FixIt,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -134,7 +135,7 @@ class CompletionRequest( BaseRequest ):
|
|||||||
vimsupport.InsertNamespace( namespace )
|
vimsupport.InsertNamespace( namespace )
|
||||||
|
|
||||||
|
|
||||||
def _OnCompleteDone_Java( self ):
|
def _OnCompleteDone_FixIt( self ):
|
||||||
completions = self._GetCompletionsUserMayHaveCompleted()
|
completions = self._GetCompletionsUserMayHaveCompleted()
|
||||||
fixit_completions = [ _GetFixItCompletion( c ) for c in completions ]
|
fixit_completions = [ _GetFixItCompletion( c ) for c in completions ]
|
||||||
fixit_completions = [ f for f in fixit_completions if f ]
|
fixit_completions = [ f for f in fixit_completions if f ]
|
||||||
|
@ -140,7 +140,14 @@ def GetCompleteDoneHooks_ResultOnCsharp_test( *args ):
|
|||||||
def GetCompleteDoneHooks_ResultOnJava_test( *args ):
|
def GetCompleteDoneHooks_ResultOnJava_test( *args ):
|
||||||
request = CompletionRequest( None )
|
request = CompletionRequest( None )
|
||||||
result = list( request._GetCompleteDoneHooks() )
|
result = list( request._GetCompleteDoneHooks() )
|
||||||
eq_( result, [ request._OnCompleteDone_Java ] )
|
eq_( result, [ request._OnCompleteDone_FixIt ] )
|
||||||
|
|
||||||
|
|
||||||
|
@patch( 'ycm.vimsupport.CurrentFiletypes', return_value = [ 'typescript' ] )
|
||||||
|
def GetCompleteDoneHooks_ResultOnTypeScript_test( *args ):
|
||||||
|
request = CompletionRequest( None )
|
||||||
|
result = list( request._GetCompleteDoneHooks() )
|
||||||
|
eq_( result, [ request._OnCompleteDone_FixIt ] )
|
||||||
|
|
||||||
|
|
||||||
@patch( 'ycm.vimsupport.CurrentFiletypes', return_value = [ 'ycmtest' ] )
|
@patch( 'ycm.vimsupport.CurrentFiletypes', return_value = [ 'ycmtest' ] )
|
||||||
@ -165,10 +172,10 @@ def OnCompleteDone_NoActionNoError_test( *args ):
|
|||||||
request = CompletionRequest( None )
|
request = CompletionRequest( None )
|
||||||
request.Done = MagicMock( return_value = True )
|
request.Done = MagicMock( return_value = True )
|
||||||
request._OnCompleteDone_Csharp = MagicMock()
|
request._OnCompleteDone_Csharp = MagicMock()
|
||||||
request._OnCompleteDone_Java = MagicMock()
|
request._OnCompleteDone_FixIt = MagicMock()
|
||||||
request.OnCompleteDone()
|
request.OnCompleteDone()
|
||||||
request._OnCompleteDone_Csharp.assert_not_called()
|
request._OnCompleteDone_Csharp.assert_not_called()
|
||||||
request._OnCompleteDone_Java.assert_not_called()
|
request._OnCompleteDone_FixIt.assert_not_called()
|
||||||
|
|
||||||
|
|
||||||
@patch( 'ycm.vimsupport.CurrentFiletypes', return_value = [ 'ycmtest' ] )
|
@patch( 'ycm.vimsupport.CurrentFiletypes', return_value = [ 'ycmtest' ] )
|
||||||
@ -356,73 +363,74 @@ def PostCompleteCsharp_InsertSecondNamespaceIfSelected_test( *args ):
|
|||||||
@patch( 'ycm.vimsupport.GetVariableValue',
|
@patch( 'ycm.vimsupport.GetVariableValue',
|
||||||
GetVariableValue_CompleteItemIs( 'Test' ) )
|
GetVariableValue_CompleteItemIs( 'Test' ) )
|
||||||
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
||||||
def PostCompleteJava_ApplyFixIt_NoFixIts_test( replace_chunks, *args ):
|
def PostCompleteFixIt_ApplyFixIt_NoFixIts_test( replace_chunks, *args ):
|
||||||
completions = [
|
completions = [
|
||||||
BuildCompletionFixIt( [] )
|
BuildCompletionFixIt( [] )
|
||||||
]
|
]
|
||||||
with _SetUpCompleteDone( completions ) as request:
|
with _SetUpCompleteDone( completions ) as request:
|
||||||
request._OnCompleteDone_Java()
|
request._OnCompleteDone_FixIt()
|
||||||
replace_chunks.assert_not_called()
|
replace_chunks.assert_not_called()
|
||||||
|
|
||||||
|
|
||||||
@patch( 'ycm.vimsupport.GetVariableValue',
|
@patch( 'ycm.vimsupport.GetVariableValue',
|
||||||
GetVariableValue_CompleteItemIs( 'Test' ) )
|
GetVariableValue_CompleteItemIs( 'Test' ) )
|
||||||
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
||||||
def PostCompleteJava_ApplyFixIt_EmptyFixIt_test( replace_chunks, *args ):
|
def PostCompleteFixIt_ApplyFixIt_EmptyFixIt_test( replace_chunks, *args ):
|
||||||
completions = [
|
completions = [
|
||||||
BuildCompletionFixIt( [ { 'chunks': [] } ] )
|
BuildCompletionFixIt( [ { 'chunks': [] } ] )
|
||||||
]
|
]
|
||||||
with _SetUpCompleteDone( completions ) as request:
|
with _SetUpCompleteDone( completions ) as request:
|
||||||
request._OnCompleteDone_Java()
|
request._OnCompleteDone_FixIt()
|
||||||
replace_chunks.assert_called_once_with( [], silent = True )
|
replace_chunks.assert_called_once_with( [], silent = True )
|
||||||
|
|
||||||
|
|
||||||
@patch( 'ycm.vimsupport.GetVariableValue',
|
@patch( 'ycm.vimsupport.GetVariableValue',
|
||||||
GetVariableValue_CompleteItemIs( 'Test' ) )
|
GetVariableValue_CompleteItemIs( 'Test' ) )
|
||||||
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
||||||
def PostCompleteJava_ApplyFixIt_NoFixIt_test( replace_chunks, *args ):
|
def PostCompleteFixIt_ApplyFixIt_NoFixIt_test( replace_chunks, *args ):
|
||||||
completions = [
|
completions = [
|
||||||
BuildCompletion( )
|
BuildCompletion( )
|
||||||
]
|
]
|
||||||
with _SetUpCompleteDone( completions ) as request:
|
with _SetUpCompleteDone( completions ) as request:
|
||||||
request._OnCompleteDone_Java()
|
request._OnCompleteDone_FixIt()
|
||||||
replace_chunks.assert_not_called()
|
replace_chunks.assert_not_called()
|
||||||
|
|
||||||
|
|
||||||
@patch( 'ycm.vimsupport.GetVariableValue',
|
@patch( 'ycm.vimsupport.GetVariableValue',
|
||||||
GetVariableValue_CompleteItemIs( 'Test' ) )
|
GetVariableValue_CompleteItemIs( 'Test' ) )
|
||||||
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
||||||
def PostCompleteJava_ApplyFixIt_PickFirst_test( replace_chunks, *args ):
|
def PostCompleteFixIt_ApplyFixIt_PickFirst_test( replace_chunks, *args ):
|
||||||
completions = [
|
completions = [
|
||||||
BuildCompletionFixIt( [ { 'chunks': 'one' } ] ),
|
BuildCompletionFixIt( [ { 'chunks': 'one' } ] ),
|
||||||
BuildCompletionFixIt( [ { 'chunks': 'two' } ] ),
|
BuildCompletionFixIt( [ { 'chunks': 'two' } ] ),
|
||||||
]
|
]
|
||||||
with _SetUpCompleteDone( completions ) as request:
|
with _SetUpCompleteDone( completions ) as request:
|
||||||
request._OnCompleteDone_Java()
|
request._OnCompleteDone_FixIt()
|
||||||
replace_chunks.assert_called_once_with( 'one', silent = True )
|
replace_chunks.assert_called_once_with( 'one', silent = True )
|
||||||
|
|
||||||
|
|
||||||
@patch( 'ycm.vimsupport.GetVariableValue',
|
@patch( 'ycm.vimsupport.GetVariableValue',
|
||||||
GetVariableValue_CompleteItemIs( 'Test', user_data='0' ) )
|
GetVariableValue_CompleteItemIs( 'Test', user_data='0' ) )
|
||||||
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
||||||
def PostCompleteJava_ApplyFixIt_PickFirstUserData_test( replace_chunks, *args ):
|
def PostCompleteFixIt_ApplyFixIt_PickFirstUserData_test( replace_chunks,
|
||||||
|
*args ):
|
||||||
completions = [
|
completions = [
|
||||||
BuildCompletionFixIt( [ { 'chunks': 'one' } ] ),
|
BuildCompletionFixIt( [ { 'chunks': 'one' } ] ),
|
||||||
BuildCompletionFixIt( [ { 'chunks': 'two' } ] ),
|
BuildCompletionFixIt( [ { 'chunks': 'two' } ] ),
|
||||||
]
|
]
|
||||||
with _SetUpCompleteDone( completions ) as request:
|
with _SetUpCompleteDone( completions ) as request:
|
||||||
request._OnCompleteDone_Java()
|
request._OnCompleteDone_FixIt()
|
||||||
replace_chunks.assert_called_once_with( 'one', silent = True )
|
replace_chunks.assert_called_once_with( 'one', silent = True )
|
||||||
|
|
||||||
|
|
||||||
@patch( 'ycm.vimsupport.GetVariableValue',
|
@patch( 'ycm.vimsupport.GetVariableValue',
|
||||||
GetVariableValue_CompleteItemIs( 'Test', user_data='1' ) )
|
GetVariableValue_CompleteItemIs( 'Test', user_data='1' ) )
|
||||||
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
@patch( 'ycm.vimsupport.ReplaceChunks' )
|
||||||
def PostCompleteJava_ApplyFixIt_PickSecond_test( replace_chunks, *args ):
|
def PostCompleteFixIt_ApplyFixIt_PickSecond_test( replace_chunks, *args ):
|
||||||
completions = [
|
completions = [
|
||||||
BuildCompletionFixIt( [ { 'chunks': 'one' } ] ),
|
BuildCompletionFixIt( [ { 'chunks': 'one' } ] ),
|
||||||
BuildCompletionFixIt( [ { 'chunks': 'two' } ] ),
|
BuildCompletionFixIt( [ { 'chunks': 'two' } ] ),
|
||||||
]
|
]
|
||||||
with _SetUpCompleteDone( completions ) as request:
|
with _SetUpCompleteDone( completions ) as request:
|
||||||
request._OnCompleteDone_Java()
|
request._OnCompleteDone_FixIt()
|
||||||
replace_chunks.assert_called_once_with( 'two', silent = True )
|
replace_chunks.assert_called_once_with( 'two', silent = True )
|
||||||
|
Loading…
Reference in New Issue
Block a user