[tests] Return caret names from ExpressionMarkerProvider
Render caret names in resolve testData, so that we don't have to guess the indices of the carets; it makes the multi-caret testData less error-prone. Relevant for KT-65152 and KT-62695
This commit is contained in:
committed by
Space Team
parent
2befd2bffb
commit
fb225f5f20
+21
-6
@@ -99,8 +99,8 @@ class ExpressionMarkerProvider : TestService {
|
||||
}
|
||||
}
|
||||
|
||||
fun getAllCaretsPositions(file: PsiFile): List<Int> {
|
||||
return carets.getAllCaretsOffsets(file.name)
|
||||
fun getAllCarets(file: PsiFile): List<CaretMarker> {
|
||||
return carets.getAllCarets(file.name)
|
||||
}
|
||||
|
||||
fun getSelectedRangeOrNull(file: PsiFile): TextRange? = selected[file.name]
|
||||
@@ -261,6 +261,21 @@ class ExpressionMarkerProvider : TestService {
|
||||
}
|
||||
}
|
||||
|
||||
data class CaretMarker(val tag: String, val offset: Int) {
|
||||
|
||||
/**
|
||||
* Full render of this caret marker in the `<caret>` or `<caret_$tag>` form.
|
||||
*
|
||||
* @see ExpressionMarkersSourceFilePreprocessor.TAGS.CARET_REGEXP
|
||||
*/
|
||||
val fullTag: String
|
||||
get() = if (tag.isEmpty()) {
|
||||
"<caret>"
|
||||
} else {
|
||||
"<caret_${tag}>"
|
||||
}
|
||||
}
|
||||
|
||||
private class CaretProvider {
|
||||
private val caretToFile = mutableMapOf<String, CaretsInFile>()
|
||||
|
||||
@@ -269,8 +284,8 @@ private class CaretProvider {
|
||||
return cartsInFile.getCaretOffsetByTag(caretTag)
|
||||
}
|
||||
|
||||
fun getAllCaretsOffsets(filename: String): List<Int> {
|
||||
return caretToFile[filename]?.getAllCaretsOffsets().orEmpty()
|
||||
fun getAllCarets(filename: String): List<CaretMarker> {
|
||||
return caretToFile[filename]?.getAllCarets().orEmpty()
|
||||
}
|
||||
|
||||
fun addCaret(filename: String, caretTag: String?, caretOffset: Int) {
|
||||
@@ -285,8 +300,8 @@ private class CaretProvider {
|
||||
return carets[tag.orEmpty()]
|
||||
}
|
||||
|
||||
fun getAllCaretsOffsets(): List<Int> {
|
||||
return carets.values.toList()
|
||||
fun getAllCarets(): List<CaretMarker> {
|
||||
return carets.map { (tag, offset) -> CaretMarker(tag, offset) }
|
||||
}
|
||||
|
||||
fun addCaret(caretTag: String?, caretOffset: Int) {
|
||||
|
||||
Reference in New Issue
Block a user