summaryrefslogtreecommitdiff
path: root/plugins/devkit
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/devkit')
-rw-r--r--plugins/devkit/resources/META-INF/plugin.xml1
-rw-r--r--plugins/devkit/src/actions/NewActionDialog.java3
-rw-r--r--plugins/devkit/src/dom/generator/DomGenPanel.java4
-rw-r--r--plugins/devkit/src/inspections/DevKitImplementedAtRuntimeCondition.java32
-rw-r--r--plugins/devkit/src/inspections/DevKitImplicitUsageProvider.java2
-rw-r--r--plugins/devkit/src/run/PluginRunConfiguration.java6
-rw-r--r--plugins/devkit/testData/inspections/implicitUsage/ImplementedAtRuntimeDomElementImpl.java1
-rw-r--r--plugins/devkit/testData/inspections/implicitUsage/ImplementedAtRuntimeJamElementImpl.java1
-rw-r--r--plugins/devkit/testSources/inspections/DevKitImplicitUsageProviderTest.java24
9 files changed, 67 insertions, 7 deletions
diff --git a/plugins/devkit/resources/META-INF/plugin.xml b/plugins/devkit/resources/META-INF/plugin.xml
index 0a9501ebef94..ef3688448fda 100644
--- a/plugins/devkit/resources/META-INF/plugin.xml
+++ b/plugins/devkit/resources/META-INF/plugin.xml
@@ -152,6 +152,7 @@
implementationClass="org.jetbrains.idea.devkit.navigation.DescriptionTypeRelatedItemLineMarkerProvider"/>
<codeInsight.lineMarkerProvider language="JAVA"
implementationClass="org.jetbrains.idea.devkit.navigation.ExtensionPointDeclarationRelatedItemLineMarkerProvider"/>
+ <codeInsight.implementedAtRuntime implementation="org.jetbrains.idea.devkit.inspections.DevKitImplementedAtRuntimeCondition"/>
</extensions>
<project-components>
diff --git a/plugins/devkit/src/actions/NewActionDialog.java b/plugins/devkit/src/actions/NewActionDialog.java
index faa1db563ec2..779929ceb818 100644
--- a/plugins/devkit/src/actions/NewActionDialog.java
+++ b/plugins/devkit/src/actions/NewActionDialog.java
@@ -26,6 +26,7 @@ import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiClass;
+import com.intellij.psi.PsiNameHelper;
import com.intellij.ui.ColoredListCellRenderer;
import com.intellij.ui.ListSpeedSearch;
import com.intellij.ui.SimpleTextAttributes;
@@ -247,7 +248,7 @@ public class NewActionDialog extends DialogWrapper implements ActionData {
setOKActionEnabled(myActionIdEdit.getText().length() > 0 &&
myActionNameEdit.getText().length() > 0 &&
myActionTextEdit.getText().length() > 0 &&
- (!myActionNameEdit.isEditable() || JavaPsiFacade.getInstance(myProject).getNameHelper().isIdentifier(myActionNameEdit.getText())));
+ (!myActionNameEdit.isEditable() || PsiNameHelper.getInstance(myProject).isIdentifier(myActionNameEdit.getText())));
myAnchorBeforeRadio.setEnabled(myActionList.getSelectedValue() != null);
myAnchorAfterRadio.setEnabled(myActionList.getSelectedValue() != null);
diff --git a/plugins/devkit/src/dom/generator/DomGenPanel.java b/plugins/devkit/src/dom/generator/DomGenPanel.java
index e0c21611554b..eaa90acf9e39 100644
--- a/plugins/devkit/src/dom/generator/DomGenPanel.java
+++ b/plugins/devkit/src/dom/generator/DomGenPanel.java
@@ -16,6 +16,7 @@
package org.jetbrains.idea.devkit.dom.generator;
import com.intellij.ide.util.PropertiesComponent;
+import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileChooser.FileTypeDescriptor;
import com.intellij.openapi.project.Project;
@@ -101,7 +102,8 @@ public class DomGenPanel {
}
});
myOutputDir = new TextFieldWithBrowseButton();
- myOutputDir.addBrowseFolderListener("Select Output For Generated Files", "", myProject, FileChooserDescriptorFactory.getDirectoryChooserDescriptor("Output For Generated Files"));
+ FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
+ myOutputDir.addBrowseFolderListener("Select Output Directory For Generated Files", "", myProject, descriptor);
}
public JComponent getComponent() {
diff --git a/plugins/devkit/src/inspections/DevKitImplementedAtRuntimeCondition.java b/plugins/devkit/src/inspections/DevKitImplementedAtRuntimeCondition.java
new file mode 100644
index 000000000000..3c5aff386203
--- /dev/null
+++ b/plugins/devkit/src/inspections/DevKitImplementedAtRuntimeCondition.java
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+package org.jetbrains.idea.devkit.inspections;
+
+import com.intellij.codeInspection.inheritance.ImplementedAtRuntimeCondition;
+import com.intellij.psi.PsiClass;
+import com.intellij.psi.util.InheritanceUtil;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * @author nik
+ */
+public class DevKitImplementedAtRuntimeCondition extends ImplementedAtRuntimeCondition {
+ @Override
+ public boolean isImplementedAtRuntime(@NotNull PsiClass psiClass) {
+ return DevKitImplicitUsageProvider.isDomElementClass(psiClass) ||
+ InheritanceUtil.isInheritor(psiClass, "com.intellij.jam.JamElement");
+ }
+}
diff --git a/plugins/devkit/src/inspections/DevKitImplicitUsageProvider.java b/plugins/devkit/src/inspections/DevKitImplicitUsageProvider.java
index fa87c70ad337..7aeb7a047046 100644
--- a/plugins/devkit/src/inspections/DevKitImplicitUsageProvider.java
+++ b/plugins/devkit/src/inspections/DevKitImplicitUsageProvider.java
@@ -50,7 +50,7 @@ public class DevKitImplicitUsageProvider implements ImplicitUsageProvider {
return false;
}
- private static boolean isDomElementClass(PsiClass psiClass) {
+ static boolean isDomElementClass(PsiClass psiClass) {
if (psiClass.isEnum() ||
psiClass.isAnnotationType() ||
psiClass.hasModifierProperty(PsiModifier.PRIVATE)) {
diff --git a/plugins/devkit/src/run/PluginRunConfiguration.java b/plugins/devkit/src/run/PluginRunConfiguration.java
index ed0764c5581c..2c7361f8f571 100644
--- a/plugins/devkit/src/run/PluginRunConfiguration.java
+++ b/plugins/devkit/src/run/PluginRunConfiguration.java
@@ -163,10 +163,10 @@ public class PluginRunConfiguration extends RunConfigurationBase implements Modu
prefix = PlatformUtils.WEB_PREFIX;
}
else if (buildNumber.startsWith("OC")) {
- prefix = buildNumber.contains("121") ? "CIDR" : PlatformUtils.APPCODE_PREFIX;
+ prefix = PlatformUtils.APPCODE_PREFIX;
}
- else if (buildNumber.startsWith("CP")) {
- prefix = PlatformUtils.CPP_PREFIX;
+ else if (buildNumber.startsWith("CL")) {
+ prefix = PlatformUtils.CLION_PREFIX;
}
else if (buildNumber.startsWith("DB")) {
prefix = PlatformUtils.DBE_PREFIX;
diff --git a/plugins/devkit/testData/inspections/implicitUsage/ImplementedAtRuntimeDomElementImpl.java b/plugins/devkit/testData/inspections/implicitUsage/ImplementedAtRuntimeDomElementImpl.java
new file mode 100644
index 000000000000..eb0409eb7f93
--- /dev/null
+++ b/plugins/devkit/testData/inspections/implicitUsage/ImplementedAtRuntimeDomElementImpl.java
@@ -0,0 +1 @@
+public abstract class ImplementedAtRuntimeDomElementImpl implements com.intellij.util.xml.DomElement {} \ No newline at end of file
diff --git a/plugins/devkit/testData/inspections/implicitUsage/ImplementedAtRuntimeJamElementImpl.java b/plugins/devkit/testData/inspections/implicitUsage/ImplementedAtRuntimeJamElementImpl.java
new file mode 100644
index 000000000000..27dfb2d006fa
--- /dev/null
+++ b/plugins/devkit/testData/inspections/implicitUsage/ImplementedAtRuntimeJamElementImpl.java
@@ -0,0 +1 @@
+public abstract class ImplementedAtRuntimeJamElementImpl implements com.intellij.jam.JamElement {} \ No newline at end of file
diff --git a/plugins/devkit/testSources/inspections/DevKitImplicitUsageProviderTest.java b/plugins/devkit/testSources/inspections/DevKitImplicitUsageProviderTest.java
index bf33c2174159..a7fedaeaa74d 100644
--- a/plugins/devkit/testSources/inspections/DevKitImplicitUsageProviderTest.java
+++ b/plugins/devkit/testSources/inspections/DevKitImplicitUsageProviderTest.java
@@ -20,6 +20,7 @@ import com.intellij.codeInspection.unusedSymbol.UnusedSymbolLocalInspection;
import com.intellij.openapi.application.PluginPathManager;
import com.intellij.testFramework.TestDataPath;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
+import com.siyeh.ig.inheritance.AbstractClassNeverImplementedInspection;
@TestDataPath("$CONTENT_ROOT/testData/inspections/implicitUsage")
public class DevKitImplicitUsageProviderTest extends LightCodeInsightFixtureTestCase {
@@ -37,14 +38,35 @@ public class DevKitImplicitUsageProviderTest extends LightCodeInsightFixtureTest
myFixture.addClass("package com.intellij.util.xml; public interface DomElementVisitor {}");
myFixture.addClass("package com.intellij.util.xml; public interface GenericAttributeValue<T> extends DomElement {}");
- myFixture.enableInspections(new UnusedSymbolLocalInspection(), new UnusedDeclarationInspection());
+ myFixture.addClass("package com.intellij.jam; public interface JamElement {}");
}
public void testImplicitUsagesDomElement() {
+ enableImplicitUsageInspections();
myFixture.testHighlighting("ImplicitUsagesDomElement.java");
}
public void testImplicitUsagesDomElementVisitor() {
+ enableImplicitUsageInspections();
myFixture.testHighlighting("ImplicitUsagesDomElementVisitor.java");
}
+
+ private void enableImplicitUsageInspections() {
+ myFixture.enableInspections(new UnusedSymbolLocalInspection(), new UnusedDeclarationInspection());
+ }
+
+
+ public void testImplementedAtRuntimeDomElementImpl() {
+ enableImplementedAtRuntimeInspections();
+ myFixture.testHighlighting("ImplementedAtRuntimeDomElementImpl.java");
+ }
+
+ public void testImplementedAtRuntimeJamElementImpl() {
+ enableImplementedAtRuntimeInspections();
+ myFixture.testHighlighting("ImplementedAtRuntimeJamElementImpl.java");
+ }
+
+ private void enableImplementedAtRuntimeInspections() {
+ myFixture.enableInspections(new AbstractClassNeverImplementedInspection());
+ }
}