Source Insight

Source Insight는?

상용 S/W라는 점과 Unicode를 아직 지원하지 않는다(3.5 버전 기준)는 점만 빼면 최고의 소스 분석 및 편집 도구라고 할 수 있다. 그런데, 2009년 6월 이후 업데이트 소식이 없다. 설마 개발 회사가 망해버린 것은 아닐 텐데...

Home Page

Source Insight 관련 Tip 정리

별도 페이지로 정리된 내용 (Symbian 개발 관련 내용 포함)

프로젝트 별로 다른 Token Macro 사용하기

Token Macro는 소스에 삽입되어 있는 특정 macro 문구를 Source Insight가 올바로 해석할 수 있도록 원문으로 풀어서 기술해주는 것이다. Source Insight가 지원하는 token macro 파일은 다음과 같다.

  • My Documents/Source Insight 폴더 아래에 두면 모든 프로젝트에 공통 적용된다.

  • 각 프로젝트의 root 폴더에 tom 파일을 두면 그 프로젝트에 대해 공통 tom 파일보다 우선한다.

Custom Macro Function - 사용자 정의 macro 함수

  1. 적용하고자 하는 프로젝트 폴더의 아래 아무 곳에다 custom macro 함수 파일을 만들고(이름은 상관없고 확장자는 .em), 그곳에 자신이 직접 작성한 함수들을 추가한다.

  2. Source Insight의 Project 메뉴 Add and Remove Project Files에서 macro 함수 파일을 추가해주고, Synchronize 해준다.

  3. 그러면 Options 메뉴의 Key Assignments에서 내가 만든 macro 함수들이 보이게 된다.

Conditional Parsing - define macro 정의 상태에 맞추어 소스 코드 해석

Conditional Parsing이란 #if 혹은 #ifdef 등과 같은 C/C++ macro로 둘러싸인 부분에 대해서, 사용자가 미리 설정해둔 해당 조건의 값을 Source Insight가 참고하여 Active/Inactive 시켜주는 기능이다.

이 설정 값은 Options 메뉴 -> Preferences -> Languages 탭 -> Conditional Parsing 부분에 있는 두 버튼을 이용하여 조작 가능한데, Global Conditions 버튼은 Project에 상관없이 모든 경우에 적용되는 Condition 값을 설정하는데 사용된다. 반대로, Project Specific Conditions 버튼은 현재 Project에만 해당되는 Condition 값을 설정하는데 사용된다.

Custom Commands: Source Links in Output - 명령 실행 후 출력물을 적절히 해석하여 소스에 대한 링크 만들어 주기

  1. Options 메뉴 -> Custom Commands 선택한다.

  2. Add 버튼을 누르고, command 이름을 추가해준다.

    1. 예) "Parse Error Log"

  3. Run 필드에 다음의 command를 입력한다. 아래의 두 가지 형태에서 취향에 따라 선택...

      1. cmd /c type %j\build\error.log -> parsing할 파일을 직접 기술했다.

    1. 또는

      1. cmd /c type %j\build\%1.log -> parsing할 모델명을 입력받는다.

  1. Parse Link in Output 항목에 체크를 해준다.

  2. Pattern 필드에 link 생성을 위한 정규표현식을 입력한다. 이 정규표현식에는 두 개의 그룹(소괄호로 묶인 부분)이 포함되어야 한다. 하나는 File Path이고,나머지 하나는 Line Number이다. 두 개의 그룹 중 앞에 오는 것이 File Path인지, Line Number인지의 여부는 Pattern Cotains 항목에서 지정해줄 수 있다. 아래는 정규표현식의 예이다.

      1. ^\"\.\.\\base\\\.\.\([a-zA-Z.\\].*\)\", line \([0-9][0-9]*\):.*

  1. 만들어진 Custom Command에 대해서 단축키를 지정해주면 더욱 좋다. 단축키 지정은 Options 메뉴 -> Key Assignments에서 해준다.