标签: intellij-plugin

如何使用其他插件的扩展点?(Intellij理念)

例如,插件 Intellij Idea TestNG 有扩展点:

<extensionPoints >
    <extensionPoint qualifiedName="com.theoryinpractice.testng.listener" interface="org.testng.IDEATestNGListener"/>
</extensionPoints>
Run Code Online (Sandbox Code Playgroud)

我想按如下方式使用这个扩展点:

<extensions defaultExtensionNs="TestNG-J">
    <com.theoryinpractice.testng.listener implementation="org.example.MyTestNGListener" />
</extensions>

public class MyTestNGListener implements org.testng.IDEATestNGListener {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但这没有用。我究竟做错了什么?

(谷歌翻译,如有错误请见谅)

intellij-idea intellij-plugin

5
推荐指数
1
解决办法
813
查看次数

Intellij Idea scala 插件使用什么 Scala 版本?

我在 scala 枚举上的 java 注释出错。这个 Scala 错误似乎已修复,但 Inteliij Idea 显示错误。那么我如何确保intellij Idea scala插件使用实际的scala版本?

annotations scala intellij-idea intellij-plugin

5
推荐指数
2
解决办法
8602
查看次数

CheckStyle IDEA 使用抑制文件进行自定义检查

我有一个带有自定义检查的 Maven 存储库,我希望所有其他 Maven 存储库都依赖它。我想禁止检查我的一个存储库中某些生成的代码。有两种方法可以设置抑制文件:

  1. 在自定义检查存储库中有抑制文件,然后在自定义检查样式 xml 中指定 SuppressionFilter:

    <module name="SuppressionFilter">
       <property name="file" value="${samedir}/checkstyle_suppressions.xml"
       default="src/main/resources/checkstyle_suppressions.xml"/>
    </module>
    
    Run Code Online (Sandbox Code Playgroud)

然后在我想要运行自定义 checkstyle 的 repo 的 pom.xml 文件的 Maven 插件部分:

    <suppressionsLocation>checkstyle_suppressions.xml</suppressionsLocation>
    <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
Run Code Online (Sandbox Code Playgroud)
  1. 不要将 SuppressionFilter 部分放在自定义 checkstyle xml 中。对于要检查的存储库具有相同的 pom.xml 设置。抑制文件可以放置在要检查的存储库本地。

这两种方法都适用于命令行“mvn clean validate”。但两者都不适用于 Intellij 的 CheckStyle IDEA 插件。Intellij 插件抱怨找不到上述第一种方法的抑制文件。

如果他们不需要的话,我不想强​​迫每个仓库都有一个抑制文件。我想知道是否有一种方法可以使 CheckStyle IDEA 的抑制工作,而不必拥有同一抑制文件的多个副本(自定义检查存储库中 1 个,本地存储库中 1 个)。

谢谢!

checkstyle intellij-plugin

5
推荐指数
1
解决办法
6860
查看次数

Intellij IDEA 插件开发。动作“创建 kotlin 类”

我想为Intellij IDEA创建一个插件。我需要添加一个动作(AnAction),将创建一个class科特林在自定义(不是Java) package。我有两个问题:

