@@ -19,13 +19,13 @@ import com.intellij.openapi.actionSystem.ex.ActionUtil
1919import com.intellij.openapi.actionSystem.impl.FusAwareAction
2020import com.intellij.openapi.actionSystem.impl.Utils
2121import com.intellij.openapi.application.runReadAction
22+ import com.intellij.openapi.application.ReadAction
2223import com.intellij.openapi.components.service
2324import com.intellij.openapi.fileTypes.FileType
2425import com.intellij.openapi.keymap.Keymap
2526import com.intellij.openapi.project.DumbService
2627import com.intellij.openapi.project.Project
2728import com.intellij.openapi.util.text.StringUtil
28- import com.intellij.psi.PsiDocumentManager
2929import com.intellij.util.TimeoutUtil
3030import it.unimi.dsi.fastutil.objects.Object2LongMaps
3131import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap
@@ -66,7 +66,7 @@ class ActionsCollectorImpl : ActionsCollector() {
6666 ActionsEventLogGroup .ACTION_UPDATED .log(project) {
6767 val info = getPluginInfo(action.javaClass)
6868 val actionId = addActionClass(this , action, info)
69- var language = getInjectedOrFileLanguage(project, dataContext)
69+ var language = DataContextUtils . getInjectedOrFileLanguage(project, dataContext)
7070 if (language == null ) {
7171 language = Language .ANY
7272 }
@@ -151,7 +151,7 @@ class ActionsCollectorImpl : ActionsCollector() {
151151 ActionsEventLogGroup .ACTION_GROUP_EXPANDED .log(project) {
152152 val info = getPluginInfo(action.javaClass)
153153 val size = result?.count { it !is Separator } ? : - 1
154- val language = getInjectedOrFileLanguage(project, dataContext) ? : Language .ANY
154+ val language = DataContextUtils . getInjectedOrFileLanguage(project, dataContext) ? : Language .ANY
155155 addActionClass(this , action, info)
156156 add(EventFields .PluginInfo .with (info))
157157 add(EventFields .Language .with (language))
@@ -299,7 +299,7 @@ class ActionsCollectorImpl : ActionsCollector() {
299299 val stats = Stats (
300300 project = project,
301301 fileLanguage = DataContextUtils .getFileLanguage(context),
302- injectedFileLanguage = getInjectedOrFileLanguage(project, context),
302+ injectedFileLanguage = DataContextUtils . getInjectedOrFileLanguage(project, context),
303303 fileType = DataContextUtils .getFileType(context)
304304 )
305305 ourStats[event] = stats
@@ -349,36 +349,10 @@ class ActionsCollectorImpl : ActionsCollector() {
349349 val dataContext = Utils .getCachedOnlyDataContext(event.dataContext)
350350 val language = DataContextUtils .getFileLanguage(dataContext)
351351 data.add(EventFields .CurrentFile .with (language ? : contextBefore))
352- val injectedLanguage = getInjectedOrFileLanguage(project, dataContext)
352+ val injectedLanguage = DataContextUtils . getInjectedOrFileLanguage(project, dataContext)
353353 data.add(EventFields .Language .with (injectedLanguage ? : injectedContextBefore))
354354 val fileType = DataContextUtils .getFileType(dataContext)
355355 data.add(EventFields .FileType .with (fileType ? : fileTypeBefore))
356356 }
357-
358- /* *
359- * Returns language from [InjectedDataKeys.EDITOR], [InjectedDataKeys.PSI_FILE]
360- * or [CommonDataKeys.PSI_FILE] if there's no information about injected fragment
361- */
362- private fun getInjectedOrFileLanguage (project : Project ? , dataContext : DataContext ): Language ? {
363- val injected = getInjectedLanguage(dataContext, project)
364- return injected ? : DataContextUtils .getFileLanguage(dataContext)
365- }
366-
367- private fun getInjectedLanguage (dataContext : DataContext , project : Project ? ): Language ? {
368- val file = InjectedDataKeys .PSI_FILE .getData(dataContext)
369- if (file != null ) {
370- return file.language
371- }
372- if (project != null ) {
373- val editor = InjectedDataKeys .EDITOR .getData(dataContext)
374- if (editor != null && ! project.isDisposed) {
375- val injectedFile = runReadAction { PsiDocumentManager .getInstance(project).getCachedPsiFile(editor.document) }
376- if (injectedFile != null ) {
377- return injectedFile.language
378- }
379- }
380- }
381- return null
382- }
383357 }
384358}
0 commit comments