diff --git a/src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/annotators/InvalidSectionHeaderNameAnnotator.kt b/src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/annotators/InvalidSectionHeaderNameAnnotator.kt index 753ddaa..0438645 100644 --- a/src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/annotators/InvalidSectionHeaderNameAnnotator.kt +++ b/src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/annotators/InvalidSectionHeaderNameAnnotator.kt @@ -4,7 +4,7 @@ import com.intellij.lang.annotation.AnnotationHolder import com.intellij.lang.annotation.Annotator import com.intellij.lang.annotation.HighlightSeverity import com.intellij.psi.PsiElement -import net.sjrx.intellij.plugins.systemdunitfiles.intentions.EnablePodmanQuadletSupportQuickFix +import net.sjrx.intellij.plugins.systemdunitfiles.intentions.EnablePodmanQuadletSupportIntention import net.sjrx.intellij.plugins.systemdunitfiles.psi.UnitFileSectionType import net.sjrx.intellij.plugins.systemdunitfiles.semanticdata.SemanticDataRepository import net.sjrx.intellij.plugins.systemdunitfiles.settings.shouldSuggestPodmanSupport @@ -43,7 +43,7 @@ class InvalidSectionHeaderNameAnnotator : Annotator { val annotation = holder.newAnnotation(HighlightSeverity.ERROR, errorString).range(element.getFirstChild()) if (shouldSuggestPodmanSupport(element.containingFile)) { - annotation.withFix(EnablePodmanQuadletSupportQuickFix()) + annotation.withFix(EnablePodmanQuadletSupportIntention()) } annotation.create() diff --git a/src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/intentions/EnablePodmanQuadletSupportQuickFix.kt b/src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/intentions/EnablePodmanQuadletSupportQuickFix.kt index 3ca11c8..7f632ef 100644 --- a/src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/intentions/EnablePodmanQuadletSupportQuickFix.kt +++ b/src/main/kotlin/net/sjrx/intellij/plugins/systemdunitfiles/intentions/EnablePodmanQuadletSupportQuickFix.kt @@ -10,7 +10,30 @@ import com.intellij.psi.PsiFile import com.intellij.ui.EditorNotifications import net.sjrx.intellij.plugins.systemdunitfiles.settings.PodmanQuadletSettings -class EnablePodmanQuadletSupportQuickFix : LocalQuickFix, IntentionAction { +private fun enablePodmanSupport(project: Project) { + PodmanQuadletSettings.getInstance(project).state.enabled = true + EditorNotifications.getInstance(project).updateAllNotifications() + DaemonCodeAnalyzer.getInstance(project).restart() +} + +/** + * LocalQuickFix for use with inspections (ProblemsHolder.registerProblem). + */ +class EnablePodmanQuadletSupportQuickFix : LocalQuickFix { + + override fun getFamilyName(): String = "Enable Podman Quadlet support (experimental)" + + override fun startInWriteAction(): Boolean = false + + override fun applyFix(project: Project, descriptor: ProblemDescriptor) { + enablePodmanSupport(project) + } +} + +/** + * IntentionAction for use with annotators (AnnotationBuilder.withFix). + */ +class EnablePodmanQuadletSupportIntention : IntentionAction { override fun getFamilyName(): String = "Enable Podman Quadlet support (experimental)" @@ -23,14 +46,4 @@ class EnablePodmanQuadletSupportQuickFix : LocalQuickFix, IntentionAction { override fun invoke(project: Project, editor: Editor?, file: PsiFile?) { enablePodmanSupport(project) } - - override fun applyFix(project: Project, descriptor: ProblemDescriptor) { - enablePodmanSupport(project) - } - - private fun enablePodmanSupport(project: Project) { - PodmanQuadletSettings.getInstance(project).state.enabled = true - EditorNotifications.getInstance(project).updateAllNotifications() - DaemonCodeAnalyzer.getInstance(project).restart() - } }