퇴근5분전

 이클립스로 자바 개발을 하고 있는데... 

<c:spring bundle="${bundleName}" key="code" /> 

<c:fmt code="code">

이런식으로 멀티랭귀지를 지원한다. 

근데... 이게 properties 파일을 검색해서 어떤 단어를 바꾼건지 ... 일일이 검색?을 해야 한다. 

한두개도 아니고... 검색을....

 기존에 개발하고 계신분들한테 뭔가 다른 방법이 있나 물어봤더니... 그런거 없고 그냥 검색한단다... 

아이고~~~~~~~~~

 

 그래서 일단은 C# 윈폼으로 properties 파일을 읽어다가 검색을 하거나 검색된 키=값 을 위에 포맷으로 만들어주는 프로그램을 만들어 쓰고 있다. 

 

 그러다가 시간이 좀 남길래... 이클립스 플러그인을 깔짝 거려봤다.

기본적인 내용은 모두 확인 했다. 

 

--------------------------

아래 샘플은 2020-06 으로 사용하고 있는 버젼과 맞추었다. 

 

소프트 웨어 다운로드

https://www.eclipse.org/downloads/packages/release

 

해당 년도 버전을 받아서 아래 RCP and RAP 다운로드 하여 압축을 해제.

Eclipse IDE for RCP and RAP Developers

 

# 프로젝트 생성

  -> Create a Plug-in Project 생성

 

 

  • Overview 에서

 

실행하면  Launch an Eclipse application in Debug mode 로 실행해보면… 메뉴가 올라가 있다.

 

Extension 탭에서…

해당 메뉴이다.

 

  • menuContribution 추가.

 

 

  • 새로 추가한 menuContribution 에서 locationURI

popup:#AbstractTextEditorContext?before=additions ( 모든 편집기 컨텍스트 메뉴에 추가 )

 

 > 해당 menuContribute 컨텍스트 메뉴를 New > menu 등록

 

등록된 menu Label Dokebi 등록

 

  • Menu Command 등록.( 위와 같음. )  ::등록한 menu를 선택하고 command를 추가하는 것임. 

commandId [Browser] 버튼 클릭하여 검색 : Demo_TextContextMenu.commands.sampleCommand

 

 

실행하면

 

*** LocationURI 에 지정하면 팝업 메뉴에 사용할 메뉴로 추가 할 수 있다.

popup:org.eclipse.ui.popup.any?after=additions  ( 모든 컨텍스트 메뉴에 추가. )

popup:#CompilationUnitEditorContext?before=additions ( 편집기 컨텍스트 메뉴에 추가 [.java] )

popup:#TextEditorContext?before=additions ( 텍스트파일 컨텍스트 메뉴에 추가 [.txt, .jsp] )

popup:#AbstractTextEditorContext?before=additions ( 모든 편집기 컨텍스트 메뉴에 추가 [.txt, .java] ) 

 

-- jsp가 열린줄 알았으나... 플러그인 디버깅 할때 뜬 이클립스는 jsp를 인식할수 없는 상태로 떠서... 그게 jsp가 되는줄... 

 

//jsp는 아래 문구로 등록.

popup:org.eclipse.jst.jsp.core.jspsource.source.EditorContext?before=additions

 

 

*** 여기에서 선택된 텍스트 가져오기, 설정하기등.... ... 

 

// 편집기에서 선택한 텍스트만 추출 ( 아... 어디서 찾았는데 출처 안적어놨네... )

private ITextSelection getSelection(ITextEditor editor) {

     ISelection selection = editor.getSelectionProvider()

            .getSelection();

     return (ITextSelection) selection;

}

 

private String getSelectedText(ITextEditor editor) {

     return getSelection(editor).getText();

}

 

// 현재 선택된 파일의 프로젝트 정보.

IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();

if (editor instanceof ITextEditor) {

         ITextEditor textEditor = (ITextEditor)editor;

         IEditorInput input = editor.getEditorInput();

         IProject project = input.getAdapter(IProject.class);

         if (project == null) {

               IResource resource = input.getAdapter(IResource.class);

                if (resource != null) {

                   project = resource.getProject();

                }

         }         

}   

 

// 메시

IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);

    MessageDialog.openInformation(

window.getShell(),

"Demo_TextContextMenu",

"Hello, Eclipse world >> " +  "메시.");

 

** 인터페이스간 충돌인지? import가 잘못된건지... 

충돌이 나거나 import안되고 빨간줄 뜨고... 난리도 아님.

플러그인 overview 탭옆에 dependency 탭에서 필요한것은 추가가 필요하다.