WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   Dev Tools (https://www.wowinterface.com/forums/forumdisplay.php?f=41)
-   -   Lua syntax highlights for Notepad++, UltraEdit, etc.. + WoW Ace2 Ace3 API recognition (https://www.wowinterface.com/forums/showthread.php?t=18172)

Mera 09-13-08 09:17 PM

Lua syntax highlights for Notepad++, UltraEdit, etc.. + WoW Ace2 Ace3 API recognition
 
Last thread update: 05 July 2010



This is a project for World of Warcraft AddOn authors providing the LUA/XML syntax highlighting script updated for the major text editors, the project now supports Notepad++, UltraEdit, PSPad and RjTextEd

Notepad++ uses a homemade plugin based on External lexers and GmodLua, and I completely rewrote the folding procedures so they performs better on Lua code

The API extractions are now done automatically through an addon so I will provide more frequent updates, there is no more missing API and no more deprecated functions.

By default the text editors use the same colors:
  • COMMENTS: green
  • NUMBERS: orange
  • LUA INSTRUCTIONS: bold blue
  • LUA CONSTANTS: red
  • WOW GLOBAL FUNCTIONS: blue
  • WOW UIOBJECTS FUNCTIONS: soft blue
  • ACE2 FUNCTIONS/CONSTANTS: soft purple
  • ACE3 FUNCTIONS/CONSTANTS: purple
http://luawow.googlecode.com

Tristanian 09-13-08 10:07 PM

Very helpful, my old UltraEdit lua.txt was old as hell. Nice job Mera :)

VincentSDSH 09-13-08 10:19 PM

Heh, I've been updating my UltraEdit wordfile a lot lately just getting ready for LK -- stunned at how much has been added since Capnbry's file ages ago.

Dridzt 09-14-08 01:40 AM

Very helpful, thank you.

I've been adding things to my own highlight file too but not a systematic effort.
This is a definite timesaver :)

Dridzt 09-14-08 04:38 AM

At a glance I noticed one thing present in my personal file that's missing.
Maybe you'd like to add it.

Near the top of the lua section after the /delimiters /function string lines
I have
Code:

/Open Fold Strings = "{" "function" "then" "else" "do" "until" "for" "while"
/Close Fold Strings = "}" "end" "else" "elseif"
/Open Comment Fold Strings = "<<"
/Close Comment Fold Strings = ">>"

This makes it so you can collapse blocks
(and comment blocks if you put '<<' and '>>' inside block section,
especially handy for big comment blocks containing license, documentation etc)


I also noticed in the keywords section there's 'UIParent'.
Any reason for it?

Another little detail, you could add
** -0 -1 -2 -3 -4 -5 -6 -7 -8 -9
as a substring to any of your Cx color code sections so that negative numbers are colored as well.
(I usually make an extra color code group just for that but I see you've used the 8 allowed)

Last little comment/question (sorry :p)
I see a
Code:

Block Comment On Alt = --
near the start.
Does that take care of the limitation in UEdit regarding block/line comments that start with the same substring?
To clarify, if you input the -- line comment, block comments break as UEdit
stops processing the after '--' and '[[' part is ignored hence doesn't understand
it's the beginning of a block comment instead treats it as a line comment.

If the alternate block comment definition solves that; neat trick!
If not I used to differentiate the 2 by making a
Code:

Line Comment = ---
3 '-' instead of 2, it's still a valid lua line comment and I combine it with a macro
that I run on my .lua files replacing occurrences of '--' with '---' on first pass and then '---[[' with '--[[' (to restore block comments).

Mera 09-14-08 05:36 AM

Thanks you all for the nice feedbacks I will of course update it to be even better with your help =)

Quote:

Originally Posted by Dridzt (Post 102120)
At a glance I noticed one thing present in my personal file that's missing.
Maybe you'd like to add it.

Near the top of the lua section after the /delimiters /function string lines
I have
Code:

/Open Fold Strings = "{" "function" "then" "else" "do" "until" "for" "while"
/Close Fold Strings = "}" "end" "else" "elseif"
/Open Comment Fold Strings = "<<"
/Close Comment Fold Strings = ">>"

This makes it so you can collapse blocks
(and comment blocks if you put '<<' and '>>' inside block section,
especially handy for big comment blocks containing license, documentation etc)


I also noticed in the keywords section there's 'UIParent'.
Any reason for it?

