[evaluation-plugin] LME-66 Make report UI changes configurable

GitOrigin-RevId: a28b4df2f64b5b642a71fdc9eabdc1c79e7dd8dc
This commit is contained in:
Roman Vasiliev
2024-10-17 16:10:04 +00:00
committed by intellij-monorepo-bot
parent 9d6b3f446c
commit d538f003f3
4 changed files with 48 additions and 4 deletions
@@ -5,6 +5,7 @@ const prefix = "ep@"
const LC_KEYS = {
delimiter: prefix + "delimiter"
};
const EXTERNAL_VARIABLES = {}
document.addEventListener("click", function (e) {
@@ -120,6 +121,9 @@ function updatePopup(sessionDiv) {
const lookup = getLookup(sessionDiv)
const popup = document.createElement("DIV")
popup.setAttribute("class", "autocomplete-items")
if (EXTERNAL_VARIABLES["popup.show.under.session"] === "true") {
popup.classList.add("popup-show-under-session")
}
const prefixDiv = document.createElement("DIV")
prefixDiv.setAttribute("style", "background-color: lightgrey;")
const codeElement = document.querySelector('.code');
@@ -292,8 +296,8 @@ function addSuggestions(sessionDiv, popup, lookup) {
p.setAttribute("style", "font-weight: bold;")
}
const presentationText = suggestions[i].presentationText.replace(/</g, '&lt;').replace(/>/g, '&gt;')
p.innerHTML = presentationText
// p.innerHTML = removeCommonIndentFromCodeSnippet(presentationText) // FIXME doesn't work anyway?
p.innerHTML = EXTERNAL_VARIABLES["suggestion.indent.preserve"] === "true" ?
presentationText : removeCommonIndentFromCodeSnippet(presentationText)
suggestionDiv.appendChild(p)
popup.appendChild(suggestionDiv)
}
@@ -555,6 +559,9 @@ function updateMultilinePopup(event) {
const lookup = getLookup(sessionDiv)
const popup = document.createElement("DIV")
popup.setAttribute("class", "autocomplete-items")
if (EXTERNAL_VARIABLES["popup.show.under.session"] === "true") {
popup.classList.add("popup-show-under-session")
}
addMultilineHeaders(popup, showSuggestion)
let context = getMultilineContext(sessionDiv)
@@ -127,10 +127,14 @@ button:focus {
border-bottom: none;
border-top: none;
z-index: 99;
top: 100%;
top: 1.5em;
left: 0;
}
.autocomplete-items.popup-show-under-session {
top: 100%;
}
.autocomplete-items div {
padding: 5px;
cursor: pointer;
@@ -12,7 +12,8 @@ open class BasicFileReportGenerator(
filterName: String,
comparisonFilterName: String,
featuresStorages: List<FeaturesStorage>,
dirs: GeneratorDirectories
dirs: GeneratorDirectories,
private val externalVariables: Map<String, String> = mapOf(),
) : FileReportGenerator(featuresStorages, dirs, filterName, comparisonFilterName) {
override fun getHtml(fileEvaluations: List<FileEvaluationInfo>, resourcePath: String, text: String): String {
@@ -34,6 +35,16 @@ open class BasicFileReportGenerator(
for (resource in scripts){
script { src = resource.destinationPath }
}
script {
unsafe {
raw(
externalVariables
.map { "EXTERNAL_VARIABLES[\"${it.key}\"] = \"${it.value}\";" }
.joinToString("\n")
)
}
}
}
}
@@ -7,7 +7,12 @@ import com.intellij.cce.evaluation.SimpleFileEnvironment
import com.intellij.cce.metric.Metric
import com.intellij.cce.metric.PrecisionMetric
import com.intellij.cce.metric.SessionsCountMetric
import com.intellij.cce.report.BasicFileReportGenerator
import com.intellij.cce.report.FileReportGenerator
import com.intellij.cce.report.GeneratorDirectories
import com.intellij.cce.workspace.Config
import com.intellij.cce.workspace.storages.FeaturesStorage
import com.intellij.cce.workspace.storages.FullLineLogsStorage
class ConflictResolutionFeature : StandaloneFeature<ConflictResolutionStrategy>("conflict-resolution") {
override fun getStrategySerializer(): StrategySerializer<ConflictResolutionStrategy> = ConflictResolutionStrategy.Serializer()
@@ -21,4 +26,21 @@ class ConflictResolutionFeature : StandaloneFeature<ConflictResolutionStrategy>(
SessionsCountMetric(),
PrecisionMetric()
)
override fun getFileReportGenerator(
filterName: String,
comparisonFilterName: String,
featuresStorages: List<FeaturesStorage>,
fullLineStorages: List<FullLineLogsStorage>,
dirs: GeneratorDirectories
): FileReportGenerator = BasicFileReportGenerator(
filterName,
comparisonFilterName,
featuresStorages,
dirs,
externalVariables = mapOf(
"popup.show.under.session" to "true",
"suggestion.indent.preserve" to "true"
)
)
}