  • 如何创建具有所需扩展名的文件?
  • 或者如何在自定义中使用Kotlin class(来自某个基类)创建文件package

intellij-idea intellij-plugin kotlin

5
推荐指数
1
解决办法
560
查看次数

为 IntelliJ IDEA 创建插件。插件与此安装不兼容

我为 IntelliJ IDEA 创建了一个插件,我希望它可以在 Android Studio 和其他基于 IDEA 的产品上运行。

我使用gradle-intellij-plugin 并有这样的设置:

构建.gradle

buildscript {
    ext.kotlin_version = '1.2.10'

    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

plugins {
    id "org.jetbrains.intellij" version "0.2.17"
    id "org.jetbrains.kotlin.jvm" version "1.2.10"
}
group pluginGroup
version pluginVersion

apply plugin: 'org.jetbrains.intellij'
apply plugin: 'java'
apply plugin: 'kotlin'


intellij {
    version 'IC-2017.3'
    plugins 'git4idea'
    pluginName "plugin name"
}

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    //...
    testCompile group: 'junit', name: 'junit', version: '4.12'
} …
Run Code Online (Sandbox Code Playgroud)

plugins intellij-idea intellij-plugin gradle android-studio-3.0

5
推荐指数
1
解决办法
2697
查看次数

SuppressionCommentFilter 不允许作为 Checker 中的子项”

错误:无法解析 Checkstyle 规则文件。SuppressionCommentFilter 不允许作为 Checker 中的子文件 60 年代的文件已被列入黑名单。

注意:我使用的 Checkstyle 版本是 7.1.2。

这是一个看起来完全有效的配置,

<module name="Checker">
  <property name="severity" value="warning" />
  <module name="TreeWalker">
    ...
  </module>
  ...
  <module name="SuppressWarningsFilter" />
  <module name="SuppressionFilter">
    <property name="file" value="${config_loc}/suppressions.xml"/>
  </module>
  <module name="SuppressionCommentFilter">
    <property name="checkC" value="false" />
  </module>
  ...
</module>
Run Code Online (Sandbox Code Playgroud)

suppress-warnings intellij-plugin intellij-14 maven-checkstyle-plugin

5
推荐指数
1
解决办法
3497
查看次数

java.lang.VerifyError: class com.intellij.junit4.JUnit4TestRunnerUtil$5 覆盖最终方法 getRunner.()Lorg/junit/runner/Runner;

从 IntelliJ 运行测试用例时 - 面临这个问题。mvn clean install 工作正常。

以前有人遇到过这个问题吗?

java junit intellij-idea intellij-plugin

5
推荐指数
1
解决办法
2143
查看次数

在Intellij IDEA中,如何在carret旁边显示小下拉窗口?

我是Intellij IDEA插件和Java的新手。我写了我的第一个插件,用于检查carret pos并替换px-> rem。效果很好,但我想更进一步,并制作一个用于字符串操作的新插件,该插件显示一个小的弹出窗口,当按下快捷方式并显示选项时,我可以在其中使用箭头键和Enter /空格键进行选择项目。

与此类似: 在此处输入图片说明

但是我似乎无法在Intellij插件文档中找到类似此类的任何信息。

请注意,我不想在右键单击上添加选项,而是想在插件使用检测到操作时触发此小菜单actionPerformed

java intellij-idea intellij-plugin

5
推荐指数
1
解决办法
91
查看次数

如何为 Android Studio 创建“新项目”插件

我想开发一个出现在新建项目向导中的 Android Studio 插件。

我正在使用 Android Studio

Android Studio 3.4.2
Build #AI-183.6156.11.34.5692245, built on June 27, 2019
JRE: 1.8.0_152-release-1343-b01 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.6
Run Code Online (Sandbox Code Playgroud)

标准 Android Studio 新建项目向导可通过以下方式访问

FILE > NEW > NEW PROJECT... > "CREATE NEW PROJECT" WIZARD
Run Code Online (Sandbox Code Playgroud)

显示的向导有五个选项卡

"Phone and Tablet", "Wear OS", "TV", "Android Auto", and "Android Things"
Run Code Online (Sandbox Code Playgroud)

我无法在“手机和平板电脑”窗口中添加其他项目或添加其他第六个选项卡。

我已经成功地向现有项目添加了额外的“活动”类型。

有可能达到我想要的结果吗?

还是“新项目”向导“锁定”仅供谷歌使用?

android intellij-plugin android-studio

5
推荐指数
1
解决办法
190
查看次数

IntelliJ 插件中具有标准 PsiElement 自动完成功能的文本字段

我正在尝试为我的 IntelliJ 插件创建一个带有自动完成功能的简单文本字段。我认为这应该很简单,但到目前为止我已经陷入了死胡同......

例如,据我所知,这应该有效:

EditorTextField format = new TextFieldWithCompletion(currentEditor.getProject(),
                provider,
                "",
                true,
                true,
                true);
Run Code Online (Sandbox Code Playgroud)

问题是提供者。我希望看到一个不是列表提供者的提供者。我只想显示与编辑器光标中当前行匹配的完成,所以我想要完整的完成对话框,而不仅仅是一个简短的选项列表。

我也看过,TextFieldWithAutoCompletion但它似乎是为硬编码字符串值而不是自由格式完成而设计的。

我只想要标准的 Java/Kotlin 完成。不是自定义列表或类似的东西。我看到了一些关于替换文本字段文档的讨论,但我也无法让它工作。我有一个PsiExpressionCodeFragment并且希望有一个完成提供程序接受它,但我找不到它。

作为参考,我想做的是与断点对话框中的条件语句非常相似的事情。

此处说明的另一种方法是:

JavaCodeFragmentFactory jcff = JavaCodeFragmentFactory.getInstance(currentEditor.getProject());
PsiFile pf = PsiDocumentManager.getInstance(currentEditor.getProject()).getPsiFile(currentEditor.getDocument());
PsiElement psiElement = pf.findElementAt(currentEditor.getCaretModel().getOffset());
PsiExpressionCodeFragment fragment = jcff.createExpressionCodeFragment("", psiElement,null, false);
EditorTextField f = new EditorTextField(PsiDocumentManager.getInstance(currentEditor.getProject()).getDocument(fragment),
        currentEditor.getProject(),
        FileTypes.PLAIN_TEXT, false, true);
Run Code Online (Sandbox Code Playgroud)

这会加载 UI,但无论我输入什么都不会弹出代码完成。

intellij-plugin

5
推荐指数
1
解决办法
268
查看次数