Another little detail, you could add
** -0 -1 -2 -3 -4 -5 -6 -7 -8 -9
as a substring to any of your Cx color code sections so that negative numbers are colored as well.
(I usually make an extra color code group just for that but I see you've used the 8 allowed)

Last little comment/question (sorry :p)
I see a
Code:

Block Comment On Alt = --
near the start.
Does that take care of the limitation in UEdit regarding block/line comments that start with the same substring?
To clarify, if you input the -- line comment, block comments break as UEdit
stops processing the after '--' and '[[' part is ignored hence doesn't understand
it's the beginning of a block comment instead treats it as a line comment.

If the alternate block comment definition solves that; neat trick!
If not I used to differentiate the 2 by making a
Code:

Line Comment = ---
3 '-' instead of 2, it's still a valid lua line comment and I combine it with a macro
that I run on my .lua files replacing occurrences of '--' with '---' on first pass and then '---[[' with '--[[' (to restore block comments).

awesome dude I will work on all that, the option to open/close function is very awesome and helpful however I found a bug yet do you see why I'm unable to close the first function in this small test code

PHP Code:

function test:u()
    for 
ij in ipairs(a) do
        
local test
    end
    
for ij in ipairs(a) do
        
local test
    end
end 

With your script I can open close the second for loop but never the first one. I'm looking to find a patch but if you have one feel free to share =) Thanks again for the kind comments all, took me all day yesterday to revamp it :)

//EDIT: I think I have found the glitch, with "for" and "do" on the same line it is looking for 2x "end" statements and then breaking the open/close function, should be patchable that, will look closely the help file to check for possible workarounds

Mera 09-14-08 06:23 AM

I think the patch for your code Dridzt is to not add "for" because for is always called with a "do", like having "if" already not present is fine because it's always coming with a "then" which is declared.

Dridzt 09-14-08 07:47 AM

Quote:

Originally Posted by Mera (Post 102122)
I think the patch for your code Dridzt is to not add "for" because for is always called with a "do", like having "if" already not present is fine because it's always coming with a "then" which is declared.

Yes that's an elegant solution, nice thinking.
For the same reason "while" must also be removed (it's always while () do)
"repeat" is also missing along the same lines ("until" is defined).
So that line should be
Code:

/Open Fold Strings = "{" "function" "then" "else" "do" "until"

Mera 09-14-08 09:17 AM

Quote:

Originally Posted by Dridzt (Post 102120)
I also noticed in the keywords section there's 'UIParent'.
Any reason for it?

Another little detail, you could add
** -0 -1 -2 -3 -4 -5 -6 -7 -8 -9
as a substring to any of your Cx color code sections so that negative numbers are colored as well.
(I usually make an extra color code group just for that but I see you've used the 8 allowed)

I have removed UIParent because I wsnt really sure if I need to highlight it, else I do not see what do you mean with numbers because I haven't defined rules for numbers because they are already handled by ultraedit and they are correctly highlighted with or without a - in front, not you ? maybe are you using an old uedit version me I have 14.10

Dridzt 09-14-08 09:54 AM

I have a 12.x.. that's probably it :)

Mera 09-14-08 10:08 AM

I think that's why it fail on you because the highlight feature has changed since this old version

Quote:

Originally Posted by Dridzt (Post 102120)
Last little comment/question (sorry :p)
I see a
Code:

Block Comment On Alt = --
near the start.
Does that take care of the limitation in UEdit regarding block/line comments that start with the same substring?
To clarify, if you input the -- line comment, block comments break as UEdit
stops processing the after '--' and '[[' part is ignored hence doesn't understand
it's the beginning of a block comment instead treats it as a line comment.

If the alternate block comment definition solves that; neat trick!
If not I used to differentiate the 2 by making a
Code:

Line Comment = ---
3 '-' instead of 2, it's still a valid lua line comment and I combine it with a macro
that I run on my .lua files replacing occurrences of '--' with '---' on first pass and then '---[[' with '--[[' (to restore block comments).

1)

not sure what you mean here but do you mean if I have a block like that for example

--[[
line1
line2
--line3
line4
line5
]]

you mean if the "--" will break the full block and the block will stops at line3 instead of line5 ? if that what you mean I have tested and "--" does not break the full block and what is commented is from line1 to line5

2) Else I have got the idea to add another section like /C8"WoW Default Frames" to highlight the calls of blizzard frames like UIParent, DessupFrame etc etc, dunno if thats a good idea , maybe too much , will add more apis anyway I have to browse blizz files now

Ackis 11-26-08 10:53 AM

Is there something like this for Notepad++? :)

Dridzt 01-08-10 10:32 AM

I've updated this for the current wow 3.3 API and new uestudio wordfile format (.uew) but don't know where to upload it :)
PHP Code:

