오늘날의 IDE는 "싸우는 짐승"만큼 강력하지만 IDE가 아무리 강력하더라도 사용자가 원하는 모든 기능을 제공 할 수는 없으므로 IDE는 일반적으로 개발자가 스스로 확장 할 수있는 API 인터페이스를 제공합니다. Intellij Idea 12의 플러그인 개발을 예로 들어 IDE를 더욱 강화하여 개발자의 요구를 충족시키는 방법을 살펴 보겠습니다.
1. 플러그인 프로젝트를 만듭니다
모듈 SDK에 옵션 SDK가없는 경우 새 SDK를 클릭하여 새 SDK를 추가하고 디렉토리에서 Intellij의 설치 위치를 선택하십시오.
생성 된 플러그인 프로젝트의 구조는 매우 간단하지만 Meta-Inf에는 추가 플러그인 .xml 구성 파일이 있으며 나중에 도입됩니다.
2. 플러그인이 인사하게하십시오
2.1 구성 요소를 추가하십시오
SRC 디렉토리에는 새 대화 상자에 3 개의 구성 요소가 나열된 세 가지 레벨의 세 가지 구성 요소가 있음을 알 수 있습니다 : 응용 프로그램, 프로젝트 및 모듈 구성 요소. 여기서는 응용 프로그램 구성 요소를 예제로 선택하고 팝업 상자에 MyComponent와 같은 이름을 입력 한 다음 구성 요소가 생성됩니다.
그런 다음 MyComponent에 Sayhello 메소드를 추가하십시오. 다른 방법은 당분간 구현되지 않습니다. 소스 코드는 다음과 같습니다.
package com.cdai.plugin.rapidg; import com.intellij.openapi.components.applicationcomponent; import com.intellij.openapi.ui.messages; import org.jetbrains.annotations.notnull;/** * my 구성 요소 : cdai * 날짜 : 13-11-4 * time : 10:08 ampless. ApplicationComponent {public mycomponent () {} public void initcomponent () {// todo : 구성 요소 초기화 로직} public void disposecomponent () {// todo : 삽입 구성 요소 처분 로직} @notnull public string getComponentName () {return "mycomponent"; } public void sayhello () {// 메시지 메시지가 표시된 대화 상자 표시. }} 2.2 액션 추가
이제 플러그인을 사용하는 사용자가 메뉴 또는 기타 방법을 통해 플러그인을 클릭 할 수 있도록 작업을 추가해야합니다.
Action의 주요 작업은 응용 프로그램 및 MyComponent 객체를 만드는 것입니다. 코드는 다음과 같습니다.
package com.cdai.plugin.rapidg; import com.intellij.openapi.actionsystem.anaction; import com.intellij.openapi.ActionSystem.AnActionEvent; import com.intellij.openapi.application.application.application; import com.intellij.openapi.application.applationmanager; 날짜 : 13-11-4 * 시간 : 10:16 AM */Public Class SayHelloAction은 anaction {@override public void actionPerformed (anacapteVent e) {application application = applactmanager.getApplication (); myComponent myComponent = application.getComponent (myComponent.class); mycomponent.sayhello (); }}2.3 구성 파일
실제로 처음 두 단계에서 구성 요소와 작업을 작성하는 동안 Idea는 Meta-Inf/Plugin.xml에 자동으로 등록하는 데 도움이됩니다.
방금 추가 한 응용 프로그램 구성 요소 및 작업은 <plaction-components> 노드 아래에 있으며 Plugin.xml은 다음과 같습니다.
<idea-plugin version = "2"> <id> com.cdai.plugin.rapidg </id> <name> CDAI의 빠른 발전기 플러그인 </name> <버전> 1.0 </version> <vendor email = "[email protected]"http://www.yourcompany.com "> cdai </vendor>> 플러그인의 설명. <br> <bric> 대부분의 HTML 태그가 사용될 수 있습니다 </small>]> </description> <change-notes> <! 설명을위한 http://confluence.jetbrains.net/display/ideadev/build+number+ranges-> <idea-version rect-build = "107.105"/> <!-http://confluence.net/display/ideadev/protoctiblyfituityfituity withytfatibue를 참조하십시오. 다른 제품을 대상으로하는 방법-> <!-모든 제품에서 플러그인을 활성화하는 무결성 <pepends> com.intellij.modules.lang </feptions>-> <plaction-components> <!-여기에 응용 프로그램 구성 요소 추가-> <구현 클래스> com.cdai.plugin.rapidg.mycomponent </componscont> <project-components> <!-여기에 프로젝트 구성 요소를 여기에 추가합니다-> </project-components> <action> <!-여기에 작업 추가-> <action id = "sayhello"text = "say hello!"> <add-to-group group-id = "windowmenu"앵커 = "first"/> </action> </action> <sofaultenstensionns = "addens defaulteStensionns ="-" -> </extensions> </idea-plugin>
3. 실행 및 디버그
실행/디버그 구성 대화 상자를 열고 플러그인 유형을 추가하고 모듈의 클래스 경로를 사용하여 지금 샘플 프로젝트를 선택하십시오.
달리면 새로운 Intellij 아이디어 인스턴스가 시작됩니다. 시작 구성 프로세스를 다시 살펴본 후 플러그인의 이름이 <name>의 값이 플러그인 .xml의 값임을 알 수 있습니다. 방금 개발 한 플러그인 만 선택하고 다른 것들을 무시할 수 있습니다. 이제 Window-> Say Hello!를 통해 플러그인을 트리거 할 수 있으며, 그 효과는 대화 상자가 나타납니다.
흥미롭게도 플러그인이 충돌하면 플러그인 저자에게 문제를보고하면 플러그인 .xml의 다른 설명이 사용자에게 표시됩니다.
4. 플러그인 구성 패널
많은 플러그인에는 설정에 구성 페이지가 있습니다. 이제 플러그인에 구성 페이지를 추가하는 방법을 간략하게 소개하겠습니다.
먼저 MyComponent 클래스를 수정하겠습니다. 주요 변경 사항은 추가 구성 가능한 인터페이스를 구현하는 것입니다. 이 인터페이스에는 CreateEcomponent 메소드가 있습니다. 이 메소드는 스윙 jcomponent 객체를 반환하고 설정에 표시됩니다. 또한 Idea가 제공하는 스윙 디자이너 디자이너를 사용하는 것이 매우 편리합니다. 수정을 피하기 위해 자동으로 생성 된 스타일 및 레이아웃 코드는 (NetBeans와 달리) 미국에서는 보이지 않으므로 최종 코드는 매우 간결합니다.
이것이 최종 효과입니다. 우리가 디자이너에서 디자인 한 패널은 오른쪽에 내장되어 있습니다.
5. 대화 상자가있는 플러그인
일반적인 플러그인은 플러그인의 해당 메뉴 항목을 클릭하고 대화 상자가 팝업되는 것입니다 (예 : 작업 영역에서 클래스 검색, SVN을 제출하기 전에 코드 확인 등). 사실, 그것은 매우 간단합니다. 구현 방법은 먼저 대화 상자를 작성한 다음 스윙 디자이너의 대화 상자에서 제어 레이아웃을 설계하고 작업에 대화 상자를 표시하는 것입니다. 나는 특정 코드를 나열하지 않을 것입니다. 어떤 요구도 나에게 물어보십시오.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.