AT-225 Review fixes. Wrapping of span execution logic in current context

GitOrigin-RevId: 307d7a593c89a183a3930b747bd55a79a772698d
This commit is contained in:
Alexey Kryuchkov
2023-05-12 16:09:04 +04:00
committed by intellij-monorepo-bot
parent 228d5515ff
commit 20ce36e036
3 changed files with 23 additions and 13 deletions

View File

@@ -5,10 +5,12 @@ import com.intellij.core.JavaPsiBundle.message
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.project.guessProjectDir
import com.intellij.openapi.ui.playback.PlaybackContext
import com.intellij.platform.diagnostic.telemetry.impl.useWithScope
import com.intellij.psi.JavaDirectoryService
import com.intellij.psi.impl.file.PsiJavaDirectoryFactory
import com.jetbrains.performancePlugin.PerformanceTestSpan
import com.jetbrains.performancePlugin.commands.PerformanceCommandCoroutineAdapter
import io.opentelemetry.context.Context
/**
* Command to add Java file to project
@@ -29,7 +31,7 @@ class CreateJavaFileCommand(text: String, line: Int) : PerformanceCommandCorouti
}
override suspend fun doExecute(context: PlaybackContext) {
val (fileName, filePath, fileType) = extractCommandArgument(PREFIX).replace("\\s","").split(",")
val (fileName, filePath, fileType) = extractCommandArgument(PREFIX).replace("\\s", "").split(",")
val directory = PsiJavaDirectoryFactory
.getInstance(context.project)
@@ -40,13 +42,14 @@ class CreateJavaFileCommand(text: String, line: Int) : PerformanceCommandCorouti
val templateName = POSSIBLE_FILE_TYPES[fileType.lowercase()]
if (templateName == null) throw RuntimeException("File type must be one of '${POSSIBLE_FILE_TYPES.keys}'")
val span = PerformanceTestSpan.TRACER.spanBuilder(NAME).startSpan()
ApplicationManager.getApplication().invokeAndWait {
ApplicationManager.getApplication().getService(JavaDirectoryService::class.java)
.createClass(directory, fileName, templateName, true)
}
span.end()
ApplicationManager.getApplication().invokeAndWait(Context.current().wrap(Runnable {
PerformanceTestSpan.TRACER.spanBuilder(NAME).useWithScope {
ApplicationManager.getApplication().getService(JavaDirectoryService::class.java)
.createClass(directory, fileName, templateName, true)
}
})
)
}
override fun getName(): String {

View File

@@ -23,5 +23,7 @@
<orderEntry type="module" module-name="intellij.java" />
<orderEntry type="module" module-name="kotlin.base.resources" />
<orderEntry type="module" module-name="kotlin.base.util" />
<orderEntry type="module" module-name="intellij.platform.diagnostic.telemetry" />
<orderEntry type="module" module-name="intellij.platform.diagnostic.telemetry.impl" />
</component>
</module>

View File

@@ -7,9 +7,12 @@ import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.project.guessProjectDir
import com.intellij.openapi.ui.playback.PlaybackContext
import com.intellij.openapi.vfs.findFileOrDirectory
import com.intellij.platform.diagnostic.telemetry.impl.useWithScope
import com.intellij.psi.impl.PsiManagerImpl
import com.intellij.psi.impl.file.PsiDirectoryImpl
import com.jetbrains.performancePlugin.PerformanceTestSpan
import com.jetbrains.performancePlugin.commands.PerformanceCommandCoroutineAdapter
import io.opentelemetry.context.Context
/**
* Command to add Java file to project
@@ -45,11 +48,13 @@ class CreateKotlinFileCommand(text: String, line: Int) : PerformanceCommandCorou
if (templateName == null) throw RuntimeException("File type must be one of '${POSSIBLE_FILE_TYPES.keys}'")
val template = FileTemplateManager.getInstance(directory.project).getInternalTemplate(templateName)
val span = startSpan(NAME)
ApplicationManager.getApplication().invokeAndWait {
CreateFileFromTemplateAction.createFileFromTemplate(fileName, template, directory, null, true)
}
span.end()
ApplicationManager.getApplication().invokeAndWait(Context.current().wrap(Runnable {
PerformanceTestSpan.TRACER.spanBuilder(NAME).useWithScope {
CreateFileFromTemplateAction
.createFileFromTemplate(fileName, template, directory, null, true)
}
})
)
}
override fun getName(): String {