in src/main/kotlin/org/jetbrains/mcpserverplugin/general/textTools.kt [274:307]
override fun handle(project: Project, args: ReplaceTextByPathToolArgs): Response {
val projectDir = project.guessProjectDir()?.toNioPathOrNull()
?: return Response(error = "project dir not found")
var document: Document? = null
val readResult = runReadAction {
var file: VirtualFile = LocalFileSystem.getInstance()
.refreshAndFindFileByNioFile(projectDir.resolveRel(args.pathInProject))
?: return@runReadAction "file not found"
if (!GlobalSearchScope.allScope(project).contains(file)) {
return@runReadAction "file not found"
}
document = FileDocumentManager.getInstance().getDocument(file)
if (document == null) {
return@runReadAction "could not get document"
}
return@runReadAction "ok"
}
if (readResult != "ok") {
return Response(error = readResult)
}
WriteCommandAction.runWriteCommandAction(project) {
document!!.setText(args.text)
FileDocumentManager.getInstance().saveDocument(document!!)
}
return Response("ok")
}