PHP framework 형태의 소스로 작업하는데 Eclipse PDT를 사용한다면,

framework 자체 규약으로 정의된 각종 factory method 때문에 content assist를 사용할 수 없는 경우가 생길 것임.

$modelTypeA = new modelTypeA();
$modelTypeA-> // 여기서 ctrl + space를 누르면 content assist 나타남

// 하지만 만약 이런식으로 매개변수로 클래스 이름의 일부를 넘겨받아 객체를 반환하는 factory method 규약이 있다면
$modelTypeA = $this->getModel('TypeA');
$modelTypeA-> // 여기선 ctrl + space를 눌러도 content assist가 나타나지 않음.




이걸 어떻게 해보기 위해 Eclipse PDT를 확장하기로 결심했고, 삽질을 했고, 

어떻게든 내가 원하는 기능이 동작하도록 만드는데 성공했으므로,

혹시 이런 게 필요한 사람이 있을까 하여 그 결과를 여기에 남김.


참고로 나는 Eclipse plugin 개발은 커녕 Java로 밥 먹고 살아본 적도 없는 사람이므로,

오로지 기능에만 치중했음.

그러므로 Eclipse plugin 개발에 관한 정리된 깊은 내용따윈 없음.


그냥 extension point가 있다면 해당 interface에 맞게 내가 원하는 기능을 쑤셔 넣는다 정도만 이해한 상태로 진행함. (이거 외에 뭐가 더 있겠냐 싶기도 하고...)








Eclipse RCP


우선 Eclipse plugin을 확장하기 위해선,

Eclipse plugin을 개발하기 위한 Eclipse인 Eclipse RCP가 필요함.

https://eclipse.org/downloads/ 로 가서 Eclipse for RCP and Developers를 찾아서 CPU에 맞게 선택하여 다운로드.



다운로드 받은 압축파일을 어딘가 풀고, eclipse.exe를 실행.

앞으로 나올 예제들의 기본 workspace는 C:\workspace로 가정함.












PDT


PDT용 플러그인을 확장하기 위해 PDT도 설치해야 함.

상단메뉴의 Help > Install New Software... 선택.



Work with 를 Luna - http://download.eclipse.org/releases/luna 로 선택.

Programming Languages > PHP Development Tools (PDT) 체크하고 설치.





설치완료 후 restart.











플러그인 제작용 project

이제 제작할 플러그인 project를 세팅.


Eclipse가 재시작 된 후 나오는 Welcome 페이지는 꺼버리고 아래대로 진행.


상단메뉴의 File > New > Plug-in Project 선택.




Project name에 원하는 이름을 입력하고 Next




Finish 버튼을 눌러 새 프로젝트 생성.




이제 플러그인 개발 준비가 완료되었음.



















Posted by bloodguy
,