에디트플러스라는 가볍고 훌륭한 프로그램이 있음에도 불구하고
내가 굳이 이클립스를 사용하는 이유라면.
약간의 플러그인놀이와 코드 어시스트내지는 자동완성 기능에 다름 아니다.

이클립스 remote systems explorer(이하 rse) 플러그인은 
원격서버 접속을 가능하게 해주는 기능뿐만 아니라
즉석에서 터미널접속이 가능하다는 점에서 매우 마음에 드는 플러그인 중에 하나다.

그러나 최근 버전의 rse에는 애석하기 그지없는 버그가 있으니
그것은 바로 이클립스의 간지기능중 하나인 코드 어시스트가
rse에서는 발동!하지 않는 다는 점.

그럼 굳이 이클립스를 쓸 필요가 없잖아!...이지만.
그래도 그동안 잘 쓰던 IDE를 쉽게 배신할 수는 없는 법.
3시간여의 삽질끝에 해결책을 찾은 기쁨에 뻘글을 남긴다.
시밤 이건 구글링해도 안나오더라고...안나오는건지 못찾는건지 암튼..

요약하자면. 
[이클립스에서 rse플러그인 사용시 코드 어시스트및 자동완성기능 사용하기]

현재 작업이 php가 많은 관계로 php를 기준으로 정리하겠음.
(당근 pdt부터 깔아야 할 간지)

먼저 버그의 원인을 보자면.
rse는 이클립스의 사용자 workspace에 RemoteSystemsTempFiles라는
작업용 폴더를 만들어 linked source로 지정 후 ftp의 파일을 다운받아
작업후 재업로드하는 형식으로 작동된다.

'RemoteSystemsTempFiles'폴더는 자동생성된 후 설정파일로
xml포맷의 .project라는 파일을 생성하는데 이 설정파일이 만들어질때
코드완성및 validation에 필요한 설정값이 제외된 채 만들어지게 된다.
의도한 바인지 아닌지는 모르겠지만 이게 바로 버그의 원인.

해결책은 (모든 작업의 백업은 기본...)
1. 이클립스 PHP Explorer에서 아무 이름으로 프로젝트를 하나 생성. 예를 들어 phpTemp 라고 하겠음.
2. 열려진 rse 리모트 폴더를 다 닫아주고 이클립스 종료.
3. 로컬상의 이클립스 workspace로 이동.
4. 폴더중에 'RemoteSystemsTempFiles'를 열어 .project파일을 열어서 내용 복사.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>RemoteSystemsTempFiles</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
    </buildSpec>
    <natures>
        <nature>org.eclipse.rse.ui.remoteSystemsTempNature</nature>
    </natures>
</projectDescription>

5. RemoteSystemsTempFiles 폴더 삭제.
6. 이클립스에서 만든 프로젝트인 phpTemp폴더내의 .project파일을 열어서

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>RemoteSystemsTempFiles</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.validation.validationbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.dltk.core.scriptbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.rse.ui.remoteSystemsTempNature</nature>
        <nature>org.eclipse.php.core.PHPNature</nature>
        <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    </natures>
</projectDescription>

빨간색 부분처럼 수정 내지는 추가해준다. php프로젝트이므로
jsp는 약간 다를 수도 있겠지만 구조적으로는 동일하리라 생각함.

7. phpTemp 폴더 이름을 RemoteSystemsTempFiles로 바꾸어 준다.
phpTemp 폴더 안에 있는 다른 하위폴더나 파일은 그대로 유지.
8. 이클립스를 켜고 리모트 서버의 파일을 아무거나 열어서 코드 어시스트가 되는걸 확인.
php Explorer탭을 열면 phpTemp가 사라졌다고 alert창이 뜨는데 걍 확인하면 알아서 폴더 정리해줌.
로그창에 에러가 주루룩 뜰수도 있는데 처음 켰을때 최초 한번만 뜨므로 걍 로그클리어 하고 신경꺼도 됨.
다음에 다시 이클립스를 켰을때는 뜨지 않으니 걱정말자..

요지는 프로젝트폴더처럼 인식시켜줘서 코드 어시스트가 제대로 작동하도록 해주는 것.

어디 대충 검색하면 굴러나오는 정보가 아니라 개삽질끝에 얻어낸.
나름 값진 정보라고 생각해서 찌질하나마 남겨둔다.

 

http://nope.egloos.com/5162205    펌 

'PHP' 카테고리의 다른 글

host 파일 수정  (0) 2012.07.31
PHP 내장 함수  (0) 2012.07.27
PHP 함수 모음  (0) 2012.05.08
정리  (0) 2012.05.04
php cURL  (0) 2012.04.30
블로그 이미지

스마트전

,