我正在为 IntelliJ Idea 13 开发一个插件。我做了一些更改beforeDocumentSaving并使用document.setText:
public class AppendAction implements ApplicationComponent
{
@Override public void initComponent()
{
MessageBus bus = ApplicationManager.getApplication().getMessageBus();
MessageBusConnection connection = bus.connect();
connection.subscribe(AppTopics.FILE_DOCUMENT_SYNC, new FileDocumentManagerAdapter()
{
@Override public void beforeDocumentSaving(Document document)
{
document.setText(appendSomething(document.getText()));
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用,我唯一的问题是当这个插件运行时,我想撤消更改,我收到以下错误消息:
Cannot Undo
Following files have changes that cannot be undone:
Run Code Online (Sandbox Code Playgroud)
任何Idea?:-)
首先,我的意图是什么。我的项目中有一组 XML 文件。其中一些是分层的。顶部 XML 如下所示(非常简单的示例)
<RootElement>
<Element id=1>
<Element id=2>
<Element id=3>
<RootElement>
Run Code Online (Sandbox Code Playgroud)
该元素本身包含一些其他元素和属性,但与本例无关。
有很多具有这种结构的文件:
<RootElement>
<Element id=1 superId=3>
<Element id=2 superId=3>
<Element id=3 superId=2>
<RootElement>
Run Code Online (Sandbox Code Playgroud)
其中 superID 是根 XML 文件的索引。我想要实现的是一个插件,我将使用它来在这两个文件之间进行简单的导航。
我的想法是创建一种新的语言来扩展 XML 并添加一些额外的功能。只有具有特定名称(2 或 3)的文件才会成为该语言的一部分。
我创建了新语言:
public class MyLanguage extends XMLLanguage {
public static final MyLanguage INSTANCE = new MyLanguage();
protected MyLanguage() {
super(XMLLanguage.INSTANCE,"MyLanguage", new String[]{"text/xml"});
}
}
Run Code Online (Sandbox Code Playgroud)
新文件类型:
public class MyLanguageFileType extends XmlLikeFileType {
public static final MyLanguageFileType INSTANCE = new MyLanguageFileType();
protected MyLanguageFileType() {
super(MyLanguage.INSTANCE);
}
@Override …Run Code Online (Sandbox Code Playgroud) 我的问题很简单,当您阅读标题时,我想要类似于我在 vscode 中找到的 GitLens 的插件。正如您所知,使用 GitLens,您可以轻松看到两次或多次提交之间的区别。我搜索了一下,找到了 GitToolBox,但我也不知道如何安装它,而且我认为这不像 GitLens ......
我想在intellij idea插件开发中阅读来自PsiClass的注释.是否有任何API.我无法通过反射执行此操作,因为psiClass无法转换为java.lang.Class
有没有办法通过插件以编程方式刷新/同步IntelliJ IDEA项目?
我正在开发一个IntelliJ IDEA插件,可以在活动项目中创建一个文件.我想通过插件自动刷新/同步项目,以便用户可以立即看到更改.这在IntelliJ IDEA中是否可行?
我正在开发一个Intellij Idea插件,我想得到一个类的所有字段信息.但我遇到了困难,我无法获得PsiField的泛型类型.如:
private String[] stringsArr;
private List<String> stringList;
private List<BeanLog> beanLogList;
Run Code Online (Sandbox Code Playgroud)
如何从PsiField获取'BeanLog'的PsiClass?
我想为 Intellij IDEA 编写一个插件,该插件应该修改 Java 和 Kotlin 代码。
我用的方法
PsiClass.getMethods()
Run Code Online (Sandbox Code Playgroud)
为了获取 Java 和 Kotlin 类的所有方法。到目前为止一切顺利,所以我使用类似的方法
PsiClass.add(), PsiClass.addAfter(), PsiClass.addBefore()
Run Code Online (Sandbox Code Playgroud)
一旦在 Java 文件上调用它们,它们都可以正常工作,但开始抛出异常
IncorrectOperationException
Run Code Online (Sandbox Code Playgroud)
有一次我在 Kotlin 课上给他们打电话。
我很感激有关如何修改 Kotlin 和 Java 类的任何提示(最好使用相同的方法)。
我正在创建一个自定义插件并使用 plugin.xml 文件中的详细信息:
<idea-version since-build="162.0" until-build="181.*"/>
Run Code Online (Sandbox Code Playgroud)
但是在我使用 gradle-build task 构建插件项目后,我看到最终 jar 中的 plugin.xml 如下。不知何故,我定义的标签被覆盖了。
<idea-version since-build="181.4445" until-build="181.*"/>
Run Code Online (Sandbox Code Playgroud)
我想使用“162.0”使插件在较旧的 IDE 版本中工作。
intellij-plugin ×10
java ×4
annotations ×1
generics ×1
intellij-14 ×1
kotlin ×1
plugins ×1
python ×1