@@ -3,7 +3,6 @@ package com.github.xepozz.php_dump.panel
33import com.github.xepozz.php_dump.actions.CollapseTreeAction
44import com.github.xepozz.php_dump.actions.ExpandTreeAction
55import com.github.xepozz.php_dump.actions.RefreshAction
6- import com.github.xepozz.php_dump.nonBlocking
76import com.github.xepozz.php_dump.services.TokensTreeDumperService
87import com.github.xepozz.php_dump.stubs.token_object.TokensList
98import com.github.xepozz.php_dump.tree.RootNode
@@ -29,7 +28,9 @@ import com.intellij.ui.tree.AsyncTreeModel
2928import com.intellij.ui.tree.StructureTreeModel
3029import com.intellij.ui.treeStructure.Tree
3130import com.intellij.util.ui.tree.TreeUtil
32- import kotlinx.coroutines.runBlocking
31+ import kotlinx.coroutines.CoroutineScope
32+ import kotlinx.coroutines.Dispatchers
33+ import kotlinx.coroutines.launch
3334import java.awt.BorderLayout
3435import java.awt.GridLayout
3536import javax.swing.JPanel
@@ -42,6 +43,7 @@ import javax.swing.tree.TreePath
4243class TokenTreePanel (private val project : Project ) :
4344 SimpleToolWindowPanel (false , false ),
4445 RefreshablePanel , Disposable {
46+ val fileEditorManager = FileEditorManager .getInstance(project)
4547 private val progressBar = JProgressBar ()
4648
4749 private val treeModel = StructureTreeModel (TokensTreeStructure (RootNode (null )), this )
@@ -132,12 +134,12 @@ class TokenTreePanel(private val project: Project) :
132134 }
133135
134136 private fun refreshData () {
135- progressBar.setIndeterminate(true )
136- progressBar.isVisible = true
137- tree.emptyText.text = " Loading..."
137+ CoroutineScope (Dispatchers .IO ).launch {
138+ progressBar.setIndeterminate(true )
139+ progressBar.isVisible = true
140+ tree.emptyText.text = " Loading..."
138141
139-
140- project.nonBlocking({ getViewData() }) { result ->
142+ val result = getViewData()
141143 tree.emptyText.text = " Nothing to show"
142144 rebuildTree(result)
143145
@@ -155,12 +157,12 @@ class TokenTreePanel(private val project: Project) :
155157 TreeUtil .expandAll(tree)
156158 }
157159
158- private fun getViewData (): TokensList {
160+ private suspend fun getViewData (): TokensList {
159161 val result = TokensList ()
160- val editor = FileEditorManager .getInstance(project) .selectedTextEditor ? : return result
162+ val editor = fileEditorManager .selectedTextEditor ? : return result
161163 val virtualFile = editor.virtualFile ? : return result
162164
163- val runBlocking = runBlocking { service.dump(virtualFile) }
165+ val runBlocking = service.dump(virtualFile)
164166// println("result is $runBlocking")
165167
166168 return runBlocking as ? TokensList ? : result
0 commit comments