※ 이 문서는 뭐 그냥 하면 되지. ()에서 인쇄하였으며,
저작권은 해당 블로그 운영자에게 있습니다.

Autoit syntax script for Google Code Syntax Highlighter

/Autoit/AutoIt :: 2008. 5. 23. 04:40

Autoit syntax script for Google Code Syntax Highlighter

2009. 1. 10 수정
[Autoit] - Google SyntaxHighlighter용 AutoIt 구문강조 파일 두번째

2008. 5. 28 19:50 수정

- Function, Keyword, UDFs : AutoIt 3.2.12.0으로 업데이트
- Function, Keyword, UDFs 목록 생성하는 코드 업데이트(au3.keywords.properties을 이용하여 모든 UDFs 목록 생성 가능.)

2008. 5. 24 17:50 수정

- UDFs : WinAPI Management, Security Management 함수 추가
- Keyword : EndWhile -> WEnd
- SyntaxHighlighter.css 수정

 

스크립트 언어를 구글의 구문강조 기능을 이용해서 나타내는 블로그가 많이 있습니다.

하지만 Google Code Syntax Highlighter는 Autoit을 지원하지 않아서 스크립트 파일을 직접 만들었습니다.

사실 직접 만든 것은 아니고, 미리 만들어져 있는 다른 언어들(Sql이나 php 같은)에서 필요한 부분을 잘 골라다 열심히 짜깁기한 결과 어느정도 쓸만한 파일이 만들어졌습니다.

현재 제가 사용중인 Autoit 3. 2. 10. 0 기준으로 만들었습니다.

정규표현식이나 스크립트를 잘 모르기 때문에 얼마나 잘 작동할런지는 확신할 수도 없고, 혹시 문제가 생기더라도 수정은 할 수 없으니, 그 점은 양해해주시기 바랍니다.

autoit.css 파일은 Scite4autoit의 기본색을 기준으로 다시 만든 것으로 오토잇에만 적용됩니다.

Code Highlighter 1.51

티스토리에 적용, 사용하기 : bluenlive : Code Highlighter 더 쉽게 사용하기

Autoit만 사용할 경우

첨부파일에서 SyntaxHighlighter.css, shCore.js, autoit.css, shBrushAutoIt.js을 티스토리 - 스킨 - 직접 올리기로 업로드 합니다.

<link href="./images/autoit.css" type=text/css rel=stylesheet></link>  
<link href="./images/SyntaxHighlighter.css" type=text/css rel=stylesheet></link>
<script language="javascript" src="./images/shCore.js"></script>
<script language="javascript" src="./images/shBrushAutoIt.js"></script>
<script language=javascript>
dp.SyntaxHighlighter.ClipboardSwf = './images/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>

위 코드를 스킨 - Html/CSS 편집 - skin.html 에서 </body> 태그 위에 붙여넣으시면 됩니다.

문제.

  1. 연산자와 괄호나 엠퍼센드 같은 기호는 구문강조가 되지 않습니다. 업데이트된 버전에서는 연산자와 기호도 구문강조가 됩니다.
  2. Send의 {enter}같은 문자 역시 구문강조가 되지 않습니다. 업데이트된 버전에서는 Send의 키들도 구문강조가 됩니다.

첨부파일에 포함된 function list.au3는 함수와 사용자 정의 함수의 목록을 만드는 코드입니다.

오토잇 버전이 다르면 함수의 추가/삭제가 있을 수 있기 때문에 만든 겁니다.

오토잇의 예제 파일들이 있는 폴더의 파일 목록을 바탕으로 만들기 때문에 예제 파일이 없는 winapi 관련 UDF같은 함수는 목록을 만들지 못합니다. au3.keywords.properties파일을 이용해서 만들기 때문에 모든 명령어의 목록을 만들 수 있습니다.

#NoTrayIcon
#include <File.au3>
Dim $aFile
Dim $aKeyword[8] = ['AutoIt Version', 'functions', 'udfs', 'keywords', 'macros', 'preprocessor', 'special', 'sendkeys']
$sText = ''
$a = 0
$iflag = 1 ; 기본, 2-한 줄에 하나
 
$sKeywordFile = @ProgramFilesDir & '\AutoIt3\SciTE\properties\au3.keywords.properties'
_FileReadToArray($sKeywordFile, $aFile)
 
For $i = 1 To $aFile[0]
    For $iKeywrod = 1 To UBound($aKeyword) - 1
        If StringInStr(StringStripWS($aFile[$i], 1), 'au3.keywords.' & $aKeyword[$iKeywrod] & '=') Then
            $a = 1
            ExitLoop
        Else
            $a = 0
        EndIf          
    Next
    If $a = 1 Then
        $sText = _TextStyle($sText, $iflag)
        $tmpFile = FileOpen(@ScriptDir & '\' & $aKeyword[$iKeywrod-1] & '.txt', 10)
        FileWrite($tmpFile, $sText)      
        $sText = ''
        $sText = StringReplace($aFile[$i], 'au3.keywords.' & $aKeyword[$iKeywrod] & '=', '')
        $a = 0
    Else
        $sText &= $aFile[$i]    
    EndIf  
Next
 
$sText = _TextStyle($sText, $iflag)
$tmpFile = FileOpen(@ScriptDir & '\' & $aKeyword[UBound($aKeyword) - 1] & '.txt', 10)
FileWrite($tmpFile, $sText)      
             
Exit
 
Func _TextStyle($sText, $iflag = 1)
    Switch $iflag
        Case 1
        Case 2
            $sText = StringRegExpReplace($sText, '[\r\n\\]', '')
            $sText = StringRegExpReplace($sText, '\s+', @CRLF)
    EndSwitch
    Return $sText
EndFunc
관련글

Google Code Syntax Highlighter 도우미(Helper)
Google SyntaxHighlighter용 AutoIt 구문강조 파일 두번째
SyntaxHighlighter 3.0 업그레이드

블로그의 글과 그림, 첨부파일의 복제, 재배포를 금지합니다. =>  자세히 보기
티스토리 초대장 필요하신 분은 댓글남겨주세요.
give start - 굿네이버스 - 사랑의 열매 - 아름다운재단 - 어린이재단 - 유니세프
굿네이버스 배너
사랑의 열매 배너
아름다운 재단 배너 어린이 재단 배너 유니세프 한국위원회 - 배너