본문 바로가기

개발환경/이클립스

AST View 플러그인 소개

Homepage : http://www.eclipse.org/jdt/ui/astview/index.php

org.eclipse.jdt.astview - AST 뷰

목적

에디터에 열린 자바파일의 AST(abstract syntax tree)를 보여주기위한 뷰.
텍스트 선택에서 AST 노드로 또는 AST 노드에서 텍스트 선택으로 탐색할 수 있다.
AST 노드와 텍스트 선택의 연결을 보여주고 비교한다.

설치


업데이트 사이트:

Name : Eclipse AST View Updates
URL : http://www.eclipse.org/jdt/ui/update-site

참고 : Help -> Software Updates -> Find and Install... -> Search for new features to install 에서 New Remote Site 를 선택하고 위의 정보를 입력한다.


만약 아직 이클립스 3.4를 사용하고 있지 않다면 위의 옵션을 해제한다. 그러면 자신의 이클립스 버전에 해당하는 버전을 찾을 수 있을 것이다.


수동 설치: AST View Homepage 참조

사용법

  1. AST 뷰를 연다.
    • 메뉴: Window > Show View > Other..., Java > AST View
    • 단축키: Alt+Shift+Q, A
  2. 에디터에서 자바파일을 연다.
  3. 뷰를 채우기위해 'Show AST of active editor' ()를 클릭한다.: 에디터에 열린 파일의 AST를 보여주고 또한 현재 텍스트 선택에 해당하는 요소를 카리킨다.
  4. 활성 에디터를 자동으로 탐지하고 활성 에디터를 선택하도록 'Link with editor' ()를 활성화한다.
  5. 에디터에서 해당하는 요소를 가리키도록 하기위해 AST 노드를 더블클릭한다.
  6. 노드의 확장범위('extended range')를 보기위하여 다시한번 더블클릭한다. 확장범위는 관련된 모든 주석(주석 매퍼 휴리스틱:comment mapper heuristic)이 포함된 범위를 의미한다.
  7. 비교 트레이에 연결을 추가하기위해 연결 컨텍스트 메뉴를 연다.
  8. AST의 원본문서가 변경되었다면 AST를 갱신(update)하기 위해 'Refresh' ()를 사용한다.

AST 뷰 요소

AST 뷰는 다음과 같이 노드를 보여준다.:
AST View

  • AST 노드는 회색으로 보여주고 소스 범위 정보를 포함한다. AST 노드의 자식들은 노드 속성들이다.
  • 노드 속성들은 모두 대문자의 이름을 갖는다. 노드 속성들은 자식노드들의 목록, 자식노드, 원시노드속성(String, int 또는 boolean)을 표현한다.
  • 연결은 파란색으로 표시되며 선택된 연결만 표시된다.

고급 기능

  • 뷰메뉴(삼각형)에서 AST 레벨2와 AST 레벨3 사이를 전환할 수 있다. AST 레벨3은 신규 5.0 언어 생성을 포함한 확장되고 변형된 AST이다 . AST 레벨3은 3.1버전과 그 상위 빌드버전에서만 가능하다는 것을 주의한다.
  • 뷰메뉴에서 연결을 표시하거나 숨기도록 선택할 수 있다.
  • 뷰메뉴에서 'Advance Options'으로 AST를 생성하는 방법을 선택할 수 있다.
  • 연결 컨텍스트 메뉴에서 'Add to Comparison Tray'를 선택할 수 있다. 이것은 연결을 뷰안의 특별한 영역으로 옮긴다. 트리에서 다른 연결을 선택하면 비교 트레이는 선택과 선택한 연결사이의 다양한 관계를 보여준다.

의견 및 요청

  • 소스는 플러그인 아카이브에 포함되어 있으며 또한 CVS를 통해서도 가능하다.:
    Repository: :pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse
    Module: jdt-ui-home/plugins/org.eclipse.jdt.astview
  • 의견은 Martin_Aeschlimann[at]ch.ibm.com

크리스티안 하우저(Christian Hauser)에게 감사하며: 현재 AST 뷰 플러그인은 그의 쭈에리치 코드캠프(Zuerich Code Camp)의 AST 뷰 구현을 기반으로 한다. 정말 고맙다.
마르쿠스 켈러(Markus Keller)는 AST 변경과 더많은 구현에 집중하도록 도움을 주고 있다.