Skip to content

Commit ac64890

Browse files
committed
feat: add undefined section severity settings
Signed-off-by: azerr <[email protected]>
1 parent f9dc823 commit ac64890

File tree

7 files changed

+77
-2
lines changed

7 files changed

+77
-2
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2025 Red Hat Inc. and others.
3+
*
4+
* This program and the accompanying materials are made available under the
5+
* terms of the Eclipse Public License v. 2.0 which is available at
6+
* http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
7+
* which is available at https://www.apache.org/licenses/LICENSE-2.0.
8+
*
9+
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
10+
*
11+
* Contributors:
12+
* Red Hat Inc. - initial API and implementation
13+
*******************************************************************************/
14+
package com.redhat.devtools.intellij.qute.psi.core.inspections;
15+
16+
import com.redhat.devtools.lsp4ij.inspections.AbstractDelegateInspection;
17+
18+
/**
19+
* Dummy inspection for undefined section tag in Qute templates
20+
*/
21+
public class QuteUndefinedSectionTagInspection extends AbstractDelegateInspection {
22+
public static final String ID = getShortName(QuteUndefinedSectionTagInspection.class.getSimpleName());
23+
}

src/main/java/com/redhat/devtools/intellij/qute/settings/QuteInspectionsInfo.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.intellij.codeInspection.ex.InspectionToolWrapper;
1818
import com.intellij.openapi.project.Project;
1919
import com.intellij.profile.codeInspection.InspectionProfileManager;
20+
import com.redhat.devtools.intellij.qute.psi.core.inspections.QuteUndefinedSectionTagInspection;
2021
import com.redhat.devtools.lsp4ij.features.diagnostics.SeverityMapping;
2122
import com.redhat.devtools.lsp4ij.inspections.AbstractDelegateInspectionWithExclusions;
2223
import com.redhat.devtools.intellij.qute.psi.core.inspections.QuteGlobalInspection;
@@ -37,6 +38,7 @@ public class QuteInspectionsInfo {
3738
private boolean enabled = true;
3839
private DiagnosticSeverity undefinedObjectSeverity = DiagnosticSeverity.Warning;
3940
private DiagnosticSeverity undefinedNamespaceSeverity = DiagnosticSeverity.Warning;
41+
private DiagnosticSeverity undefinedSectionTagSeverity = DiagnosticSeverity.Warning;
4042

4143
public List<String> getExcludedFiles() {
4244
return excludedFiles;
@@ -54,6 +56,7 @@ public static QuteInspectionsInfo getQuteInspectionsInfo(Project project) {
5456
wrapper.enabled = SeverityMapping.getSeverity(QuteGlobalInspection.ID, profile) != null;
5557
wrapper.undefinedObjectSeverity = SeverityMapping.getSeverity(QuteUndefinedObjectInspection.ID, profile);
5658
wrapper.undefinedNamespaceSeverity = SeverityMapping.getSeverity(QuteUndefinedNamespaceInspection.ID, profile);
59+
wrapper.undefinedSectionTagSeverity = SeverityMapping.getSeverity(QuteUndefinedSectionTagInspection.ID, profile);
5760
wrapper.excludedFiles = getExclusions(profile, QuteGlobalInspection.ID, project);
5861
return wrapper;
5962
}
@@ -66,6 +69,10 @@ public DiagnosticSeverity undefinedNamespaceSeverity() {
6669
return undefinedNamespaceSeverity;
6770
}
6871

72+
public DiagnosticSeverity undefinedSectionTagSeverity() {
73+
return undefinedSectionTagSeverity;
74+
}
75+
6976
public boolean enabled() {
7077
return enabled;
7178
}
@@ -85,11 +92,19 @@ public boolean equals(Object o) {
8592
if (this == o) return true;
8693
if (o == null || getClass() != o.getClass()) return false;
8794
QuteInspectionsInfo that = (QuteInspectionsInfo) o;
88-
return enabled == that.enabled && undefinedObjectSeverity == that.undefinedObjectSeverity && undefinedNamespaceSeverity == that.undefinedNamespaceSeverity && Objects.equals(excludedFiles, that.excludedFiles);
95+
return enabled == that.enabled
96+
&& undefinedObjectSeverity == that.undefinedObjectSeverity
97+
&& undefinedNamespaceSeverity == that.undefinedNamespaceSeverity
98+
&& undefinedSectionTagSeverity == that.undefinedSectionTagSeverity
99+
&& Objects.equals(excludedFiles, that.excludedFiles);
89100
}
90101

91102
@Override
92103
public int hashCode() {
93-
return Objects.hash(enabled, undefinedObjectSeverity, undefinedNamespaceSeverity, excludedFiles);
104+
return Objects.hash(enabled,
105+
undefinedObjectSeverity,
106+
undefinedNamespaceSeverity,
107+
undefinedSectionTagSeverity,
108+
excludedFiles);
94109
}
95110
}

src/main/java/com/redhat/devtools/intellij/qute/settings/UserDefinedQuteSettings.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ public Map<String, Object> toSettingsForQuteLS() {
129129
},
130130
"undefinedNamespace": {
131131
"severity": "warning"
132+
},
133+
"undefinedSectionTag": {
134+
"severity": "warning"
132135
}
133136
}
134137
}
@@ -158,6 +161,7 @@ public Map<String, Object> toSettingsForQuteLS() {
158161

159162
validation.put("undefinedObject", getSeverityNode(inspectionsInfo.undefinedObjectSeverity()));
160163
validation.put("undefinedNamespace", getSeverityNode(inspectionsInfo.undefinedNamespaceSeverity()));
164+
validation.put("undefinedSectionTag", getSeverityNode(inspectionsInfo.undefinedSectionTagSeverity()));
161165
return settings;
162166
}
163167