AcceptProposal
AddOrRemoveFriend
AddPreviewTalentPoints
AddTrackedAchievement
BattlefieldMgrEntryInviteResponse
BattlefieldMgrExitRequest
BattlefieldMgrQueueInviteResponse
BattlefieldMgrQueueRequest
CalendarContextDeselectEvent
CalendarContextEventGetCalendarType
CalendarContextEventSignUp
CalendarContextGetEventIndex
CalendarContextInviteTentative
CalendarContextInviteType
CalendarContextSelectEvent
CalendarEventCanModerate
CalendarEventGetCalendarType
CalendarEventGetInviteResponseTime
CalendarEventSignUp
CalendarEventTentative
CalendarGetDayEventSequenceInfo
CalendarMassInviteArenaTeam
CalendarMassInviteGuild
CalendarNewGuildAnnouncement
CanAlterSkin
CanChangePlayerDifficulty
CanEjectPassengerFromSeat
CanHearthAndResurrectFromArea
CanMapChangeDifficulty
CanPartyLFGBackfill
CanQueueForWintergrasp
CanResetTutorials
CanSwitchVehicleSeat
CanUseEquipmentSets
CannotBeResurrected
CastSpellByID
ChangePlayerDifficulty
ClearAllLFGDungeons
ClearLFGDungeon
CollapseAllFactionHeaders
CompleteLFGRoleCheck
ConsoleAddMessage
ContainerRefundItemPurchase
DeleteEquipmentSet
DetectWowMouse
DungeonUsesTerrainMap
EjectPassengerFromSeat
EndBoundTradeable
EndRefund
EquipmentManagerClearIgnoredSlotsForSave
EquipmentManagerIgnoreSlotForSave
EquipmentManagerIsSlotIgnoredForSave
EquipmentManagerUnignoreSlotForSave
EquipmentSetContainsLockedItems
ExpandAllFactionHeaders
FillLocalizedClassList
FindSpellBookSlotByID
GMReportLag
GMResponseNeedMoreHelp
GMResponseResolve
GMSurveyAnswer
GMSurveyNumAnswers
GetActiveTalentGroup
GetArenaTeamGdfInfo
GetAutoCompleteResults
GetAvailableRoles
GetBattlegroundInfo
GetCVarAbsoluteMax
GetCVarAbsoluteMin
GetCVarMax
GetCVarMin
GetContainerFreeSlots
GetContainerItemGems
GetContainerItemID
GetContainerItemPurchaseInfo
GetContainerItemPurchaseItem
GetCurrentMapAreaID
GetDebugZoneMap
GetDungeonDifficulty
GetEquipmentSetInfo
GetEquipmentSetInfoByName
GetEquipmentSetItemIDs
GetEquipmentSetLocations
GetExpansionLevel
GetFactionInfoByID
GetGlyphLink
GetGroupPreviewTalentPointsSpent
GetInstanceInfo
GetInstanceLockTimeRemaining
GetInstanceLockTimeRemainingEncounter
GetInventoryItemGems
GetInventoryItemID
GetItemStatDelta
GetItemStats
GetItemUniqueness
GetLFDChoiceCollapseState
GetLFDChoiceEnabledState
GetLFDChoiceInfo
GetLFDChoiceLockedState
GetLFDChoiceOrder
GetLFDLockInfo
GetLFDLockPlayerCount
GetLFGBootProposal
GetLFGCompletionReward
GetLFGCompletionRewardItem
GetLFGDungeonInfo
GetLFGDungeonRewardInfo
GetLFGDungeonRewardLink
GetLFGDungeonRewards
GetLFGInfoLocal
GetLFGInfoServer
GetLFGProposal
GetLFGProposalEncounter
GetLFGProposalMember
GetLFGQueueStats
GetLFGQueuedList
GetLFGRandomDungeonInfo
GetLFGRoleUpdate
GetLFGRoleUpdateMember
GetLFGRoleUpdateSlot
GetLFGRoles
GetLFRChoiceOrder
GetLastQueueStatusIndex
GetMaxArenaCurrency
GetMultiCastBarOffset
GetMultiCastTotemSpells
GetNextCompleatedTutorial
GetNumArenaOpponents
GetNumBattlegroundTypes
GetNumEquipmentSets
GetNumQuestItemDrops
GetNumQuestLogRewardFactions
GetNumRandomDungeons
GetNumTalentGroups
GetNumTrackedAchievements
GetPartyLFGBackfillInfo
GetPetTalentTree
GetPlayerFacing
GetPlayerInfoByGUID
GetPrevCompleatedTutorial
GetPreviewTalentPointsSpent
GetPreviousArenaSeason
GetQuestLogCompletionText
GetQuestLogItemDrop
GetQuestLogRewardArenaPoints
GetQuestLogRewardFactionInfo
GetQuestLogRewardXP
GetQuestLogSpecialItemCooldown
GetQuestLogSpecialItemInfo
GetQuestPOILeaderBoard
GetQuestSortIndex
GetQuestWorldMapAreaID
GetQuestsCompleted
GetRaidDifficulty
GetRandomDungeonBestChoice
GetRewardArenaPoints
GetRewardXP
GetSocketItemBoundTradeable
GetSocketItemRefundable
GetTrackedAchievements
GetUnspentTalentPoints
GetVehicleUIIndicator
GetVehicleUIIndicatorSeat
GetWintergraspWaitTime
GetWorldPVPQueueStatus
HasCompletedAnyAchievement
HasDebugZoneMap
HasLFGRestrictions
HearthAndResurrectFromArea
InteractUnit
IsAtStableMaster
IsInLFGDungeon
IsLFGDungeonJoinable
IsListedInLFR
IsPartyLFG
IsPetAttackAction
IsPlayerResolutionAvailable
IsQuestLogSpecialItemInRange
IsSpellKnown
IsStereoVideoAvailable
IsTrackedAchievement
IsTutorialFlagged
IsXPUserDisabled
IsZoomOutAvailable
JoinLFG
LFGTeleport
LearnPreviewTalents
LeaveLFG
OpenCalendar
PartyLFGStartBackfill
PickupEquipmentSet
PickupEquipmentSetByName
PlayerCanTeleport
PlayerIsPVPInactive
ProcessQuestLogRewardFactions
QueryQuestsCompleted
QuestGetAutoAccept
QuestMapUpdateAllQuests
QuestPOIGetIconInfo
QuestPOIGetQuestIDByIndex
QuestPOIGetQuestIDByVisibleIndex
QuestPOIUpdateIcons
QuestPOIUpdateTexture
RefreshLFGList
RegisterStaticConstants
RejectProposal
RemoveTrackedAchievement
RenameEquipmentSet
RequestBattlegroundInstanceInfo
RequestLFDPartyLockInfo
RequestLFDPlayerLockInfo
ResetGroupPreviewTalentPoints
ResetPreviewTalentPoints
RespondInstanceLock
RespondMailLockSendItem
RestoreVideoEffectsDefaults
RestoreVideoResolutionDefaults
RestoreVideoStereoDefaults
ResurrectGetOfferer
SaveEquipmentSet
SearchLFGGetEncounterResults
SearchLFGGetJoinedID
SearchLFGGetNumResults
SearchLFGGetPartyResults
SearchLFGGetResults
SearchLFGJoin
SearchLFGLeave
SearchLFGSort
SetActiveTalentGroup
SetChatColorNameByClass
SetChatWindowUninteractable
SetLFGBootVote
SetLFGDungeon
SetLFGDungeonEnabled
SetLFGHeaderCollapsed
SetLFGRoles
SetMapByID
SetMultiCastSpell
SetPOIIconOverlapDistance
SetPOIIconOverlapPushDistance
SetRaidDifficulty
SetSavedInstanceExtend
TargetDirectionEnemy
TargetDirectionFinished
TargetDirectionFriend
TargetNearest
TargetTotem
TradeSkillOnlyShowSkillUps
TriggerTutorial
UnitGroupRolesAssigned
UnitIsControlling
UnitIsTappedByAllThreatList
UnitSelectionColor
UnitTargetsVehicleInRaidUI
UnitUsingVehicle
UseEquipmentSet
UseQuestLogSpecialItem 

