반응형
IntelliJ 플러그인 프로젝트 생성하기
프로젝트 생성
- IntelliJ -> File -> New -> IDE Plugin
Action 클래스 생성
- 패키지 우클릭 -> New -> Plugin DevKit -> Action
- ActionId, Class Name, Name 입력 후 Add to Group에서 원하는 액션 그룹을 선택
- OK 버튼 클릭시 해당 패키지에 MenuAction 클래스 생성, src/resources/META-INF/plugin.xml 파일에 해당 액션이 추가되었는지 확인.
- MenuAction 클래스 구현
package com.example.demoplugin; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.ui.Messages; public class MenuAction extends AnAction { @Override public void actionPerformed(AnActionEvent e) { String menu = Messages.showInputDialog("점심 메뉴로 무엇을 먹을까요?", "점심 메뉴 입력", Messages.getQuestionIcon()); Messages.showMessageDialog(menu, "입력", null); } }
Action 실행해보기
- Edit Configurations -> Gradle -> Run Plugin 선택 후 OK 클릭
- Run 클릭하여 실행
- 실행하면 새 IntelliJ 창이 뜨는데, 당황하지 말고 아무 프로젝트나 선택해서 열면 된다. 여기서는 현재 작업중이 demo-plugin 프로젝트를 선택.
- 아무 코드나 열어서 Command + N을 누르면 아래처럼 메뉴가 추가된 것을 확인할 수 있다. (앞에서 MenuAction 클래스 생성시 GenerateGroup으로 선택했고, 해당되는 메뉴는 Command + N이다)
- 나타나는 팝업창에서 입력 후 확인
- 결과 확인
빌드 및 배포하기
빌드하여 jar 파일 만들기
- Build -> Build Project 클릭
- Build -> Buile Module '프로젝트명' 클릭
- build/libs/프로젝트명.jar 파일 생성됐는지 확인
jar 파일을 intellij에 설치
- Settings -> Plugins -> 우측 톱니바퀴 클릭 -> Install Plugin from Disk
- 위에서 생성한 jar 파일을 선택하면 설치 완료
- Command + N 눌러 위에서 추가한 플러그인 메뉴가 동작하는지 확인
기타 예제 코드
파일 읽기
~/README.md
Hello World
MenuAction
public class MenuAction extends AnAction {
@SneakyThrows
@Override
public void actionPerformed(AnActionEvent e) {
Project project = e.getProject();
File readmeFile = new File(project.getBasePath(), "README.md"); // ~/README.md
String readmeText = FileUtils.readFileToString(readmeFile, StandardCharsets.UTF_8);
Messages.showMessageDialog("[내용]\n" + readmeText, "README.md", null);
}
}
파일 쓰기
MenuAction
public class MenuAction extends AnAction {
@SneakyThrows
@Override
public void actionPerformed(AnActionEvent e) {
Project project = e.getProject();
File readmeFile = new File(project.getBasePath(), "README.md"); // ~/README.md
String readmeText = "Hello World";
FileUtils.writeStringToFile(readmeFile, readmeText, StandardCharsets.UTF_8);
Messages.showMessageDialog("[내용]\n" + readmeText, "README.md", null);
}
}
반응형
'Development > IntelliJ' 카테고리의 다른 글
[IntelliJ] Http Client 사용하기 (0) | 2022.08.27 |
---|---|
[IntelliJ] 정규식으로 문자열 치환 (0) | 2019.03.20 |