@@ -37,64 +37,69 @@ abstract class AbstractCompletionIncrementalResolveTest : KotlinLightCodeInsight
37
37
override fun getProjectDescriptor () = KotlinWithJdkAndRuntimeLightProjectDescriptor .INSTANCE
38
38
39
39
protected fun doTest (testPath : String ) {
40
- val file = File (testPath)
41
- val hasCaretMarker = FileUtil .loadFile(file, true ).contains(" <caret>" )
42
- myFixture.configureByFile(testPath)
43
-
44
- val document = myFixture.editor.document
45
- val beforeMarkerOffset = document.text.indexOf(BEFORE_MARKER )
46
- assertTrue(" \" $BEFORE_MARKER \" is missing in file \" $testPath \" " , beforeMarkerOffset >= 0 )
47
-
48
- val changeMarkerOffset = document.text.indexOf(CHANGE_MARKER )
49
- assertTrue(" \" $CHANGE_MARKER \" is missing in file \" $testPath \" " , changeMarkerOffset >= 0 )
50
-
51
- val textToType = InTextDirectivesUtils .findArrayWithPrefixes(document.text, TYPE_DIRECTIVE_PREFIX ).singleOrNull()
52
- ?.let { StringUtil .unquoteString(it) }
53
- val backspaceCount = InTextDirectivesUtils .getPrefixedInt(document.text, BACKSPACES_DIRECTIVE_PREFIX )
54
- assertTrue(" At least one of \" $TYPE_DIRECTIVE_PREFIX \" and \" $BACKSPACES_DIRECTIVE_PREFIX \" should be defined" ,
55
- textToType != null || backspaceCount != null )
56
-
57
- val beforeMarker = document.createRangeMarker(beforeMarkerOffset, beforeMarkerOffset + BEFORE_MARKER .length)
58
- val changeMarker = document.createRangeMarker(changeMarkerOffset, changeMarkerOffset + CHANGE_MARKER .length)
59
- changeMarker.isGreedyToRight = true
60
-
61
- project.executeWriteCommand(" " ) {
62
- document.deleteString(beforeMarker.startOffset, beforeMarker.endOffset)
63
- document.deleteString(changeMarker.startOffset, changeMarker.endOffset)
64
- }
40
+ CompletionBindingContextProvider .ENABLED = true
41
+ try {
42
+ val file = File (testPath)
43
+ val hasCaretMarker = FileUtil .loadFile(file, true ).contains(" <caret>" )
44
+ myFixture.configureByFile(testPath)
45
+
46
+ val document = myFixture.editor.document
47
+ val beforeMarkerOffset = document.text.indexOf(BEFORE_MARKER )
48
+ assertTrue(" \" $BEFORE_MARKER \" is missing in file \" $testPath \" " , beforeMarkerOffset >= 0 )
49
+
50
+ val changeMarkerOffset = document.text.indexOf(CHANGE_MARKER )
51
+ assertTrue(" \" $CHANGE_MARKER \" is missing in file \" $testPath \" " , changeMarkerOffset >= 0 )
52
+
53
+ val textToType = InTextDirectivesUtils .findArrayWithPrefixes(document.text, TYPE_DIRECTIVE_PREFIX ).singleOrNull()
54
+ ?.let { StringUtil .unquoteString(it) }
55
+ val backspaceCount = InTextDirectivesUtils .getPrefixedInt(document.text, BACKSPACES_DIRECTIVE_PREFIX )
56
+ assertTrue(" At least one of \" $TYPE_DIRECTIVE_PREFIX \" and \" $BACKSPACES_DIRECTIVE_PREFIX \" should be defined" ,
57
+ textToType != null || backspaceCount != null )
58
+
59
+ val beforeMarker = document.createRangeMarker(beforeMarkerOffset, beforeMarkerOffset + BEFORE_MARKER .length)
60
+ val changeMarker = document.createRangeMarker(changeMarkerOffset, changeMarkerOffset + CHANGE_MARKER .length)
61
+ changeMarker.isGreedyToRight = true
62
+
63
+ project.executeWriteCommand(" " ) {
64
+ document.deleteString(beforeMarker.startOffset, beforeMarker.endOffset)
65
+ document.deleteString(changeMarker.startOffset, changeMarker.endOffset)
66
+ }
65
67
66
- val caretMarker = if (hasCaretMarker)
67
- document.createRangeMarker(editor.caretModel.offset, editor.caretModel.offset)
68
- else
69
- null
70
- editor.caretModel.moveToOffset(beforeMarker.startOffset)
68
+ val caretMarker = if (hasCaretMarker)
69
+ document.createRangeMarker(editor.caretModel.offset, editor.caretModel.offset)
70
+ else
71
+ null
72
+ editor.caretModel.moveToOffset(beforeMarker.startOffset)
71
73
72
- val testLog = StringBuilder ()
73
- CompletionBindingContextProvider .getInstance(project).TEST_LOG = testLog
74
+ val testLog = StringBuilder ()
75
+ CompletionBindingContextProvider .getInstance(project).TEST_LOG = testLog
74
76
75
- myFixture.complete(CompletionType .BASIC )
77
+ myFixture.complete(CompletionType .BASIC )
76
78
77
- project.executeWriteCommand(" " ) {
78
- if (backspaceCount != null ) {
79
- document.deleteString(changeMarker.startOffset - backspaceCount, changeMarker.startOffset)
80
- }
81
- if (textToType != null ) {
82
- document.insertString(changeMarker.startOffset, textToType)
79
+ project.executeWriteCommand(" " ) {
80
+ if (backspaceCount != null ) {
81
+ document.deleteString(changeMarker.startOffset - backspaceCount, changeMarker.startOffset)
82
+ }
83
+ if (textToType != null ) {
84
+ document.insertString(changeMarker.startOffset, textToType)
85
+ }
83
86
}
84
- }
85
87
86
- if (caretMarker != null ) {
87
- editor.caretModel.moveToOffset(caretMarker.startOffset)
88
- }
89
- else {
90
- editor.caretModel.moveToOffset(changeMarker.endOffset)
91
- }
88
+ if (caretMarker != null ) {
89
+ editor.caretModel.moveToOffset(caretMarker.startOffset)
90
+ }
91
+ else {
92
+ editor.caretModel.moveToOffset(changeMarker.endOffset)
93
+ }
92
94
93
- testCompletion(FileUtil .loadFile(file, true ),
94
- JvmPlatform ,
95
- { completionType, count -> myFixture.complete(completionType, count) },
96
- additionalValidDirectives = listOf (TYPE_DIRECTIVE_PREFIX , BACKSPACES_DIRECTIVE_PREFIX ))
95
+ testCompletion(FileUtil .loadFile(file, true ),
96
+ JvmPlatform ,
97
+ { completionType, count -> myFixture.complete(completionType, count) },
98
+ additionalValidDirectives = listOf (TYPE_DIRECTIVE_PREFIX , BACKSPACES_DIRECTIVE_PREFIX ))
97
99
98
- KotlinTestUtils .assertEqualsToFile(File (file.parent, file.nameWithoutExtension + " .log" ), testLog.toString())
100
+ KotlinTestUtils .assertEqualsToFile(File (file.parent, file.nameWithoutExtension + " .log" ), testLog.toString())
101
+ } finally {
102
+ CompletionBindingContextProvider .ENABLED = false
103
+ }
99
104
}
100
105
}
0 commit comments