2016년 2월 14일 일요일

(K)Notepad++ 에서 Folding 추가하기, Adding custom Folding to Notepad++(User Defined Language)

1. 작성중인 코드를 접으려고 합니다.
    - 코드를 접고, 적절한 Comment를 적으면 전체를 파악하기 쉽기 때문입니다.
    - 물론 함수를 적절히 만들고, 함수의 이름을 잘 만들고, 구조를 잘 만들면 파악하기 쉽지만 다른 종류의 Option이 있는것은 바람직하다고 생각합니다.
    - 예를 들기 위하여 batch 언어를 선택하였습니다.(문법이 가장 간단해서;)
2. 해당 기능은 Visual Studio 에서는 #pragma region, #pragma endregion 으로 존재 하지만 그 외의 Editor 에서는 지원하지 않습니다.(아는 것이 있으면 알려주세요..)
3. Notepad++ 에서는 사용자가 직접 추가할 수 있습니다.
   * 두 가지 기능을 사용
      - Comment Line Style (주석 줄 스타일)
      - Folding in Comment Style (주석 접기 스타일)

Notepad++ 코드 접기 개요
Notepad++ 의 User Defined Language 로 주석 접기를 추가 하려면 완전 새로운 언어를 만들어서 사용해야 합니다.(혹시 다른 방법이 있으며 알려주세요.)

예를 들면, bat 파일의 경우(가장 문법이 간단하여 선택) bat 파일에서 키워드, 연산자, 문자열, 주석 등등 을 직접 지정해 준 다음 Code Folding 을 추가해 줄 수 있다는 것입니다.

Notepad++ 에서 새로운 User Defined Language 만들기 순서
1. 어떤 언어에 접기를 추가 할 것인지 결정 - batch
2. 해당 언어에서 설정해 줄 것들 나열
    1) 키워드1, 2
    2) 문자열
    3) 연산자
    4) 주석
    5) 문자열변수 등
    6) 숫자
    7) 접기(주석으로)
    8) GOTO에 의한 시작점
    9) 함수 선언 시 함수이름 - 아직 방법 모름
    10) 선언된 함수 사용 시 함수 이름 - 아직 방법 모름

3. 정보 정리
관련 경로: C:\Program Files (x86)\Notepad++ (64bit 인 경우)
    -> Notepad++ 에 이미 정의되어 있는 공개된 정보를 사용하기 위함이며, 해당 언어에 대한 정보가 따로 존재 한다면 그 정보를 사용하시면 됩니다.
    1) 키워드1, 2
        - 참조 1
    2) 문자열
        - '문자열' 및 "문자열" 사용
    3) 연산자
        -  / \ == !==! | @ * > >> < + - * =
    4) 주석
        - ::
    5) 문자열변수 등
        - %변수명%, 혹은 %어떤것
    6) 숫자
        - 기본으로 지정된 숫자
    7) 접기(주석으로)
        - :: 주석 안에 { 으로 열고 } 으로 닫음으로써 접기 적용.
    8) GOTO 에 의한 시작점
        - : 으로 시작
4. Notepad++ 셋팅 화면
    1) 키워드1, 2


    2) 문자열

    3) 연산자

    4) 주석

    5) 문자열변수 등

    6) 숫자

    7) 접기(주석으로)

    8) GOTO 에 의한 시작점

5. 접기에 의한 효과 확인
    5.1 접지 않은 코드
접기 문법 적용 전

    5.2 접은 코드
접기 문법 적용, 접지 않은 상태

접은 상태



참조1
set if else exist errorlevel for in do break call copy chcp cd chdir choice cls country ctty date del erase dir echo exit goto loadfix loadhigh mkdir md move path pause prompt rename ren rmdir rd shift time type ver verify vol com con lpt nul defined not errorlevel cmdextversion BREAK CALL CD CHDIR CLS COPY DEL DIR DATE ECHO ELSE ERASE EXIT FOR GOTO IF MD MKDIR MOVE PATH PAUSE PROMPT RD REN RENAME RMDIR SET TYPE VER VERIFY VOL SHIFT TIME CHCP CHOICE break call cd chdir cls copy del dir date echo else erase exit for goto if md mkdir move path pause prompt rd ren rename rmdir set shift type ver verify vol time chcp choice

ASSOC COLOR ENDLOCAL FTYPE MKLINK POPD PUSHD SETLOCAL START TITLE ARP AT ATTRIB BCDEDIT CACLS CHKDSK CHKNTFS CIPHER CLIP CMD COMP COMPACT CONVERT DEBUG DISKCOMP DISKCOPY DISKPART DOSKEY DRIVERQUERY EXPAND FC FIND FINDSTR FORFILES FORMAT FSUTIL GPRESULT GRAFTABL HELP ICACLS IPCONFIG LABEL MAKECAB MODE MORE NET OPENFILES PING RECOVER REPLACE ROBOCOPY RUNDLL32 SCHTASKS SETX SHUTDOWN SORT SUBST SYSTEMINFO TASKKILL TASKLIST TIMEOUT TREE WHERE WMIC XCOPY assoc color endlocal ftype mklink popd pushd setlocal start title arp at attrib bcdedit cacls chkdsk chkntfs cipher clip cmd comp compact convert debug diskcomp diskcopy diskpart doskey driverquery expand fc find findstr forfiles format fsutil gpresult graftabl help icacls ipconfig label makecab mode more net openfiles ping recover replace robocopy rundll32 schtasks setx shutdown sort subst systeminfo taskkill tasklist timeout tree where wmic xcopy

댓글 없음:

댓글 쓰기