You are not logged in.

Dear visitor, welcome to Runes of Magic EU. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Monday, December 31st 2012, 4:14pm

[GUIDE] Lua IDE für RoM Addon Entwicklung einrichten

Einführung:
Einige Male wurde schon die Frage nach einem IDE für die Addon Entwicklung gestellt. Doch IDEs mit guter Lua Unterstützung sind rar gesät. Viele Addon Entwickler nutzen einen mehr oder minder einfachen Texteditor mit Script-Highlighting wie SciTE oder Notepad++, sowie die Lua Konsole für das Debuggen genereller Funktionen.

Vor einiger Zeit bin ich auf ein Programm namens IntelliJ IDEA gestoßen, für das es ein sehr gut funktionierendes Plugin gibt. Beim ersten Mal schlug meine Einrichtung fehl, was daran liegt das IDE und Plugin zu diesem Zeitpunkt inkompatibel waren. Um anderen die Prozedur zu erleichtern, oder vllt. sogar Interesse bei erfahreneren Addon Entwicklern zu wecken soll dies hier ein Guide zur Einrichtung einer Addon Entwicklungsumgebung werden.

@Mods:
Ein Moderator könnte vllt. meinen Thread mit der Notepad++ Autocompletion abpinnen und dafür diesen Thread anpinnen. Meines Erachtens ist das eingerichtete IDE effektiver und praktischer als Notepad++. Auch mit meiner Autocompletion...

Update: Danke für's umpinnen, wer die alte Autocompletion trotzdem möchte findet diese hier.

Vorraussetungen / Downloads:

Schritt 1: Installation der Lua Binaries
Bevor mit der eigentlichen Installation des IDE begonnen wird, sollte Lua auf dem PC installiert sein. Ich verwende dazu Lua4Windows. Es enthält neben den Windows Binaries noch den SciTE Editor, welcher sich gut dazu eignet mal eben auf die Schnelle ein paar Tests durchzuführen, denn diese Version von SciTE besitzt eine Unterstützung für die Lua Konsole. SciTE wird aber nicht benötigt. Den Installer einfach von oben gegebener Website unter Google Code herunterladen und die Schritte durchführen. Danach sollte unter Lua unter "C:\Program Files (x86)\Lua\5.1" aufzufinden sein.

Schritt 2: Installation und Ersteinrichtung von IntelliJ IDEA
Sobald Lua auf dem Computer vorhande ist, kann IntelliJ IDEA installiert werden. Man sollte sich hierbei am besten auf der Website des Lua For IDEA Plugins informieren mit welchen Versionen der aktuelle Build des Plugins kompatibel ist. Zum aktuellen Zeitpunkt (31.12.2012) ist das Version 11.1. IDEA 12 ist im Moment noch inkompatibel und es könnte noch ein Weilchen dauern bis sich das ändert.
Update 18.03.13: Nach einer Installation von Windows 8 habe ich IDEA 12 ausprobiert. Mittlerweile funktioniert das Plugin auch dort. Die IDE hat nun einen eigenen, recht schönen Skin "Darcula", die Installationsschritte haben sich aber nicht geändert.

Es gibt 2 Editionen von IntelliJ IDEA: Ultimate und Community Edition. CE ist dabei die freie, kostenlose Variante. Davon abgesehen gibt es bei der Installations selbst nichts weiteres mehr zu beachten, sodass der Installer einfach durchlaufen darf.
index.php?page=Attachment&attachmentID=123221

Durch die Installation einer veralteten Version erscheint beim Start unter Umständen diese Benachrichtigung. AUF KEINEN FALL ein Update durchführen sondern "Ignore this Update" wählen. Die Updateprüfung kann in den Settings unter Update deaktiviert werden...
index.php?page=Attachment&attachmentID=123224