are the API additions.

Mera 01-08-10 12:34 PM

Thank you Dridzt Yet I dont play wow but I hope soon

Quote:

Originally Posted by Ackis (Post 110613)
Is there something like this for Notepad++? :)

I will update it too later for Notepad++ as I use it now

Xruptor 02-06-10 08:30 AM

Quote:

Originally Posted by Mera (Post 173795)
Thank you Dridzt Yet I dont play wow but I hope soon



I will update it too later for Notepad++ as I use it now


Awesome! I would love to have all the updated API working with Notepad++! I use a primitive old list that is so out of date. This would be a god send :)

Cralor 02-06-10 01:49 PM

Notepad++ is really easy:

(Thanks to p3lim)

http://gist.github.com/280186

Should be enough. Hope this helps!

EDIT: I should have added that you just replace the Lua portion in your langs.xml with this. :)

Xruptor 02-06-10 04:47 PM

Quote:

Originally Posted by Cralor (Post 177595)
Notepad++ is really easy:

(Thanks to p3lim)

http://gist.github.com/280186

Should be enough. Hope this helps!


WOW thanks!

Mera 07-04-10 06:10 PM

The project has now moved to http://luawow.googlecode.com

The home page, helps and the zip are not yet finalized but you can download in advance syntaxes on the google subversion for Notepad++ UltraEdit PSPad and RjTextEd

Notepad + + plugin is based on External lexers and GmodLua and I reworked the code so that the folding of Lua code performs better, you can now fold more lua instructions with a behavior similar to text editors of the best known.

the list of API is divided into four groups in four groups now, 1) global functions 2) uiobject functions 3) ace2 constants 4) ace3 constants

By default the text editors use the same colors.

Any suggestion is welcome

Sythalin 07-13-10 10:03 AM

Fair warning. Using this with NP++ causes the client to slow down SIGNIFICANTLY. I'm not sure why.

Mera 07-13-10 11:08 AM

This is not from the plugin Chaos this issue but the library the plugin is based on, Garthex already replied to my request

Quote:

Originally Posted by Garthex
The solution to your problem is currently in the pipeline. It lies in the Scintilla component of Notepad++, and Neil Hodgson, the maker of Scintilla has already devised a solution. When he releases a new version of Scintilla, we'll still have to wait for Don Ho, the maker of Notepad++ to integrate it. At this point, all I can really do is wait.

If you want to read more up on it, you can do that here: http://sourceforge.net/tracker/?func...39&atid=102439

Garthex reply

I have caught this bug while adding 33000 entries into my file (function + variables)

But actually LuaWoW uses ~5000 API functions in WoW and you should not notice speed issues or maybe your computer is slow too, here on a Core i7 and 12Gb DDR3 it's fast and I don't notice the speed issues, the client respond as normal.

To summarize any actual syntax plugin is increasingly slow in the number of recognized functions, a workaround is to add the list to langs.xml but you will have less controls on your language and dirty folders.

Sythalin 07-20-10 01:45 PM

Quote:

Originally Posted by Mera (Post 197376)
This is not from the plugin Chaos this issue but the library the plugin is based on, Garthex already replied to my request



Garthex reply

I have caught this bug while adding 33000 entries into my file (function + variables)

But actually LuaWoW uses ~5000 API functions in WoW and you should not notice speed issues or maybe your computer is slow too, here on a Core i7 and 12Gb DDR3 it's fast and I don't notice the speed issues, the client respond as normal.

To summarize any actual syntax plugin is increasingly slow in the number of recognized functions, a workaround is to add the list to langs.xml but you will have less controls on your language and dirty folders.

