Lade...
 

InstantView-Tooling

InstantView-Tooling Versionen

ClassiX stellt drei Anwendungen für die Arbeit mit InstantView zur Verfügung, die zusammen released werden und unter dem Begriff InstantView-Tooling zusammengefasst werden:

  1. VSCode-Extension (Marketplace)
  2. Standalone Parser (Download)
  3. Eclipse-Feature (Download) Das Eclipse-Plugin erhält keine Updates mehr.

Alle Tools teilen sich eine gemeinsame Versionsnummer. Die aktuelle Version ist 3.1.3 vom 20.03.2024. (Release-Notes)

Aktualisieren der VSCode-Extension

VSCode aktualisiert seine Erweiterungen automatisch, sobald eine neue Version verfügbar ist. Der Nutzer muss hierfür meist nichts tun.

Um eine ältere Version zu installieren, sucht man in dem Extension-Menü von VSCode die InstantView-Extension heraus und
kann dann über das Zahnrad → Install Another Version... eine beliebige ältere Version auswählen und installieren.

Vscode Version

Aktualisieren des Eclipse-Features

Wurde das Eclipse-Feature installiert, dann kann eine neue Version einfach per Help → Check for Updates installiert werden. Eclipse prüft dann, ob es eine neuere Version gibt, als die aktuell installierte und bietet diese dann zur Installation an.

Achtung: Seit April 2023 gibt es keine neuen Updates mehr für das Eclipse-Plugin. Bitte auf VSCode wechseln!

Installation einer vorherigen Version

Möchten Sie nicht die aktuellste Version des Features, sondern eine bestimmte vorherige Version in Eclipse installieren, so finden sich die archivierten Versionen seit 1.0.16 unter: https://instantview.org/data/eclipse/VERSIONSNUMMER/org.instantview.ide-EclipseBuild-group.group.group.zip

Insbesondere lässt sich hierüber das Zurückgehen auf eine vorherige Version durch Neuinstallation von Eclipse und Installation des entsprechenden Features realisieren.

Release-Notes

Im nachfolgenden Abschnitt sind die Änderungen für jede Version zusammengefasst.

Version 3.1.3

(Ausgeliefert am 20.03.2024)

Fehlerkorrekturen

  • Der Parser zeigt nun einen aussagekräftigen Fehler falls nach deinem do das loop oder while fehlt anstatt wie bisher anzumerken, dass das ";" am Ende der Prozedur unerwartet kommt. Folgefehler des Parsers innerhalb des do-Blocks werden dadurch ebenfalls unterdrückt.

Erweiterungen

  • Neue Option debugger.rootLogLevel erlaubt das Setzen des Log-Levels für den Root-Logger des Debugger-Prozesses, wodurch Log-Statements, die nicht durch uns direkt geschrieben werden, ebenfalls ausgegeben werden. Diese zusätzlichen Logs können weitere Anhaltspunkte für die Fehlersuche beim Starten des Debuggers geben.

Version 3.1.2

(Ausgeliefert am 10.11.2023)

Fehlerkorrekturen

  • Der Editor öffnet keine Completion-Vorschlagsliste mehr, wenn innerhalb eines Kommentars ein '.' getippt wird. Hierzu merkt sich der Parser alle Kommentarregionen innerhalb von geparsten Dateien. Dies funktioniert nur für geparste Dateien, also nicht für Dateien, die nicht laut der aktiven .ipc nicht Teil des Projekts sind.
  • Die Referenzsuche (Hover/Definition) hat das Symbol unter dem Cursor falsch bestimmt, falls die Datei ein #include enthält. Dann wurde bisher immer ein Symbol aus der #include-Datei gewählt.

Version 3.1.1

(Ausgeliefert am 22.09.2023)

Fehlerkorrekturen

  • Autocompletion hat bei Widget-Parametern nicht funktioniert, falls man bereits angefangen hat, den Widget-Namen zu tippen.
  • Autocompletion in Link(first.|) Command(,…) hat nicht funktioniert, da die Cursor-Position vom Parser nicht als Zugriffspfad geparst wurde.

Version 3.1.0

(Ausgeliefert am 15.09.2023)

Erweiterungen

  • Ticket #9029: Unterstützung für neue Sichtbarkeits-Tags @private und @protected in Prozedur-Doc-Kommentaren:
    • Die Tags können an beliebiger Stelle im Doc-Kommentar der Prozedur stehen.
    • Prozeduren ohne Doc-Kommentar erben aktuell den Doc-Kommentar der überschriebenen Prozedur (inklusive der Sichtbarkeits-Tags)
    • @private Prozeduren:
      • Können nicht in abgeleiteten Modulen überschrieben werden
      • Können nicht in abgeleiteten Modulen aufgerufen werden (auch nicht per super::prozedur)
      • Können nicht über die Provider-Aufrufsyntax (provider::prozedur) aufgerufen werden (auch nicht aus dem Provider-Modul selbst!)
    • @protected Prozeduren:
      • Können in abgeleiteten Modulen überschrieben werden
      • Können in abgeleiteten Modulen aufgerufen werden
      • Können nicht über die Provider-Aufrufsyntax (provider::prozedur) aufgerufen werden (auch nicht aus dem Provider-Modul selbst!)
    • Prozeduren ohne Sichtbarkeits-Tag: (=public)
      • Können in abgeleiteten Modulen überschrieben werden
      • Können in abgeleiteten Modulen aufgerufen werden
      • Können über die Provider-Aufrufsyntax (provider::prozedur) aufgerufen werden
    • Eine überschreibende Prozedur darf die Sichtbarkeit der überschriebenen Prozedur nicht einschränken. (Eine @protected-Prozedur darf also nicht durch eine @private-Prozedur überschrieben werden).

 

Version 3.0.1

(Ausgeliefert am 08.09.2023)

Fehlerkorrekturen

  • Die Referenzsuche hat Widgets innerhalb von Widget-Befehlen dreifach gefunden, was dazu geführt hat, dass das Umbenennen von Widgets in diesem Fall fehlschlug.

Erweiterungen

  • Neues REPORT_LIST System-Event wird vom Parser nun erkannt. (Ab Dll-Version 233126)

 

Version 3.0.0

(Ausgeliefert am 04.09.2023)

Fehlerkorrekturen

  • Memory-Leak beim Editieren von Dateien behoben
  • Referenzsuche und Rename-Support (F2) funktioniert nun zuverlässig auch für: (1=hierfür müssen alle Module geparst werden)
    • Provider-Prozeduren1
    • Provider-Variablen1
    • Provider-Widgets1
    • Globale Variablen1
    • Messages1
    • ImportContexte
  • Ein ENVIRONMENT-Block innerhalb der .ini-Datei wird vom Parser nicht mehr als Fehler markiert.
  • Falls GLOBAL als Basismodul eines Moduls angegeben wird, wird dies nun als Fehler markiert anstatt abzustürzen.
  • Syntaxfehler in inkludierten .ext-Dateien enthalten nicht mehr die verwirrende Meldung: "This included file is part of outside any module"
  • Hexadezimale Konstanten (0x1234abcd) werden nun syntaktisch korrekt gehighlighted (bis zu 8 Zeichen) und der Lexer validiert den Zahlenbereich der Konstanten.
  • Die Fehlermeldung bei der Verwendung von doppelten Vorzeichen bei Konstanten (--7) war verwirrend und hat nicht die tatsächliche Fehlerursache beschrieben.
  • Die Parser-Regel für unbekannte Befehle wurde erweitert, sodass für ein Statement wie (Unknown("test", 2)) nur noch ein Syntax-Fehler generiert wird und nicht mehrere.
  • Ein Import-Statement, das ein nicht vorhandenes Widget referenziert, wird auch als Fehler erkannt.
  • Provider-Prozeduraufrufe werden nun immer verifiziert (es sei denn instantview.parser.provideUseScanning ist off). In früheren Versionen wurden die Provider-Aufrufe nur dann verifiziert, falls der Provider VOR dem aufrufenden Modul geöffnet wurde.
  • Im Standalone-Parser werden Provider-Aufrufe/Referenzen nun ebenfalls immer verifiziert. In früheren Versionen wurde dies nur getan, falls der Provider zufälliger Weise vor dem aufrufenden Modul in der Parse-Queue stand.
  • Falls Module in einer Symbolkategorie (Bsp. Outgoing Messages) keine Symbole definiert hatten, dann wurde der Quellcode-Bereich bisher falsch berechnet, was dazu geführt hat, dass VSCode keine Symbole für diese Module dargestellt hat.
  • Umbennnung von Variablen behandelt bind(var) nun korrekt und schreibt es entsprechend zu bind(var~new) bzw. bind(new~var) um.
  • Man kann nun per F12 auch an die Definition von Prozeduren springen, die im aktuellen Modul nur deklariert sind und erst im abgeleiteten Modul definiert sind.
  • Versucht man im Debugger-Fenster einen Wert per Rechtsklick -> "Copy Value" zu kopieren, dann wird nun keine Fehlermeldung mehr generiert und der Variableninhalt in die Zwischenablage kopiert.
  • Mehrzeilige Parameterbeschreibungen werden in Doc-Comments korrekt behandelt.

