mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
final (?) attempt to fix DoNotSaveDefaultsTest.testApp (ignored resources)
fix blinking PsiModificationTrackerTest (full save since workspace xml is used)
This commit is contained in:
@@ -425,7 +425,7 @@ public class PsiModificationTrackerTest extends CodeInsightTestCase {
|
||||
|
||||
public void testNoIncrementOnWorkspaceFileChange() {
|
||||
FixtureRuleKt.runInLoadComponentStateMode(myProject, () -> {
|
||||
ProjectKt.getStateStore(myProject).save(new SmartList<>(), false);
|
||||
ProjectKt.getStateStore(myProject).save(new SmartList<>(), true);
|
||||
|
||||
PsiModificationTracker tracker = getTracker();
|
||||
long mc = tracker.getModificationCount();
|
||||
@@ -503,10 +503,10 @@ public class PsiModificationTrackerTest extends CodeInsightTestCase {
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), () -> {
|
||||
TextRange methodRange = anon.getMethods()[0].getTextRange();
|
||||
getEditor().getDocument().deleteString(methodRange.getStartOffset(), methodRange.getEndOffset());
|
||||
|
||||
|
||||
int gooIndex = file.getText().indexOf("goo");
|
||||
getEditor().getDocument().deleteString(gooIndex, gooIndex + 3);
|
||||
|
||||
|
||||
PsiDocumentManager.getInstance(myProject).commitDocument(getEditor().getDocument());
|
||||
});
|
||||
|
||||
@@ -542,7 +542,7 @@ public class PsiModificationTrackerTest extends CodeInsightTestCase {
|
||||
|
||||
PsiUtilCore.ensureValid(method);
|
||||
Arrays.stream(method.findSuperMethods()).forEach(PsiUtilCore::ensureValid);
|
||||
|
||||
|
||||
assertFalse(javaCount == getTracker().getJavaStructureModificationCount());
|
||||
}
|
||||
|
||||
@@ -550,5 +550,4 @@ public class PsiModificationTrackerTest extends CodeInsightTestCase {
|
||||
private PsiModificationTracker getTracker() {
|
||||
return PsiManager.getInstance(getProject()).getModificationTracker();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+8
-20
@@ -1,35 +1,23 @@
|
||||
/*
|
||||
* Copyright 2000-2011 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.intellij.lang.xpath.xslt;
|
||||
|
||||
import com.intellij.javaee.ExternalResourceManagerEx;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import org.intellij.lang.xpath.TestBase;
|
||||
import org.intellij.lang.xpath.xslt.impl.XsltStuffProvider;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Xslt2HighlightingTest extends TestBase {
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
myFixture.enableInspections(XsltStuffProvider.INSPECTION_CLASSES);
|
||||
ApplicationManager.getApplication().runWriteAction(() -> {
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResource("urn:my");
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResource("nsx");
|
||||
});
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("urn:my");
|
||||
list.add("nsx");
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResources(list, getTestRootDisposable());
|
||||
}
|
||||
|
||||
public void testCurrentMode() {
|
||||
|
||||
+105
-117
@@ -1,23 +1,8 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.intellij.lang.xpath.xslt;
|
||||
|
||||
import com.intellij.codeInsight.daemon.impl.analysis.XmlUnusedNamespaceInspection;
|
||||
import com.intellij.javaee.ExternalResourceManagerEx;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
@@ -26,135 +11,138 @@ import com.intellij.util.ArrayUtil;
|
||||
import org.intellij.lang.xpath.TestBase;
|
||||
import org.intellij.lang.xpath.xslt.impl.XsltStuffProvider;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
public class XsltHighlightingTest extends TestBase {
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
myFixture.enableInspections(XsltStuffProvider.INSPECTION_CLASSES);
|
||||
ApplicationManager.getApplication().runWriteAction(() -> ExternalResourceManagerEx.getInstanceEx().addIgnoredResource("urn:my"));
|
||||
}
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
public void xtestBackwardIncludedVariable() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
myFixture.enableInspections(XsltStuffProvider.INSPECTION_CLASSES);
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResources(Collections.singletonList("urn:my"), getTestRootDisposable());
|
||||
}
|
||||
|
||||
public void testUnknownTemplate() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void xtestBackwardIncludedVariable() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testDuplicateTemplate() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testUnknownTemplate() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testUnknownMode() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testDuplicateTemplate() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testUndeclaredParam() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testUnknownMode() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testMissingParam() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testUndeclaredParam() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testUnusedVariable() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testMissingParam() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testDuplicateVariable() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testUnusedVariable() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testNonDuplicateVariable() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testDuplicateVariable() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testShadowedVariable() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testNonDuplicateVariable() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testShadowedVariable2() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testShadowedVariable() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testValidPatterns() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testShadowedVariable2() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testInvalidPattern1() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testValidPatterns() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testInvalidPattern2() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testInvalidPattern1() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testInvalidPattern3() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testInvalidPattern2() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testInvalidPattern4() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testInvalidPattern3() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testInvalidPattern5() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testInvalidPattern4() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testInvalidPattern6() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testInvalidPattern5() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testEmptyExpression() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testInvalidPattern6() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testEmptyAVT() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testEmptyExpression() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testInvalidSingleClosingBrace() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testEmptyAVT() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testEscapedXPathString() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testInvalidSingleClosingBrace() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testXsltFreeze() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testEscapedXPathString() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void testTemplateWithPrefix() {
|
||||
myFixture.enableInspections(XmlUnusedNamespaceInspection.class);
|
||||
doXsltHighlighting();
|
||||
}
|
||||
public void testXsltFreeze() {
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
public void xtestPerformance() {
|
||||
myFixture.configureByFile(getTestFileName() + ".xsl");
|
||||
final long l = runHighlighting();
|
||||
assertTrue("Highlighting took " + l + "ms", l < 6000);
|
||||
}
|
||||
public void testTemplateWithPrefix() {
|
||||
myFixture.enableInspections(XmlUnusedNamespaceInspection.class);
|
||||
doXsltHighlighting();
|
||||
}
|
||||
|
||||
private long runHighlighting() {
|
||||
final Project project = myFixture.getProject();
|
||||
PsiDocumentManager.getInstance(project).commitAllDocuments();
|
||||
public void xtestPerformance() {
|
||||
myFixture.configureByFile(getTestFileName() + ".xsl");
|
||||
final long l = runHighlighting();
|
||||
assertTrue("Highlighting took " + l + "ms", l < 6000);
|
||||
}
|
||||
|
||||
return ReadAction.compute(() -> {
|
||||
final long l = System.currentTimeMillis();
|
||||
CodeInsightTestFixtureImpl.instantiateAndRun(myFixture.getFile(), myFixture.getEditor(), ArrayUtil.EMPTY_INT_ARRAY, false);
|
||||
return System.currentTimeMillis() - l;
|
||||
});
|
||||
}
|
||||
private long runHighlighting() {
|
||||
final Project project = myFixture.getProject();
|
||||
PsiDocumentManager.getInstance(project).commitAllDocuments();
|
||||
|
||||
private void doXsltHighlighting() {
|
||||
final String name = getTestFileName();
|
||||
myFixture.testHighlighting(true, false, false, name + ".xsl");
|
||||
}
|
||||
return ReadAction.compute(() -> {
|
||||
final long l = System.currentTimeMillis();
|
||||
CodeInsightTestFixtureImpl.instantiateAndRun(myFixture.getFile(), myFixture.getEditor(), ArrayUtil.EMPTY_INT_ARRAY, false);
|
||||
return System.currentTimeMillis() - l;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getSubPath() {
|
||||
return "xslt/highlighting";
|
||||
}
|
||||
private void doXsltHighlighting() {
|
||||
final String name = getTestFileName();
|
||||
myFixture.testHighlighting(true, false, false, name + ".xsl");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getSubPath() {
|
||||
return "xslt/highlighting";
|
||||
}
|
||||
}
|
||||
|
||||
+4
-16
@@ -1,18 +1,4 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.codeInsight.daemon.impl.quickfix;
|
||||
|
||||
import com.intellij.javaee.ExternalResourceManagerEx;
|
||||
@@ -23,6 +9,8 @@ import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* @author mike
|
||||
*/
|
||||
@@ -40,6 +28,6 @@ public class IgnoreExtResourceAction extends BaseExtResourceAction {
|
||||
|
||||
@Override
|
||||
protected void doInvoke(@NotNull final PsiFile file, final int offset, @NotNull final String uri, final Editor editor) throws IncorrectOperationException {
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResource(uri);
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResources(Collections.singletonList(uri), null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,4 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.javaee;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -162,10 +148,7 @@ public class ExternalResourceConfigurable extends BaseConfigurable
|
||||
}
|
||||
}
|
||||
|
||||
for (Object myIgnoredUrl : myIgnoredUrls) {
|
||||
String url = (String)myIgnoredUrl;
|
||||
manager.addIgnoredResource(url);
|
||||
}
|
||||
manager.addIgnoredResources(myIgnoredUrls, null);
|
||||
});
|
||||
|
||||
setModified(false);
|
||||
|
||||
@@ -21,14 +21,12 @@ import com.intellij.codeInsight.daemon.impl.HighlightInfo;
|
||||
import com.intellij.codeInspection.*;
|
||||
import com.intellij.codeInspection.htmlInspections.RequiredAttributesInspection;
|
||||
import com.intellij.javaee.ExternalResourceManagerEx;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
@@ -49,6 +47,7 @@ import org.intellij.plugins.testUtil.ResourceUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
||||
public abstract class HighlightingTestBase extends UsefulTestCase implements IdeaCodeInsightTestCase {
|
||||
protected CodeInsightTestFixture myTestFixture;
|
||||
@@ -118,10 +117,7 @@ public abstract class HighlightingTestBase extends UsefulTestCase implements Ide
|
||||
public abstract String getTestDataPath();
|
||||
|
||||
protected void init() {
|
||||
ExternalResourceManagerEx resourceManager = ExternalResourceManagerEx.getInstanceEx();
|
||||
String url = "urn:test:undefined";
|
||||
ApplicationManager.getApplication().runWriteAction(() -> resourceManager.addIgnoredResource(url));
|
||||
Disposer.register(getTestRootDisposable(), () -> ApplicationManager.getApplication().runWriteAction(() -> resourceManager.removeIgnoredResource(url)));
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResources(Collections.singletonList("urn:test:undefined"), getTestRootDisposable());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.intellij.plugins.relaxNG;
|
||||
|
||||
import com.intellij.javaee.ExternalResourceManagerEx;
|
||||
@@ -21,8 +20,10 @@ import com.intellij.javaee.ExternalResourceManagerExImpl;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import org.intellij.plugins.testUtil.CopyFile;
|
||||
|
||||
public class RngXmlHighlightingTest extends HighlightingTestBase {
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RngXmlHighlightingTest extends HighlightingTestBase {
|
||||
@Override
|
||||
public String getTestDataPath() {
|
||||
return "highlighting";
|
||||
@@ -33,7 +34,6 @@ public class RngXmlHighlightingTest extends HighlightingTestBase {
|
||||
super.init();
|
||||
|
||||
ApplicationManager.getApplication().runWriteAction(() -> {
|
||||
final ExternalResourceManagerEx m = ExternalResourceManagerEx.getInstanceEx();
|
||||
ExternalResourceManagerExImpl
|
||||
.addTestResource("urn:test:simple.rng", toAbsolutePath("highlighting/simple.rng"), getTestRootDisposable());
|
||||
ExternalResourceManagerExImpl.addTestResource("urn:test:addressBook", toAbsolutePath("highlighting/rnc/addressbook.rnc"),
|
||||
@@ -48,18 +48,20 @@ public class RngXmlHighlightingTest extends HighlightingTestBase {
|
||||
ExternalResourceManagerExImpl
|
||||
.addTestResource("http://www.w3.org/1999/xhtml", toAbsolutePath("highlighting/html5/xhtml5.rnc"), getTestRootDisposable());
|
||||
|
||||
m.addIgnoredResource("urn:intelliForm:Spaces");
|
||||
m.addIgnoredResource("http://www.w3.org/1999/xlink");
|
||||
m.addIgnoredResource("http://www.w3.org/2000/svg");
|
||||
m.addIgnoredResource("http://www.ascc.net/xml/schematron");
|
||||
m.addIgnoredResource("http://www.w3.org/2000/svg");
|
||||
m.addIgnoredResource("http://www.w3.org/1998/Math/MathML");
|
||||
m.addIgnoredResource("http://www.w3.org/1999/02/22-rdf-syntax-ns#");
|
||||
m.addIgnoredResource("http://nwalsh.com/xmlns/schema-control/");
|
||||
m.addIgnoredResource("http://xml.apache.org/fop/extensions");
|
||||
m.addIgnoredResource("http://www.antennahouse.com/names/XSL/Extensions");
|
||||
m.addIgnoredResource("http://www.renderx.com/XSL/Extensions");
|
||||
m.addIgnoredResource("http://relaxng.org/ns/compatibility/annotations/1.0");
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("urn:intelliForm:Spaces");
|
||||
list.add("http://www.w3.org/1999/xlink");
|
||||
list.add("http://www.w3.org/2000/svg");
|
||||
list.add("http://www.ascc.net/xml/schematron");
|
||||
list.add("http://www.w3.org/2000/svg");
|
||||
list.add("http://www.w3.org/1998/Math/MathML");
|
||||
list.add("http://www.w3.org/1999/02/22-rdf-syntax-ns#");
|
||||
list.add("http://nwalsh.com/xmlns/schema-control/");
|
||||
list.add("http://xml.apache.org/fop/extensions");
|
||||
list.add("http://www.antennahouse.com/names/XSL/Extensions");
|
||||
list.add("http://www.renderx.com/XSL/Extensions");
|
||||
list.add("http://relaxng.org/ns/compatibility/annotations/1.0");
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResources(list, getTestRootDisposable());
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,18 +1,4 @@
|
||||
/*
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.codeInsight.daemon;
|
||||
|
||||
import com.intellij.application.options.XmlSettings;
|
||||
@@ -40,7 +26,6 @@ import com.intellij.openapi.actionSystem.ActionManager;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.IdeActions;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.EditorFactory;
|
||||
@@ -565,26 +550,19 @@ public class XmlHighlightingTest extends DaemonAnalyzerTestCase {
|
||||
}
|
||||
|
||||
public void testExternalValidatorOnValidXmlWithNamespacesNotSetup() throws Exception {
|
||||
final ExternalResourceManagerEx instanceEx = ExternalResourceManagerEx.getInstanceEx();
|
||||
WriteCommandAction.runWriteCommandAction(null, () -> {
|
||||
instanceEx.addIgnoredResource("http://xml.apache.org/axis/wsdd2/");
|
||||
instanceEx.addIgnoredResource("http://xml.apache.org/axis/wsdd2/providers/java");
|
||||
instanceEx.addIgnoredResource("http://soapinterop.org/xsd2");
|
||||
});
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("http://xml.apache.org/axis/wsdd2/");
|
||||
list.add("http://xml.apache.org/axis/wsdd2/providers/java");
|
||||
list.add("http://soapinterop.org/xsd2");
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResources(list, getTestRootDisposable());
|
||||
|
||||
doTest(getFullRelativeTestName(".xml"), true, false);
|
||||
}
|
||||
|
||||
@HighlightingFlags(HighlightingFlag.SkipExternalValidation)
|
||||
public void testExternalValidatorOnValidXmlWithNamespacesNotSetup2() throws Exception {
|
||||
final ExternalResourceManagerEx instanceEx = ExternalResourceManagerEx.getInstanceEx();
|
||||
try {
|
||||
WriteCommandAction.runWriteCommandAction(null, () -> instanceEx.addIgnoredResource(""));
|
||||
|
||||
doTest(getFullRelativeTestName(".xml"), true, false);
|
||||
} finally {
|
||||
WriteCommandAction.runWriteCommandAction(null, () -> instanceEx.removeIgnoredResource(""));
|
||||
}
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResources(Collections.singletonList(""), getTestRootDisposable());
|
||||
doTest(getFullRelativeTestName(".xml"), true, false);
|
||||
}
|
||||
|
||||
public void testXercesMessagesBinding() throws Exception {
|
||||
@@ -1041,10 +1019,8 @@ public class XmlHighlightingTest extends DaemonAnalyzerTestCase {
|
||||
}
|
||||
|
||||
public void testIgnoredNamespaceHighlighting() throws Exception {
|
||||
WriteCommandAction.runWriteCommandAction(null, () -> ExternalResourceManagerEx.getInstanceEx().addIgnoredResource("http://ignored/uri"));
|
||||
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResources(Collections.singletonList("http://ignored/uri"), getTestRootDisposable());
|
||||
doTest();
|
||||
ApplicationManager.getApplication().runWriteAction(() -> ExternalResourceManagerEx.getInstanceEx().removeIgnoredResource("http://ignored/uri"));
|
||||
}
|
||||
|
||||
public void testNonEnumeratedValuesHighlighting() throws Exception {
|
||||
@@ -1614,18 +1590,11 @@ public class XmlHighlightingTest extends DaemonAnalyzerTestCase {
|
||||
BASE_PATH +testName +"TestSchema.xsd"
|
||||
);
|
||||
|
||||
ExternalResourceManagerEx externalResourceManager = ExternalResourceManagerEx.getInstanceEx();
|
||||
try {
|
||||
ApplicationManager.getApplication().runWriteAction(() -> externalResourceManager.addIgnoredResource("oxf:/apps/somefile.xml"));
|
||||
ExternalResourceManagerEx.getInstanceEx().addIgnoredResources(Collections.singletonList("oxf:/apps/somefile.xml"), getTestRootDisposable());
|
||||
doDoTest(true, false, true);
|
||||
|
||||
doDoTest(true, false, true);
|
||||
|
||||
VirtualFile[] includedFiles = FileIncludeManager.getManager(getProject()).getIncludedFiles(getFile().getVirtualFile(), true);
|
||||
assertEquals(1, includedFiles.length);
|
||||
}
|
||||
finally {
|
||||
ApplicationManager.getApplication().runWriteAction(() -> externalResourceManager.removeIgnoredResource("oxf:/apps/somefile.xml"));
|
||||
}
|
||||
VirtualFile[] includedFiles = FileIncludeManager.getManager(getProject()).getIncludedFiles(getFile().getVirtualFile(), true);
|
||||
assertEquals(1, includedFiles.length);
|
||||
}
|
||||
|
||||
public void testComplexRedefine() throws Exception {
|
||||
@@ -1787,11 +1756,9 @@ public class XmlHighlightingTest extends DaemonAnalyzerTestCase {
|
||||
}
|
||||
|
||||
public void testComplexRedefineFromJar() {
|
||||
String[][] urls = null;
|
||||
|
||||
configureByFiles(null,BASE_PATH + getTestName(false) + ".xml", BASE_PATH + "mylib.jar");
|
||||
String path = myFile.getVirtualFile().getParent().getPath() + "/";
|
||||
urls = new String[][] {
|
||||
String[][] urls = new String[][] {
|
||||
{"http://graphml.graphdrawing.org/xmlns",path + "mylib.jar!/graphml.xsd"},
|
||||
{"http://graphml.graphdrawing.org/xmlns/1.0/graphml-structure.xsd",path + "mylib.jar!/graphml-structure.xsd"},
|
||||
{"http://www.w3.org/1999/xlink",path + "mylib.jar!/xlink.xsd"}
|
||||
@@ -2074,7 +2041,7 @@ public class XmlHighlightingTest extends DaemonAnalyzerTestCase {
|
||||
List<WebReference> list = PlatformTestUtil.collectWebReferences(myFile);
|
||||
assertEquals(2, list.size());
|
||||
|
||||
Collections.sort(list, (o1, o2) -> o1.getCanonicalText().length() - o2.getCanonicalText().length());
|
||||
Collections.sort(list, Comparator.comparingInt(o -> o.getCanonicalText().length()));
|
||||
|
||||
assertEquals("https://www.jetbrains.com/ruby/download", list.get(0).getCanonicalText());
|
||||
assertTrue(list.get(0).getElement() instanceof XmlAttributeValue);
|
||||
@@ -2250,7 +2217,11 @@ public class XmlHighlightingTest extends DaemonAnalyzerTestCase {
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
XmlSettings.getInstance().SHOW_XML_ADD_IMPORT_HINTS = old;
|
||||
super.tearDown();
|
||||
try {
|
||||
XmlSettings.getInstance().SHOW_XML_ADD_IMPORT_HINTS = old;
|
||||
}
|
||||
finally {
|
||||
super.tearDown();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,7 @@
|
||||
/*
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.javaee;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -24,6 +11,8 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
@@ -61,6 +50,11 @@ public class CoreExternalResourceManager extends ExternalResourceManagerEx {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addIgnoredResources(@NotNull List<String> urls, @Nullable Disposable disposable) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeIgnoredResource(@NotNull String url) {
|
||||
throw new UnsupportedOperationException();
|
||||
@@ -196,7 +190,7 @@ public class CoreExternalResourceManager extends ExternalResourceManagerEx {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getResourceUrls(@Nullable FileType fileType, @NotNull @NonNls String version, boolean includeStandard) {
|
||||
public String[] getResourceUrls(@Nullable FileType fileType, @Nullable @NonNls String version, boolean includeStandard) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,7 @@
|
||||
/*
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.javaee;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
@@ -22,6 +9,8 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public abstract class ExternalResourceManagerEx extends ExternalResourceManager {
|
||||
@NonNls public static final String STANDARD_SCHEMAS = "/standardSchemas/";
|
||||
|
||||
@@ -46,8 +35,18 @@ public abstract class ExternalResourceManagerEx extends ExternalResourceManager
|
||||
|
||||
public abstract void clearAllResources(Project project);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #addIgnoredResources(List, Disposable)}
|
||||
*/
|
||||
@Deprecated
|
||||
public abstract void addIgnoredResource(@NotNull String url);
|
||||
|
||||
public abstract void addIgnoredResources(@NotNull List<String> urls, @Nullable Disposable disposable);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #addIgnoredResources(List, Disposable)}
|
||||
*/
|
||||
@Deprecated
|
||||
public abstract void removeIgnoredResource(@NotNull String url);
|
||||
|
||||
public abstract boolean isIgnoredResource(@NotNull String url);
|
||||
|
||||
@@ -350,6 +350,47 @@ public class ExternalResourceManagerExImpl extends ExternalResourceManagerEx imp
|
||||
}
|
||||
}
|
||||
|
||||
public void addIgnoredResources(@NotNull List<String> urls, @Nullable Disposable disposable) {
|
||||
Application app = ApplicationManager.getApplication();
|
||||
if (app.isWriteAccessAllowed()) {
|
||||
doAddIgnoredResources(urls, disposable);
|
||||
}
|
||||
else {
|
||||
app.runWriteAction(() -> {
|
||||
doAddIgnoredResources(urls, disposable);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void doAddIgnoredResources(@NotNull List<String> urls, @Nullable Disposable disposable) {
|
||||
long modificationCount = getModificationCount();
|
||||
for (String url : urls) {
|
||||
addIgnoredSilently(url);
|
||||
}
|
||||
|
||||
if (modificationCount != getModificationCount()) {
|
||||
if (disposable != null) {
|
||||
//noinspection CodeBlock2Expr
|
||||
Disposer.register(disposable, () -> {
|
||||
ApplicationManager.getApplication().runWriteAction(() -> {
|
||||
boolean isChanged = false;
|
||||
for (String url : urls) {
|
||||
if (myIgnoredResources.remove(url)) {
|
||||
isChanged = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isChanged) {
|
||||
fireExternalResourceChanged();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
fireExternalResourceChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean addIgnoredSilently(@NotNull String url) {
|
||||
if (myStandardIgnoredResources.contains(url)) {
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user