Tag: intellij plugin

JavaCodeStyleManager.getInstance(project).shortenClassReferences()不起作用

我不能使用JavaCodeStyleManager.getInstance(project).shortenClassReferences(); 使其添加导入语句。 在sourceText有完整的资格类名字符串像这样.. “@ com.google.gson.annotations.Expose \ n@com.google.gson.annotations.SerializedName(\”“+ jsonKey +”\“)” public void generateFiles(PsiDirectory directory, List classDataList) { final Project project = directory.getProject(); WriteCommandAction.runWriteCommandAction(directory.getProject(), (Runnable) () -> { PsiFileFactory factory = PsiFileFactory.getInstance(project); PsiDirectoryFactory directoryFactory = PsiDirectoryFactory.getInstance(directory.getProject()); JavaCodeStyleManager manager = JavaCodeStyleManager.getInstance(project); for (ClassModel classData : classDataList) { classData.packageName = directoryFactory.getQualifiedName(directory, true); String sourceText = generateFileContentForClass(classData); PsiFile classFile = […]

Intellij IDEA中Kotlin项目的自动完成和代码分析非常慢

我们有一个关于IDEA的项目,它由几个中等大小的Java包和一个非常小的Kotlin包(5个文件)组成。 我注意到任何Java软件包的性能都很好,但是在自动完成,代码分析和编译Kotlin软件包的速度上,速度要慢10倍。 自动完成偶尔是非常缓慢的点popover无法加载所有的方法,它不得不加载一些API的增量。 每当我们的开发人员输入一个单词并等待自动完成,大约需要2-5秒才能显示预期的自动完成function。 有时,自动填充function太慢,无法显示任何内容,我们不得不取消单词并重新输入并等待。 在代码分析中出现同样的缓慢。 这显着影响了我的团队的生产力。 从我们的研究看来,这是一个众所周知的长期问题。 这也发生在我们的另一个小项目上。 我想知道我们能做些什么来解决这个问题? 谢谢。 Kotlin插件是最新版本:1.1.3-release-IJ2017.2-2 Intellij也是最新版本,2017年2.1(建立于2017年7月31日)

修改一个Kotlin类

我想为Intellij IDEA编写一个插件来修改Java和Kotlin代码。 我使用的方法 PsiClass.getMethods() 以获得Java和Kotlin类的所有方法。 到目前为止好,那么我使用类似的方法 PsiClass.add(), PsiClass.addAfter(), PsiClass.addBefore() 一旦它们被调用到Java文件上,它们都可以正常工作,但是却开始抛出一个exception IncorrectOperationException 一旦我把他们叫做Kotlin课堂。 我很感激任何提示,我可以修改Kotlin和Java类(最好使用相同的方法)。

使Intellij Idea插件与Kotlin文件一起工作

我已经创建了这个非常简单的Intellij Idea插件 ,它可以折叠一些引用expression式。 它适用于Java文件,但对Kotlin不起作用。 这里是来源: https : //github.com/nodes-android/nstack-translation-folding 。 我将在这里包括重要的部分: plugin.xml中 com.intellij.modules.all com.nodes.folding.TranslationFoldingBuilder TranslationFoldingBuilder.kt class TranslationFoldingBuilder : FoldingBuilderEx() { override fun buildFoldRegions(root: PsiElement, document: Document, quick: Boolean): Array { if (root !is PsiJavaFile) { return FoldingDescriptor.EMPTY } val descriptors = ArrayList() // Get all the reference expressions in this Java file val referenceExpressions = PsiTreeUtil.findChildrenOfType(root, […]

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

我想为Intellij IDEA创建一个插件。 我需要添加一个动作( AnAction ),它将在一个自定义package在Kotlin中创建一个class (不是Java)。 我有两个问题: 如何创建具有所需扩展名的文件? 或者如何在自定义package使用Kotlin class (从某个基类)创建文件?

如何在对话框中显示IntelliJ JSON编辑器?

我想在Kotlin和Java开发的插件的对话框中显示下面的一种编辑器。 我尝试了下面的代码片段 editorTextField.setEnabled(true); editorTextField.setOneLineMode(false); editorTextField.setFileType(new JsonFileType()); 有人可以指出如何实现这一目标吗? 特别是我需要的行号,JSON语法突出显示和代码折叠我可以在这里看到所有的代码规范。 请帮助我学习如何在插件中使用它们。 JSON编辑器:

IntelliJ IDEA插件开发库缺少GSON

我正在使用新的IDEA版本(2017.3)构建旧的IntelliJ IDEA插件,并给出警告: Warning:Kotlin: Classpath entry points to a non-existent location: /home/ice1000/IDE/idea-IC-172.3544.35/lib/gson-2.5.jar 和错误: Error:(4, 19) Kotlin: Unresolved reference: gson Error:(29, 22) Kotlin: Unresolved reference: Gson Error:(48, 24) Kotlin: Unresolved reference: Gson 似乎GSON库被删除,但我的插件在新版本中运行良好。 但是我现在无法构建我的插件。 有没有解决办法?

Intellij Idea插件:什么方法调用来解决Kotlin参考

我在Java和Kotlin文件中为Kotlin编写了一个Intellij插件。 以下代码适用于Java文件: val node: ASTNode …. val referencedFieldElement = node.psi.reference!!.resolve() 但是它不适用于Kotlin文件,因为没有resolve()方法调用,node.psi.reference返回null。 你如何解决Kotlin的参考? 另外我有一个PsiElement Kotlin参考。 我如何解决它的价值? 这里是一些代码: class KotlinFoldingBuilder : FoldingBuilderEx() { override fun buildFoldRegions(root: PsiElement, document: Document, quick: Boolean): Array { …. } override fun getPlaceholderText(node: ASTNode): String? { val referencedFieldElement = node.psi.reference!!.resolve() return referencedFieldElement } override fun isCollapsedByDefault(node: ASTNode): Boolean { return true } […]

如何在IntelliJ插件中“注册”一个新的模块类型?

我是IntelliJ插件开发的初学者,但是我想让我的插件在“新建项目”/“新建模块”窗口中注册一个新的模块类型。 我已经通过插件开发人员的文档搜索,但无法找到有用的东西。 我还查看了像Kotlin和Scala这样的现有插件,它们也添加了新的模块类型,但我无法弄清楚如何在上面提到的对话框中显示完成的模块类型。 我需要在plugin.xml文件中更改什么? 我已经添加了扩展并为ModuleType,ModuleBuilder和ModuleConfigurationExtensionProvider创建了java类,但是这不会改变任何东西。 我希望你能提前帮助我,谢谢。

Intellij IDEA中Kotlin项目的自动完成和代码分析非常慢

我们有一个关于IDEA的项目,它由几个中等大小的Java包和一个非常小的Kotlin包(5个文件)组成。 我注意到任何Java软件包的性能都很好,但是在自动完成,代码分析和编译Kotlin软件包的速度上,速度要慢10倍。 自动完成偶尔是非常缓慢的点popover无法加载所有的方法,它不得不加载一些API的增量。 每当我们的开发人员输入一个单词并等待自动完成,大约需要2-5秒才能显示预期的自动完成功能。 有时,自动填充功能太慢,无法显示任何内容,我们不得不取消单词并重新输入并等待。 在代码分析中出现同样的缓慢。 这显着影响了我的团队的生产力。 从我们的研究看来,这是一个众所周知的长期问题。 这也发生在我们的另一个小项目上。 我想知道我们能做些什么来解决这个问题? 谢谢。 Kotlin插件是最新版本:1.1.3-release-IJ2017.2-2 Intellij也是最新版本,2017年2.1(建立于2017年7月31日)