Skip to content

Commit 69ac6e6

Browse files
committed
feat: allow mago run with on the fly files
1 parent d735a06 commit 69ac6e6

File tree

5 files changed

+33
-37
lines changed

5 files changed

+33
-37
lines changed

playground/src/good.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
echo 'gooo' . a(2);
4+
5+
function a($f):string
6+
{
7+
return 123;
8+
}
9+
10+
echo 'test';

playground/src/guard.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
# ッッッ
4+
$a = 1 + 111;
5+
echo blabla();
6+
1 + 111;
7+
echo blabla();
8+
1 + 111;
9+
echo blabla();
10+
1 + 111;
11+
echo blabla();
12+
13+
$aa = 12313;

src/main/kotlin/com/github/xepozz/mago/qualityTool/MagoAnnotatorProxy.kt

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@ import com.intellij.codeInspection.InspectionProfile
55
import com.intellij.execution.configurations.ParametersList
66
import com.intellij.openapi.diagnostic.Logger
77
import com.intellij.openapi.project.Project
8-
import com.intellij.psi.PsiFile
98
import com.jetbrains.php.tools.quality.QualityToolAnnotator
109
import com.jetbrains.php.tools.quality.QualityToolAnnotatorInfo
11-
import com.jetbrains.php.tools.quality.QualityToolConfiguration
1210

1311
open class MagoAnnotatorProxy : QualityToolAnnotator<MagoValidationInspection>() {
1412
companion object {
@@ -27,11 +25,12 @@ open class MagoAnnotatorProxy : QualityToolAnnotator<MagoValidationInspection>()
2725
.plus(ParametersList.parse(settings.formatAdditionalParameters))
2826
.apply { println("format options: ${this.joinToString(" ")}") }
2927

30-
fun getAnalyzeOptions(settings: MagoProjectConfiguration, project: Project, filePath: String?) = buildList {
28+
fun getAnalyzeOptions(settings: MagoProjectConfiguration, project: Project, filePath: String) = buildList {
3129
addWorkspace(project)
3230
addConfig(settings)
3331

3432
add("analyze")
33+
add(filePath)
3534
add("--reporting-format=json")
3635
// filePath?.let { add(it) }
3736
}
@@ -56,44 +55,18 @@ open class MagoAnnotatorProxy : QualityToolAnnotator<MagoValidationInspection>()
5655
profile: InspectionProfile?,
5756
project: Project,
5857
): List<String> {
58+
checkNotNull(filePath)
5959
val settings = project.getService(MagoProjectConfiguration::class.java)
6060

6161
return getAnalyzeOptions(settings, project, filePath)
6262
}
6363

64-
override fun createAnnotatorInfo(
65-
file: PsiFile?,
66-
tool: MagoValidationInspection,
67-
inspectionProfile: InspectionProfile,
68-
project: Project,
69-
configuration: QualityToolConfiguration,
70-
isOnTheFly: Boolean,
71-
): QualityToolAnnotatorInfo<MagoValidationInspection> {
72-
if (!isOnTheFly) {
73-
LOG.warn("isOnTheFly is False")
74-
}
75-
76-
println("tool path: ${configuration.toolPath}")
77-
78-
return QualityToolAnnotatorInfo(
79-
file,
80-
tool,
81-
inspectionProfile,
82-
project,
83-
configuration.interpreterId,
84-
configuration.toolPath,
85-
configuration.maxMessagesPerFile,
86-
configuration.timeout,
87-
false
88-
)
89-
}
90-
9164
override fun getQualityToolType() = MagoQualityToolType.INSTANCE
9265

9366
override fun createMessageProcessor(collectedInfo: QualityToolAnnotatorInfo<MagoValidationInspection>) =
9467
MagoMessageProcessor(collectedInfo)
9568

9669
override fun getPairedBatchInspectionShortName() = qualityToolType.inspectionId
9770

98-
override fun runOnTempFiles() = false
71+
override fun runOnTempFiles() = true
9972
}

src/main/kotlin/com/github/xepozz/mago/qualityTool/MagoJsonMessageHandler.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.jetbrains.php.tools.quality.QualityToolMessage
66

77
class MagoJsonMessageHandler {
88
fun parseJson(line: String): List<MagoProblemDescription> {
9-
println("JSON: $line")
9+
// println("JSON: $line")
1010
return JsonParser.parseString(line)
1111
.apply { if (this == null || this.isJsonNull) return emptyList() }
1212
.asJsonObject.get("issues")

src/main/kotlin/com/github/xepozz/mago/qualityTool/MagoMessageProcessor.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,12 @@ class MagoMessageProcessor(private val info: QualityToolAnnotatorInfo<*>) : Qual
4141
// .apply {
4242
// thisLogger<MagoMessageProcessor>().info("files: ${map { it.file }}, current: ${file.virtualFile.canonicalPath}")
4343
// }
44-
.filter {
45-
val currentFilePath = file.virtualFile.canonicalPath ?: return@filter false
46-
44+
// .filter {
45+
// val currentFilePath = file.virtualFile.canonicalPath ?: return@filter false
46+
//
4747
// thisLogger<MagoMessageProcessor>().info("compare ${it.file} ends with $currentFilePath")
48-
it.file.endsWith(currentFilePath)
49-
}
48+
// it.file.endsWith(currentFilePath)
49+
// }
5050
.map { problem ->
5151
QualityToolMessage(
5252
this,

0 commit comments

Comments
 (0)