@@ -6,13 +6,22 @@ package software.aws.toolkits.jetbrains.services.lambda.nodejs
66import com.google.common.collect.BiMap
77import com.google.common.collect.HashBiMap
88import com.intellij.execution.runners.ExecutionEnvironment
9+ import com.intellij.execution.ui.ExecutionConsole
910import com.intellij.javascript.debugger.LocalFileSystemFileFinder
1011import com.intellij.javascript.debugger.RemoteDebuggingFileFinder
12+ import com.intellij.openapi.fileTypes.FileType
13+ import com.intellij.openapi.fileTypes.PlainTextFileType
14+ import com.intellij.openapi.project.Project
1115import com.intellij.openapi.util.io.FileUtil
1216import com.intellij.openapi.vfs.VirtualFile
17+ import com.intellij.psi.PsiElement
18+ import com.intellij.psi.PsiFile
1319import com.intellij.xdebugger.XDebugProcess
1420import com.intellij.xdebugger.XDebugProcessStarter
1521import com.intellij.xdebugger.XDebugSession
22+ import com.intellij.xdebugger.evaluation.XDebuggerEditorsProviderBase
23+ import javax.swing.JComponent
24+ import javax.swing.JLabel
1625import compat.com.intellij.lang.javascript.JavascriptLanguage
1726import org.jetbrains.io.LocalFileFinder
1827import software.aws.toolkits.core.lambda.LambdaRuntime
@@ -66,6 +75,12 @@ class NodeJs20ImageDebug : NodeJsImageDebugSupport() {
6675object NodeJsDebugUtils {
6776 private const val NODE_MODULES = " node_modules"
6877
78+ // Noop editors provider for disabled NodeJS debugging in 2025.3
79+ private class NoopXDebuggerEditorsProvider : XDebuggerEditorsProviderBase () {
80+ override fun getFileType (): FileType = PlainTextFileType .INSTANCE
81+ override fun createExpressionCodeFragment (project : Project , text : String , context : PsiElement ? , isPhysical : Boolean ): PsiFile ? = null
82+ }
83+
6984 fun createDebugProcess (
7085 state : SamRunningState ,
7186 @Suppress(" UNUSED_PARAMETER" ) debugHost : String ,
@@ -78,17 +93,13 @@ object NodeJsDebugUtils {
7893 val fileFinder = RemoteDebuggingFileFinder (mappings, LocalFileSystemFileFinder ())
7994
8095 // STUB IMPLEMENTATION: NodeJS debugging temporarily disabled
81- // NodeJsDebugProcessUtil was deprecated in 2025.3 - replaced with generic debugger APIs
82- // This is a non-functional stub to prevent build failures
83- // TODO: Implement proper NodeJS debugging using modern XDebugProcess APIs
8496 return object : XDebugProcess (session) {
85- override fun getEditorsProvider () = null
97+ override fun getEditorsProvider () = NoopXDebuggerEditorsProvider ()
8698 override fun doGetProcessHandler () = null
87- override fun createConsole () = null
88-
89- override fun sessionInitialized () {
90- // Report to user that debugging is disabled
91- super .sessionInitialized()
99+ override fun createConsole () = object : ExecutionConsole {
100+ override fun getComponent (): JComponent = JLabel (" NodeJS debugging disabled in 2025.3" )
101+ override fun getPreferredFocusableComponent (): JComponent ? = null
102+ override fun dispose () {}
92103 }
93104 }
94105 }
0 commit comments