I assure you, it's not a comp issue. I can edit in any other language with no problems (lua, java, etc.). As soon as I choose LuaWoW.... well let's say I've seen a dead raccoon respond faster to my typing. ;)

Mera 07-20-10 02:34 PM

you haven't noticed this in other languages because they are built in Notepad++ and they are not using the plugin libraries.

To resume the situation , all languages coming in an external plugin are yet slow, this is a bug from the plugin library, not the plugin itself. It affects GmodLua, LuaWoW, External Lexer KVS, Oberon-2 Lexer, and more.. all the one you see in the Plugin Manager are plugins affected by this issue.

if the library is slow, all plugin languages based on it will be slow.

We can only wait a patch to the library (scintilla) and don ho will include it then in Notepad++ and the language plugin will be faster.

Of course this is not a failure of your computer but the fact that you've noticed it is slow with only 6000 words recognized is abnormal and I'm not sure the scintilla speed patch will be better for you.

I suggest you invest in the i7 ;)

Sythalin 07-20-10 08:32 PM

Quote:

Originally Posted by Mera (Post 199015)
Of course this is not a failure of your computer but the fact that you've noticed it is slow with only 6000 words recognized is abnormal and I'm not sure the scintilla speed patch will be better for you.

I suggest you invest in the i7 ;)

I notice it with ONE word. But it's fine. I understand that it's a library issue and that's fine. I was simply throwing out that it was an unexpected problem to anyone else who looked at it and went "Hey, awesome, a n++ plugin! That saves me a ton of time!"

However, I'm not going to continue to sit here and be told how "inferior" my system is because it doesn't have an i7. There are plenty of other places with more qualified people where I can be told my system "sucks". Yes, I can read between the lines. What bothers me is how you've turned this into "my uber rig can run it, why can't yours? Oh, because it sucks."

I have 3 options and I'll consider them all:
1) Wait for the miracle patch
2) Keep working with the standard lua as I have been to date
3) Shop around for another editor that meets my liking

This will be my last response on the matter as I have the info I was looking for. I'll leave with this, more fuel to stroke your epeen with:

CPU: AMD Phenom II X4 925 (2.8GHz, I don't OC as I'm not made of money if it fries)
RAM: 8GB DDR3

I'll admit my comp isn't as uber. You win the thread. Good day.

Dawn 07-20-10 09:11 PM

I normally don't do this, but ...

damn I have to ...


I lol'ed!


OK I admitted it. *feels better, trolls away*

orionshock 07-20-10 10:02 PM

anyway this can be used on linux by gedit ?

Mera 07-23-10 09:26 AM

ChaosInc Im at work testing on P4 (one core) 3Ghz, 2Gb RAm, its not slow at all, it just froze a few second at start after loading the file (which is normal all the file is parsed once at start) but after everything is fast I scroll down and up as fast on my i7

I really don't see where is the problem.

Sythalin 07-23-10 06:59 PM

Ok, I lied last post about it being my final one on the subject.

For the sake of argument, I've uninstalled N++ and all it's data (including the AppData) and did a full reinstall. It's performing a bit better, but still has a slight lag to it. However, it's more tolerable than it was before the reinstall. It was literally typing at one letter/second where now it's about a .1sec delay. I can work with this.

Don't take my comments to date (other than the comp vs. comp reply, I still hold my ground on that) as any sort of personal attack. I, amongst others, appreciate the work put forth into it and now I can actually use it, making my code a bit easier to sort through.

Iza 08-20-10 02:09 PM

Just wanted to drop a line saying: Thank you Mera! I've been using a rather old and simple syntax highlighting definition for lua and your version really rocks! One question "Comment add/remove" (for multi-line code disablement) doesn't seem to work with it. It's not a biggie to enter --[[ ... ]] but I'm a creature of habit...

p3lim 08-20-10 02:59 PM

Tried out this plugin today, works great (though the colors are messed up on black background, but I can customize this as I see fit :))

Picture of it in action

p3lim 08-20-10 05:53 PM

After using it for some while, I noticed a slight input lag.
As discussed earlier in this thread, it might just be the library issue.

Just going to use standard Lua highlights for now :/

Mera 09-24-10 05:27 PM

Notepad 5.8 is out with performance fixes in scintilla
Also Garthex did a very nice job updating its script for the new notepad, he kicked out external lexers and applied some performance tweaks

I have upgraded the LuaWoW plugin with GmodLua 1.5 as a base and new scintilla 2.21 and notepad++ 5.8 as libraries at luawow.googlecode.com

Btw this is redistributed for Notepad++ 5.8 UNICODE version, remove UNICODE and _UNICODE and recompile to get an ANSI version

the source comes in a CodeBlocks project for a vc10 compiler

7-zip files published

I haven't updated the APIs or I dont know if an update is needed because I play Warhammer online yet, this is funnier ;) :banana:

Xinhuan 09-25-10 04:13 AM

LuaWoW works well for Notepad++ 5.8.

WoW APIs will need to be updated for Cataclysm, but that should be it.

Mera 09-25-10 05:38 AM

I didn't get a beta key too probably because my account is inactive :( I would have done otherwise

btw I have done the same for Warhammer online at luawarhammer.googlecode.com

Foxlit 09-25-10 07:55 AM

