C언어를 위한 Code Editor가 있긴 한걸까.(Source Insight 너 말고..)

C코드를 사용할 일이 많아 주로 Source Insight를 사용하는데, 툴에 더 이상 trend를 반영하는 업데이트가 없어보인다. (업데이트가 없진 않다. 근데 Major 업데이트라는게 win8 compatibility지원….하고 끝이다…;;) 버젼관리 서비스와의 연동이라든지 스니펫 기능, 특히 매크로 언어의 부실등이 다른 IDE를 찾게 만드는 계기가 되었다. 사실 매크로 언어만 제대로 잘 되어 있었더라면 이것저것 만들어서 사용했겠지만 약간 이라도 고급 기능을 만들어 사용할려고하다보면 에러도 없이 동작안하는 경우가 종종있다.

중점적으로 원하던 기능
Search(Symbol, Type, Reference)가 지원되며 큰 프로젝트에서 빨라야하고. 정확해야함.(Source Insight에서 지원하는 정도의 속도까지 원하고 있음)

이외에 필요한 기능
svn연동. 플러그인 플랫폼, 매크로 언어 지원, 유니코드 지원등.

※중점적으로 원하던 기능이 지원되고나면 순차적으로 지원하는 소소한 기능들을 살펴보았고 서치가 잘 안된다든가 기본적인 기능에서 날 만족시키지 못하면 이외의 기능따위는 살펴보지 않았음

<Eclipse CDT>

막강한 기능. 이미 IDE가 아닌 범용 소프트웨어 플랫폼으로 진화한 녀석이라 기능면에서는 나무랄데가 없음. 특히 플러그인으로 원하는 기능을 찾아 설치하여 사용할 수 있게한 Market기능으로 무한대의 확장성을 보장. 즉 원하는건 다 된다.

하.지.만

태생이 범용을 타겟으로 만들어진 플랫폼이라 아무리 C언어 관련 기능으로 플랫폼을 최소화 시켜 CDT라는 이름으로 만들어 놓았다고해서 그 덩치가 어디 가는건 아니다. 또한 OOP로 만들어진 프로그램이고 그쪽에서 활성화된 프로젝트이다보니 C언어 쪽 지원이 부실하다는 느낌이 든다.

1. Indexing하는데 시간이 오래걸림. (설정에서 pre define된 symbol이 추가되면 다시 indexing하는데 시간이 오래걸림)
2. pre-processor parsing시 conditional parsing이 잘 되지 않아 #ifdef로 처리된 코드를 inactive로 처리하는 경우가 있음.
3. 20000줄 정도의 파일 열었을 때 scalability옵션 사용 안하면 symbol이나 type찾아가는게 매우 느림.

예전에 비해 컴퓨팅 파워가 비약적으로 높아져 그나마 좀 가벼워진 느낌이지만 소스인사이트 만큼의 날렵함과 가벼움은 아직까지 기대하기 어려운듯.

<Code::Block>
Symbol찾는데 시간이 오래걸리고 종종 프로그램이 죽어버림(x_x)

<Bluefish>
HTML등 markup language전용
C언어 symbol찾기 안됨

<CodeLite>
대용량 project를 import하면 뭘 하지 않아도 툴자체가 매우 느려짐.

<Understand>
기본적인 source browsing기능은 나쁘지 않으나
SVN, Plug-in등 기타 기능 부족. 이럴바엔 source insight를 쓰겠다.

<vim+ctags+find+cscope>
vim이 손에 익기도 하고 아예 모든 에디터를 이걸로 바꾸자! 라고해서 한동안 좀 구성해서 써봤으나.
이 역시 프로젝트 덩치가 커지면 처음 vim 열 때 cscope읽어오는 시간이 꽤 걸리고 Symbol search도 시간이 오래걸린다.
cscope파일을 잘라 덩치를 줄이고…하는 등의 노력도 있는 모양이지만 general하게 적용하기에는 무리.
그래도 역시 프로그래머를 위한 에디터라서 그런지 이래저래 코딩에 편리한 플러그인들이 나를 자꾸 유혹한다.
그래서 이 조합에 아쉬움이 제일크다…ㅠㅠ

<Slickedit>
symbol table을 만드는 성능도 나쁘지 않고 검색시 검색결과에서 또 검색하거나 filter등을 만들 수 있는등 검색에 꽤 편리한 부분이 많이 있다.

하지만 심볼에서 ctrl+click으로 심볼로 이동 불가. 언제 다 찾고 언제 눌러서 찾아가남…

<Opengrok>
Tomcat서버 필요.(jsp로 만들어짐). 서버에서 코드 변경시마다 symbol table을 지속적으로 만들어주는 형태인듯. 검색시 결과 보여주는 시간도 나쁘지 않고 웹 인터페이스라서 확장성도 나쁘지 않을듯 하지만 개인적으로 사용하기에는 무리. 서버 구성하는것 까지만 해도 큰 무리는 아니지만 Code를 Import하고 심볼 파싱하고 하기 까지의 시간이 너무 길다. 여러개의 프로젝트를 추가하고 넣고 뺴고 하는등 개인이 동적으로 (light)하게 관리하기에는 덩치가 좀 크다.

 

결론

결국 Source Insight로 돌아왔다…-_-;
C언어를 위한 (특히 큰 프로젝트를 위한) Code Editor가 이렇게 없나…라는 생각과 Source Insight가 꽤나 잘 만든 에디터라는 생각이 교차함.결국 현재의 구성은

– 프로젝트에 관련된 코드를 review하거나 수정할 때는 Source Insight에서 메인으로 작업
– 버젼관리는 탐색기등과 연동하여 아이콘으로 볼 수 있고 command연동이 가능한 유틸을 설치하여 작업(tortoiseSVN이나 perforce등…뭐 버젼관리는 버젼관리만 따로하는 툴에서 작업하는게 더 편할수도 있다.)
– 단순 editing이나 반복적인 edit등은 탐색기에서 바로가기로 mapping하여 GVIM을 열어 사용.

※ 덧붙임 팁으로 Source Insight에서 Sync시 툴이 죽는다면 imported source중 사이즈가 10MB등 큰 사이즈의 파일이 있어서 그런 경우가 있다. 이럴 땐 사이즈로 정렬해서 너무 큰 파일들을 프로젝트에서 빼고 다시 sync하거나 rebuild하면 됨.(제조사에서 수정해줬으면 하는 부분이지만…초장에도 썼듯이 기능 관련해서는 개발이 더이상 진행안되는것 같다는….ㅠㅠ)

transpine

생각이 세상을 바꿀 수 있다고 믿습니다. 생각하는 힘을 기릅시다.

You may also like...

%d bloggers like this: