== Emacs 구조체나 클래스 맴버 자동완성 하기 == 만약에 헤더 파일에 구조체등(C++, Java 라면 Class 도 마찬가지)을 정의해 두고[[BR]] 프로그래밍 하다가 그 맴버같은거 찾기 애매할때가 있습니다. [[BR]] 이 기능은 '''Smart Completion''' 이나, '''Intellisense''' 라고 불리더군요.[[BR]] Visual Studio 에서 foo. 이렇게 점을 찍으면 맴버들이 좍 나오는걸 보셨을 껍니다.[[BR]] [[BR]] attachment:smart.jpg [[BR]][[BR]] 여기서 쓰이는 elisp은 [http://cedet.sourceforge.net/ CEDET] 입니다.[[BR]] 잘 읽어 보시고 설치하시길 바랍니다. Debian 등에 패키지로 있으니 패키지 설치 하셔도 좋습니다.[[BR]] [[BR]] CEDET 는 Collection of Emacs Development Environment Tools 약자 입니다.[[BR]] 여기에 semantic, cogre, ede 등이 있는데 여기서 이야기 하는 것은 '''semantic''' 입니다.[[BR]] [[BR]] 설치가 잘 됐다면... 쩜(.) 이나 화살표(->) 등을 써서 이제 다음에 맴버를 채워야 하겠죠.[[BR]] 여기서 여러가지 방법이 있습니다.[[BR]] M-x 한다음에[[BR]] semantic-ia-complete-symbol, semantic-ia-complete-tip 등등 다양한 방법으로[[BR]] 구조체의 맴버에 뭐가 들어 있는지 알 수 있지요. 그리고 semantic-idle-completions-mode[[BR]] 라는건, 점찍고(혹은 ->) 하고 기다리면, 가능한 맴버의 리스트들이 뜹니다. 그런데 좀 오래 [[BR]] 기다려야 되더군요 (Visual Studio 에 처럼 바로바로 안뜹니다...) [[BR]] 빠르게 할 수 도 있을텐데 잘 모르겠습니다.[[BR]] [[BR]] 그래서 요점은, M-x '''semantic-complete-analyze-inline''' 입니다.[[BR]] 다른건 어떻던, 이게 제일 믿음직 하더군요. 전 이걸 C-return (콘트롤 엔터) 로 바인딩 해뒀습니다.[[BR]] 화살표나 점 찍고 C-return 누르면 완성 가능한 맴버가 뜹니다.[[BR]] '''위에껀, ''c 만 누르고 tab 누르니까'' 자동 완성이 된 모습입니다.'''[[BR]] 키 바인딩은 취향에 맞게 하시고요, 저 기능과 M-/ (dabbrev-expand) 를 같이 쓰신다면, 한결 수월해질 껍니다 :-) Happy hacking! - [http://maya.jaram.org/wiki BackToHeaven] ---- CategoryEmacs EmacsTinyTips