src/main/resources/META-INF/lsp4ij-qute.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,15 @@
9393
enabledByDefault="true"
9494
level="WARNING"
9595
implementationClass="com.redhat.devtools.intellij.qute.psi.core.inspections.QuteUndefinedNamespaceInspection"/>
96+
<localInspection
97+
language="Qute_"
98+
bundle="messages.QuteBundle"
99+
key="qute.templates.validation.undefinedSectionTag"
100+
groupPathKey="qute.inspection.group.name"
101+
groupKey="qute.templates.inspection.group.name"
102+
enabledByDefault="true"
103+
level="WARNING"
104+
implementationClass="com.redhat.devtools.intellij.qute.psi.core.inspections.QuteUndefinedSectionTagInspection"/>
96105
</extensions>
97106

98107
</idea-plugin>

src/main/resources/META-INF/plugin.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
</vendor>
77

88
<change-notes><![CDATA[
9+
<h3>2.2.0</h3>
10+
<ul>
11+
<li>More bug fixes</li>
12+
</ul>
13+
Learn more in the <a href="https://github.com/redhat-developer/intellij-quarkus/milestone/49?closed=1">changelog</a>.
14+
915
<h3>2.1.0</h3>
1016
<ul>
1117
<li>Qute Roq Application support</li>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<html>
2+
<body>
3+
Reports undefined section tag in Qute templates files.
4+
<p></p>
5+
<div style="border-left: 6px solid #e7af18; display: block; padding:5px">
6+
<p style="margin:5px">
7+
&#9888; This inspection is used to configure the <b>Qute support</b> server in <a href="settings://LanguageServers"> Settings | Languages &amp; Frameworks | Language Servers</a>.<br/><br/>
8+
Consequently, some limitations apply:
9+
</p>
10+
<ul>
11+
<li><i>Scope</i>: values are ignored</li>
12+
<li><i>Severity</i>: only <b>Error</b> and <b>(Weak) Warning</b> are respected. Other values mean no errors will be reported</li>
13+
<li><i>Highlighting in Editor</i>: values are ignored</li>
14+
</ul>
15+
</div>
16+
</body>
17+
</html>

src/main/resources/messages/QuteBundle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@ qute.templates.inspection=Validation
3030
qute.templates.inspection.group.name=Templates
3131
qute.templates.validation.undefinedNamespace=Undefined namespaces
3232
qute.templates.validation.undefinedObject=Undefined objects
33+
qute.templates.validation.undefinedSectionTag=Undefined section tag
3334
qute.setting.validation.native.enabled=Enable native image mode support
3435
qute.validation.excluded.options.label=Files excluded from the Qute validation

0 commit comments

Comments
 (0)