Quote:

Originally Posted by Mera (Post 207237)
I didn't get a beta key too probably because my account is inactive :( I would have done otherwise

Just grab them from http://www.wowwiki.com/Global_functions/Cataclysm

Mera 09-25-10 09:12 AM

Quote:

Originally Posted by Foxlit (Post 207246)

no but thank you, I don't want to mix text coming from wiki to text coming from code, anyway if that's just about missing API you can do it yourself, my extractor is rather simple look:

lua
Code:

-- API extraction by Mera[eh]-

_G.__WowApiExtractor = {}

--[[ WoW Global API Extraction ]]
local function OnSlashWowGlobals(msg)
        _G.__WowApiExtractor = {}
        for a, b in pairs(_G) do
                if type(b) == "function" then _G.__WowApiExtractor[a] = type(b) end
        end
        print("Global functions extractions done!")
end

--[[ WoW UIObjects API Extraction ]]
local function OnSlashWowUIObjects(msg)
        --[[ UIObjects API Extraction ]]
        _G.__WowApiExtractor = {}
        _G["__WowApiExtractor_ControlPoint"] = _G["__WowApiExtractor_Path"]:CreateControlPoint()
        _G["__WowApiExtractor_Region"] = _G["__WowApiExtractor_Frame"]:CreateTitleRegion()
        local UIObjects = { "__WowApiExtractor_Alpha", "__WowApiExtractor_Animation", "__WowApiExtractor_AnimationGroup", "__WowApiExtractor_Button", "__WowApiExtractor_CheckButton",
                "__WowApiExtractor_ColorSelect", "__WowApiExtractor_ControlPoint", "__WowApiExtractor_Cooldown", "__WowApiExtractor_DressUpModel", "__WowApiExtractor_EditBox", "__WowApiExtractor_Font",
                "__WowApiExtractor_FontString", "__WowApiExtractor_Frame", "__WowApiExtractor_GameTooltip", "__WowApiExtractor_MessageFrame", "__WowApiExtractor_Minimap", "__WowApiExtractor_Model",
                "__WowApiExtractor_MovieFrame", "__WowApiExtractor_Path", "__WowApiExtractor_PlayerModel", "__WowApiExtractor_QuestPOIFrame", "__WowApiExtractor_Region", "__WowApiExtractor_Rotation",
                "__WowApiExtractor_Scale", "__WowApiExtractor_ScrollFrame", "__WowApiExtractor_ScrollingMessageFrame", "__WowApiExtractor_SimpleHTML", "__WowApiExtractor_Slider",
                "__WowApiExtractor_StatusBar", "__WowApiExtractor_TabardModel", "__WowApiExtractor_Texture", "__WowApiExtractor_Translation" }
        for a, b in pairs(UIObjects) do
                local object = _G[UIObjects[a]]
                for a, b in pairs(getmetatable(object).__index) do
                        if type(b) == "function" then _G.__WowApiExtractor[a] = type(b) end
                end
        end
        print("UIObjects functions extractions done!")
end

--[[ WoW Ace2 API Extraction ]]
local function OnSlashWowAce2(msg)
        _G.__WowApiExtractor = {}
        _G["__WowApiExtractor_AceAddon"] = AceLibrary("AceAddon-2.0")
        _G["__WowApiExtractor_AceComm"] = AceLibrary("AceComm-2.0")
        _G["__WowApiExtractor_AceConsole"] = AceLibrary("AceConsole-2.0")
        _G["__WowApiExtractor_AceDB"] = AceLibrary("AceDB-2.0")
        _G["__WowApiExtractor_AceDebug"] = AceLibrary("AceDebug-2.0")
        _G["__WowApiExtractor_AceEvent"] = AceLibrary("AceEvent-2.0")
        _G["__WowApiExtractor_AceHook"] = AceLibrary("AceHook-2.1")
        _G["__WowApiExtractor_AceLibrary"] = AceLibrary("AceLibrary")
        _G["__WowApiExtractor_AceLocale"] = AceLibrary("AceLocale-2.2")
        _G["__WowApiExtractor_AceModuleCore"] = AceLibrary("AceModuleCore-2.0")
        _G["__WowApiExtractor_AceOO"] = AceLibrary("AceOO-2.0")
        _G["__WowApiExtractor_AceTab"] = AceLibrary("AceTab-2.0")
        _G["__WowApiExtractor_AceLocale"] = AceLibrary("AceLocale-2.2")
        local Ace2Objects = { "AceEvent20EditBox", "AceEvent20Frame", "AceLibrary", "ChatThrottleLib", "LibStub",
                "__WowApiExtractor_AceAddon", "__WowApiExtractor_AceComm", "__WowApiExtractor_AceConsole", "__WowApiExtractor_AceDB",
                "__WowApiExtractor_AceDebug", "__WowApiExtractor_AceEvent", "__WowApiExtractor_AceHook", "__WowApiExtractor_AceLibrary",
                "__WowApiExtractor_AceLocale", "__WowApiExtractor_AceModuleCore", "__WowApiExtractor_AceOO", "__WowApiExtractor_AceTab"}
        for a, b in pairs(Ace2Objects) do
                local ace2object = _G[Ace2Objects[a]]
                for a, b in pairs(ace2object) do
                        if type(b) == "function" then _G.__WowApiExtractor[a] = type(b) end
                end
        end
        print("Global Ace2 functions extractions done!")
