DescribeIt - Funktionsheader leicht gemacht (Alpha)

  • [Blockierte Grafik: http://i45.tinypic.com/2je9w28.png]

    Hallo,
    Ich möchte euch mein neustes kleines Projekt vorstellen: DescribeIt

    Findet ihr es auch mühsehlig für eure UDF Funktionen standardkonforme Funktionsheader "zu Fuß" zu erstellen?
    Mit DescribeIt ist damit jetzt Schluss! Die übersichtliche GUI macht es einfach, schnell eine Beschreibung zu erstellen.

    Hier mal ein paar Screenshots für den groben Überblick:
    [Blockierte Grafik: http://i46.tinypic.com/245da42.png]
    [Blockierte Grafik: http://i50.tinypic.com/2rxb4a0.jpg]

    Was kann DescribeIt ?
    Mit DescribeIt kann man in Windeseile eigene Funktionsheader erstellen, oder bereits vorhandene bearbeiten. Die Header sind standartkonform - wodurch eure UDF direkt noch professioneller wirkt. DescribeIt versucht, bereits vorhandene Header einzulesen und zu verarbeiten. Ist das nicht möglich so wird der Header so weit wie möglich ausgefüllt. (zB standardmäßig On Success/Failure im Return). DescribeIt verändert die Orginaldatei nicht.

    Wie verwende ich DescribeIt ?
    Zur installation einfach den Installer starten, und den Anweisungen folgen.
    Die Anwendung selbst ist denkbar einfach. Zum einlesen eines Scriptes genügt bereits ein Drag & Drop. Alternativ kann eine Datei über den Datei-öffnen Dialog gewählt werden. DescribeIt unterstützt auch das Einlesen von Quellcode aus der Zwischenablage. Im kompilierten Zustand kann auch eine Datei direkt auf die .exe oder eine entsprechende Verknüpfung auf dem Desktop gezogen werden.

    Ist der Code eingelesen, wählt man links oben in der ComboBox eine Funktion aus. Diese kann man nun über die einzelenen Bedienelemente der GUI bearbeiten.
    Zum speichern reicht es, den entsprechenden Knopf in der GUI zu drücken. Entweder alle Funktionen mit allen erstellten Headern in eine Datei schreiben,
    oder den aktuellen bearbeiteten Header in die Zwischenablage kopieren.


    Mein Dank an dieser Stelle gilt TimBlo aus dem AutoItBot-Forum, der fleißig eine Projekt Speichern/Laden-Funktion für dieses Tool schreibt geschrieben hat, welche dann aber durch die Import/Export-Funktion ersetzt wurde.
    Außerdem danke ich PrideRage für seine Anleitung, wie man das Script in Scite einbaut.

    Download ab jetzt extern:
    DescribeIt Download
    Hier der VirusTotal Bericht:
    http://www.virustotal.com/de/analisis/29…138b-1268008513

    Sourcecodes sind dabei, falls ihr euch Sorgen machen solltet. Habe die .exen nur zur Angenehmeren Handhabung beigefügt.

    ChangeLog zur letzen Version
    • Installer hinzugefügt
    • Diverses Bugfixing & Kleinigkeiten
  • Sieht super aus, aber da stimmt was noch nicht. Bei deinem Beispiel sind die Paremter nicht richtig. Das sollte so aussehen:

    [autoit]

    ; Parameters ....: $avArray - [ByRef] Array to sort
    ; $iDescending - [optional] Ascending or descending (default: 0)
    ; $iStart - [optional] Index of the first element to sort (default: 0)
    ; $iEnd - [optional] Index of the element to end with (default: 0)
    ; |(This is the second line
    ; +and this continues line 2)
    ; $iSubItem - [optional] Subitem (default: 0)

    [/autoit]

    Außerdem sind mehere Zeilen bei Description nicht erlaubt so weit ich weiß.

  • Habe die Parameter jetzt korrigiert und sie sind jetzt hoffentlich standardkonform.

    Hinzugekommen ist auch das Importieren der Parameterbeschreibungen (die bis jetzt immer leer gelassen wurden)
    Außerdem haben wir die Projekt-Funktionen fast fertig (nur noch ein bisschen bugfixing). Im Prinzip funktionieren sie, aber noch nicht 100%ig, so wie ich das gerne hätte.

    Bekannte Bugs, für die ich mir noch was überlegen muss:
    - Importfunktion für Parameter liest mehrzeilige Beschreibungen nicht aus.
    - Bestimmte Situationen bringen die Projekt - Funktionen zum Absturz-

    Neue Version in Post 1

    @progandy: nicht dass du denkst, ich hätte dich überlesen: Habe den Parameter-Output entsprechend deinem Link angepasst. Danke jedenfalls dafür, das kann im späteren Projektverlauf (wenn die Kinderkrankheiten beseitigt sind) sehr nützlich werden. Vor allem wenn das Tool so weit ist,
    und in SciTE integriert werden kannst, wäre ein "On-The-Fly"-Korrigieren und anpassen des Scriptes natürlich überbombig. Dein Link hilft da sehr gut weiter.

    // Edit 2: Und das mit der Nicht-Mehrzeiligen Description wird auch noch gemacht. In der nächsten Version.

  • Neue Version:

    • Das GUI ist angepasst worden, damit es übersichtlicher ist.
    • Man kann nun die Anzeige zwischen Header-Preview und Orginalfunktion wechseln.
    • Es ist nun möglich, related functions/links einzutragen.
    • Auf wunsch können "ungenutzte" Zeilen entfernt werden.
    • Die Option, interne Funktionen mit einzubeziehen, ist nun standard.
    • Copy & Paste für Funktionen eingefügt. Dies ermöglicht es, Daten von einer auf die andere Funktion zu übertragen. Übertragen werden Beschreibung, Return Value, Author, Modified, Remarks, Related, Link
    • Scripte können nun "exportiert" werden. (Zum jetzigen Stand allerdings nur Abwechelnd header und Funktion)
    • Scripte können nun während dem "normalen" Betrieb eingelesen werden. Man muss also nicht für jedes Include neu starten.
    • Einiges an Bugfixing.

    Download wird in kürze in Post 1 verfügbar sein.
    /EDIT: Upload fertig. Bilder eingefügt. Viel spaß damit ;)

  • SEuBo
    Hab ne UDF geladen, dann kam irgendein Error mit nem Array :D

    Sorry, aber bei solchen Beiträgen bekomm ich echt die Krätze... Wie wärs mit nem Screenshot oder ner Fehlermeldung???
    Ich hab die Fehlermeldung jetzt mal selber rausgesucht:

    Zitat

    C:\Dokumente und Einstellungen\***\Desktop\DescribeIt\DescribeIt.au3 ( 508 ) : ==> Subscript used with non-Array variable.:
    $sRet = $aTmp[0][0]
    $sRet = $aTmp^ ERROR

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Ich hab mal nachgeguckt... Die UDF wird nicht richtig ausgelesen, bzw der Array $aInfo wird dadurch falsch dekliniert.

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Danke. Diesen Fehler habe ich heute gefunden als ich die "Code per Clipboard einlesen"-Funktion eingebaut habe. In der nächsten Version wird das auch gefixt sein.

    Aber der Fehler tritt erst beim öffnen einer UDF auf, wenn schon eine andere offen war, oder?
    Beim Scriptstart darf / kann das eigentlich nicht passieren.

    Wenn doch postet mal bitte die UDF.

  • Jo, das Script stürzt erst nach dem öffnen der UDF ab.
    Ich habe eine der offiziellen UDF, die ff.au3 und eine eigene zum testen genommen.

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Neue Version

    Ich hoffe, dass die nun bei jedem laufen wird.

    Changes
    • RegExp-Pattern zum einlesen von Funktionen korrigiert. Nun werden auch Funktionen OHNE Paramter gefunden.
    • GUI aufgeräumt. Die TreeView kann jetzt direkt bearbeitet werden (Doppelklick zum umbenennen, Rechtsklick für Kontextmenü)
    • Source lässt sich nun direkt aus der Zwischenablage einlesen. Im hauptfenster geht man dafür mit einem Rechtsklick auf Open au3 und wählt die entsprechende Option.
    • Scripte lassen sich nun per Drag & Drop einlesen (thx PrideRage)
    • DescribeIt unterstützt nun die Kommandozeile: Einfach eine Datei auf "DescribeIt.exe" ziehen, und diese wird beim Programmstart geladen. (thx PrideRage)
    • "Animationen" für Copy, sowie Paste-Icon.
    • Diverses Bugfixing
    Known Bugs
    • Wenn man direkt auf ein Treeview-Item rechtsklickt, um eien Aktion auszuführen, wird diese nicht angenommen. Das Liegt daran, dass _GUICtrlTreeView_GetSelection() in diesem Fall keinen brauchbaren Return liefert. Ich arbeite dran.

      WorkAround: Zuerst mit linksklick ein Item wählen. Dann mit rechtsklick Aktionen auswählen.

    Siehe Post 1


    Update: Scheinbar funktinoiert das ganze nur auf meinem Rechner. ich habe mittlerweile den Fehler gefunden (zumindest glaub ich das. Allerdings habe ich es noch nicht geschafft das zu reparieren : Jetzt funktionierts auf dem anderen Rechner, nur auf meinem Notebook nicht mehr. Ich meld mich wenn ich weiter bin.