влад10011
offline
Опыт:
2,337Активность: |
Manager of color functions(подсветка пользовательских функций в JNGP)
Недавно я узнал, что можно подсвечивать свой список функций(засунув его в папку includes), но меня не устроило то, что компилятор читает только синтаксис(объявления функции) на jass2 и выпадают в списке функций, даже их нет в карте.
И я решил сделать "компилятор" который позволяет парсить подсвечиваемые функции прямо из кода, составляя отдельно скомпилированный список функций в файл. С помощью меню, которое вы увидите после установки этой программы, вы можете:
Как оно работает:
((код jass
Если оператор colored
!colored
void DoNothing(int i) { DoNothing(i+1) } !endcolored ))
Как установить:
((кат
Находите такие строки:
((код
-- cJass#1
have_ah = grim.exists("adichelper\\adichelper.exe") if have_ah then ah_menu = wehack.addmenu("cJass") ah_enable = TogMenuEntry:New(ah_menu,"Enable AdicParser",nil,true) ah_enableopt = TogMenuEntry:New(ah_menu,"Enable AdicOptimizer",nil,true) wehack.addmenuseparator(ah_menu)
ah_enableupdate = TogMenuEntry:New(ah_menu,"Enable AutoUpdate",nil,false)
wehack.addmenuseparator(ah_menu)
end
-- /cJass#1 )) Выше вставляете: ((код
have_fl=grim.exists("FunctionList.exe")
if have_fl then if string.len(grim.getregpair(confregpath,"fl_color"))>0 then fl_color=grim.getregpair(confregpath,"fl_color") else fl_color="" end if string.len(grim.getregpair(confregpath,"fl_filename"))>0 then fl_filename=grim.getregpair(confregpath,"fl_filename") else fl_filename="" end fl_m=wehack.addmenu("Function_List") fl_enable=TogMenuEntry:New(fl_m,"Enable Colored Function",nil,true) function fl_opcolor() fl_color=wehack.inputbox("Установите оператор для подсветки функций:","Function List","colored") grim.setregstring(confregpath,"fl_color",fl_color) end fl_opcolor_m=MenuEntry:New(fl_m,"Set operator color",fl_opcolor) function fl_Set_filename() fl_filename=wehack.inputbox("Установите имя файла подсведки функций","Function List","functionlist") grim.setregstring(confregpath,"fl_filename",fl_filename) end fl_filename_m=MenuEntry:New(fl_m,"Set name of created file",fl_Set_filename) function fl_Function_Manager() wehack.execprocess("Function_List_Manager.exe") end fl_Function_m=MenuEntry:New(fl_m,"Open Function List Manager",fl_Function_Manager) wehack.addmenuseparator(fl_m) end )) Далее находим примерно такие строки: ((код
function compilemap_path(mappath)
if mappath == "" then showfirstsavewarning() return end map = wehack.openarchive(mappath,15) wehack.extractfile("jasshelper\\common.j","scripts\\common.j") wehack.extractfile("jasshelper\\Blizzard.j","scripts\\Blizzard.j") wehack.extractfile("war3map.j","war3map.j") wehack.closearchive(map) wehack.runprocess2("repCode\\gg.exe".." war3map.j "..mappath) -- wehack.execprocess("Defines\\SwapLog.bat "..mappath.." WayMap") -- wehack.runprocess2("Defines\\Project2.exe") -- wehack.runprocess2("Defines\\Project2.exe") if cmdargs ~= "" then local cmdtable = argsplit(cmdargs) -- local len = table.getn(cmdtable) -- for i = 1, len do -- cmdtable[i] = removequotes(cmdtable[i]) -- end -- wehack.rungrimextool(cmdtable) grim.log("running tool on save: "..cmdargs) wehack.runprocess(cmdargs) cmdargs = "" end -- cJass#2
if have_ah and ah_enable.checked then cmdline = "AdicHelper\\AdicHelper.exe" if jh_debug.checked then cmdline = cmdline .. " /dbg" end cmdline = cmdline .. " /mappars=\ .. mappath.."\ adicresult = wehack.runprocess2(cmdline) if adicresult == 1 then mapvalid = false return end end -- /cJass#2 if havejh and jh_enable.checked then cmdline = "jasshelper\\jasshelper.exe" if jh_debug.checked then cmdline = cmdline .. " --debug" end if jh_disable.checked then cmdline = cmdline .. " --nopreprocessor" end if jh_disableopt.checked then cmdline = cmdline .. " --nooptimize" end cmdline = cmdline .. " jasshelper\\common.j jasshelper\\blizzard.j \ .. mappath .."\ toolresult = 0 -- if jh_fast ~= nil and jh_fast.checked then -- toolresult = wehack.runjasshelper(jh_debug.checked, jh_disable.checked, "jasshelper\\common.j", "jasshelper\\blizzard.j", mappath, "") -- else toolresult = wehack.runprocess2(cmdline) -- end if toolresult == 0 then -- cJass#3 if have_ah and ah_enableopt.checked then wehack.runprocess2("AdicHelper\\AdicHelper.exe /mapoptz=\ .. mappath.."\) end )) Сразу после этого кода вставляете: ((код
))
)) Что хочу потом сделать:
Отредактировано влад10011, 22.05.2013 в 20:29. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15.05.2013, 20:23 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
youtube
сктыщь
offline
Опыт:
8,025Активность: |
кат
» смотреть сюда
текст под катом |
15.05.2013, 20:47 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
влад10011
offline
Опыт:
2,337Активность: |
Ну как я вижу никому не нужно, но всё-таки: Добавил фильтрацию мусора, добавляя только функции. Так же подсвечивает всё что в include файлах и текстмакро Если нужно подсветить сразу все функции в Шапке карты введите !colored Подсветка дефайнов, описанных вне своего места(пока так) |
22.05.2013, 20:33 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|