Dies ist auch der Ort der danach aufgesucht werden sollte. Die meißten Einstellungen passen, ein paar Änderungen sind aber durchaus hilfreich. Die Einstellungen finden sich unter File -> Settings
index.php?page=Attachment&attachmentID=123227

Die Liste ist nach Fenstern und Bereichen gegliedert, einfach nach Belieben von oben nach unten durcharbeiten:
  • IDE Settings
    • Appearance
      • Look and Feel -> Windows (Version 12: Darcula); Danach Einstellungen schließen und neu öffnen.

    • Editor
      • Zoom with Ctrl + Mouse Wheel -> on

    • Appearance
      • Show line numbers -> on
      • Show method separators -> on
      • Show whitespaces -> on

    • Editor Tabs
      • Show sirectory in tabs for non-unique filenames -> on
      • Mark modified tabs with asterik -> on

    • Code folding
      • Collapse documentation comments -> on

Die Basiseinrichtung und Installation von IntelliJ IDEA ist somit abgeschlossen.

Schritt 3: Installation und Einrichtung des Lua For IDEA Plugins
Danach kann schlussendlich das Lua Plugin installiert werden und der Spaß fängt an. Das ganze funktioniert auch wieder aus den Settings heraus:
  • IDE Settings
    • Plugins
      • Browse Repositories
        • Lua suchen
        • Doppelklick
        • Yes (Installiert das Plugin)
        • OK

      • OK

    • Restart

Nach dem Neustart erscheinen in den Einstellungen an mehreren Stellen Lua-Settings:
index.php?page=Attachment&attachmentID=123230
Hier gibt es nun ein paar Dinge die konfiguriert werden sollten
  • Template Project Settings
    • Inspections
      (Hier gibt es ein paar Dinge die bei mir Probleme machten und deswegen deaktiviert wurden)
      • Data Flow Issues -> off
      • Probable Bugs
        • Suspicious global creation -> off
        • Variable not assigned -> off

  • IDE Settings
    • Lua
      • Add additional completions -> on

    • Editor (optional)
      • Colors & Fonts
        • Lua (Hier kann das Syntax Highlighting angepasst werden)

    • OK

Das war Teil 1 der Plugin-Konfiguration

Nun kann das erste Projekt erstellt werden und damit auch einmalig das Lua SDK. Dazu auf File -> New Project klicken und immer, auch wenn es schon existierenden Source Code gibt "Project from Scratch" wählen, denn nur dort kann man den Typ wählen. Im Folgenden Fenster dann Folgendes Konfigurieren
  • Project files location: Zum bestehenden Addon Ordner navigieren, oder neuen Ordner unter Interface/Addons/ erstellen
  • Project name: Passt sich dem Ordner an, kann danach aber geändert werden.
  • Project file format: .idea (directory based)
  • Select type: Lua Module

Danach soll das SDK ausgewählt werden. Beim ersten mal steht zwar schon Kahlua zur verfügung dieses ist aber nicht konfiguriert. Wir werden, um einige RoM Variablen, etc. zur Verfügung zu haben ein eigenes SDK erstellen:
index.php?page=Attachment&attachmentID=123233

Dazu klickt ihr auf Configure und auf das Plus Symbol in der linken oberen Ecke und wählt "Lua SDK". Dies fügt ein neues SDK hinzu. Wählt den Pfad zu euren zuvor installierten Lua binaries (C:\Program Files (x86)\Lua\5.1). Nennt es z.B. "RoM Lua". Wenn ihr RoM Variablen hinzufügen wollt benötigt ihr nun den FDB-Extractor 2 von TellTod. Entpackt damit die Interface.fdb an einen beliebigen Ort, den ihr danach bitte nicht mehr ändert und wählt diesen Pfad als weiteren "Classpath" in IDEA aus. Beachtet dabei das ihr nicht nur den Interface Ordner wählt, sondern den darin befindlichen "worldxml"-Ordner. Bestätigt mit OK und klickt auf Finish. Das Projekt ist erstellt und nach einer kurzen Ladezeit begrüßt euch dieses Fenster:
index.php?page=Attachment&attachmentID=123236

