편집

소스 인사이트는 분석툴이지만 편집도 가능하다. 언어의 문법을 다 알고 있고 프로젝트의 구조까지 파악하고 있어 실시간 도움말까지 꽤 그럴 듯하게 보여준다. 명칭을 입력하면 후보 명칭의 목록을 보여 주고 객체를 입력하면 멤버의 목록과 함수의 인수까지 보여준다.

그러나 소스 인사이트에서 코드를 작성하는 것은 별로 권하고 싶지 않다. 분석툴은 분석까지만 해야지 전문 개발툴과는 확연히 달라 정확한 코드를 작성하기에는 적합하지 않다. 분석 결과를 주석으로 작성하고 기록을 남기는 정도의 편집만 하는 것이 바람직하다고 생각한다.

편집 기능은 일반 개발툴의 편집기와 크게 다르지 않아 메모장 사용하듯이 사용하면 된다. cut, copy, paste 명령으로 클립보드 액션을 처리할 수 있고 undo/redo도 잘 된다. 수정한 코드의 앞 부분에는 노란색 마킹이 표시되어 어디가 바뀌었는지 시각적으로 잘 보여준다. 수정 후 저장하면 노란색 마킹은 사라진다.

기본 편집 기능 외에 몇 가지 편의 기능도 제공한다. Edit/Smart rename 명령은 명칭의 이름을 일괄 치환한다. 변경할 명칭에 캐럿을 가져다 두고 이 명령을 선택하면 새 명칭과 옵션을 물어온다. WinMain 함수의 지역 변수 Message에 대해 이름을 바꿔 보자.

변경할 이름을 Msg로 지정하고 Start 버튼을 누르면 WinMain내의 Message 명칭을 모두 Msg로 바꾸며 변경할 때마다 대화상자로 확인을 거친다. 범위를 인식하고 명칭의 자격까지 본다는 면에서 단순한 문자열 치환과는 다르다. Edit/Special Edit 메뉴는 고급 편집 명령을 제공한다.

Comment Lines 명령은 블록으로 감싼 행의 앞에 일괄적으로 //를 붙여 한꺼번에 주석 처리하거나 푼다. 일부 코드를 잠시 제거할 때 흔히 주석을 사용한다. 들여쓰기에 사용하는 탭과 공백을 변환하고 대소문자를 일괄 변환할 수도 있다.

들여쓰기를 조정할 때는 F9, F10으로 통째로 들여쓰거나 내어쓴다. 블록을 선택해 놓고 Tab, Shift+Tab을 누르는 것과 같되 F9, F10은 블록을 선택해 놓지 않아도 현재행에 대해 동작한다는 점이 다르다.

Edit/Select Block(단축키 Ctrl + -)명령은 현재 캐럿이 위치한 곳의 소속 블록을 선택한다. for 루프 안에서 이 명령을 선택하면 반복 대상 루프가 모두 선택된다. 또는 더 간편하게 블록의 시작, 끝을 나타내는 {, } 문자를 더블클릭하면 반대편 괄호까지의 영역을 선택한다. ( ) 괄호나 [ ] 괄호에 대해서도 물론 적용된다.

이 기능이 별거 아닌거 같지만 코드의 구조를 파악할 때 편리하다. 제어 구조가 복잡하고 길 때는 어디서부터 어디까지가 같은 블록인지 한눈에 알아 보기 쉽지 않은데 블록 전체를 선택해 보면 명확하게 보인다. Alt 키를 누른채 드래그하면 열단위로 선택되며 이 상태로 복사, 삭제 가능하다. 직사각형 형태의 반복되는 코드를 일괄 관리할 수 있어 때로는 시간을 많이 아껴준다.

분석기가 이 정도 편집 기능까지 제공한다는 것은 놀라운 일이다. 하지만 다른 고급 편집기에도 다 있는 것이며 더 전문적이고 강력한 편집기가 얼마든지 널려 있어 여기서 굳이 이런 편집을 할 필요는 없다.