You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2015/10/09 17:09:51 UTC
svn commit: r1707756 - in /sling/trunk/tooling/ide/eclipse-sightly-core:
META-INF/MANIFEST.MF
src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java
Author: rombert
Date: Fri Oct 9 15:09:51 2015
New Revision: 1707756
URL: http://svn.apache.org/viewvc?rev=1707756&view=rev
Log:
SLING-4189 - Add basic code completion for Sightly
Disable the HTML validator when installing the Sightly nature in order
to prevent it from marking Sightly-specific constructs as invalid.
Modified:
sling/trunk/tooling/ide/eclipse-sightly-core/META-INF/MANIFEST.MF
sling/trunk/tooling/ide/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java
Modified: sling/trunk/tooling/ide/eclipse-sightly-core/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-sightly-core/META-INF/MANIFEST.MF?rev=1707756&r1=1707755&r2=1707756&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-sightly-core/META-INF/MANIFEST.MF (original)
+++ sling/trunk/tooling/ide/eclipse-sightly-core/META-INF/MANIFEST.MF Fri Oct 9 15:09:51 2015
@@ -18,7 +18,9 @@ Import-Package: org.eclipse.jface.resour
org.eclipse.wst.sse.core.internal.provisional.text,
org.eclipse.wst.sse.core.internal.validate,
org.eclipse.wst.validation,
+ org.eclipse.wst.validation.internal,
org.eclipse.wst.validation.internal.core,
+ org.eclipse.wst.validation.internal.model,
org.eclipse.wst.validation.internal.provisional.core,
org.eclipse.wst.xml.core.internal.provisional.document,
org.eclipse.wst.xml.core.internal.regions
Modified: sling/trunk/tooling/ide/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java?rev=1707756&r1=1707755&r2=1707756&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java (original)
+++ sling/trunk/tooling/ide/eclipse-sightly-core/src/org/apache/sling/ide/eclipse/sightly/internal/SightlyFacetInstallDelegate.java Fri Oct 9 15:09:51 2015
@@ -21,13 +21,55 @@ import org.eclipse.core.runtime.CoreExce
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.wst.common.project.facet.core.IDelegate;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.validation.Validator;
+import org.eclipse.wst.validation.internal.ValManager;
+import org.eclipse.wst.validation.internal.ValPrefManagerProject;
+import org.eclipse.wst.validation.internal.ValidatorMutable;
+import org.eclipse.wst.validation.internal.model.ProjectPreferences;
+/**
+ * The <tt>SightlyFacetInstallDelegate</tt> ensures that the HTML validator is not active
+ *
+ * <p>Since the Sightly validators delegate to the HTML counterparts and also ensure that
+ * Sightly-specific constructs do not trigger validation problems it is completely safe
+ * to disable the HTML validator</p>
+ */
+@SuppressWarnings("restriction")
public class SightlyFacetInstallDelegate implements IDelegate {
+ private static final String HTML_VALIDATOR_ID = "org.eclipse.wst.html.core.HTMLValidator";
+
@Override
public void execute(IProject project, IProjectFacetVersion version, Object config, IProgressMonitor monitor)
throws CoreException {
+ Validator[] validators = ValManager.getDefault().getValidators(project);
+ ValidatorMutable[] mutis = new ValidatorMutable[validators.length];
+ for ( int i = 0 ; i < validators.length; i++) {
+ mutis[i] = new ValidatorMutable(validators[i]);
+ }
+
+ boolean changed = false;
+ for ( ValidatorMutable validator : mutis ) {
+ if ( HTML_VALIDATOR_ID.equals(validator.getId()) ) {
+ if ( validator.isManualValidation() || validator.isBuildValidation() ) {
+ validator.setBuildValidation(false);
+ validator.setManualValidation(false);
+ changed = true;
+ }
+ }
+ }
+
+ ProjectPreferences projectPreferences = ValManager.getDefault().getProjectPreferences(project);
+ if ( !projectPreferences.getOverride() ) {
+ projectPreferences = new ProjectPreferences(project, true, projectPreferences.getSuspend(), null);
+ }
+
+ if ( changed || !projectPreferences.getOverride() ) {
+ ValPrefManagerProject prefManager = new ValPrefManagerProject(project);
+ prefManager.savePreferences(projectPreferences, mutis);
+ }
+
}
}