Beachtet den roten Warnhinweis. Dies liegt daran das IntelliJ IDEA mit GIT und SVN Repositories umgehen kann und bei mir eine gefunden hat, die in diesem Projekt noch nicht konfiguriert ist. Ihr könnt das dann nachholen, wenn das Repository zum Projekt gehört oder "VCS root errors" ignorieren.

Glückwunsch die Einrichtung des IDE mit Lua For IDEA ist nun abgeschlossen! Viel Spaß bei der Addon Entwicklung. ;)
Hier ein Screen wie es auf meinem Entwicklungssystem mit GIT und allem drumherum aussieht:
index.php?page=Attachment&attachmentID=123239

This post has been edited 3 times, last edit by "Noguai" (Jul 25th 2013, 5:30pm)


2

Monday, December 31st 2012, 4:16pm

IDEA Lua SDK Extension for Runes of Magic
(based on sylvanaar2's IDLua SDK for World of Warcraft)


IntelliJ IDEA ist eingerichtet und funktioniert. Das ist schön und praktisch, aber eine Sache fehlt doch noch... Richtig: Eine Funktionsdokumentation und Autocompletion mit allen Funktionen! Okay, IDEA erstellt sich seine Autocompletion selbst und wir haben das auch schon mit der Integration des RoM Interfaces größtenteils veranlasst, aber da geht bekanntlich noch mehr.

Das soll dieses Paket lösen: Ganz nach sylvanaar2's Design für die WoW API ist dies hier einerseits ein dump der RoM Funktionen für eine nach Möglichkeit vollständigste Autocompletion, sowie eine direkte Verbindung zu theromwiki.com. Nicht aus einer zuvor erstellten Datenbank mit den Info's, sondern direkt über das Web wird die aktuelle Dokumentation heruntergeladen, ausgelesen und angezeigt. Einziger Nachteil: Es gab auf theromwiki keine Liste mit den Funktionssignaturen und aus Lua heraus bin ich im Spiel nicht drangekommen, weswegen alles nur als function(), statt z.B. "mainToken, secToken = UnitClassToken(unitid)" eingetragen ist.

Wie wird das ganze nun genutzt?
Einfach:
Autocompletion: Wie gewohnt einfach tippen
Quick Documentation: Strg + Q
RomWiki - Webpage zur Funktion: Shift + F1
Signatur: Strg + Mouseover

Gibt's dazu auch einen Beispielscreenshot?
Ja und weil es du bist sogar zwei:
index.php?page=Attachment&attachmentID=123302index.php?page=Attachment&attachmentID=123305
Alles klar, will ich haben. Wo ist der Download?
Im Anhang
Noguai has attached the following files:

3

Monday, December 31st 2012, 4:16pm

~~ Eine letzte Reservierung, für den Fall der Fälle... ~~

4

Monday, December 31st 2012, 4:41pm

Quoted from "Noguai;4486859"


...
@Mods:
Ein Moderator könnte vllt. meinen Thread mit der Notepad++ Autocompletion abpinnen und dafür diesen Thread anpinnen. Meines Erachtens ist das eingerichtete IDE effektiver und praktischer als Notepad++. Auch mit meiner Autocompletion...



...


Bitte nicht abpinnen, denn Dein Notepad++ Ergänzung für die RoM-Befehle hilft mir oft weiter^^ :D
(ein angepinner Thread mehr schadet doch niemandem - aber wenn man den nicht mehr finden würde wäre dumm)

Allerdings bin ich nur eine Makro- und AddOn-Begeisterte, bis zum AddOn-Entwickler werde ich es nicht bringen^^

danke an UniqueArt für die tolle Signatur :)
Bewahrer - Magier - Kundschafter 81/66/65
Stiefelchen ist endlich lvl 50 und ausgeskillt :D

