DescribeIt - Funktionsheader leicht gemacht (Alpha)

  • :S
    Sry, ist korrigiert.


    Neue Version. Neue DLL.
    Klappt auf beiden Rechnern von mir, und bei 2 weiteren Leuten aus der Shoutbox.
    Außerdem noch getestet bei meiner freundin am PC.

    //EDIT:
    Könnte ein Mod so nett sein, und das in den Projekte Bereich verschieben?
    Danke :)

  • Endlich funzt das Script.
    Jetzt isses richtig geil, ich poste gleich mal ein Tutorial für SciTE, wenn du nix dagegen hast SEuBo
    MfG. PrideRage

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Gerne doch. Wie du sicher schon gelesen hast, plane ich eh einen Installer für SciTE (so wie OrganizeIncludes einen hat)

    Über Verbesserungsvorschläge bin ich übrigens immer glücklich!

    Ganz oben auf meiner Liste sind momentan:
    - Verbesserter Import von Scripten
    - Verwandte Funktionen werden auch auf der "Gegenseite" eingetragen

    Beispiel:
    Man wählt die Funktion _ArrayMin. Hier stellt man _ArrayMax als verwandte Funktion ein.
    Nun wird automatisch bei _ArrayMax die _ArrayMin Funktion als Verwandte Funktion eingetragen.
    So langsam denke ich wirklich, ich sollte auf eine Datenbank umsteigen.
    - (Semi-)Live Update des Headers: Der "Apply" Button soll komplett überflüssig werden, weil die Informationen "on-the-fly" in die Vorschau geschrieben werden.

    Immer her mit EUREN Ideen ;)

  • lol bis vor einer sekunde dachte ich es heißt describelt (mit L)
    und ich dachte es wird so ausgesprochen wie: des kribbelt xD
    hab dann überlegt "describe" und ausstehend war noch lt bzw it ^^
    wobei deskribbelt auch ein cooler name is xD

    auf jedenfall gute idee... etwas einmaliges, da keiner auf sone idee kommt

  • Sieht cool aus!
    Drei kleine Anmerkungen.

    • Auf Zeile 690 ist "_ArrayDisplay" nicht auskommentiert. Bei meinem UDF mit ~65 Funktionen klicke ich einige Zeit
    • Im Gui ist ein kleiner Tippfehler "Include Exapmle:"
    • Bei den Icons für Copy und Paste wäre es fein, wenn der Tooltip bei Mousover angezeigt würde und nicht erst wenn man draufklickt.
  • Bei mir werden die Funktionen wild durcheinander gemischt, wäre schöner wenn sie in der Reihenfolge blieben wie sie in der orginall au3 waren.

    Auch werden Errormeldugen aus den Orginalheadern rausgeschmissen und includes entfernt.

    Z.b. Orginal:

    Spoiler anzeigen
    [autoit]


    #include <String.au3>
    OnAutoItExitRegister("_TS3quit")
    Global $TS3connection

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNCTION# ;===============================================================================
    ;
    ; Name...........: _TS3connect
    ; Description ...: TS3 Server connect
    ; AutoIt Version : V3.3.6.0
    ; Syntax.........: _TS3connect($TS3server = ""[, $TS3port = "10011"])
    ; Parameters ....: $TS3server - Server (Name or IP)
    ; $TS3port - Optional: (Default = "10011") : Queryport
    ; Return values .: Success - Returns : 1
    ; Failure - Returns 0 and Sets @Error:
    ; |0 - No error.
    ; |1 - Wrong IP
    ; |2 - Wrong Port
    ; Windows API WSAGetError
    ; Author ........: chip
    ;
    ; ;==========================================================================================
    Func _TS3connect($TS3server = "", $TS3port = "10011")
    TCPStartup()
    $host = TCPNameToIP($TS3server)
    $TS3connection = TCPConnect($host, $TS3port)
    SetError(@error)
    EndFunc ;==>_TS3connect

    [/autoit]


    Und das gibt Describlet aus

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ======================================================================================
    ; Name ..........: _TS3connect()
    ; Description ...: TS3 Server connect
    ; Syntax ........: _TS3connect([$TS3server = ""[, $TS3port = "10011"]])
    ; Parameters ....: $TS3server - [optional] Server (Name or IP) (default:"")
    ; $TS3port - [optional] Virtual server port (default:"10011")
    ; Return values .: Success - Returns : 1
    ; Failure - Returns 0 and Sets @Error:
    ; |0 - No error.
    ; |1 - Wrong IP
    ; Author ........: chip
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......:
    ; =================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func _TS3connect($TS3server = "", $TS3port = "10011")
    TCPStartup()
    $host = TCPNameToIP($TS3server)
    $TS3connection = TCPConnect($host, $TS3port)
    SetError(@error)
    EndFunc

    [/autoit]

    P.s. User.properties.Platz #37 hab ich schon belegt ;). https://autoit.de/index.php?page=Thread&amp;postID=138953

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    3 Mal editiert, zuletzt von chip (8. März 2010 um 16:19)

  • Bei mir werden die Funktionen wild durcheinander gemischt, wäre schöner wenn sie in der Reihenfolge blieben wie sie in der orginall au3 waren.

    Naja "mischen" ist nicht ganz richtig - die Funktionen werden alphabetisch sortiert. Wenn du das nicht möchtest, musst du in der DescribeIt.au3 in Zeile 827

    [autoit]

    _ArraySort($aFuncs)

    [/autoit]

    auskommentieren. Ich werde eine Checkbox dafür einbauen ;)

    Auch werden Errormeldugen aus den Orginalheadern rausgeschmissen und includes entfernt.

    Die Exportfunktion ist noch nicht ausgereift. momentan werden nur header und funktion abwechselnd in eine .au3 geschrieben. Das kommt alles noch bis v1.0. Das ist der Grund für die fehlenden Includes.
    Wegen den @error abfragen: Das script erwartet 21 (oder waren's 17?!) leerzeichen am Zeilenanfang. Irgendwo musst ich es ja standartisieren, denn immerhin beruht auch die Speichern/Laden funktion, welche ja nichts anderes ist als export/import, auch auf diesem "System".
    Wenn ich mal zuviel langeweile hab, bau ich eine Funktion ein, die versucht "verformte" Header einzulesen.

    Wenn du nochmal deine Spoiler anguckst, siehst du, dass die letzen beiden Zeilen irgendwie verrutscht sind.

    P.s. User.properties.Platz #37 hab ich schon belegt ;). https://autoit.de/index.php?page=Thread&amp;postID=138953

    Deswegen wird auch die User.properties per RegExp auseinandergenommen. eigentlich soll genau das vermieden werden. Ich schau nachher nochmal über den installer.

    Könntest du vllt den (Orginal-)ausschnitt mit #37 posten? das würde mir helfen, den RegExp zu verbessern

  • Wegen den error im Spoiler das ist nur hier im Forum irgendwie verrutscht im script sind alle error auf selber Höhe.

    User.properties sieht aktuell so aus bei mir:

    [autoit]

    # 37 DescribeIt
    command.37.*.au3="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\DescribeIt\DescribeIt.au3" "$(FilePath)"
    command.name.37.*.au3=DescribeIt
    command.save.before.37.*.au3=1
    command.shortcut.37.*.au3=Ctrl+Shift+Alt+D
    # 36 OrganizeIncludes
    command.36.*.au3="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\OrganizeIncludes\OI_1.0.0.0.au3" "$(FilePath)"
    command.name.36.*.au3=OrganizeIncludes
    command.save.before.36.*.au3=1
    command.is.filter.36.*.au3=1
    command.shortcut.36.*.au3=F2
    # 37 OrganizeUserCall
    command.37.*.au3="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\OrganizeUserCall\OrganizeUserCall.au3" "$(FilePath)"
    command.name.37.*.au3=OrganizeUserCall
    command.save.before.37.*.au3=1
    command.is.filter.37.*.au3=1
    command.shortcut.37.*.au3=Alt+F2

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Mh komisch, hab die komplette Datei nicht hier, werde das morgen nochmal durchlaufen lassen.

    Mir ist noch etwas aufgefallen, es gibts scheinbar keine Möglichkeit in Describelt den Deafaultwert zu ändern. Auch durch eine Änderung im Feld Syntax beleibt der Defaultwert unverändert.

    Praktisch wäre es natürlich noch wenn man direkt die Funktion auch noch sehen würde und man nicht immer zwischen Header und Funktion umschalten muss.

    Wenn man bei den Paramtern rechts den Parameternamen änder und dann auf apply klickt wird er nicht übernommen.

    Wäre auch noch praktisch wenn man eine Paramter mit einer Checkbox auf optional oder eben nicht optional setzen kann.

    Wenn man im Bereich "Return" nur eine rechtklick auf ein Item macht und dann "Add Item" oder "Delete Item" macht passier nichts. Man muss erst das Item mit einem Linksklick markieren und dann nochmal Rechtsklick darauf machen.

    Bei Example wäre es praktisch wenn man auch hier eine .au3 reinladen könnte die dann auch farbig Formatiert wie unter "Show function" angezeigt wird.

    Wenn man auf den Button "Paste" klickt ohne vorher über den Button "Copy" eine Funktion kopiert zu haben werden die Felder mit den Feldnamen(???) beschrieben also z.b. erscheint im Feld zu Author dann "Author" und im Feld Link dann "Link". Allerdings wird das Feld Name und Description nicht überschrieben.

    Praktisch wäre auch wenn man Standardwerte definieren könnte z.b. das im Feld Author immer bestimmter Name gesetzt werden soll usw.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    6 Mal editiert, zuletzt von chip (8. März 2010 um 22:56)

  • Danke für den ganzen Input :)
    Deine ganzen Ideen sind größtenteils eingeplant. Das mit den getrennten Ansichten würde ich aber gerne übernehmen.

    Unter anderem denke ich aber noch an die Möglichkeit Parameter umzubenennen, default werte zu ändern (& hinzuzufügen).
    Außerdem möchte ich dem User die Wahl lassen, welche Daten letztendlich ausgegeben werden (Per Checkbox sollen einzelne Elemente wie zb. Return abgewählt werden)
    Dazu kommt noch das automatische einfügen von @error's (je nachdem ob und wie weit das möglich ist).
    Es würden dann automatisch
    "On Failure .... and sets @error to:"
    "|1 - [hier kann man dann eintragen]"
    "|2 - [ ... ]"
    Dann noch so sachen, wie korrekturen im Output (zb bei den Remarks die möglichkeit zu lassen mehrzeilig und mit leerzeilen zu schreiben).
    Besserer import von scripten, RICHTIGER Export im UDF-Stil. Schönere GUI, Schöneres Logo.
    Ich würde gerne die Treeview bugfrei bekommen, und den Output der Return Values schöner formatieren.

    Usw usw usw usw...

    Ich hab soooo viele geile Ideen, aber leider nur 2 Hände :S
    Ich programmier ja schon sau viel, aber den ganzen Tag am selben Script zu hängen ist auch irgendwann ätzend.

    Deswegen gehts leider nicht so schnell wie ich gern hätte.


    //Edit:


    Praktisch wäre auch wenn man Standardwerte definieren könnte z.b. das im Feld Author immer bestimmter Name gesetzt werden soll usw.


    Hab ich mir schon überlegt. Am liebsten per Kontextmenü, in dem man dann zwischen 10 "standard"-einträgen gewählt werden kann.

    Wenn man auf den Button "Paste" klickt ohne vorher über den Button "Copy" eine Funktion kopiert zu haben werden die Felder mit den Feldnamen(???) beschrieben also z.b. erscheint im Feld zu Author dann "Author" und im Feld Link dann "Link". Allerdings wird das Feld Name und Description nicht überschrieben.


    Meinst du nicht Name und Syntax? Ja diese werden nicht kopiert. genau wie die Parameter. Das liegt am internen Handling der Daten.
    Außerdem: Warum sollten name und Syntax / Parameter überschrieben werden? dann müssten ja auch die Funktionen geändert werden (und wenn das eingebaut wäre, würde es vielleicht die funktionen kaputt machen)

    Wenn man im Bereich "Return" nur eine rechtklick auf ein Item macht und dann "Add Item" oder "Delete Item" macht passier nichts. Man muss erst das Item mit einem Linksklick markieren und dann nochmal Rechtsklick darauf machen.


    https://autoit.de/index.php?page…2244#post142244

    Bei Example wäre es praktisch wenn man auch hier eine .au3 reinladen könnte die dann auch farbig Formatiert wie unter "Show function" angezeigt wird.


    Hat ich mal drin. Hab ich auskommentiert und ein normales Edit genommen, weil ich so wenig Platz im GUI hab. ich msus das alles noch resizable machen :S


    Wenn man bei den Paramtern rechts den Parameternamen änder und dann auf apply klickt wird er nicht übernommen.


    siehe oben wegen paste

  • Hab oben noch was reineditiert gehabt während du scheinbar grade deinen Post geschrieben hast hehe.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • So ich habe nun das Problem gefunden warum er die error einträge im Header entfernt. Das tritt auf wenn man nicht mit Leerzeichen sondern mit Tab die Einträge positioniert, dann werden sie komplett ignoriert. Evtl. also beim einlesen Tab in entsprechende Leerzeichen umwandeln.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Nein nun wird es nichtmehr verschluckt, aber die Formatierung haut nun nichtmehr hin :).

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ======================================================================================
    ; Name ..........: _TS3connect()
    ; Description ...: TS3 Server connect
    ; Syntax ........: _TS3connect($TS3server[, $TS3port = "10011"])
    ; Parameters ....: $TS3server - Server (Name or IP)
    ; $TS3port - [optional] Virtual server port (default:"10011")
    ; Return values .: Success - Returns : 1
    ; Failure - Returns 0 and Sets @Error:
    ; |0 - No error.
    ; |1 - Wrong IP
    ; |2 - Wrong Port
    ; Windows API WSAGetError
    ; Author ........: chip
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......:
    ; =================================================================================================

    [/autoit]

    Und im Return ist der 2er error nun auch kein Unterpunkt vom Failure mehr. Hier mal zwei Beispiele im Anhang noch.