11package debugattach
22
3- import settings.ApplicationSettings
4- import utils.pathForPid
53import com.intellij.execution.process.ProcessInfo
64import com.intellij.openapi.project.Project
75import com.intellij.openapi.projectRoots.Sdk
@@ -10,7 +8,8 @@ import com.intellij.openapi.util.Key
108import com.intellij.openapi.util.UserDataHolder
119import com.intellij.xdebugger.attach.*
1210import com.jetbrains.python.sdk.PythonSdkType
13- import com.jetbrains.python.sdk.PythonSdkUtil
11+ import settings.ApplicationSettings
12+ import utils.pathForPid
1413import javax.swing.Icon
1514
1615private val mayaPathsKey = Key <MutableMap <Int , String >>(" mayaPathsMap" )
@@ -21,31 +20,32 @@ class MayaAttachDebuggerProvider : XAttachDebuggerProvider {
2120 }
2221
2322 override fun getAvailableDebuggers (project : Project , attachHost : XAttachHost , processInfo : ProcessInfo , userData : UserDataHolder ): MutableList <XAttachDebugger > {
24- if (! processInfo.executableName.toLowerCase ().contains(" maya" )) return mutableListOf ()
23+ if (! processInfo.executableName.lowercase ().contains(" maya" )) return mutableListOf ()
2524
2625 val exePath = processInfo.executableCannonicalPath.let {
2726 if (it.isPresent) it.get() else pathForPid(processInfo.pid) ? : return mutableListOf ()
28- }.toLowerCase ()
27+ }.lowercase ()
2928
3029 val currentSdk = ApplicationSettings .INSTANCE .mayaSdkMapping.values.firstOrNull {
31- exePath.contains(it.mayaPath.toLowerCase ())
30+ exePath.contains(it.mayaPath.lowercase ())
3231 } ? : return mutableListOf ()
3332
3433 val mayaPathMap = userData.getUserData(mayaPathsKey) ? : mutableMapOf ()
3534 mayaPathMap[processInfo.pid] = currentSdk.mayaPath
3635 userData.putUserData(mayaPathsKey, mayaPathMap)
3736
38- PythonSdkUtil .findSdkByPath(currentSdk.mayaPyPath)?.let {
39- return mutableListOf (MayaAttachDebugger (it, currentSdk))
37+ val sdk = currentSdk.sdk
38+ if (sdk != null ) {
39+ return mutableListOf (MayaAttachDebugger (sdk, currentSdk))
4040 }
41-
4241 return mutableListOf ()
4342 }
4443
4544 override fun isAttachHostApplicable (attachHost : XAttachHost ): Boolean = attachHost is LocalAttachHost
4645}
4746
4847private class MayaAttachDebugger (sdk : Sdk , private val mayaSdk : ApplicationSettings .SdkInfo ) : XAttachDebugger {
48+ private val mySdk: Sdk = sdk
4949 private val mySdkHome: String? = sdk.homePath
5050 private val myName: String = " ${PythonSdkType .getInstance().getVersionString(sdk)} ($mySdkHome )"
5151
@@ -54,7 +54,7 @@ private class MayaAttachDebugger(sdk: Sdk, private val mayaSdk: ApplicationSetti
5454 }
5555
5656 override fun attachDebugSession (project : Project , attachHost : XAttachHost , processInfo : ProcessInfo ) {
57- val runner = MayaAttachToProcessDebugRunner (project, processInfo.pid, mySdkHome , mayaSdk)
57+ val runner = MayaAttachToProcessDebugRunner (project, processInfo.pid, mySdk , mayaSdk)
5858 runner.launch()
5959 }
6060}
@@ -69,18 +69,10 @@ private class MayaAttachGroup : XAttachProcessPresentationGroup {
6969 return mayaPaths[processInfo.pid] ? : processInfo.executableDisplayName
7070 }
7171
72- override fun getProcessDisplayText (project : Project , info : ProcessInfo , userData : UserDataHolder ): String {
73- return getItemDisplayText(project, info, userData)
74- }
75-
7672 override fun getItemIcon (project : Project , processInfo : ProcessInfo , userData : UserDataHolder ): Icon {
7773 return IconLoader .getIcon(" /icons/MayaCharm_ToolWindow.png" , this ::class .java)
7874 }
7975
80- override fun getProcessIcon (project : Project , info : ProcessInfo , userData : UserDataHolder ): Icon {
81- return getItemIcon(project, info, userData)
82- }
83-
8476 override fun getGroupName (): String {
8577 return " Maya"
8678 }
0 commit comments