5

Monday, December 31st 2012, 6:27pm

Ich werde es mir auf jeden Fall ansehen - habe Interesse an Größeres ;)

Vielen Dank dafür.

6

Tuesday, January 1st 2013, 3:15pm

Gerne. Du wirst so Dinge wie das Struktur-Fenster nicht mehr missen wollen. ^^ Da werden 1000 Zeilen Code mal gleich viel übersichtlicher. Ich bin seit ich dieses IDE nutze (Das sind übrigens die Jungs die auch den ReSharper anbieten falls den jemand von VisualStudio kennt) produktiver geworden.

Quoted from "Tearsofdarkness;4486886"

Bitte nicht abpinnen, denn Dein Notepad++ Ergänzung für die RoM-Befehle hilft mir oft weiter^^ :D
(ein angepinner Thread mehr schadet doch niemandem - aber wenn man den nicht mehr finden würde wäre dumm)

Allerdings bin ich nur eine Makro- und AddOn-Begeisterte, bis zum AddOn-Entwickler werde ich es nicht bringen^^

Na dann... :D Dazu aber angemerkt: Genauso hat's bei mir angefangen... und irgendwann kam: https://forum.runesofmagic.com/showthrea…l=1#post4274059

7

Wednesday, January 2nd 2013, 7:39pm

Habe mal ein kleines Zusatzpaket zum Download hinzugefügt:
IDEA Lua SDK Extension for Runes of Magic
(based on sylvanaar2's IDLua SDK for World of Warcraft)

8

Monday, March 18th 2013, 8:26pm

Soo, ein kleines Statusupdate von mir:
Das Plugin Lua for IDEA ist nun auch mit Version 12 von IntelliJ IDEA kompatibel. Ich habe entsprechende Hinweise und den Link in den Guide eingefügt.

In der Zwischenzeit hat sich die Internetadresse von theromwiki geändert, sowie sich deren Seitenlayout und damit der Seitenquelltext, den die Extension durchwühlt. Auch dafür habe ich ein kleines Update im entsprechenden Post, gleich unter dem Guide, veröffentlicht. Getestet habe ich die Änderungen nur mit IDEA 12 und dem aktuellen Build des Plugins.

Grüße
Noguai

9

Wednesday, July 24th 2013, 7:35pm

Habe mal nach langer Zeit das Layout des ersten Beitrags nach der Forenumstellung gefixt und nach noch längerer Zeit die Dokumentationserweiterung.
Steht im zweiten Post zum Download bereit.

10

Thursday, July 25th 2013, 8:05am

Hi Noguai,

da hab ich diesen schönen Guide erst heute bemerkt *schäm* klarer Sticky und auch dein Wunsch aus Beitrag #1 wurde erfüllt.

Grüße Aglareb
Teamstruktur von Runes of Magic | [Guide] Mögliche Klassenkombinationen

Du bist mit einer Entscheidung von mir nicht zufrieden? Kontaktiere den nächst höheren im >Team<.

DetlefAhrens1957

Intermediate

Posts: 173

Location: Nordgermersleben

  • Send private message

11

Tuesday, August 6th 2013, 10:50am

Hi,

ich konnte bei mir 2 Einstellungen nicht finden

Template Project Settings



  • Inspections
    (Hier gibt es ein paar Dinge die bei mir Probleme machten und deswegen deaktiviert wurden)
  • Data Flow Issues -> off
  • Probable Bugs
  • Suspicious global creation -> off (nicht vorhanden)
  • Variable not assigned -> off (nicht vorhanden)
    index.php?page=Attachment&attachmentID=131960

Habe ich etwas falsch gemacht?

12

Tuesday, August 6th 2013, 7:34pm

Doch, die gibts. Bild im Anhang.
Noguai has attached the following file:
  • Inspections.PNG (105.16 kB - 57 times downloaded - latest: May 31st 2017, 9:59am)