in src/main/kotlin/org/jetbrains/qodana/requests.kt [244:261]
override suspend fun execute(state: SarifLanguageServer.ServerState) {
if (!state.openFileCache.containsKey(uri)) {
logger.error("File $uri is missing in the cache, asking to open it")
OpenFile(uri, Paths.get(URL(uri).toURI()).toFile().readText()).execute(state) // executing in place
}
val document = state.openFileCache[uri]
val sb = StringBuilder(document)
if (!(changes.size == 1 && changes[0].range == null)) {
for (change in changes) {
val start = lineColToOffset(sb, change.range.start.line, change.range.start.character)
val end = lineColToOffset(sb, change.range.end.line, change.range.end.character)
sb.replace(start, end, change.text)
}
state.openFileCache[uri] = sb.toString()
} else {
state.openFileCache[uri] = changes[0].text
}
}