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

SciTE에 Lua 스크립트 추가하는 방법

/Autoit/SciTE :: 2011. 5. 24. 06:34

SciTE에 Lua 스크립트 추가하는 방법

SciTE4AutoIt3 도움말 우리말 번역본 - SciTE4AutoIt3 LUA에 나온 적이 있지만 SciTE에서는 Lua Script로 만든 확장을 이용할 수 있습니다.

SciTE에서 도구 -  범용 사용자 설정 파일 열기(Tool - Open Global Properties)를 선택하면 SciTEGlobal.properties 파일이 열립니다.

이 파일에서 ext.lua.startup.script를 찾아보세요. 기본값은 $(SciteUserHome)/SciTEStartup.lua 입니다. SciTE를 실행할 때, 위 경로에 있는 SciTEStartup.lua 파일을 읽어들이라는 뜻입니다.

ext.lua.auto.reload은 이 Startup.lua 파일이 변경되었을 때 자동으로 다시 로드할 것인지를 정하는 설정입니다. 0이면 SciTE를 시작할 때만 로드, 1이면 파일이 변경되었을 때 자동으로 로드입니다.

SciTE에서 Lua Script를 사용하는 방법

사용법은 아주 쉽습니다. 사용하고 싶은 스크립트를 SciTEStartup.lua 파일에 적어넣으면 됩니다.

SciTEStartup.lua
  1. function SelectWord()
  2.     local beginPos = editor.CurrentPos
  3.     local endPos = beginPos
  4.     while isWordChar(editor.CharAt[beginPos-1]) do
  5.         beginPos = beginPos - 1
  6.     end
  7.     while isWordChar(editor.CharAt[endPos]) do
  8.         endPos = endPos + 1
  9.     end
  10.     if beginPos ~= endPos then
  11.         editor.SelectionStart = beginPos
  12.         editor.SelectionEnd   = endPos
  13.     end
  14. end

이렇게 추가한 Lua Script는 SciTE 메뉴에 도구(Tool) 추가하기에 나오는 방법으로 SciTE 도구모음에서 사용할 수 있습니다.

command.number.filepattern에는 function의 이름인 SelectWord를 쓰고, command.subsystem.number.filepattern를 3으로 해서 말이죠.

# 13 Select Word
command.13.*=SelectWord
command.name.13.*=Select Word
command.mode.13.*=subsystem:lua,savebefore:no,groupundo
command.shortcut.13.*=Ctrl+J

SciTE의 설정이나 단축키를 바꾸는 스크립트라면 도구 메뉴에 추가하지 않고, 그대로 사용할 수도 있습니다.

하지만, Lua Script가 많아지면 관리하기가 불편하므로 파일로 나누어 놓으면 좋습니다. SciTE4AutoIT3이 그런 경우인데요. SciTE4AutoIT3을 예로 설명하겠습니다.

SciTE4AutoIT3에서 사용하기

SciTE4AutoIT3은 AutoIT에 사용할 수 있는 Lua Script가 여러 개 있고, 이 파일들을 관리하기 위해서 폴더도 따로 만들어 두었죠. 그래서 ext.lua.startup.script의 기본 경로가 $(SciteDefaultHome)\Lua\SciTEStartup.lua입니다.

또 SciTEStartup.lua 파일에 Lua Script가 직접 들어있는 것이 아니라, lua 파일을 로드할 수 있는 함수로 작성된 스크립트가 있습니다.

SciTEStartup.lua
  1. function LoadLuaFile(file, directory)
  2.     if directory == nil then
  3.         directory = props["SciteDefaultHome"] .. "\\Lua\\"
  4.     end
  5.     table.insert(LoadLuaFileList, directory .. file)
  6.     dofile(directory .. file)
  7. end -- LoadLuaFile()

  8. -- Load all the Lua files.
  9. LoadLuaFile("Class.lua")    -- Always load first.
  10. LoadLuaFile("Common.lua")   -- Always load second.
  11. LoadLuaFile("AutoItPixmap.lua")
  12. LoadLuaFile("AutoHScroll.lua")
  13. LoadLuaFile("AutoItAutoComplete.lua")
  14. LoadLuaFile("LoadSession.lua")
  15. LoadLuaFile("AutoItIndentFix.lua")
  16. LoadLuaFile("SelectWord.lua")

따라서 이 SciTEStartup.lua에 함수를 직접 추가하는 것이 아니라 lua 파일을 만들고 그 파일을 로드하도록 추가하면 됩니다.

위 첫 번째 상자의 SelectWord를 사용하고 싶다면 $(SciteDefaultHome)\Lua\SelectWord.lua 파일로 저장하고, SciTEStartup.lua 파일에는 LoadLuaFile("SelectWord.lua")라는 내용을 추가하면 됩니다. 위에서 17번째 줄에 표시되어 있지요.

SciTE에서 Lua Script를 사용하는 자세한 방법은 SciTE Lua Scripting Extension(영어)를 읽어보세요.

관련글

SciTE에서 사용하면 좋은 Lua Script
SciTE에서 사용하면 좋은 Lua Script 두 번째
SciTE 메뉴에 도구(Tool) 추가하기
SciTE4AutoIt3 도움말 우리말 번역본 - SciTE4AutoIt3 LUA

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