end

--[[ WoW Ace3 API Extraction
_G["__WowApiExtractor_AceConfigDropdown"] = LibStub("AceConfigDropdown-3.0")]]
-- local function OnSlashWowAce3(msg)
        -- _G.__WowApiExtractor = {}
        -- _G["__WowApiExtractor_AceAddon"] = LibStub("AceAddon-3.0")
        -- _G["__WowApiExtractor_AceBucket"] = LibStub("AceBucket-3.0")
        -- _G["__WowApiExtractor_AceComm"] = LibStub("AceComm-3.0")
        -- _G["__WowApiExtractor_AceConfig"] = LibStub("AceConfig-3.0")
        -- _G["__WowApiExtractor_AceConfigCmd"] = LibStub("AceConfigCmd-3.0")
        -- _G["__WowApiExtractor_AceConfigDialog"] = LibStub("AceConfigDialog-3.0")
        -- _G["__WowApiExtractor_AceConfigRegistry"] = LibStub("AceConfigRegistry-3.0")
        -- _G["__WowApiExtractor_AceConsole"] = LibStub("AceConsole-3.0")
        -- _G["__WowApiExtractor_AceDB"] = LibStub("AceDB-3.0")
        -- _G["__WowApiExtractor_AceDBOptions"] = LibStub("AceDBOptions-3.0")
        -- _G["__WowApiExtractor_AceEvent"] = LibStub("AceEvent-3.0")
        -- _G["__WowApiExtractor_AceGUI"] = LibStub("AceGUI-3.0")
        -- _G["__WowApiExtractor_AceHook"] = LibStub("AceHook-3.0")
        -- _G["__WowApiExtractor_AceLocale"] = LibStub("AceLocale-3.0")
        -- _G["__WowApiExtractor_AceSerializer"] = LibStub("AceSerializer-3.0")
        -- _G["__WowApiExtractor_AceTab"] = LibStub("AceTab-3.0")
        -- _G["__WowApiExtractor_AceTimer"] = LibStub("AceTimer-3.0")
        -- _G["__WowApiExtractor_CallbackHandler"] = LibStub("CallbackHandler-1.0")
        -- local Ace3Objects = { "Ace3", "AceAddon30Frame", "AceComm30Frame", "AceEvent30Frame", "AceTimer30Frame", "ChatThrottleLib",
                -- "LibStub", "__WowApiExtractor_AceAddon", "__WowApiExtractor_AceBucket", "__WowApiExtractor_AceComm", "__WowApiExtractor_AceConfig",
                -- "__WowApiExtractor_AceConsole", "__WowApiExtractor_AceDB", "__WowApiExtractor_AceDBOptions", "__WowApiExtractor_AceEvent",
                -- "__WowApiExtractor_AceGUI", "__WowApiExtractor_AceHook", "__WowApiExtractor_AceLocale", "__WowApiExtractor_AceSerializer",
                -- "__WowApiExtractor_AceTab", "__WowApiExtractor_AceTimer", "__WowApiExtractor_CallbackHandler", "__WowApiExtractor_AceConfigCmd",
                -- "__WowApiExtractor_AceConfigDialog", "__WowApiExtractor_AceConfigRegistry" }
        -- for a, b in pairs(Ace3Objects) do
                -- local ace3object = _G[Ace3Objects[a]]
                -- for a, b in pairs(ace3object) do
                        -- if type(b) == "function" then _G.__WowApiExtractor[a] = type(b) end
                -- end
        -- end
        -- print("Global Ace3 functions extractions done!")
-- end

_G.SLASH___WowApiExtractorG1 = "/wowglob"
_G.SLASH___WowApiExtractorU1 = "/wowui"
_G.SLASH___WowApiExtractorAce21 = "/wowace2"
--_G.SLASH___WowApiExtractorAce31 = "/wowace3"
_G.SlashCmdList.__WowApiExtractorG = OnSlashWowGlobals
_G.SlashCmdList.__WowApiExtractorU = OnSlashWowUIObjects
_G.SlashCmdList.__WowApiExtractorAce2 = OnSlashWowAce2
--_G.SlashCmdList.__WowApiExtractorAce3 = OnSlashWowAce3

xml
Code:

