PSPad4AutoIt3 Projekt

  • Für diejenigen, die kein Setup wünschen, habe ich zusätzlich ein Paket ohne Setup zum Download bereitgestellt. Das Paket enthält nur PSPad und Improvement Kit.


    Über Feedback würde ich mich freuen! :klatschen:


    Viel Spaß wünscht euch Professor Bernd.

  • Ein weiterer Monat ist vergangen und ich möchte einen kleinen Zwischenbericht geben.


    Die Arbeiten am CallTipViewer gehen gut voran. Allerdings ist das Feature aufwendiger, als vermutet. Aber das ist wohl immer so. :S Bis der CallTipViewer einsatzbereit ist, werden wohl noch 4 bis 8 Wochen vergehen. Also bitte geduldig sein. :saint:


    Als CallTipViewer bezeichne ich ein Feature, das mit einem kleinen, fliegenden Fenster das Programmieren ein wenig komfortabler macht. Es zeigt zu einer Funktion sowohl die Syntax als auch eine kurze Beschreibung an, genau so, wie sie in der AutoIt Hilfe zu finden sind. Hier ein Screenshot Beispiel aus SciTE:



    Das funktioniert so: Man fängt z. B. an, eine Funktion zu schreiben. Sobald man die öffnende Klammer geschrieben hat, kann man den Shortcut Ctrl+Shift+Space drücken. Es erscheint ein tooltip ähnliches Fenster (CallTip), das unterhalb der Funktion schwebt. Der Fokus bleibt beim Editor und man kann weiterschreiben, während das Fensterchen die Syntax zeigt. Der aktuelle Parameter wird dabei rot angezeigt. So hat man viele Informationen zur Hand, während man einen Funktionsaufruf schreibt.


    Natürlich kann man den CallTip auch bei bestehenden Funktionen aufrufen. Einfach das Caret zwischen die öffnende und die schließende Klammer einer Funktion platzieren und den Shortcut drücken. ;)


    Derzeit wird dieses Feature nur für AutoIt eigene Funktionen und UDFs zur Verfügung stehen, also nicht für Funktionen, die man (gerade erst) selbst in einen Script definiert hat. Anders ausgedrückt: Es werden alle Funktionen inklusive Beschreibung unterstützt, die in der AutoIt Hilfe verzeichnet sind.


    Vorerst ist das Feature auf die Aufrufzeile begrenzt. Das heißt, wenn man einen Funktionsaufruf mithilfe von Zeilenfortzetzungszeichen über mehrere Zeilen schreibt, steht der CallTip nur in der ersten Zeile des Aufrufs zur Verfügung. Damit sollte man aber leben können. :P Wenn jemand mehr will, bitte melden.


    Professor Bernd.

  • Wenn du das aber einbaust wäre das ein richtiges Killerfeature. Das liebe ich so sehr in Visual Studio, und vermisse es in AutoIt.

    Na wenn das so ist, werde ich es auf die ToDo-Liste setzen. :)


    Kann aber dauern, bis das so weit ist. Deshalb würde ich mich freuen, wenn jemand eine Erkennung für eigene Funktionen erstellen würde. Da hätte zwei Vorteile. Erstens bin ich derzeit in den CallTipViewer eingearbeitet und könnte diese Erkennung relativ gut einbauen. Zweitens stünde das Feature schneller zur Verfügung und könnte vielleicht sogar in das Improvement Kit Update mit dem CallTipViewer Feature aufgenommen und in ein paar Wochen veröffentlicht werden.:thumbup:


    Bernd.

  • Seadoggie01 im engl. Forum hat was in der Richtung gepostet. Gibt vielleicht ein paar Denkanstösse.

    Ich versuche mich in der Corona-Zeit mal mit der Generierung von CHM-files aus UDF-konformen Headern.

  • Neue Version PSPad4AutoIt3 v1.1.0 beta (2020-06-09).  Download in Posting #1


    Hier die Highlights der neuen Features:


    Improvement Kit


    - CallTipViewer für offiziellen AutoIt Funktionen. Das heißt, für Funktionen, die in der au3.api, bzw. in der AutoIt-Hilfe stehen, werden CallTips angezeigt.

    Wow, mir ist gerade aufgefallen, dass ich über 3 1/2 Monate an diesem Feature gearbeitet habe. 8|


    Ein besonderer Dank geht an alpines, der die Routine für die Multiline-Fähigkeit des CallTipViewers nahezu im Alleingang entwickelt hat. :thumbup:


    Einige Bugfixes und Erweiterungen der vorhandenen Features, wie z. B. "Debug to Console/MsgBox" und das Bereitstellen von Beispielen aus der AutoIt-Hilfe als Temp-Kopie, in der man nach Herzenlust schreiben kann, ohne die echte Datei zu ändern. Uvm. ;)


    PSPad


    Hier hat sich wirklich viel getan, und viele meiner Feature Requests wurden umgesetzt. Die meisten sind wenig spektakulär und fallen dem User vielleicht gar nicht auf, aber einige sind richtig toll, z. B.:


    - "Highlighten aller Vorkommen von selektiertem Text". Die meisten Editoren haben das schon lange, und nun, nach langem Bemühungen meinerseits, hat Jan Fiala (Autor von PSPad) dieses Feature in PSPad eingebaut. Vielen Dank an Jan Fiala!


    - Skins gibt es auch seit kurzem in PSPad. Dabei ist nicht der Editorbereich gemeint, der durch den Highlighter die Syntax färbt, sondern alles andere außen rum, also das Hauptfenster von PSPad mit allen Toolbars, Sidebars, usw.


    - AutoIt Variablen highlighten mit eigener Farbe.



    Ich würde mich freuen, wenn ihr euch das Programm anseht und eure Meinung dazu schreibt. Viel Spaß! :)


    Bernd.

  • Ohne Werbung für Bernd machen zu wollen, aber das Calltipfeature ist wirklich heftig gut geworden.


    Zwar fehlen fundamentale Sachen wie das automatische Öffnen beim Senden von "(", aber das ist zum größten Teil PSPad geschuldet und ist im Moment nicht effizient implementierbar.

    Es gibt *perfekten* Multilineerkennnugssupport, Parameterhopping in Calltips die in Kommentaren sind funktionieren korrekt, ungültige Bezeichner öffnen keine Calltips, und und und...


    Es lohnt sich das mal näher anzuschauen (besonders der Multilinesupport) um zu sehen, was man alles in SciTE eigentlich nicht hat.

    Da ist ne gewaltige Menge Hirnschmalz reingeflossen.


    Generell geht es in dem Projekt ziemlich gut voran, Bernd ist motiviert und wenn es so weiter geht (und die fehlenden Features in PSPad nachgeliefert werden) dann gibt es keine Zweifel daran, dass Bernd den Rest nachliefert.

    Vielleicht will der eine oder andere sogar direkt seinen Editor wechseln, wer weiß. Die Zukunft sieht auf jeden Fall rosig aus.

  • Wieso nicht auch für die Funktionen aus der au3.user.calltips.api?

    Habe mich gerade versucht ein wenig schlau über die au3.user.calltips.api zu machen. Ein ähnliches Feature ist geplant. Kannst du bitte mal ein paar Details nennen, wie du dir das Feature vorstellen würdest? Was soll es können, wie soll es gehandhabt werden, usw.


    Bernd.

  • Vermutlich meint Bitnugger, dass du diese mitparsen sollst.

    Ja, genau das meine ich. Das gilt natürlich auch für alle anderen User-spezifischen Sachen, wenn du es für die offiziellen machst.


    Diese Dateien solltest du inspizieren, und schauen ob da etwas von Interesse für dich drin ist:

    SciTE

    SciTEGlobal.properties

    SciTEStartup.lua ; für mich die wichtigste Datei! ;-)

    abbrev.properties

    au3.keywords.abbreviations.properties

    au3.keywords.properties

    au3.pixmap.properties

    au3.properties

    au3_Old.properties

    au3abbrev.properties


    User

    SciTEUser.properties

    au3.UserUdfs.properties

    au3.keywords.user.abbreviations.properties

    au3.user.calltips.api

    au3userAbbrev.properties

    lua.user.properties

    python.user.properties


    Selbes natürlich auch für die Beta... falls vorhanden.

  • Bitnugger Leider verstehe ich noch nicht ganz, was gemeint ist. Außer in der au3.user.calltips.api konnte ich keine AutoIt Funktionen finden.

    SciTEStartup.lua ; für mich die wichtigste Datei! ;-)

    Auch hier sind bei mir keine AutoIt Funktionen drin. Die au3.user.calltips.api ist zwar bei mir leer, aber da hat eine Recherche gezeigt, wofür sie gut ist. Die ist also soweit klar. Aber für mit den anderen kann ich nichts anfangen. Kannst du mal ein Beispiel aus den anderen Dateien zeigen?

  • Neue Version PSPad4AutoIt3 v1.2.0 beta (2020-08-03).  Download in Posting #1


    Die Highlights der neuen Features:


    Improvement Kit


    Die größte Neuerung ist das "Killerfeature" CallTips für OUDFs.


    Der CallTipViewer hat bisher nur Au3Api Funktionen angezeigt, nun sind CallTips auch für OUDFs implementiert!


    Au3Api Funktionen sind die offiziellen AutoIt Funktionen, die entweder "eingebaut" sind, oder mit AutoIt ausgeliefert werden. Kurz gesagt, alle Funktionen, die in der au3.api oder der AutoIt Hilfe zu finden sind.


    OUDF steht für "eigene benutzerdefinierte Funktion", die man NICHT in der AutoIt Hilfe findet, sondern die sich in einem Au3 Script befindet, mit dem man gerade arbeitet, oder die sich in inkludierten Au3 Scripts befinden. Dabei kann es sich um Funktionen handeln, die man selbst oder jemand anderes geschrieben hat, alles was nicht in der AutoIt Hilfe steht wird im CallTipViewer als OUDF angezeigt. Sogar volatile Funktionen werden angezeigt.


    Anzeige im CallTip


    Ein CallTip hat zwei Zeilen. Bei den Au3Api Funktionen wird in der ersten Zeile die Syntax der entsprechenden Funktion angezeigt, in der zweiten Zeile eine Beschreibung dieser Funktion. Bei den OUDFs wird in der ersten Zeile ebenfalls die Syntax der entsprechenden Funktion angezeigt, aber in der zweiten Zeile der Pfad zum Au3 Script, in dem sich diese Funktion befindet.


    Ungültige Funktionen


    Gültige Funktionen und auch die meisten ungültigen Funktionen werden im CallTip angezeigt. Es gibt nur ein paar Kriterien, mit denen ungültige Funktionen ausgefiltert werden und somit kein CallTip angezeigt wird. Es wird z. B. geprüft, ob es zu einem Funktions-Kopf einen zugehörigen Funktions-Fuß gibt und ob es nach dem Funktions-Namen eine öffnende und eine zugehörige schließende runde Klammer gibt. Aber keine Sorge, der Compiler kümmert sich um ungültige Funktionen! 8o


    Monitoring


    CallTips für OUDFs werden nur für gespeicherte Dateien angezeigt! Das heißt, wenn man in einem Script arbeitet und z. B. gerade eine neue Funktion geschrieben hat, wird sie erst im CallTip angezeigt, wenn man das Script gespeichert hat. Das kommt von daher, dass die Dateien per Folder Monitoring auf Änderungen überwacht werden. Dadurch werden die CallTips automatisch aktualisiert, wenn eine Datei gespeichert wird, sogar live* während ein CallTip gerade sichtbar ist. (* Verzögerung durch Windows ShellChangeNotify von etwa 1 Sekunde.) Auch externe Änderungen, also außerhalb von PSPad, werden erfasst. Dadurch sind die CallTips für OUDFs immer aktuell!


    Color Scheme "auto"


    Das Color Scheme des CallTips wird nun automatisch an die derzeitigen PSPad Skins angepasst. Wird eine helle Skin gewählt, wird auch der CallTip mit dem hellen Color Scheme gezeigt, wird eine dunkle Skin gewählt, wird der CallTip automatisch mit dunklem Color Scheme gezeigt.


    Und wie immer: Ich würde mich freuen, wenn ihr euch das Programm anseht und eure Meinung dazu schreibt. Lob, Kritik, Ideen, Tipps und Hinweise auf Bugs sind willkommen. Viel Spaß mit den neuen Features! :)


    Prof Bernd.