Skip to content

Commit cc491b1

Browse files
committed
Fix NodeJS debug stub implementation for 2025.3
- Add missing imports: PlainTextFileType, Project, PsiElement - Implement XDebuggerEditorsProviderBase with non-null FileType return - Remove duplicate code blocks that caused syntax errors - Remove redundant sessionInitialized() override - Ultimate module now compiles successfully
1 parent 112de5f commit cc491b1

File tree

1 file changed

+20
-9
lines changed
  • plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/services/lambda/nodejs

1 file changed

+20
-9
lines changed

plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/services/lambda/nodejs/NodeJsDebugSupport.kt

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,22 @@ package software.aws.toolkits.jetbrains.services.lambda.nodejs
66
import com.google.common.collect.BiMap
77
import com.google.common.collect.HashBiMap
88
import com.intellij.execution.runners.ExecutionEnvironment
9+
import com.intellij.execution.ui.ExecutionConsole
910
import com.intellij.javascript.debugger.LocalFileSystemFileFinder
1011
import 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
1115
import com.intellij.openapi.util.io.FileUtil
1216
import com.intellij.openapi.vfs.VirtualFile
17+
import com.intellij.psi.PsiElement
18+
import com.intellij.psi.PsiFile
1319
import com.intellij.xdebugger.XDebugProcess
1420
import com.intellij.xdebugger.XDebugProcessStarter
1521
import com.intellij.xdebugger.XDebugSession
22+
import com.intellij.xdebugger.evaluation.XDebuggerEditorsProviderBase
23+
import javax.swing.JComponent
24+
import javax.swing.JLabel
1625
import compat.com.intellij.lang.javascript.JavascriptLanguage
1726
import org.jetbrains.io.LocalFileFinder
1827
import software.aws.toolkits.core.lambda.LambdaRuntime
@@ -66,6 +75,12 @@ class NodeJs20ImageDebug : NodeJsImageDebugSupport() {
6675
object 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

Comments
 (0)