From b6ea62f7591d8987f77b6751194bcabf6c06de69 Mon Sep 17 00:00:00 2001 From: Vladislav Annenkov Date: Sat, 8 Aug 2026 17:28:59 +0200 Subject: [PATCH] RIDER-141755 [rider-hooks]: limit hook diagnostics to added code RIDER-141755 fix (cherry picked from commit 5c62c810b217c3f8fb4ad4769a224bf822f6f419) GitOrigin-RevId: 70910961fd44eb5b0e334ca5327c48c3405fb522 --- .../toolsets/general/PatchApplyEngine.kt | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/PatchApplyEngine.kt b/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/PatchApplyEngine.kt index 79fe7019a41b..363600ceda5b 100644 --- a/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/PatchApplyEngine.kt +++ b/plugins/mcp-server/src/com/intellij/mcpserver/toolsets/general/PatchApplyEngine.kt @@ -3,6 +3,7 @@ package com.intellij.mcpserver.toolsets.general import com.intellij.mcpserver.mcpFail +import org.jetbrains.annotations.ApiStatus private const val BEGIN_MARKER = "*** Begin Patch" private const val END_MARKER = "*** End Patch" @@ -19,37 +20,44 @@ private val CONTROL_CHAR_REGEX = Regex("[\\u0000-\\u001F\\u007F]") private val ESCAPED_CONTROL_REGEX = Regex("\\\\[nrt]") private val UNIFIED_DIFF_HEADER_REGEX = Regex("^@@+\\s*-\\d+(?:,\\d+)?\\s+\\+\\d+(?:,\\d+)?\\s*@@+$") -internal sealed interface PatchOperation { +@ApiStatus.Internal +sealed interface PatchOperation { val path: String } -internal data class AddPatchOperation( +@ApiStatus.Internal +data class AddPatchOperation( override val path: String, val content: String, ) : PatchOperation -internal data class DeletePatchOperation( +@ApiStatus.Internal +data class DeletePatchOperation( override val path: String, ) : PatchOperation -internal data class PatchHunkLine( +@ApiStatus.Internal +data class PatchHunkLine( val prefix: Char, val text: String, ) -internal data class PatchHunk( +@ApiStatus.Internal +data class PatchHunk( val header: String?, val lines: List, val isEndOfFile: Boolean, ) -internal data class UpdatePatchOperation( +@ApiStatus.Internal +data class UpdatePatchOperation( override val path: String, val moveTo: String?, val hunks: List, ) : PatchOperation -internal object PatchApplyEngine { +@ApiStatus.Internal +object PatchApplyEngine { fun extractPatchText(input: String?, patch: String?): String { if (input != null) return input if (patch != null) return patch