Aktuelle AutoIt-Keyword-Liste

  • Kann mir jemand sagen, wo man eine möglichst immer wieder aktuelle Liste der AutoIt-Keywords, Makros, int. und Std. UDF-Funktionen herunterladen kann ?

    Benötige die für die Aktualisierung der Syntaxdateien eines anderen Editors (RJ TextEd). Die Version vom SciTE ist ja auch schon etwas älter (1.6.2014) und die 'au3.keyword.properties' ist auch komplett kleingeschrieben...

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Könntest den neuesten Installer einfach entpacken und von dort die Keywords nehmen.


    Wenn das die aktuellsten (letzte Beta) sein sollten ist die 'au3.keyword.properties' ja ebensfalls ohne ordentliche Groß-/Kleinschreibung.

    Du könntest von https://www.autoitscript.com/autoit3/docs/keywords.htm das Keyword-Dokument runterladen und per StringRegexp() die Einzelnen auslesen.
    Alternativ die Beta-Keywords: https://www.autoitscript.com/autoit3/files/…cs/keywords.htm für


    Enthält aber nun wirklich nur die paar 'Keywords' keine Funktionen, UDF-Funktionen u.a..

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"


  • Wenn das die aktuellsten (letzte Beta) sein sollten ist die 'au3.keyword.properties' ja ebensfalls ohne ordentliche Groß-/Kleinschreibung.


    Enthält aber nun wirklich nur die paar 'Keywords' keine Funktionen, UDF-Funktionen u.a..


    Dann geh in der Dateihierarchie einen Schritt zurück und verwende die "Function Reference" bzw. "User Defined Function Reference".

    Mal abgesehen davon, wozu benötigt du die genaue Rechtschreibung der Funktionen? AutoIt ist ja case-insensitive

  • genau... und Syntax-Highlighting !

    Das mit dem Auslesen der Dateien wie CentuCore beschrieb und anschließendem Auslesen aus dem Sourcecode wäre natürlich eine Lösung. Zwar mit etwas Arbeit, aber eine Lösung ! (und das mit dem letzten Stand der Beta-Version)

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"


  • Ich vermute mal, für die Autovervollständigung. Das Thema hatte ich mit SublimeText nämlich auch.


    Ergibt jetzt mehr Sinn, danke dir :)



    Das mit dem Auslesen der Dateien wie CentuCore beschrieb und anschließendem Auslesen aus dem Sourcecode wäre natürlich eine Lösung. Zwar mit etwas Arbeit, aber eine Lösung ! (und das mit dem letzten Stand der Beta-Version)


    ^^ ich hab vor meinem ersten Post den Seiten-Quelltext überflogen...der Regexp sollte nicht allzu viel Arbeit sein
    Für das Syntaxhighlighting benötigst du aber keine Groß-/Kleinschreibung, eben weil AutoIt nicht case-sensitive ist. Außer du möchtest einen gewissen Stil erzwingen (was ich gut nachvollziehen kann)

    • Offizieller Beitrag

    und Syntax-Highlighting !


    Na, beim Highlighting solltest du lieber nicht beschränken auf CaseSensitive Darstellung, denn intern wird ja auch die CaseInsensitive Darstellung vom Interpreter korrekt erfasst. Sonst erfasst dein Highlighting z.B. nur True aber nicht true. :rolleyes:

    Edit:
    Ich lese mir die Daten immer aus der "C:\Program Files (x86)\AutoIt3\SciTE\api\au3.api" aus.
    Und die WM-Messages findest du unter: "C:\Program Files (x86)\AutoIt3\Examples\Helpfile\Extras\WMDebug.au3"
    Leider hat AutoIt keine eigene Syntaxregel für Konstanten, sie sind von Variablen nicht zu unterscheiden. Das ist beim Parsen echt unterirdisch, weil du alle Variablen des Skriptes auslesen musst um sie dann gegen deine Liste mit allen existierenden Konstanten aus Includes und deklariert im aktuellen Skript gegenzuprüfen.

  • Nein, das Highlighting bezog sich nur auf die Angabe wofür die zu erzeugende Datei noch Verwendung findet. Case-Insensitiv ist das Highlighting des RJ TextEd schon !
    Und für die Autovervollständigung ist eine korrekte Groß-/Kleinschreibung von Vorteil.

    Hier nun meine Variante. Falls jemand ähnliches vor hat:

    Spoiler anzeigen
    [autoit]

    Opt("MustDeclareVars", 1)

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

    Global $sNew = "", $bHeader, $sSrc, $aNames, $aSubNames, $hDst
    Global $sDstName = @ScriptDir & "\AutoIt.syx", $sDstData
    Global $aSources[5][2] = [ _
    ["http://www.autoitscript.com/autoit3/files/beta/autoit/docs/keywords.htm", "Keywords"], _
    ["http://www.autoitscript.com/autoit3/files/beta/autoit/docs/macros.htm", "Macros"], _
    ["http://www.autoitscript.com/autoit3/files/beta/autoit/docs/functions.htm", "Functions"], _
    ["http://www.autoitscript.com/autoit3/files/beta/autoit/docs/libfunctions.htm", "UDFs"], _
    ["http://www.autoitscript.com/autoit3/files/beta/autoit/docs/lang_directives.htm", "Preprocessor"]]

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

    ; Lesen der bisherigen Syntax-Datei, wenn vorhanden
    If FileExists($sDstName) Then
    $sDstData = FileRead($sDstName)
    $sDstData = StringLeft($sDstData, StringInStr($sDstData, "[Options]")) ; relevaten Teil-Vergleichsstring erzeugen (ist ggf. an ein anderes Format anzupassen)
    EndIf

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

    For $i = 0 To UBound($aSources) - 1
    $bHeader = False
    SplashTextOn("Info", $aSources[$i][1] & " werden verarbeitet", 300, 50)
    InetGet($aSources[$i][0], @TempDir & "\src.htm", 1)
    $sSrc = FileRead(@TempDir & "\src.htm")
    $aNames = StringRegExp($sSrc, '(?i)(?:<td><a href=".*">)(.*?)(?:</a>)', 3)
    If IsArray($aNames) Then
    For $j = 0 To Ubound($aNames) - 1
    $aSubNames = ""
    If StringInStr($aNames[$j], " / ") Then
    $aSubNames = StringSplit($aNames[$j], " / ", 1)
    Else
    If StringInStr($aNames[$j], "...") Then
    $aSubNames = StringSplit($aNames[$j], "...", 1)
    Else
    If StringInStr($aNames[$j], ", ") Then
    $aSubNames = StringSplit($aNames[$j], ", ", 1)
    Else
    $aSubNames = StringSplit($aNames[$j], " ")
    EndIf
    EndIf
    EndIf
    For $k = 1 To $aSubNames[0]
    If Not StringInStr($sDstData & "|" & $sNew, "|" & $aSubNames[$k] & "|") And Not StringInStr($sDstData & "|" & $sNew, "=" & $aSubNames[$k] & "|") Then ; ggf. an andere Trenner (hier | & =) anpassen
    If $bHeader = False Then
    $bHeader = True
    If $sNew <> "" Then $sNew &= @CRLF & @CRLF
    $sNew &= $aSources[$i][1] & @CRLF
    EndIf
    $sNew &= $aSubNames[$k] & "|"
    EndIf
    Next
    Next
    EndIf
    If FileExists(@TempDir & "\src.htm") Then FileDelete(@TempDir & "\src.htm")
    Sleep(1000)
    Next

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

    ; neue Daten bei Bedarf in Datei speichern
    If $sNew <> "" Then
    $hDst = FileOpen($sDstName & ".new", 2)
    If $hDst = -1 Then
    SplashTextOn("Info", "Ausgabedatei " & @CRLF & @CRLF & "New_" & $sDstName & @CRLF & @CRLF & " konnte nicht geöffnet werden !", 400, 130)
    Else
    SplashTextOn("Info", "Neue Informationen werden nach " & @CRLF & @CRLF & "New_" & $sDstName & @CRLF & @CRLF & " gespeichert !", 400, 130)
    FileWrite($hDst, $sNew)
    FileClose($hDst)
    Sleep(1000)
    SplashTextOn("Info", "Verarbeitung abgeschlossen", 300, 50)
    EndIf
    EndIf
    Sleep(2000)
    SplashOff()

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    3 Mal editiert, zuletzt von Micha_he (12. Februar 2015 um 16:39)