<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ W:\WORLDO~1\BLIZZA~1\FrameXML\UI.xsd">
    <Frame name="__WowApiExtractor_Frame" hidden="true">
        <Layers>
            <Layer>
                <FontString name="__WowApiExtractor_FontString" hidden="true"/>
                <Texture name="__WowApiExtractor_Texture" hidden="true"/>
            </Layer>
        </Layers>
        <Animations>
            <AnimationGroup name="__WowApiExtractor_AnimationGroup" hidden="true">
                <Path name="__WowApiExtractor_Path" hidden="true"/>
                <Alpha name="__WowApiExtractor_Alpha" hidden="true"/>
                <Animation name="__WowApiExtractor_Animation" hidden="true" />
                <Rotation name="__WowApiExtractor_Rotation" hidden="true"/>
                <Scale name="__WowApiExtractor_Scale" hidden="true" />
                <Translation name="__WowApiExtractor_Translation" hidden="true" />
            </AnimationGroup>
        </Animations>
    </Frame>
    <Button name="__WowApiExtractor_Button" hidden="true" />
    <CheckButton name="__WowApiExtractor_CheckButton" hidden="true" />
    <ColorSelect name="__WowApiExtractor_ColorSelect" hidden="true" />
    <Cooldown name="__WowApiExtractor_Cooldown" hidden="true" />
    <DressUpModel name="__WowApiExtractor_DressUpModel" hidden="true" />
    <EditBox name="__WowApiExtractor_EditBox" hidden="true" />
    <Font name="__WowApiExtractor_Font" hidden="true" />
    <GameTooltip name="__WowApiExtractor_GameTooltip" hidden="true" />
    <MessageFrame name="__WowApiExtractor_MessageFrame" hidden="true" />
    <Minimap name="__WowApiExtractor_Minimap" hidden="true" />
    <Model name="__WowApiExtractor_Model" hidden="true" />
    <MovieFrame name="__WowApiExtractor_MovieFrame" hidden="true" />
    <PlayerModel name="__WowApiExtractor_PlayerModel" hidden="true" />
    <QuestPOIFrame name="__WowApiExtractor_QuestPOIFrame" hidden="true" />
    <ScrollFrame name="__WowApiExtractor_ScrollFrame" hidden="true" />
    <ScrollingMessageFrame name="__WowApiExtractor_ScrollingMessageFrame" hidden="true" />
    <SimpleHTML name="__WowApiExtractor_SimpleHTML" hidden="true" />
    <Slider name="__WowApiExtractor_Slider" hidden="true" />
    <StatusBar name="__WowApiExtractor_StatusBar" hidden="true" />
    <TabardModel name="__WowApiExtractor_TabardModel" hidden="true" />
</Ui>

toc
Code:

## Interface: 30300
## Title: __WowApiExtractor
## Notes: Extract Global from WoW and its UIObjects
## Author: Merah
## Version: 30300.1
## SavedVariables: __WowApiExtractor

__WowApiExtractor.lua
__WowApiExtractor.xml




//edit: got my key from Battle.net few days later so thanks to the mysterious helper if there is one, thanks to Curse so for sending me one too from the Curse shop.

Mera 11-11-10 08:26 AM

LuaWar + LuaWow projects API list updated to match latest clients

Wow:
- API list extracted from Cataclysm beta 4.0.3.13277
- scanned some new uiobjects
- new section added for notepad++ only, global tables (~20000 tables)

War:
- API update to 1.3.6.552

neverg 11-11-10 08:51 AM

I use notepadd++ for ages and with the default Lua syntax highlighter in the default plugin repositories. Now my question is, what's the difference from the default one? I read the description, installed it but seen no difference other than taking a bit more time to load. This highlight things the default one doesn't or it actually has any way to auto-complete Blizzard API functions?

Aprikot 02-11-11 07:13 PM

I just came across this after some googling around, gave it a try, and have to say it's awesome. Many thanks to Mera for what must've been a fair amount of labor. I've used the default Lua highlighting for quite awhile, and having the API stuff highlighted is magical. :D

Morsker 04-29-11 12:36 PM

I'm using Notepad++, and can't get user-controlled comment folding to work. It's supposed to be part of the GmodLua this is based off of.

At least this wiki page says
Quote:

A line with either --{, --}, //{ or //} will also fold.
edit: I found the code responsible and WowLua doesn't use it because it rewrote the folding logic. I could add the feature back, if you have some information about how this is compiled, which version of Visual Studio, and what other projects it depends on. I know the C++, but not all the details of how the build environment is setup for this.

Goldpaw 05-06-11 03:12 PM

Quote:

Originally Posted by neverg (Post 217336)
I use notepadd++ for ages and with the default Lua syntax highlighter in the default plugin repositories. Now my question is, what's the difference from the default one? I read the description, installed it but seen no difference other than taking a bit more time to load. This highlight things the default one doesn't or it actually has any way to auto-complete Blizzard API functions?

It highlights things the default "Lua" highlighter doesn't. But you must make sure you have chosen "LuaWoW" in the Language-menu, as having it set to the default "Lua" will only use the default Lua highlighter, not this one.

Dridzt 07-22-12 07:25 PM

UltraEdit/Studio wordfile for MoP beta (api extracted from build 15882)

http://pastebin.com/arCtrTZU

Save as wowlua.uew in the wordfiles folder found from
'Advanced-> Configuration-> Editor Display-> Syntax Highlighting' in UltraEdit/Studio options.

Talyrius 07-23-12 07:20 AM

Thank you, Dridzt. It should be called "WoW Lua" instead of "WoW LUA" though. Yes, it's a nitpick.

mec666 08-06-13 09:01 AM

any chance this will get updated anytime soon?

mec666 07-18-14 08:52 AM

still no updates?
the current notepad++ hates the plugin keeps saying its to old

Phanx 07-18-14 04:55 PM

It's been a year since you last necro-ed this thread, and it had been dead for a year before that, so I think it's safe to say that no, there are still no updates, and there aren't ever going to be any updates, so you should probably just give up already, unless you want to update the project yourself.


All times are GMT -6. The time now is 08:43 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI