From bcfcb6d1c919951a56946e8ed04d4516a7a73993 Mon Sep 17 00:00:00 2001 From: "peter.gromov" Date: Fri, 12 Nov 2010 15:14:32 +0300 Subject: [PATCH 1/5] instantiatable BooleanValueConverter EA-21711 --- .../util/xml/converters/values/BooleanValueConverter.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xml/dom-openapi/src/com/intellij/util/xml/converters/values/BooleanValueConverter.java b/xml/dom-openapi/src/com/intellij/util/xml/converters/values/BooleanValueConverter.java index cc5293155163..a7fa99b038e6 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/converters/values/BooleanValueConverter.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/converters/values/BooleanValueConverter.java @@ -38,6 +38,10 @@ public class BooleanValueConverter extends ResolvingConverter { return new BooleanValueConverter(allowEmpty); } + public BooleanValueConverter() { + this(false); + } + public BooleanValueConverter(final boolean allowEmpty) { myAllowEmpty = allowEmpty; } From 631d8ef09e31b05667d1619842ea6303104e0473 Mon Sep 17 00:00:00 2001 From: "peter.gromov" Date: Fri, 12 Nov 2010 15:16:42 +0300 Subject: [PATCH 2/5] don't search for element with empty name, diagnostics (EA-21710) --- .../lang-api/src/com/intellij/psi/search/PsiSearchRequest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/platform/lang-api/src/com/intellij/psi/search/PsiSearchRequest.java b/platform/lang-api/src/com/intellij/psi/search/PsiSearchRequest.java index 16ccdef9514f..4a0d56fe312b 100644 --- a/platform/lang-api/src/com/intellij/psi/search/PsiSearchRequest.java +++ b/platform/lang-api/src/com/intellij/psi/search/PsiSearchRequest.java @@ -18,6 +18,9 @@ public class PsiSearchRequest { boolean caseSensitive, @NotNull RequestResultProcessor processor) { + if (word.length() == 0) { + throw new IllegalArgumentException("Cannot search for elements with empty text"); + } this.searchScope = searchScope; this.word = word; this.searchContext = searchContext; From b613963c92feb21a3902db07bd2827273cb3d04b Mon Sep 17 00:00:00 2001 From: "peter.gromov" Date: Fri, 12 Nov 2010 15:27:04 +0300 Subject: [PATCH 3/5] early diagnostics for EA-21418 --- .../src/com/intellij/psi/impl/PsiElementFactoryImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java b/java/java-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java index cbdaa33b5f3f..4a4c8a7620ba 100644 --- a/java/java-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java @@ -242,8 +242,11 @@ public class PsiElementFactoryImpl extends PsiJavaParserFacadeImpl implements Ps throw new IncorrectOperationException("Cannot create field with type \"\"."); } final FileElement treeHolder = DummyHolderFactory.createHolder(myManager, null).getTreeElement(); - final CompositeElement treeElement = - getJavaParsingContext(treeHolder).getDeclarationParsing().parseParameterText(type.getCanonicalText() + " " + name); + final String text = type.getCanonicalText() + " " + name; + final CompositeElement treeElement = getJavaParsingContext(treeHolder).getDeclarationParsing().parseParameterText(text); + if (treeElement == null) { + throw new AssertionError("Null element for text = " + text); + } treeHolder.rawAddChildren(treeElement); CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(myManager.getProject()); From 12a40c1b0f244b603154420f15c1d7375da224bb Mon Sep 17 00:00:00 2001 From: "peter.gromov" Date: Fri, 12 Nov 2010 15:46:30 +0300 Subject: [PATCH 4/5] don't let modify gdsl scripts after their initialization (EA-21410) --- .../jetbrains/plugins/groovy/dsl/GroovyDslExecutor.groovy | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/dsl/GroovyDslExecutor.groovy b/plugins/groovy/src/org/jetbrains/plugins/groovy/dsl/GroovyDslExecutor.groovy index 4dfb2112225a..44d7dad25b24 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/dsl/GroovyDslExecutor.groovy +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/dsl/GroovyDslExecutor.groovy @@ -8,9 +8,8 @@ import org.jetbrains.plugins.groovy.dsl.psi.PsiEnhancerCategory import org.jetbrains.plugins.groovy.dsl.toplevel.CompositeContextFilter import org.jetbrains.plugins.groovy.dsl.toplevel.ContextFilter import org.jetbrains.plugins.groovy.dsl.toplevel.GdslMetaClassProperties -import com.intellij.openapi.project.Project -/** + /** * @author ilyas */ @@ -20,6 +19,7 @@ public class GroovyDslExecutor { private final String myFileName; static final String ideaVersion + private boolean locked = false static { def major = ApplicationInfo.instance.majorVersion @@ -52,9 +52,12 @@ public class GroovyDslExecutor { mc.initialize() script.metaClass = mc script.run() + + locked = true } def addClassEnhancer(List cts, Closure toDo) { + assert !locked : 'Contributing to GDSL is only allowed at the top-level of the *.gdsl script' enhancers << Pair.create(CompositeContextFilter.compose(cts, false), toDo) } From 1abc34710e6b05b72c7c8db945a98d556b29f7eb Mon Sep 17 00:00:00 2001 From: "peter.gromov" Date: Fri, 12 Nov 2010 17:14:50 +0300 Subject: [PATCH 5/5] don't show 'Documentation for null' in dynamic DOM (IDEA-60302) --- .../intellij/xml/impl/dom/AbstractDomChildrenDescriptor.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xml/dom-impl/src/com/intellij/xml/impl/dom/AbstractDomChildrenDescriptor.java b/xml/dom-impl/src/com/intellij/xml/impl/dom/AbstractDomChildrenDescriptor.java index 95a2c47d9cbf..b8baa40361a2 100644 --- a/xml/dom-impl/src/com/intellij/xml/impl/dom/AbstractDomChildrenDescriptor.java +++ b/xml/dom-impl/src/com/intellij/xml/impl/dom/AbstractDomChildrenDescriptor.java @@ -115,6 +115,9 @@ public abstract class AbstractDomChildrenDescriptor implements XmlElementDescrip @Nullable public PsiElement getDeclaration() { final PomTarget target = ((CustomDomChildrenDescription)description).getTagNameDescriptor().findDeclaration(finalDomElement); + if (target == description) { + return childTag; + } return target == null ? null : PomService.convertToPsi(childTag.getProject(), target); }