Erweiterungen

  • Der Parser unterstützt ImportContexte und stellt sicher, dass diese nur an einen Provider gebunden werden und die gebundenen Variablen auch wirklich existieren. Ein Hover-Tooltip zeigt an, an welchen Provider ein ImportContext gebunden ist. Die Variablen innerhalb von bind() untersützen das Springen an die Definition (F12) und die Referenzsuche (letzteres nur für Consumer-Variablen).
  • Die Parse-Queue lässt sich nun abbrechen und die Referenzsuche zeigt in dem Fall nur die gefundenen Treffer in den bis zum Abbruch geparsten Modulen an. Wiederholt man die Referenzsuche, dann werden nur die restlichen Module geparst.
  • Auto-Completion unterstützt nun ImportContext() und Import().
  • Hover-Tooltips über dem Importpfad geben nun den Hiearchiepfad des importierten Widgets an und man kann per F12 von hier direkt an die Definition des Widgets springen.
  • Platziert man der Cursor auf einem ImportContext innerhalb von Import(), kann man per F12 an dessen Definition springen.
  • super in supper::procedure wird nun auch als Keyword gehighlighted.
  • Neue Debugger-Optionen debugger.consoleExecutionMode und debugger.weakExceptionDisplay eingeführt, um die Behandlung und Darstellung von Fehlern während der Ausführung von Code in der Debugger-Konsole zu steuern. Der neue weak-Modus ist standardmäßig aktiviert und verhindert, dass Fehlermeldungen den aktuellen Callstack abräumen.
    (Achtung: Der Zugriff auf lokale Variablen funktioniert in diesem Modus erst ab Dll-Version 232697)

Änderungen

  • Parser auf ANTLR4 umgestellt.
  • LSP4J von 0.9.0 auf 0.20.1 aktualisiert
  • Der Parser generiert nun eine Warnung, falls er Extern(…) : base sieht, bevor Extern(base) gelesen wird, da sich der Parser in diesem Fall ein Extern(base)-Statement dazudichtet, welches falsch sein könnte.
  • Extern()-Statements ohne File()-Angabe werden als Fehler markiert.
  • Die Fehlerrecovery wurde im Parser überarbeitet, sodass ein statement wie (-------7) nicht mehr dazu führt, dass der Rest des Moduls gar nicht mehr geparst wird.
  • Die Fehlerrecovery innerhalb von case/endCase wurde überarbeitet, sodass der Parser bei groben syntaktischen Fehlern immer versucht beim nächsten case-Label zu recovern.
  • Die Provideraufruf-Parseroption instantview.parser.provideUseScanning hat nun 3 Optionen (off, flat, deep). Hierüber wird gesteuert, wie viele Module mitgeparst werden, um die Provideraufrufe zu verifizieren:
    • flat - Von allen offnen Modulen nur die direkt aufgerufenen Providermodule (default)
    • deep - Von allen offnen Modulen die direkt aufgerufenen Providermodule und rekursiv deren aufgerufenen Providermodule

 

Version 2.21.3

(Ausgeliefert am 30.03.2023)

Fehlerkorrekturen

  • Breakpoints ließen sich seit der letzten Version nicht mehr korrekt setzen aufgrund einer Korrektur für das Setzen von Breakpoints innerhalb von String-Literalen.

 

Version 2.21.2

(Ausgeliefert am 24.03.2023)

Fehlerkorrekturen

  • Breakpoints innerhalb von String-Literalen innerhalb von nicht geladenen Modulen werden zuverlässiger gesetzt.
    Achtung: Breakpoins ließen sich an anderer Stelle durch diese Änderung nicht mehr setzen (korrigiert in Version 2.21.3)

Änderungen

Version 2.21.1

(Ausgeliefert am 28.10.2022)

Fehlerkorrekturen

  • Falls das GLOBAL-Modul eigene Fenster definiert, wurden Fehlerboxen angezeigt und die Code-Lenses haben nicht funktioniert.
  • Falls die .ipc-Datei weniger als 8 Zeilen enthält oder die letzte Zeile eine Leerzeile war, wurde die Fehlermeldung ausgegeben, dass die .ipc-Datei ein ungültiges Format hat.
  • Falls die in der .ipc-Datei angegebene .ini-Datei nicht gefunden werden kann, wird eine Fehlerbox gezeigt, da der Parser das Projekt in dem Fall einfach nicht parsen kann.

 

Version 2.21.0

(Ausgeliefert am 11.08.2022)

Fehlerkorrekturen

  • Die Typkonstante MULTIPLE_STRING wird vom parser nicht mehr als Fehler markiert.

Erweiterungen

  • Es gibt einen neuen Befehl "InstantView: Select IPC file", der im Workspace ausgeführt werden kann, um schnell die aktuell aktive .ipc-Datei zu wechseln. Es wird eine Liste aller verfügbarer .ipc-Dateien angezeigt und VSCode startet sich nach der Auswahl automatisch neu.

Änderungen

  • Von ClassiX nicht mehr unterstützte Workbench-Befehle werden nun vom Parser nicht mehr erkannt (CreateModule, CreateWidget, CreateWindow, FixWidgets, LooseWidgets, Load)

 

Version 2.20.2

(Ausgeliefert am 09.03.2022)

Fehlerkorrekturen

  • Hexadezimale Zahlenkonstanten werden vom Syntax-Highlighting nun in der vollständigen Länge markiert.

 

Version 2.20.1

(Ausgeliefert 03.02.2022)

Fehlerkorrekturen

  • Falls das Debugger-Log-File in einem nicht existierenden Verzeichnis liegt, dann versucht der Debugger-Prozess nun die Verzeichisse anzulegen, anstatt sich einfach zu beenden.
  • Oktalescapesequenzen in Strings werden vom Syntax-Highlighting nun in der vollständigen Länge markiert und \8 wird vom Parser jetzt auch als ungültige Escape-Sequenz markiert

Erweiterungen

  • Parser-Unterstützung für neue Notification-Level (TRACE, DEBUG und FATAL) implementiert

 

Version 2.20.0

(Ausgeliefert am 15.10.2020)

Fehlerkorrekturen

  • Der Debugger zeigt jetzt das Beschreibungsfeld der Collection korrekt an, wodurch ClassiX gelöschte persistente Collections im Debugger auch als solche markieren kann (ab Dll-Version 224429)

Erweiterungen

  • Anfrage #6131: Parser-Unterstützung für RetryTXN implementiert.

Änderungen

  • DecrCounter und CounterValue sind jetzt analog zu IncrCounter ebenfalls deprecated.

Version 2.19.5

(Ausgeliefert am 21.09.2021)

