Freewind @ Thoughtworks scala java javascript dart 工具 编程实践 月结 math python english [comments admin] [feed]

(2014-09-27) 写Idea Plugin时,如何让它在某个项目打开的时候做些事?

广告: 云梯:翻墙vpn (省10元) 土行孙:科研用户翻墙http proxy (有优惠)

比如输出一个Hello world?

plugin.xml

<project-components>
    <component>
        <implementation-class>com.thoughtworks.pli.intellij.remotepair.RemotePairProjectComponent</implementation-class>
    </component>
</project-components>

RemotePairProjectComponent.scala

package com.thoughtworks.pli.intellij.remotepair

import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.fileEditor.FileEditorManagerAdapter
import com.intellij.openapi.vfs.VirtualFile
import org.jetbrains.annotations.NotNull
import com.intellij.util.messages.MessageBusConnection
import com.intellij.openapi.fileEditor.FileEditorManagerListener
import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.project.Project

class RemotePairProjectComponent(project: Project) extends ProjectComponent {

  override def initComponent() {
    System.out.println("##### RemotePairProjectComponent.initComponent")
    System.out.println("## project: " + project)
  }

  override def disposeComponent() {
  }

  override def getComponentName: String = "RemotePairProjectComponent"

  override def projectOpened() {
    System.out.println("########## projectOpened: Hello world!")
  }

  override def projectClosed() {
  }

}

运行

运行该插件,在打开的新idea中,打开一个新项目,则会在console中输出:

## project: Project '/Users/freewind/IdeaProjects/test' test
########## projectOpened
comments powered by Disqus