Project

General

Profile

Actions

Feature #17393

closed

FE Report Editor: add CodeMirror qfq language

Added by Elias Villiger 3 months ago. Updated about 1 month ago.

Status:
Closed
Priority:
Normal
Assignee:
Elias Villiger
Target version:
Start date:
01.12.2023
Due date:
% Done:

0%

Estimated time:
Discuss:
Prio Planung:
No
Vote:

Description

write a new CodeMirror grammar/language

Ideally with qfq keyword syntax, but also recognizing
- SQL
- HTML
- Javascript


Related issues

Related to QFQ - Feature #17579: UZH CD: Anpassungen fuer FE Edit CodemirrorNewCarsten Rose13.01.2024

Actions
Actions #1

Updated by Elias Villiger about 2 months ago

Develop-Doku siehe CODEMIRROR.md, etwas ergänzt.

Neu müssen folgende Dateien nicht mehr eingebunden werden (werden mit qfq auch nicht mehr mitgeliefert):
  • file13 = typo3conf/ext/qfq/Resources/Public/JavaScript/codemirror.min.js
  • file14 = typo3conf/ext/qfq/Resources/Public/JavaScript/code-mirror-mode/sql/sql.min.js
Stattdessen neu eingebunden:
  • file13 = typo3conf/ext/qfq/Resources/Public/JavaScript/codemirror/codemirror-qfq.min.js

CSS ist unverändert.

Actions #2

Updated by Carsten Rose about 1 month ago

  • Related to Feature #17579: UZH CD: Anpassungen fuer FE Edit Codemirror added
Actions #3

Updated by Carsten Rose about 1 month ago

  • Target version changed from next2 to 24.1.0.rc1
Actions #4

Updated by Carsten Rose about 1 month ago

  • Status changed from New to Closed
Actions #5

Updated by Elias Villiger about 1 month ago

Diskussion: Codemirror syntax highlighting hat Performance-Einbussen bei längerem Code. Grund ist, dass `viewportMargin=Infinity` gesetzt wird, damit das ganze Dokument mittels Browser-Search durchsucht werden kann.
Performance-Probleme zeigen sich nach einigen Hundert Zeilen Code und je nach Hardware.

Die codemirror-eigene Suche ist aber auch nicht perfekt, ist jetzt immerhin konfiguriert, dass das Suchfeld nicht nach jedem Enter wieder verschwindet. Fortbestehende Nachteile sind, dass die codemirror-Suche nur dann aufgerufen wird, wenn das Textfeld aktiv ist (ansonsten die Browser-Suche) und dass die Anzahl matches nicht angezeigt wird.

Deshalb gemeinsamer Entscheid, Stand jetzt:
- FE: `viewportMargin=Infinity` belassen, Suchfunktion: Browser-Suche
- BE: `viewportMargin` wie von Typo3 definiert belassen, Suchfunktion: Codemirror-Suche

Actions

Also available in: Atom PDF