Fehlerkorrekturen

  • Der Debugger hängt sich nicht mehr auf, wenn ein ML_STRING mit 0 Sprachen auf dem Stack liegt.
  • T("...") wird vom Syntax-Highlighting auch dann als ML_STRING erkannt, wenn Leerzeichen zwischen T und ( stehen.
  • Der Parser warnt nicht mehr wegen falsche Escape-Sequenz innerhalb eines Strings bei "\x##" und "\U+######"

Erweiterungen

  • Der Parser akzeptiert jetzt auch Einheiten der Form XXX.XXX (Bsp. Imp.fl.oz) und markiert sie nicht mehr als Fehler.
  • Das Syntax-Highlighting hebt die neuen Escape-Sequenzen "\x##" und "\U+######" jetzt korrekt hervor.

Version 2.19.4

(Ausgeliefert am 29.06.2021)

Fehlerkorrekturen

  • Der Parser akzeptiert jetzt auch das Schlüsselwort NULL als Parameter in Methodenaufrufen innerhalb von Zugriffsausdrücken.

Erweiterungen

  • Anfrage #6139: Der Parser akzeptiert nun die Angabe von Class(…) ohne Klassen-Id für alle aktuell im System definierten Klassen.

Änderungen

  • Reload wird vom Parser wieder als echter Befehl erkannt.
  • CheckPointTXN wird als deprecated markiert, da der Befehl kaum verwendet wird und der Performancegewinn marginal ist.

Version 2.19.3

(Ausgeliefert am 02.02.2021)

Fehlerkorrekturen

  • Ticket #8560: Der Debugger generiert keinen CORBA-Fehler mehr, wenn ClassiX einen Request mit zu großer Länge angibt und dieser dadurch außerhalb der Datei endet.

Erweiterungen

  • Anfrage #0333: Parser-Unterstützung für MLString-Befehl implementiert. (Ab Dll-Version 220718)

 

Version 2.19.2

(Ausgeliefert am 09.11.2020)

Fehlerkorrekturen

  • Ticket #8496: Die OpenJDK-Implementierung von CORBA (glassfish) hatte ein Default-Limit von 256kB für CORBA-Messages, was bei tiefen Callstacks in Modulen mit vielen Variablen oder großen Vektoren schnell ausgereizt war. Sobald das Limit erreicht war, hat ClassiX einen Kommunikationsfehler gemeldet. Das Limit ist nun auf 25MB erhöht worden.
  • Ticket #8489: Ein Fehler in der dynamischen Codepage-Ermittlung hat dazu geführt, dass einige in CP850 kodierte Module nicht korrekt geparsed werden konnten, weil der Decoder Null-Bytes eingefügt hat.

 

Version 2.19.1

(Ausgeliefert am 28.10.2020)

Fehlerkorrekturen

  • Ticket #8486: Fehler im Code-Lens-Collector für überschriebene Widgets behoben. Wenn ein überschriebenes Widget im Basismodul nur per Attach referenziert wurde, dann konnte die Implementierungsposition nicht korrekt ermittelt werden und die Erzeugung der Code-Lenses schlug fehl.
  • Der Language-Server gibt jetzt beim Debuggen von nicht-InstantView-Workspaces keine Fehlermeldungen im Log aus, wenn .ipc-Dateien nicht gefunden werden konnten. Für den Fall, dass eine konfigurierte .ipc-Datei nicht gefunden werden kann, ist der Hinweis im Log jetzt auch etwas präziser.
  • Der Language-Server liefert jetzt keine Fehlermeldung mehr im Code-Lens-Collector, wenn der Code eines Moduls unvollständig ist.

Erweiterungen

 

Version 2.19.0

(Ausgeliefert am 21.10.2020)

Diese Änderungen betreffen hauptsächlich VSCode

Fehlerkorrekturen

  • Der Parser bricht nicht mehr ab, wenn er das GLOBAL-Modul in der .cxp findet.
  • Extern-Anweisungen innerhalb von Moduldateien führen nicht mehr zu Fehlern.
  • Das .cxp-Modul muss nicht mehr in der Extern angegeben werden, damit die Datei beim Speichern neu geparsed wird. Dies ist jedoch weiterhin notwendig, wenn das .cxp-Modul von einem externen Modul abgeleitet ist (Bsp: appSuite), ansonsten sind die angezeigten Informationen unvollständig.
  • Die Module werden nicht mehr bei jeder Editoraktion (hover/getDefinition) mit allen abhängigen Modulen neu geparsed.
  • Wenn eine bereits geparste Moduldatei geschlossen und wieder geöffnet wird, dann wird sie nicht neu durchgeparsed (solange sich deren Inhalt nicht geändert hat).
  • Die Option Parse Full Hierarchy parsed nun nicht mehr das gesamte AppsWH, sondern wie angegeben nur die vom aktuellen Modul abgeleiteten Module und die Basismodule des aktuellen Moduls.
    Wichtig: Hierbei ist aber zu beachten, dass das GLOBAL-Modul ein implizites Basismodul von allen Modulen ist, die kein Basismodul haben. Falls also eine .cxp mit einem expliziten GLOBAL-Modul geöffnet wird, dann wird bei dieser Option das gesamte AppsWH geparsed.
  • Die Abarbeitung der Parse-Queue wurde überarbeitet. Bisher wurden die abhängigen Module an zwei Stellen in die Parse-Queue gestellt, was dazu geführt hat, dass der Parser jedes Modul mehrfach geparsed hat und praktisch endlos lief.
  • #include-Dateien werden nicht mehr ausschließlich in CP850 eingelesen, die Codepage wird (wie in ClassiX auch) dynamisch ermittelt.
  • Die CodeLenses für überschriebene Prozeduren, die per #include eingebunden wurden, werden nicht mehr an beliebigen Stellen im Modulcode angezeigt.
  • Wenn Import-Widgets in der Outline angeklickt werden, dann springt der Cursor nicht mehr zum Dateianfang, sondern an die Stelle des Import-Statements.
  • Behandlung von Breakpoints in leeren Zeilen wurde korrigiert. Bisher wurden sie von ClassiX in der nächsten Anweisung gesetzt aber VSCode hat den Breakpoint nicht gesetzt. Das hat dazu geführt, dass der Code an einem Breakpoint stehen blieb, der in VSCode gar nicht gesetzt war.
  • Der Debugger kann jetzt auch mit Callstack-Einträgen ohne bekannte Quelldatei umgehen. Dies hat bisher zu einer CORBA-Exception in ClassiX geführt.

Erweiterungen

  • Beim Hovern über Variablen wird ein Tooltip mit dem Typ der Variablen angezeigt.
  • Bei Variablen kann jetzt zu deren Definition gesprungen werden.
  • Der Background-Parser zeigt seinen Fortschritt in der Statusanzeige unten links.
  • Ticket #8414: Symbole aus inkludierten Dateien werden jetzt auch in der Outline dargestellt und mit #include markiert. Da die LSP-Spezifikation keine Symbole aus anderen Dateien in der Outline erlaubt, springt man beim Klick auf solche Elemente nur zur Moduldefinition.
  • An der Moduldefinition werden jetzt Symbol-Code-Lenses erzeugt, mit denen man alle Variablen/Prozeduren/Fenster/Messages eines Moduls durchsuchen und zur Definition springen kann. Diese Symbole enthalten sowohl die inkludierten Symbole, als auch geerbte Symbole aus Basismodulen (inklusive GLOBAL).
  • An jeder Fensterdefinition werden jetzt Symbol-Code-Lenses erzeugt, mit denen man alle (benannten)Widgets und implementierte Messages des Fensters durchsuchen kann. Die Message-Code-Lens springt zur erstbesten Implementierung der jeweiligen Message, um nicht alle implementierenden Widgets aufzuführen.
  • Im Debugger werden Unicode-Zeichen jetzt sowohl in der Stack-Ansicht, als auch bei der Eingabe in die Debug-Konsole unterstützt. (Ab Dll-Version 218694)
  • Der Debugger unterstützt jetzt die Anzeige der Variablen im aktuellen Scope. (Ab Dll-Version 219613)

Änderungen

  • Die Liste der Child-Module in der Children-Code-Lens ist jetzt alphabetisch sortiert.

 

Version 2.18.7

(Ausgeliefert am 08.09.2020)

Fehlerkorrekturen

  • Ein Konfigurationsfehler auf dem Buildserver hat dazu geführt, dass es in der letzten Version kein Syntax-Highlighting in VSCode gab.

 

Version 2.18.6

(Ausgeliefert am 08.09.2020)

Änderungen

  • Das Buildsystem wurde für das InstantView-Tooling komplett auf Maven umgestellt (bis auf VSCode selbst) und das Deployment und die Versionierung vereinheitlicht.
  • Das Eclipse-Plugin ist jetzt einer Kategorie zugeordnet und damit im Installationsdialog nicht mehr solange unsichtbar, bis man den Haken bei "Group Items by Cateogory" entfernt.
  • Die instantview-parser.jar enthält jetzt alle Abhängigkeiten und muss nicht mehr mit der antlr.jar, guava.jar und org.json.jar in einem Verzeichnis liegen, was uns auch ermöglicht, diese Abhängigkeiten sicher zu aktualisieren oder auszutauschen. 
  • Die instantview-parser.jar enthält im Manifest jetzt die aktuelle Version und unterstützt den neuen Parameter --version-raw, mit dem nur die Versionsnummer ausgegeben wird, um die Einbindung in Tools zu erleichtern.
  • Kleine Korrektur am Eclipse-Debugger-Code, damit der Eclipse-Debugger auch mit OpenJDK >= 11 funktioniert.

 

Version 2.18.5

(Ausgeliefert am 30.07.2020)

Änderungen

  • Analog zu den DLLs ab 5.0.0.218551 wurde für den Befehl Debug das Flag ECLIPSE in EXTERNAL umbenannt

Version 2.18.4

(Ausgeliefert am 10.07.2020)

Änderungen

  • Analog zu den DLLs 5.0.0.218551 behandelt der Parser break außerhalb von Schleifen jetzt als Fehler statt Warnung

Version 2.18.3

(Ausgeliefert am 06.05.2020)

Änderungen:

  • Im Flag CONTEXTMENU können jetzt auch importierte Widgets verwendet werden, da diese potentiell auch Items sein können

Version 2.18.2

(Ausgeliefert am 16.03.2020)

Änderungen:

  • EXPECT mit einer unbekannten ID ist jetzt ein Fehler und kein Absturz mehr

Version 2.18.1

(Ausgeliefert am 12.03.2020)

Änderungen:

  • EXPECT-Anweisungen innerhalb von num-Dateien werden jetzt auch in Eclipse beachtet

Version 2.18.0

(Ausgeliefert am 12.03.2020)

Änderungen:

  • Der Stand-Alone-Parser beachtet jetzt auch EXPECT-Anweisungen, um für eine Zeile bestimmte Fehlernummern zu ignorieren.

Version 2.17.2

(Ausgeliefert am 29.01.2020)

Änderungen:

  • Ticket #8176: Parser kennt GetGuiMetric
  • Die Standard-Hilfe-URL ist jetzt https://instantview.org anstatt https://instantview.org

Version 2.17.1

(Ausgeliefert am 09.04.2019)

Fehlerkorrekturen:

  • Ticket #7514: Eclipse kenn vordefinierte Basisklassen
  • Ticket #7768: Der Parser akzeptiert mehrere gleiche Messages von verschiedenen Widgets in einem Import
  • Ticket #7776: Wildcards sind in Event-Override-Ausdrücken erlaubt
  • In super::Procedure ist super jetzt ein Hyperlink zum Basismodul

Version 2.17.0

(Ausgeliefert am 28.02.2019)

Fehlerkorrekturen:

  • Ticket #7631: Attach(, OFF) wird nicht korrekt erkannt
  • Ticket #7671: Breakpoints werden zu lang

Version 2.16.6

(Ausgeliefert am 05.02.2019)

Anpassung:

  • Ticket #7549: Fehler bei untypischen overwrites wurde zur Warnung herabgestuft
  • Ticket #7617: Der standardmäßige Help-Root ist jetzt instantview.org

Version 2.16.5

(Ausgeliefert am 29.01.2019)

Fehlerkorrekturen:

  • Ticket #7549: Parser erkennt Fälle uneindeutiger Vererbung

Erweiterungen:

  • Ticket #7125: Parser erkennt ESC-Event
  • Ticket #7126. Parser erkennt Widget-Flag BACK
  • Ticket #7515: Parser erkennt Path-Literale mit BOUND-Flag
  • Ticket #7525: Parser erkennt Widget-Property GRIDMENU
  • Ticket #7590: Parser kennt Befehl Resize
  • Ticket #7602: Parser kennt Befehl AbortTXN mit Flag UNSAFE

Version 2.16.3

(Ausgeliefert am 05.12.2018)

Fehlerkorrekturen:

  • Ticket #7408: Redesign des Algorithmus zum Matchen der Widget-Parameter für das Matching von Web-Widget ohne APP-Property

Version 2.16.2

(Ausgeliefert am 30.11.2018)

Erweiterungen:

  • Ticket #6313: Widget-Property BACKGROUND wird akzeptiert
  • Ticket #7408: Web-Widget muss jetzt keine Property APP oder URL mehr haben

Version 2.16.1

(Ausgeliefert am 28.11.2018)

Fehlerkorrekturen:

  • Ticket #7459: Hänger in Eclipse beim Öffnen mancher Dateien

Version 2.16.0

(Ausgeliefert am 09.11.2018)

Fehlerkorrekturen:

  • Ticket #7403: Fehler beim Öffnen von Dateien außerhalb des Workspaces abgefangen

Erweiterungen:

  • Anfrage #4871: Syntax von ImportContext wird nun akzeptiert (jedoch bislang nicht semantisch überprüft)

Version 2.15.10

(Ausgeliefert am 22.10.2018)

Fehlerkorrekturen:

  • Anfrage #5307: Fehlermeldungen, wenn das Modul in der Start-Datei von einem anderen (noch nicht geparsten) Modul abgeleitet ist

Version 2.15.8

(Ausgeliefert am 19.10.2018)

Fehlerkorrektur:

  • Anfrage #5307: Registrieren einer Datei funktioniert auch dann, wenn im Projekt kein GLOBAL-Modul existiert.

Version 2.15.7

(Ausgeliefert am 17.10.2018)

Erweiterungen:

  • Anfrage #5836: Akzeptanz für die neue Syntax für FileDlg
  • Verbesserte Fehlermeldung bei nicht erwarteten Tokens

Version 2.15.6

(Ausgeliefert am 14.09.2018)

Erweiterungen

  • Ticket #6843: Parser für Attach(OFF) vorbereitet
  • Ticket #7135: Unterstützung für MIN_HEIGHT und MIN_WIDTH Flags
  • Anfrage #5826: Überschreibbare Slots und Specifier unterstützen


Überschreibbare Slots & Specifier

Für dieses Feature wurde Eclipse um neue Marker erweitert, um das Overriding und Hiding nachvollziehbar zu gestalten.

Overriding: Slot/Specifier mit gleichem Namen wird erneut erwähnt, um die Definition anzupassen.
Hiding: Slot/Specifier erhält eine ID, die bereits vergeben ist. Der vorherige Slot/Specifier mit dieser ID ist dadurch für ClassiX nicht mehr sichtbar, wird also gehidden.

Slot Marker

Slot Marker Tooltip

Bekanntes Problem:
Die .ini-Datei wird bei Änderung nicht neu durchgeparsed.

Version 2.15.0

(Ausgeliefert am 02.05.2018)

Fehlerkorrekturen:

  • PostMsg(, DIRECT) ist zulässig
  • Provider-Calls werden beim Einrücken nicht wie Message-Implementationen behandelt

Erweiterungen:

  • Ticket #6935: Subwidgets von Fenstern sind nicht mehr optional
  • Anfrage #5778: EXT-Dateien können unabhängig von der CXP-Datei angegeben werden
  • Highlighting und Autovervollständigung der Schlüsselworte DONTSUBMIT, FIXME, TODO in Kommentaren
  • Ausbau INI-Parsing
    • Anfrage #4519: Statement Icon wird akzeptiert
    • Bestimmte Statements dürfen nur einmal vorkommen
    • Befehle Schema und CheckIllegalPointers sind generell deprecated
    • WinEditor ist mit anderem Parameter als CX_EDITOR deprecated

Version 2.14.4

(Ausgeliefert am 13.04.2018)

Fehlerkorrekturen:

  • Ticket #3525: Deadlock beim Wechsel zu einer Datei mit Parsing

Erweiterungen:

  • Anfrage #5235 (DocComments):
    • Zusammengesetzte Typen und BOOLEAN sind jetzt als Typ verwendbar
    • Für Provider vom Schema "cxClass" wird nun beim Export für die Online-Dokumentation eine Referenz auf die Klasse generiert.

Version 2.14.2

(Ausgeliefert am 14.03.2018)

Erweiterungen:

Version 2.14.1

(Ausgeliefert am 08.03.2018)

Erweiterungen:

Version 2.14.0

(Ausgeliefert am 23.02.2018)

Fehlerkorrekturen:

  • Ticket #6743: Parameter werden case-sensitive überprüft
  • Ticket #6820: Zugriffsausdrücke in Strings werden nur als solche erkannt, wenn der vermeintliche Klassenname in Großbuchstaben gesetzt ist. (Ansonsten könnte es ein Provider sein.)

Erweiterungen:

  • Ticket #6355: Neuer Befehl Status
  • Anfrage #5198: Neuer Befehl Progress wird erkannt
  • Anfrage #5235 (DocComments):
    • Angegebene Typen werden überprüft
    • Optionale Parameter können mit eckigen Klammern angegeben werden
    • Export der DocComment-Informationen mittels des Switches -documentation
    • Auch Messages und Modulen können DocComments zugeordnet werden
  • Kommando Help wird nicht mehr akzeptiert (hatte keine Funktion mehr)

Version 2.13.1

(Ausgeliefert am 16.01.2018)

Fehlerkorrekturen:

  • Prozeduren schließen sich durch Autovervollständigung zuverlässiger
  • Deklarationen von lokalen Variablen werden als Vorkommnisse dieser Variable erkannt

Erweiterungen:

  • Ticket #5767: is(PROCEDURE) ist erlaubt
  • Anfrage #5235: Ausbau DocComments
    • Mehrere @return-Tags
    • Für @param und @return können der Typ angegeben werden und, ob sie optional sind
    • Hovering über lokalen Variablen mit gleichem Namen wie Parameter gibt Information über Parameter aus

Version 2.13.0

(Ausgeliefert am 03.01.2018)

Fehlerkorrekturen:

  • Anfrage #5436: Abspeichern von Dateien im UTF-8-Format

Erweiterungen:

  • Ticket #6252: Unterstützung für einen Grund bei TerminateApp
  • Anfrage #5660: Unterstützung für das Widget Link

Version 2.12.3

(Ausgeliefert am 04.12.2017)

Erweiterungen:

  • Ticket #6567: Unterstützung für Provider-Blöcke
  • Unterstützung für UTF8-BOM in den NUM-Dateien in Eclipse

Version 2.12.2

(Ausgeliefert am 24.11.2017)

Fehlerkorrekturen:

  • Parser ist in bestimmten Konstellationen mit EmptyStackException abgestürzt, wenn eine Deklaration außerhalb einer Action-List getätigt wurde.

Version 2.12.1

(Ausgeliefert am 23.11.2017)

Fehlerkorrekturen:

  • Ticket #6594: Lokale Variablen in anonymen Prozeduren in Widget-Pfaden

Version 2.12.0

(Ausgeliefert am 17.11.2017)

Erweiterungen:

  • Ticket #6568: Ausblenden von Warnungen durch Kommentar
  • Anfrage #5235: Doc-Kommentare werden geparst und der Text beim Hovern über Prozeduren angezeigt

Version 2.11.4

(Ausgeliefert am 08.11.2017)

Erweiterungen:

  • Ticket #6122: Slot- und Retrieve-Funktionen werden nun bis 128 (exkl.) zugelassen.
  • Anfrage #5658: Neue System-Events FORMAT_CHANGED und RESET_FORMAT
  • Anfrage #5705: Neue Syntax für Messages an Sub-Widget erlaubt, Cell-Widgets LINK und BUTTON zugelassen
  • Die Deklaration von System-Events (bspw. Msg(SELECT)) ist nun ein Fehler
  • Fehler- und Warnungsmeldungen wird nun deren Nummer angestellt.

Version 2.11.0

(Ausgeliefert am 25.10.2017)

Erweiterungen:

  • Ticket #6438: Warnungen zu uneindeutigen Widgets werden als Probleme in Eclipse angezeigt
  • Anfrage #5658:
    • SAVE_FORMAT als System-Event
    • WIDTH als Synonym für FIX_WIDTH
  • Anfrage #5706: Parameter QUESTION für Attention
  • Hyperlinking und Hovering für System-Events

Version 2.10.3

(Ausgeliefert am 12.09.2017)

Fehlerkorrekturen:

  • #6423: Absturz bei uneindeutigen Item-Elementen

Version 2.10.2

(Ausgeliefert am 11.09.2017)

Erweiterung:

  • #6370: Flag LABEL wird erkannt und für Auswertung zur Beschreibung berücksichtigt.

Version 2.10.1

(Ausgeliefert am 29.08.2017)

Fehlerkorrekturen:

  • #6264: Syntaxfehler außerhalb von Subwidgets wurden nicht gemeldet

Erweiterungen:

  • #6002: Warnung, wenn sowohl VIEW_ONLY als auch NON_SELECTABLE an einem Widget
  • #6363: Warnung, wenn Daten-Widget keinen beschreibenden Prompt hat

Version 2.9.16

(Ausgeliefert am 17.08.2017)

Erweiterungen:

  • Ticket #6283: Erkennen von Überschneidungen bei Slots und Specifiern
  • Ticket #6324: Ausgabe der Version über Kommandozeile

Version 2.9.15

(Ausgeliefert am 24.07.2017)

Fehlerkorrekturen:

  • Ticket #5957: Dialog-Buttons können als Case-Bedingung benutzt werden

Erweiterungen:

  • Anfrage #5722: Synonym für ObjectList kann auch ObjectTreeList und TreeList verwendet werden.

Version 2.9.14

(Ausgeliefert am 26.04.2017)

  • Anfrage #5706: Konstanten von DialogBox und Attention können auf den Stack gelegt werden.
  • Provider müssen nicht mehr deklariert werden. (Siehe Provider)
  • Var und StaticVar dürfen nicht den gleichen Bezeichner haben.

Version 2.9.13

(Ausgeliefert am 21.04.2017)

  • Unterstützung für das IV-Kommando DialogBox

Version 2.9.12

(Ausgeliefert am 17.03.2017)

  • Parser
    • Absturz bei unbekannten IV-Kommandos abgefangen
  • Editor
    • Syntax-Highlighting des Flags FLOAT.

Version 2.9.11

(Ausgeliefert am 03.03.2017)

  • Parser
    • #5756: Slot NL

Version 2.9.10

(Ausgeliefert am 24.02.2017)

  • Parser
    • Flag "url" für WebWidgets
    • Flag "FLOAT" für Windows
    • Reparsing von cxp-Datei im Project-Validator unterbunden

Version 2.9.9

(Ausgeliefert am 10.02.2017)

  • Parser
    • Der Parser akzeptiert die Schlüsselworte „TOOLTIP“, „THUMBNAIL“, „url“ im SetFormat einer ObjectListView.

Version 2.9.8

(Ausgeliefert am 28.12.2016)

  • Parser
    • Der Parser akzeptiert nun anonyme Prozeduren in den Zugriffsausdrücken von Widgets.

Version 2.9.7

(Ausgeliefert am 30.11.2016)

  • Parser
    • Für Strings wird versucht aus dem Kontext zu schließen, ob der String ein Zugriffsausdruck sein könnte. Nur dann wird versucht, den String auch als Zugriffsausdruck zu interpretieren.

Version 2.9.6

(Ausgeliefert am 28.11.2016)

  • Eclipse
    • Abfangen einer Endlosschleife beim Überprüfen von gegenseitig aufrufenden Providern

Version 2.9.5

(Ausgeliefert am 23.11.2016)

  • Parser
    • Anfrage #3778: Header darf sich nicht auf ObjectListView beziehen
    • Nicht angezeigter Fehler bei schließender Klammer
  • Eclipse
    • Ticket #5329: Öffnen von Dateien außerhalb des Workspaces

Version 2.9.4

(Ausgeliefert am 26.10.2016)

  • Parser
    • Löschen veralteter Schlüsselwörter
      • Help in ini-Datei
      • DeleteModule, DeleteWidget
    • Neues Schlüsselwort CodeObject
    • Attention ohne Notification-Level ist deprecated
  • Eclipse
    • Bugfix: Absturz beim Öffnen von workflowGraph.app

Version 2.9.3

(Ausgeliefert am 05.10.2016)

  • Parser
    • Unterstützung für das Web-Widget
    • Deprecation von
      • Compile, CompileOverride
      • Attention ohne Notification-Level
      • Call(, Methodenname)
  • Eclipse
    • Möglichkeit zum Parsen eines Projekts aus Eclipse heraus wurde entfernt

Version 2.9.2

(Ausgeliefert am 22.09.2016)

  • Parser
  • Eclipse
    • Ticket #5060: Hyperlinking auf Provider-Prozeduren in Zugriffsausdrücken
    • Hyperlinking auf Providern

Version 2.9.1

(Ausgeliefert am 15.09.2016)

  • Parser
  • Eclipse
    • Hyperlinking auf Prozeduren zeigt auch deren Ableitungen
    • Syntax-Highlighting für Notification-Level bei Attention
    • Completion-Proposals enthalten nun alle bekannten Prozeduren, Messages, Variablen

Version 2.8.0

(Ausgeliefert am 24.08.2016)

  • Parser
  • Eclipse
    • Anpassung der ParseQueue, damit Hovering und Hyperlinking auf Prozeduren in Providern funktioniert

Version 2.7.1

(Ausgeliefert am 22.08.2016)

  • Parser
    • Flag "FF" ist kein Parser-Schlüsselwort mehr da Konflikt mit Bezeichner für SLOT

Version 2.7.0

(Ausgeliefert am 18.08.2016)

  • Parser
    • Unterstützung gelayouteten Widgets nach dem neuen Schema
    • Unterstützung von anonymen Prozeduren in Zugriffsausdrücken
    • Unterstützung Truncate mit BOTH und RIGHT
    • Parser berücksichtigt das Ändern des Parents eines Moduls per ext-Datei
    • Übergabe von "STACK" als Window bei GetObject führt nicht mehr zu einem Fehler
  • Eclipse
    • Hyperlinking auf Procedure in Provider mittels Strg+linke Maustaste

Version 2.6.0

(Ausgeliefert am 09.06.2016)

  • Parser
    • StaticVar im Eclipse-Parser
    • Unterstützung für das "Composite"-Widget
    • Anfrage #5454: Instantview Parser kann Widgets nach dem neuen Schema parsen und validieren
    • Ticket #4555: Rudimentäre Unterstützung für den Widget-Import (mit Keyword "Import")

Version 2.5.0

(Ausgeliefert am 17.05.2016)

  • Parser
    • #3935: ParserStarter Erweiterung der Option "-w" zur Auswahl von bestimmten anzuzeigenden Warnungen.
    • #4438: Warnung bei Verwendung von klassischen Variablen innerhalb von Prozeduren und Blöcken.
    • #4496 Prüfung auf Verwendung von lokalen Variablen.
    • #4397: Wegfall obsoleter Instantview. Schlüsselwörter : "Variable"->"Var", "Message"->"Msg", "ContextMenus"->"ContextMenuList" "quit" fällt weg.
    • #4495: Fehlermeldung wenn derselbe Bezeichner in verschiedenen Kontexten verwendet wird ( Prozedur , Variable, Message, Kommando )
    • #4435: Fehlermeldung wenn provides und triggeredBy in demselben Extern-Statement vorkommen.
    • #4503: Syntax für Notebook-Widget korrigiert.

Version 2.4.1

(Ausgeliefert am 27.01.2016)

  • Parser
    • Absturz des Parsers bei Widgets mit leerem String behoben.

Version 2.4.0

(Ausgeliefert am 15.01.2016)

  • Eclipse
    • Das Hyperlinking respektiert nun die Umgebungsvariablen CX_WIKI_HELP und CX_HELPROOT_INSTANTVIEW.

Version 2.3.1

(Ausgeliefert am 7.12.2015)

Version 2.3.0

(Ausgeliefert am 18.11.2015)

  • Eclipse
    • Dateien mit der Endung .win werden nicht mehr als AppsWh-Module angesehen. Dafür werden Dateien mit der Endung .app als AppsWh-Module behandelt.
  • Parser
    • Der Parser überprüft nun Prozeduraufrufe der Art "super::ProcedureName" korrekt.

Version 2.2.2

(Ausgeliefert am 5.11.2015)

Behobene Bugs

  • Eclipse
    • Die Schlüsselwörter "Provider" und "provides" werden korrekt markiert.

Version 2.2.1

(Ausgeliefert am 19.10.2015)

Behobene Bugs

  • Eclipse
    • Verhalten der Autovervollständigung bei öffnenden und schließenden Klammern am Ende einer Datei korrigiert.

Version 2.2.0

(Ausgeliefert am 14.10.2015)

Änderungen

  • Eclipse
    • Unterstützung für dokumentierende Kommentare durch
      • Auto-Edit-funktionen zum Einrücken und Erstellen
      • Syntax-Highlighting solcher Kommentare
      • Auto-Completion für Tags
    • Dateien mit der Endung .win werden korrekt als AppsWh-Module dargestellt

Version 2.1.1

(Ausgeliefert am 23.09.2015)

Änderungen

  • Eclipse
    • super::macroname funktioniert nun mit Hyperlinking und Hovering
    • Auto-Indent für schließende Klammern angepasst, so dass dieses die schließende Klammer nur wenn benötigt setzt
  • Parser
    • Der Parser versteht nun die neue provides-/Provider-Syntax

Version 2.0.0

(Ausgeliefert am 21.08.2015)

Änderungen

  • Eclipse
    • Dateien, welche geöffnet sind, aber nicht in Extern-Statements gefunden werden können, werden mit einem Fehlermarker versehen.
  • Parser
    • Der Parser versteht nun use- und provideBy-Statements

Behobene Bugs

  • Parser
    • Der Parser versteht nun is(CURSOR)
    • Der Parser versteht den XOR-Operator
       
    • Fehler beim Abschließen von Scopes behoben (relevant für die Sichtbarkeit von lokalen Variablen)

Version 1.0.56

(Ausgeliefert am 25.06.2015)

Änderungen

  • Editor
    • Syntax-Highlighting für LocalVar

Version 1.0.55

(Ausgeliefert am 30.04.2015)

Änderungen

Version 1.0.54

(Ausgeliefert am 30.03.2015)

Änderungen

  • Parser
    • Der Parser versteht nun lokale Variablen.
    • Presentation-Manager hinzugefügt
    • Auf dem Stack liegende Dateinamen in Strings werden überprüft, ob diese existieren und entsprechend eine Warnung ausgegeben.

Behobene Bugs

  • Parserfehler: Sind die Module A, B, C folgendermaßen abgeleitet: A ← B ← C und ist ein Widget in A definiert, kommt in B nicht vor und wird in C überschrieben, so wurde nicht erkannt, dass das Widget in C von dem Widget in A abgeleitet ist.

Version 1.0.53

(Ausgeliefert am 10.10.2013)

Behobene Bugs

  • Editor
    • In der Auto-Completion wurden bestimmte AppsWh-Schlüsselwörter bisher ignoriert
    • Kleinere Fehler beim automatischen Einrücken

Version 1.0.52

(Ausgeliefert am 01.10.2013)

Änderungen

  • Editor
    • Das Zeileneinrücken wurde erweitert.
      • Drückt man nach einer öffnenden Klammer oder eine Define(...) Enter, wird nicht nur dahinter eingerückt, sondern auch der Block geschlossen
      • Drückt man nach Messages Enter, wird nicht auf die Höhe der Message, sondern auf die des Code-Blocks eingerückt
      • Die Backspace-Taste springt in leeren Zeilen eine ganze Einrückung zurück
    • Die Ergebnisse der Suche wurden verschönert

Behobene Bugs

  • Auto-Completion (Strg + Leertaste) kennt nun mehr Schlüsselwörter
  • Editor räumt auch beim "Reusen" bei der Suche das Modell auf
  • Navigationshistorie (Alt + Pfeiltaste links) für Hyperlinking
  • Klassendeklaration in der odb können überschrieben werden

Version 1.0.51

(Ausgeliefert am 02.09.2013)

Änderungen

  • Editor
    • Mark Occurrences

      occur.png

      • Lässt man den Cursor auf einem Bezeichner stehen, so werden alle anderen Orte, an denen der Bezeichner im Dokument vorkommt (engl. "occur"), markiert.
    • InstantView-Suche
      • Die Suchergebnisse können nun tabellarisch und hierarchisch als Baum dargestellt werden
    • Kontextmenü: Suche nach Referenzen

      references.png

      • Rechtsklickt man auf einen Bezeichner, so kann man im Kontextmenü über "Search for References" nach anderen Punkten suchen, wo dieser vorkommt.
    • Hyperlinking funktioniert nun für
      • Dateinamen in includes in ini-Dateien
      • Auf Messages von SendMsg-Statements
    • ipc-Dateien werden nur dann ausgecheckt, wenn sich wirklich etwas in der Konfiguration eines Projektes geändert hat
  • Parser
    • Manager-Typ "WEB_SERVICE" hinzugefügt
    • Vordefiniertes Event "COMBO_DROPDOWN" hinzugefügt
    • Ab sofort ist der Project-Validator im Parser integriert. Das heißt, dass nicht mehr zwei JAR-Dateien zum starten des Parsers benötigt werden, sondern nur noch die eine: instantview-parser.jar

Version 1.0.50

(Ausgeliefert am 30.07.2013)

Änderungen

  • Hyperlinking funktioniert nun für
    • das Flag CONTEXTMENU
    • Messages in SendMsg, sofern diese bekannt sind
    • Dateinamen in ini- und num-Dateien
  • Doppelte
    • Klassen-
    • Specifier-/Slot
    • Index- und
    • Retrieve-Identifikationsnummern
    werden nun vom Parser als Fehler angesehen.

Version 1.0.49

(Ausgeliefert am 18.07.2013)

Änderungen

  • Widgets ohne NO_DRAIN-Flag und mit MacroCall im Zugriffsausdruck bekommen eine Warnung
  • Icons für die Widgets "Picture", "MLOLEBox" und "Fraction" in der Outline

Behobene Bugs

  • Beim Importieren von Projekten mit verlinktem ROOTDIR wird nun auch der Projects-Ordner korrekt verlinkt.

Version 1.0.48

(Ausgeliefert am 25.03.2013)

Änderungen

  • Kleinere Änderungen im Parser
    • ² wird nur in der Codepage Cp850 akzeptiert
    • Flag "COLORED" eingeführt
    • Kommandos Add/Get/Remove/SetPage angepasst

Version 1.0.47

(Ausgeliefert am 11.01.2013)

Neue Features

  • Auto-Completion (Strg+Leertaste) schlägt nun auch Keywords vom Syntax-Highlighting vor (z.B. case, endCase, BeginTXN, EndTXN ...)
  • Knoten im Call Graph können über ihr Context-Menü kollabiert werden: Von diesen Knoten werden dann nur noch die roten Verbindungen angezeigt
  • Der Call Graph layoutet sich neu, wann immer er in seiner Größe verändert wird

Behobene Bugs

  • LOD-Dateien funktionieren nun, was Hyperlinking, Hovering und Folding angeht, genauso wie MOD-Dateien.
  • Auf Makros im Push-Statement kann gehyperlinkt werden
  • Berechnung der Zeilennummern von Fehlermarkierungen wurde überarbeitet

Version 1.0.46

(Ausgeliefert am 06.12.2012)

Änderungen

  • Kleinere Änderungen im Parser
    • IS_ENABLED wird als Message erkannt
    • AS wird als Manager-Typ erkannt
  • Der Project-Validator erkennt nun doppelte Makros
  • Icon für OLE-Box in Outline
  • Modul-Bezeichner für SendMessage in Call Graph
  • Über "Windows  → Preferences  → InstantView-Plugin...  → Parsing  → Analyse widgets" kann eine Analyse für Widgets eingeschaltet werden. Dann werden Widgets, die leicht in der Position von den anderen abweichen, als Fehler angemerkt. Diese Option ist standardmäßig deaktiviert.

Version 1.0.45

(Ausgeliefert am 19.10.2012)

Änderungen

  • Kleinere Änderungen im Parser
    • Returntyp von Retrieve kann mit oder ohne Klammern geschrieben werden
    • Angabe von Constraints für Widgets möglich.
    • Wird ein Makro oder eine Variable eingeführt, zu deren Namen es schon ein Kommando gibt, so ist dies ein Fehler
    • Widgets können bei der Angabe ihres Texts die Anführungszeichen weglassen
  • Bugfix: Projekte können jetzt auch über die ipc-Datei geladen werden, wenn diese verlinkt sind.

Version 1.0.44

(Ausgeliefert am 05.09.2012)

Änderungen

  • Kleinere Änderungen im Parser (Group ohne Text möglich, Währungen '$', '£', '¢' und '¥' akzeptiert)
  • Bugfix für Hyperlinking

Version 1.0.43

(Ausgeliefert am 28.08.2012)

Änderungen

  • Ist bei mehreren Zielen eines Hyperlinks ein Ziel naheliegender als die anderen, so wird dieses standardmäßig ausgewählt.
  • Bugfix beim Importieren von Projekten über ipc-Datei.
  • Neues Icon für Zugriffsausdrücke: access.png

Achtung

Ab dieser Version der IDE werden nur noch Eclipse 3.7.0 (Indigo) und spätere Versionen unterstützt.

Version 1.0.42

(Ausgeliefert am 22.08.2012)

Änderungen

  • Der "FIXME"-Tag wurde aus den Beschreibungen der FIXMEs entfernt
  • Die Outline merkt sich den Sortier-Modus.
  • Der Call Graph wird beim Reparsing korrekt neu aufgebaut.
  • Prompt-Widgets sind auch ohne Text zulässig.
  • Beim Importieren eines Projekts ist der Import über ipc-Datei möglich. Ein WorkingSet "Ableitungen" wird durch die entsprechende Ableitung erweitert.
  • Zugriffsausdrücke, die vollständig in einem String enthalten sind, werden geparst. Hierdurch werden sehr viel mehr, wenn auch nicht alle Makro-calls gefunden.

Version 1.0.41

(Ausgeliefert am 02.08.2012)

Neu

  • Call Graph
    • Zum Call Graph hinzufügen: Im Call Graph können nun die Aufrufe von mehreren Objekten angezeigt werden. Hierfür gibt es neben dem Punkt "Focus On" im Kontextmenü im Call Graph auch den Punkt "Add".
    • Relayout Call Graph: Im Drop-Down-Menü des Call Graph (menu.gif) findet sich nun eine Option "Relayout", mit der das Layout auf den aktuellen Graphen angewendet wird. Relative vertikale Positionen bleiben dabei bestehen.
    • Doppelklick auf Kanten markiert eine entsprechende Aufrufstelle
  • Warnungen bei im Modul unbenutzten Variablen
  • Gesendete Messages werden in der Outline angezeigt

Wartung

  • Suche:
    • Das Suchfeld merkt sich die bisherigen Suchanfragen
    • Markierung von und Springen zu Ergebnissen der Suche wurden korrigiert
    • SendMsg(, DIRECT) wurde präzisiert
  • Warnungen und Fehler werden auch in zusammengeklappten Bereichen angezeigt
  • Das Widget Unit wurde entfernt

Version 1.0.40

(Ausgeliefert am 13.07.2012)

In dieser Version wurde die Stabilität des Parsers verbessert.

Version 1.0.39

(Ausgeliefert am 06.07.2012)

In dieser Version wurden etliche Fehler behoben, die Suche erweitert und Messages im Call Graph eingefügt.

Neu

  • Messages im Call Graph: Messages können nun durch Rechtsklick im Editor oder in der Outline dem Call Graph hinzugefügt werden.
  • Icons: Einige Icons wurden überarbeitet und für einige Widgets wurden neue Icons hinzugefügt. Insbesondere ist nun das Icon für Makros: macro.png
  • Erweiterung der Suche: Die Suche verfügt nun über die zusätzlichen Optionen, nach Variablen und Kommandos zu suchen, sowie Dictionaries und Synopses zu durchsuchen. Außerdem wurde die Möglichkeit zur Suche nach regulären Ausdrücken hinzugefügt.

Verbesserungen

  • Fehler beim
    • Abbrechen des Parse-Vorgangs
    • Öffnen von Dateien außerhalb des Workspaces
    • Toggle Comment
    • Folding beim Öffnen des Editors
    wurden behoben
  • Beschleunigung des Parsers um 20-30 %

Version 1.0.38

(Ausgeliefert am 15.06.2012)

In dieser Version wurden mehrere Fehler mit dem Folding und Parsing behoben, sowie eine InstantView-Suche eingefügt.

Zum Aufrufen der Suche, drücken Sie im Editor STRG+H und wählen anschließend die "InstantView Search"-Lasche aus.

Version 1.0.37

(Ausgeliefert am 29.05.2012)

In dieser Version wurde Folding und das Markieren von unbenutzten Makros eingeführt.

Änderungen

  • Teile des Quellcodes können durch Folding ein- und ausgeblendet werden.
    • Hierfür klickt man auf die - und + Symbole am linken Rand des Editors
    • Für welche Teile des Quellcodes dies gemacht werden soll, kann unter Window → Preferences → Instant View Plugin-Eigenschaften → Editor → Folding eingestellt werden
    • Manche Bereiche werden automatisch ausgeblendet, auch dies kann in den eben genannten Preferences eingestellt werden.
  • Makros, für die kein Aufruf gefunden wird, werden als unbenutzt (unused.gif) gekennzeichnet.
  • Das Finden von Makro-Aufrufen wurde verbessert. Insbesondere wurden
    • Aufrufe von Zugriffsausdrücken (slot.png) und
    • Aufrufe von abgeleiteten Makros hinzugefügt

Version 1.0.36

(Ausgeliefert am 11.05.2012)

In dieser Version wurden die Integration der Outline verbessert und Level Indicators eingeführt. Letztere geben an, ob ein Makro von einer Message aufgerufen wird oder nicht.

Änderungen

  • Neues Logo (logo_neu.gif)
  • Markieren von Objekten in Editor und Outline
    • Wird der Cursor im Editor bewegt, wird auf der Leiste links der Bereich markiert, über den sich das Objekt erstreckt, in dem der Cursor steht. Ein Objekt kann hierbei beispielsweise ein Widget, eine Makro- oder eine Message-Implementierung sein. Dieses Objekt wird dann standardmäßig in der Outline markiert. Das Markieren in der Outline kann über die "Link outline with editor"-Aktion unterbunden werden.
  • Doppelklick in Outline für Öffnen, Kontextmenü
    • Die Outline wurde für Call Graph und Derivation View angepasst und öffnet ihre Elemente nun mit Doppelklick und verfügt über ein Kontextmenü.
  • Top-/Sub-Level Indicators für Makros
    • Zusätzlich zu den in 1.0.32 eingeführten Override Indicators (over_up.PNG, over_down.PNG, over_both.PNG) gibt es nun Indicators, ob ein Makro von einer Message aufgerufen wird (Top-Level top_level_big.gif) oder nicht (Sub-Level sub_level_big.gif).
  • Bugfix Call Graph: verschachtelte Statements

Version 1.0.35

(Ausgeliefert am 17.04.2012)

In dieser Version wurde eine erste Version des Call Graph implementiert. Hier lässt sich graphisch darstellen, welche Makros ein Makro aufruft und an welchen Stellen es selbst aufgerufen wird. Makros werden durch Rechtsklick auf den Makronamen → Add to Call Graph eingefügt.

Achten Sie bei der Aktualisierung auf diese Version bitte darauf, dass die Option "Contact all update sites during install to find required software" aktiviert ist. Hierdurch kann das für die graphische Darstellung des Call Graphen benötigte Plugin mit installiert werden. Beachten Sie auch, dass ab dieser Version nur noch Eclipse 3.6.0 (Helios) und spätere Versionen unterstützt werden.

Schlägt die Installation fehl, so kann dies daran liegen, dass Sie nicht die letzte Eclipse-Version installiert haben. In diesem Fall entfernen Sie bitte den blau markierten Haken.

contact_sites.png

Neu

  • Editor
    • Der Call Graph stellt graphisch dar, wo ein Makro aufgerufen wird und welche Makros es aufruft.
    • Beim Hyperlinking auf Modulen werden auch davon abgeleitete Module angezeigt.
  • Parser
    • Das Widget im Flag CONTEXTMENU wird überprüft.
    • Bugfixes beim Registrieren einer Datei am Parser.
      • Registrierung kann abgebrochen werden
      • Falls Parsing ausgeschaltet ist, findet keine Registrierung statt
      • Initiales Parsen ist stabiler: Fehlende Enumerations-Dateien führen zu keinem Absturz

Version 1.0.34

(Ausgeliefert am 29.03.2012)

In dieser Version wurden die Entwicklungen aus Version 1.0.32 auf Widgets angewendet und das Reparsing beschleunigt dadurch, dass nicht mehr die gesamte Familie geparst wird.

Version 1.0.33

(Ausgeliefert am 23.03.2012)

In dieser Version wurden Keywords zum Content-Assist hinzugefügt.

Version 1.0.32

(Ausgeliefert am 22.03.2012)

In dieser Version wurde die Übersicht über das Überladen von Makros verbessert, sowie die Vererbung von Modulen und Klassen grafisch dargestellt.

Neu

  • Übersicht im Editor
    • Override Indicators: Auf der linken Seite des Editors werden nun Icons angezeigt, wenn ein Makro überschreibt (over_up.PNG), überschrieben ist (over_down.PNG) oder beides vorliegt (over_both.PNG).
      Klickt man auf ein solches Icon mit blauem Pfeil, so wird man zum überschriebenen Makro befördert. Ist nur ein roter Pfeil vorhanden und ist das Makro, das überschreibt, eindeutig, so wird dorthin verlinkt.
    • Damit die Abgeleitete Makros erfasst werden, wurde das Single-File-Parsing zum Family-Parsing ausgebaut, bei dem alle mit diesem Modul durch Vererbung zusammenhängenden Module geparst werden.
    • Ein InstantView Derivation View wurde eingeführt, in dem man Hierarchien von Makros, Modulen und Klassen inspizieren kann. Hierzu rechtsklickt man auf das entsprechende Element und wählt im Kontextmenü "Add to Derivation View". Per Doppelklick gelangt man zum entsprechenden Element im Editor.
    • Beim Hyperlinking auf Makros werden auch davon abgeleitete Makros angezeigt.
  • Fehlermeldungen
    • Falsche Fehler in EXT und Widgets ohne Namen wurden behoben.
    • Push ist nur in SetFormat deprecated.
    • ContextMenuList und Menu müssen Subwidgets haben.

Bekannter Fehler

Wählt man im Kontextmenü des Project Explorers "Parse Project", so werden die Module zwar geparst, aber viele Information wird aus Speichergründen gelöscht, weshalb für diese Module dann Hyperlinking, Hovering und die Override Indicators nicht funktionieren. Dies soll in der nächsten Version behoben werden. Sie können aber die Informationen über "Parse File" im Kontextmenü für die entsprechende Datei wiederherstellen lassen.

Einzurichten

Um die neuen Features der grafischen Übersicht nutzen zu können, empfehlen wir, das neue "Family-Parsing" zu aktivieren. Hierzu öffnet man über Window → Preferences → Instant View Plugin-Eigenschaften → Parsing die Parsing-Optionen und wählt "Family-Parsing" aus:

eclips2.PNG

Version 1.0.31

(Ausgeliefert am 08.03.2012)

In dieser Version wurde vorwiegend das Parsen für EXT, ODB (und dabei Klassen) und Widgets ausgebaut.

Neu

  • Darstellung der Widgets in Outline kann nun durch Buttons genauer kontrolliert werden
  • Fehler für Widget-Vererbungen und -Verschachtelungen (siehe hier)
  • Verbesserung des Vorgangs "Parse Project"
    • bisherige Parse-Vorgänge werden abgebrochen und der Parser wurde besser synchronisiert
  • Verbessertes Parsen der EXT
    • Parent-Modul in Extern-Statements muss existieren
    • Name eines Moduls wird mit den Angaben aus seinem Extern-Statement verglichen
  • Reparsen für ODB, wenn nach Änderung gespeichert
  • Integrieren der Klassen ins Modell; hierdurch bei Überprüfung von Klassenfiltern möglich festzustellen, ob Klassen voneinander abgeleitet

Version 1.0.30

(Ausgeliefert am 17.05.2011)

In dieser Version wurden zwei kleine Fehler aus der vorherigen Version behoben.

Version 1.0.29

(Ausgeliefert am 17.05.2011)

In dieser Version wurde vor allem die Widget-Überprüfung neu eingeführt.

Neu

  • Widget-Überprüfung
  • Einrücken des Cursors weiter ausgebaut (siehe unten)
  • Hyperlinking auf Widgetnamen in Commands, auch wenn kein Window an der Stelle bekannt ist (Windows im Modul werden durchgegangen)
  • Fehlermeldung, falls die in der Projekt-Konfiguration angegebenen Dateien nicht bekannt sind oder zwei Dateien den selben Namen tragen
  • Bugfixes im Parent-Hyperlinking

Widget-Überprüfung

Für die Widget-Überprüfung wurde die schon für die Command-Überprüfung benutzte Funktionalität ausgebaut, weshalb sich die Fehlermeldungen sehr an denen für Commands orientieren. Sollte unklar sein, wie die Syntax eines Widgets auszusehen hat, kann stets über Hyperlinking auf dem WidgetTypen die entsprechende Hilfe abgerufen werden.

Einrücken

Wie schon bisher, wird der Cursor eingerückt, falls hinter einer öffnenden Klammer '{' oder '[' Return gedrückt wurde. Steht nun hinter dem Cursor eine entsprechende schließende Klammer, so wird diese in die darauffolgende Zeile gesetzt:

einruecken1.png →→ einruecken2.png

Version 1.0.28

(Ausgeliefert am 19.04.2011)

In dieser Version wurden viele Fehler behoben. Insbesondere Schwächen bei fehlerhaftem Code, wie beispielsweise ein Endlosschleife, wurden behoben.

Neu

  • Fehlermeldung für doppelte Macro-Definition
  • Automatische Konvertierung von Tabs zu Leerzeichen beim Speichern
  • Automatisches Einrücken des Cursors nach { und [
  • Alle Buchstaben aus der Codepage Cp850 werden für Bezeichner akzeptiert
  • Ausbau der Widget-Vererbungs-Fehler
  • Beim Reparsing der EXT werden Änderungen im Modell beachtet und entsprechende neue Dateien werden geparst
  • Hyperlinking in EXT

Version 1.0.27

(Ausgeliefert am 30.03.2011)

Neu

  • Stimmt die Widget-Hierarchie bei einer Vererbung nicht überein, so wird ein Fehler ausgegeben. (Weiteres siehe Hinweis)
  • Fehler die auftauchen, werden nun geloggt.
  • Beim Schließen des letzten Editors eines Projektes wird dessen Modell gelöscht. → Weniger Speicherplatz wird durch unbenutzte Projekte verbraucht
  • Hyperlinking für Dateinamen in Include-Statements
  • Hyperlinking für Widgets (über deren Bezeichner)
  • Action in der Toolbar ermöglich nun das vorübergehende Ausschalten des Parsers.

Verbesserungen

  • Relativ angegebene Pfade werden nun von den Project-Properties verstanden.
  • Outline steht nun von Anfang an bereit.
  • Unnötiges Reparsen von Parent-Modulen wird unterbunden.
  • Sort-Action der Outline kann nun "eingedrückt" werden. (wurde bisher immer durchgestrichen)
  • Projektparsen während gleichzeitigem Fileparsing wirft nun keine NullPointerException mehr.
  • Bugfix im SetFormat-Inspector
  • Toggle Comment checkt Dateien nun aus

Hinweis

Was ist eine Widget-Hierarchy? Vielen Widgets können Subwidgets angehängt werden (typischerweise Window, Group und Notebook, aber auch Menu oder Item), die in geschweiften Klammern gefasst und der Action-List des Widgets angehängt sind. Hierdurch wird eine Hierarchie aufgebaut, die auch in der Outline dargestellt wird.

Bei der Vererbung wird nun geprüft, ob die Hierarchie eines Widgets mit der Hierarchie der gleichnamigen Widgets in übergeordneten Modulen übereinstimmt oder nicht.

Fehler-Beispiel:

// Modul A
Window(EditWin, 0, 0, 500, 220)
{
    Button(Btn, 10, 10, 100, 8, "Klick Mich!")
}