src-highlight 는 GNU 의 공개용 소프트 웨어 입니다. 주요한 기능으로는 소스파일들의 키워드에 색을 입혀서 HTML 로 생산해 내는 프로그램 입니다.

링크되어 있는 곳에 가보면 유닉스용 이 대부분인데 , 조금 찾다 보면 windows 용 바이너리도 있습니다. 제가 첨부에 링크해 놨으니 편하게 받아서 사용하시면 됩니다.

예를 들면 보통 소스가 다음처럼 보입니다.

#ifndef __FILETEST_H__
#define __FILETEST_H__

#include <cppunit/extensions/HelperMacros.h>

class FileTest : public CPPUNIT_NS::TestFixture
{
  CPPUNIT_TEST_SUITE(FileTest);
  CPPUNIT_TEST (testFileSaveAndLoad);
  CPPUNIT_TEST_SUITE_END();

  void testFileSaveAndLoad()
  {

  }

};

#endif

이를 src-highlite(보통 이렇게 줄여서 씁니다. src-highlight -> src-highlite ) 통해서 사용하면 html 파일이 하나 나오는데


#ifndef
__FILETEST_H__
#define __FILETEST_H__
#include <cppunit/extensions/HelperMacros.h>

class FileTest : public CPPUNIT_NS::TestFixture
{
  CPPUNIT_TEST_SUITE(FileTest);
  CPPUNIT_TEST (testFileSaveAndLoad);
  CPPUNIT_TEST_SUITE_END();


  void testFileSaveAndLoad()
  {

  }


};



#endif

이렇게 이쁘장하게 바껴서 나옵니다.  사용방법은 커맨드 창에 다음과 같이 입력하시면 됩니다.

C:\Program Files\GnuWin32\bin\source-highlight.exe -s cpp -f html --data-dir="C:\Program Files\GnuWin32\share\source-highlight" FILENAME

제꺼에는 Program Files 에 설치를 했습니다. FILENAME 이 변환하고자 하는 CPP 소스 입니다.

지금까지 간단한게 src-highlite 가 무엇인지 살펴 보았습니다. 그러면 다음에는 Emacs 에서 소스를 편집하다가 그것을 즉시 html 로 컨버팅 하는 방법에 대해 알아보겠습니다.

막상 블로그에 소스를 올리다 보니 제가 작성하던 TextEditor 에서 바로 HTML 변환후에 올리고 싶은 욕구가 있었습니다. 그래서 Emacs 에서 src-highlite 를 호출해서 지금 쓰고 있는 파일을 변환하는 방법을 찾아 냈습니다. 다음과 같이 .emacs 에 설정해 주시면 됩니다.

(defun src-highlite () (interactive)
  (call-process "C:\\Program Files\\GnuWin32\\bin\\source-highlight.exe" nil "*Messages*"
                nil "-s" "cpp" "-f" "html" "--data-dir=C:/Program Files/GnuWin32/share/source-highlight" (buffer-file-name)))

간단하게 특징적인 것을 설명하자면 , call-process 는 프로세스를 호출해 주는 elisp 명령어 입니다. 첫번째 인자가 명령어 이지요. source-highlight.exe 의 전체 경로를 주욱 써주고요, "*Messages* 부분은 결과가 출력될 output buffer 입니다. emacs 에서 output 으로 쓰이는 버퍼를 출력 버퍼로 정해주고요. "cpp" 는 지금 변환할 소스가 cpp 소스라는걸 알려주는 것이구요. "html" 은 출력으로 나올 형태를 말하고, 마지막으로 buffer-file-name 은 지금 현재 버퍼가 지정하는 파일의 이름입니다.


편하게 쓰기 위한 단축키도 지정해 주기로 하지요.

(global-set-key "\C-csh" 'src-highlite)

여기까지 src-highlite 의 설명과 emacs 에서 쉽게 호출하는 법을 알아보았습니다.

+ Recent posts