讓UltraEdit完美支持Lua語法
作者:Tuuzed(土仔) 發(fā)表于:2008年12月27日
版權(quán)聲明:可以任意轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明。
http://www.shnenglu.com/tuuzed/archive/2008/12/27/70516.html
最近在研究Lua腳本語言(個人覺得它是Basic、C、C++的結(jié)合體),可是“強大”的UltraEdit默認(rèn)安裝后是不支持Lua語法高亮顯示的,滿屏幕“黑黑”的雞腸字符讓人感覺編程是那么的索然無味,沒有了靈感。
終于有一天GOOGLE了一下,發(fā)現(xiàn)了很多解決辦法,最好的辦法就是:先去UltraEdit的官網(wǎng)下載支持Lua的Wordfiles文件(這里),是個文本文件(lua.txt)。打開UltraEdit安裝目錄下的wordfile.txt,把lua.txt文件中的內(nèi)容拷貝粘貼到wordfile.txt的末尾,存盤,OK,于是UltraEdit語法高亮項多出Lua一項,可以選擇使用了。比起網(wǎng)上說的02年版的lua.txt,這個04版(也是很舊
)已經(jīng)完美支持“注釋塊”和“注釋行”高亮了,所以無需在改它的第一行。
但是,使用一段時間后,還是發(fā)現(xiàn)有問題,比如:有部分關(guān)鍵字沒有加亮(如:os,pair, ipair等);不支持代碼折疊(不能很好地知道結(jié)束關(guān)鍵字end是屬于哪個while、for、function等);對UltraEdit的F8(函數(shù)列表)功能支持得不完美。還好,看了UltraEdit幫助后,自己修改了一下,解決了上述問題,下面就貼出我的lua.txt(在這里下載修改后的Lua.txt)。
1 /L20"Lua" Line Comment = -- Block Comment On = [[ Block Comment Off = ]] String Chars = "' Escape Char = \ File Extensions = LUA BIN
2 /Delimiters = ~!@%^&*()-+=|\/{}[]:;"'<> , .?
3 /Function String 1 = "function[ ]++[a-zA-Z]*)"
4 /Function String 2 = "function[ ]++([ a-zA-Z]*)"
5 /Open Fold Strings = "function" "if" "while" "for"
6 /Close Fold Strings = "end"
7 /C1 "key words"
8 and
9 break
10 do
11 else
12 elseif
13 end
14 function
15 if in
16 local
17 nil not
18 or
19 repeat return
20 then
21 until
22 while
23 /C2
24 abs acos appendto ascii asin assert atan atan2
25 call ceil clock collectgarbage copytagmethods cos
26 date deg dofile dostring
27 error execute exit
28 false find floor foreach foreachvar format frexp
29 getbinmethod getenv getglobal gettagmethod gfind gmatch gsub
30 insert ipairs
31 ldexp log log10
32 match max min mod
33 newtag next nextvar
34 os
35 pairs print
36 rad random randomseed rawgetglobal rawgettable rawsetglobal rawsettable read
37 readfrom remove rename
38 seterrormethod setglobal setlocale settag settagmethod sin sqrt strbyte sub
39 strchar strfind string strlen strlower strrep strsub strupper
40 table tag tan tmpname tonumber tostring true type
41 write writeto
42 /C3
43 $debug
44 $else
45 $end
46 $endinput
47 $if
48 $ifnot
49 $nodebug
50 /C4
51 PI
52 _INPUT _OUTPUT _STDERR _STDIN _STDOUT
53 /C5
54 +
55 -
56 *
57 // /
58 ^
59 <
60 >
61 =
62 ~
63 %
64 .
65 :
66 /C6
67 ;
68 ,
69 (
70 )
71 {
72 }
73 [
74 ]
75 /C7
76 cgi cgilua cgilua_url char2hexa chdir
77 dbluaerrorfb dblua_escape decode default_script
78 encodecgi encodetable escape
79 filetype
80 getvalue
81 hexa hexa2char html_mask
82 includehtml insertfield
83 lua_mask
84 maketable map mkurl
85 nopipe
86 preprocess
87 redirect relativeurl relative_url
88 saveluavar savestate script_path script_pdir script_vdir stateerrormethod
89 statefile stdin strsplit
90 unescape
91 /C8
92 DBClose DBExec DBOpen DBRow
支持UltraEdit的F8(函數(shù)列表)功能的是3、4行;支持代碼折疊的是5、6行;增加了部分關(guān)鍵字(io,pair,ipair等),但還不完整,可以根據(jù)以后編程需要自己再添加,添加時一定要按字母排列順序“插”對位置!