staging.inyokaproject.org

InyokaEdit - Ein Editor für Inyoka-Artikel

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Shakesbier

(Themenstarter)
Avatar von Shakesbier

Anmeldungsdatum:
14. Juli 2008

Beiträge: 1165

Neuer Build, damit Groovy Gorilla auch im PPA vertreten ist. Mit InyokaEdit 0.25.0 gibt es nicht viel Neues:

  • Werkzeugleisten-Symbole für dunkle Farbthemen

  • Ubuntu 16.04 wird nicht mehr unterstützt

  • Komplette Liste der Änderungen: Versionsvergleich 🇬🇧

mubuntuHH Team-Icon

Projektleitung

Anmeldungsdatum:
28. November 2010

Beiträge: 845

Danke Shakesbier!

tuxifreund Team-Icon

Projektleitung

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

Ein wirklich toller Editor, der die Arbeit im Wiki wirklich erleichtert. 👍 Vor allem die Syntaxhervorhebung finde ich klasse, das macht’s wirklich übersichtilich. (Vielleicht wäre das ja auch was für den Online-Editor 😉 )

Danke Shakesbier!

tuxifreund Team-Icon

Projektleitung

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

Hallo Shakesbier!

Die Vorschau ist nur eine HTML-Seite und kann daher z.B. auf Deinem zweiten Monitor in einem beliebigen Browser angezeigt werden. Speicherort der Vorschau: ~/.local/share/inyokaedit/tmpinyoka.html

Vielleicht kann das auch noch in den Wikiartikel?

LG tuxifreund

Bournless

Anmeldungsdatum:
4. Mai 2019

Beiträge: 915

Hallo tuxifreund,

Vielleicht kann das auch noch in den Wikiartikel?

Ja, warum auch nicht? Wenn Du der Meinung bist, dass es erwähnenswert ist, dann ändere den Wikiartikel doch bitte selbst. Deine Änderungen werden eh gelesen. Falls Deine Änderungen an dem Artikel falsch sind, nicht den Richtlinien entsprechen, usw. wirst Du darauf hingewiesen. Zudem ist das Wiki revisionssicher - Du kannst also (fast) nicht's falsch machen.

Auf geht's. ☺

Gruß
Bournless

tuxifreund Team-Icon

Projektleitung

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

Hallo Bournless,

ich kümmer mich die nächsten Tage drum.

LG tuxifreund

Shakesbier

(Themenstarter)
Avatar von Shakesbier

Anmeldungsdatum:
14. Juli 2008

Beiträge: 1165

tuxifreund schrieb:

Hallo Bournless,

ich kümmer mich die nächsten Tage drum.

LG tuxifreund

Danke 👍

Axel-Erfurt

Anmeldungsdatum:
18. Mai 2016

Beiträge: 1347

tuxifreund schrieb:

Hallo Shakesbier!

Die Vorschau ist nur eine HTML-Seite und kann daher z.B. auf Deinem zweiten Monitor in einem beliebigen Browser angezeigt werden. Speicherort der Vorschau: ~/.local/share/inyokaedit/tmpinyoka.html

Vielleicht kann das auch noch in den Wikiartikel?

LG tuxifreund

Du kannst im Browser ein lesezeichen erstellen (benutzername anpassen)

file:///home/benutzername/.local/share/inyokaedit/tmpinyoka.html

tuxifreund Team-Icon

Projektleitung

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

tuxifreund schrieb:

ich kümmer mich die nächsten Tage drum.

Ich hab’s im Artikel ergänzt. Das geht so, oder?

LG tuxifreund

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Hallo!

Ich habe den gut gelungenen Editor nun auch endlich mal verwendet 😉

Was mir auffällt:

  • Beim manuellen Tippen von Klammern jeglicher Art, kommt bei aktivem Syntaxcheck immer die Box, die die schließenden Klammern moniert. Das wäre schöner in Form einer Einblendung oder eines Statusleistenhinweises, damit man nicht immer vom Tippen ablassen muss.

  • Ab und zu kommt das Popup „Error while loading Preview“, ich vermute einen Zusammenhang mit dem setzen/entfernen von Leerzeilen, kann es aber noch nicht eingrenzen.

  • Die Gedenkpausen bei copy, paste, Datei öffnen sind ziemlich lang. Reagiert der Syntaxchecker/Code Completion da auf jeden Zeilenumbruch oder eine gewisse Anzahl zeichen?

Den Error kann ich bei Gelegenheit mal debuggen. Aktuell verwendet habe ich die AUR-Version 0.25.0.

Shakesbier

(Themenstarter)
Avatar von Shakesbier

Anmeldungsdatum:
14. Juli 2008

Beiträge: 1165

Hi ChickenLipsRfun2eat

danke für Deine Rückmeldungen! Der Syntaxcheck wird immer zusammen mit der Erstellung der Vorschau angetriggert. Hast Du in den Einstellungen eine Taste definiert, die die Vorschau triggern soll (wenn, ja welche?) und/oder ein Zeit für die "Auto-Vorschau" definiert (wenn ja, wie viele Sekunden?)? Ich muss zugeben, dass ich die Auto-Vorschau genau deshalb bei mir deaktiviert habe 😬 Ich muss mal schauen welche Möglichkeiten Qt (bzw. die Klasse QTextEdit) mir für andere Einblendungen/Hervorhebungsmöglichkeiten bietet, aber Deine Idee ist definitiv gut und sinnvoll! Werde mich damit beschäftigen.

Bzgl. der Fehlermeldung beim Laden der Vorschau: Evtl. hängt es mit der Frequenz der Vorschauerstellung zusammen (siehe vorherigen Absatz; vielleicht ist die Vorschau noch nicht komplett erstellt und der nächste Trigger zur Erstellung wird schon geschickt). Mit "Auto-Vorschau" 1s + Trigger der Vorschau mit          kann ich zumindest den Fehler "Error while loading Preview" nachstellen. Versuch bitte mal mit "Auto-Vorschau" und/oder die Vorschautaste anzupassen (oder temporär zu deaktivieren) und sag Bescheid ob das hilft.

Die Gedankenpausen konnte ich bei mir noch nicht nachvollziehen (ich nutze ebenfalls die Version aus dem AUR). Kann mir aktuell wirklich nur vorstellen, dass es mit der Vorschauerstellung zusammenhängt (die Codevervollständigung wird innerhalb eines keyPressEvent aktiv, also oft 😉)

Axel-Erfurt

Anmeldungsdatum:
18. Mai 2016

Beiträge: 1347

Shakesbier schrieb:

Ich muss mal schauen welche Möglichkeiten Qt (bzw. die Klasse QTextEdit) mir für andere Einblendungen/Hervorhebungsmöglichkeiten bietet, aber Deine Idee ist definitiv gut und sinnvoll!

Vielleicht QStatusBar ?

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Shakesbier schrieb:

Hi ChickenLipsRfun2eat

…Hast Du in den Einstellungen eine Taste definiert, die die Vorschau triggern soll (wenn, ja welche?) und/oder ein Zeit für die "Auto-Vorschau" definiert (wenn ja, wie viele Sekunden?)?

Ich habe alles auf Standard gelassen, lediglich das Häkchen aus o.g. Gründen bei „check inyoka syntax“ entfernt. reload preview key ist 0x1000004, Sekunden stehen auf 15.

Ich muss mal schauen welche Möglichkeiten Qt (bzw. die Klasse QTextEdit) mir für andere Einblendungen/Hervorhebungsmöglichkeiten bietet, aber Deine Idee ist definitiv gut und sinnvoll! Werde mich damit beschäftigen.

Ich habe mir den Quellcode noch nicht angesehen, aber ich würde vermutlich eine ListView mit aktuellen Nachrichten unterhalb von Textedit einbauen. Bei horizontalem Split wäre diese dann zwischen TextEdit und Preview, bei vertikalem Split unter dem TextEdit. Standardgröße eine oder zwei Zeilen. Dort könnten dann Meldungen stehen. Alternativ wäre natürlich oberhalb oder unterhalb von allem im Footer. Problem beim dynamischen ein- und ausblenden ist, dass sich immer die ganze Ansicht verschiebt, was wiederum bei der Eingabe stört.
Alternativ wäre ein overlay, also sowas wie ein Tooltip. Der wäre aber nicht ab Werk scrollbar und hätte auch wenig Möglichkeiten für eine Historie.

Die Gedankenpausen konnte ich bei mir noch nicht nachvollziehen…

Ich habe eine Vermutung: In den Settings stehen ja 15 Sekunden als Standard für die Autovorschau. Da ich vorher noch nichts verstellt habe, wie ist der Standardwert im Code definiert? Könnte es daran liegen, dass der dann auf 0/1 steht, wenn der Wert noch nicht mittels QSettings (wenn du die nutzt) geschrieben wurde? Seit ich in den Optionen „rumgespielt“ habe, ist der Teil nämlich weg und es dauert wirklich 15 Sekunden, bis eine Vorschau generiert wird — ich kann aber problemlos Tippen, etc. Die Gedenkpause ist also Geschichte, dafür dauert das Laden der Vorschau lange.

Was den Trigger angeht: Ich kann das recht zuverlässig reproduzieren, wenn ich zwei, drei inyoka-Dateien nacheinander öffne. Als Beispiel: In einem leeren Dokument habe ich per copy&paste einen vollständigen Artikel aus dem hiesigen Wiki eingefügt, danach erst eine weitere Datei geöffnet, dann eine zweite. Bei jedem Öffnen kam die Meldung. Meldungstechnisch kann ich dir nur das bieten:

12:00:10 Debug: "InyokaEdit" "0.25.0"
12:00:10 Debug: Compiled with Qt 5.15.1 + webkitwidgets
12:00:10 Debug: Qt runtime 5.15.2
12:00:10 Debug: Inyoka Community: "ubuntuusers_de"
12:00:10 Debug: Found templates: ("Archiviert", "Ausbaufähig", "Baustelle", "Befehl", "Bildersammlung", "Bildunterschrift", "Builddeps", "Experten", "Fehlerhaft", "Fortgeschritten", "Fremd", "Fremdpaket", "Fremdquelle-auth", "Fremdquelle", "Getestet", "Hinweis", "Icon-Übersicht", "Ikhaya-Award", "Ikhaya-Projektvorstellung", "IkhayaAutor", "Ikhayabild", "InArbeit", "Infobox", "Installbutton", "Kopie", "OBS", "Pakete", "Paketinstallation", "PipInstallation", "PPA", "Projekte", "Seitenleiste", "StatusIcon", "Tabelle", "Tasten", "Uebersicht", "Uebersicht2", "UT", "Verlassen", "Warnung", "Wissen", "Überarbeitung")
12:00:10 Debug: Using miniz version: 10.1.0
12:00:10 Debug: Plugins folder: "/usr/lib/inyokaedit/plugins"
12:00:10 Debug: Plugin file: "libhighlighter.so"
12:00:10 Debug: Plugin file: "libhotkey.so"
12:00:10 Debug: Plugin file: "libspellchecker.so"
12:00:10 Debug: Plugin file: "libuu_knowledgebox.so"
12:00:10 Debug: Plugin file: "libuu_tabletemplate.so"
12:00:10 Debug: Calling void InyokaEdit::setupEditor()
12:00:10 Debug: Parsing...
12:00:11 Debug: Calling void InyokaEdit::createActions()
12:00:11 Debug: Calling void InyokaEdit::createMenus()
12:00:11 Debug: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12:00:11 Debug: initPlugin() highlighter 1.2.4
12:00:11 Debug: Found templates: ("Archiviert", "Ausbaufähig", "Baustelle", "Befehl", "Bildersammlung", "Bildunterschrift", "Builddeps", "Experten", "Fehlerhaft", "Fortgeschritten", "Fremd", "Fremdpaket", "Fremdquelle-auth", "Fremdquelle", "Getestet", "Hinweis", "Icon-Übersicht", "Ikhaya-Award", "Ikhaya-Projektvorstellung", "IkhayaAutor", "Ikhayabild", "InArbeit", "Infobox", "Installbutton", "Kopie", "OBS", "Pakete", "Paketinstallation", "PipInstallation", "PPA", "Projekte", "Seitenleiste", "StatusIcon", "Tabelle", "Tasten", "Uebersicht", "Uebersicht2", "UT", "Verlassen", "Warnung", "Wissen", "Überarbeitung")
12:00:11 Debug: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12:00:11 Debug: initPlugin() hotkey 1.2.4
12:00:11 Debug: Reading hotkey entries from config file
12:00:11 Debug: void Hotkey::registerHotkeys()
12:00:11 Debug: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12:00:11 Debug: initPlugin() spellchecker 1.2.2
12:00:11 Debug: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12:00:11 Debug: initPlugin() uu_knowledgebox 1.1.3
12:00:11 Debug: Reading knowledge box entries from config file
12:00:11 Debug: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12:00:11 Debug: initPlugin() uu_tabletemplate 1.4.1
12:00:11 Debug: Found templates: ("Archiviert", "Ausbaufähig", "Baustelle", "Befehl", "Bildersammlung", "Bildunterschrift", "Builddeps", "Experten", "Fehlerhaft", "Fortgeschritten", "Fremd", "Fremdpaket", "Fremdquelle-auth", "Fremdquelle", "Getestet", "Hinweis", "Icon-Übersicht", "Ikhaya-Award", "Ikhaya-Projektvorstellung", "IkhayaAutor", "Ikhayabild", "InArbeit", "Infobox", "Installbutton", "Kopie", "OBS", "Pakete", "Paketinstallation", "PipInstallation", "PPA", "Projekte", "Seitenleiste", "StatusIcon", "Tabelle", "Tasten", "Uebersicht", "Uebersicht2", "UT", "Verlassen", "Warnung", "Wissen", "Überarbeitung")
12:00:11 Debug: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
…
12:04:09 Debug: Pygmentize found: "/usr/bin/pygmentize"
…
12:04:34 Warning: Error while loading preview: "/home/user/.local/share/inyokaedit/tmpinyoka.html" (:0, )
…
12:04:31 Warning: Wayland does not support QWindow::requestActivate() (:0, )
…
12:04:34 Warning: Error while loading preview: "/home/user/.local/share/inyokaedit/tmpinyoka.html" (:0, )
12:04:34 Debug: Parsing...
12:04:35 Warning: Error while loading preview: "/home/user/.local/share/inyokaedit/tmpinyoka.html" (:0, )

Die Parsing… Meldungsblöcke habe ich durch … ersetzt.

Ich werde mir den Quellcode dieses WE zur Gemüte führen und hoffe alles zu verstehen, was nötigt ist. Ich brauche ja eh ein Testobject, um mal mit Qt6 rumzuspielen 😉

Nachtrag:
Da die Neugierde größer war: Ich würde einen static MessageHandler vorschlagen, an Stelle der QMessageBox calls und die Nachrichten als Signal emitten. Als dirty workaround zum Testen habe ich die Funktion SyntaxCheck::checkParenthesis mal wie folgt abgeändert:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
//  …
    } else if ( ')' == c || '}' == c || ']' == c ) {
      if ( listParenthesis.isEmpty() ||
          !SyntaxCheck::checkParenthesisPair( listParenthesis.last(), c ) ) {
          QToolTip::showText( QPoint( 100,100 ), tr( "Inyoka syntax check" ) + '\n' +
                             tr( "Syntax error detected - closing parenthesis "
                                "without opening paraenthesis!" ) );
        return -1; //nCnt;
//  …

  if ( ! listParenthesis.isEmpty() ) {
    QToolTip::showText( QPoint( 100,100 ), tr( "Inyoka syntax check" ) + '\n' + tr( "Syntax error detected - open parenthesis!" ) );
    return -1; // listPos.last();
//  …

Das ist nun ein Tooltip an Stelle einer MessageBox, der einfach hardcoded aufpoppt und nach dem nächsten Prüfloop verschwindet. Sehr unschön, erlaubt aber das freie Tippen. Als Idee: Man könnte die Position des Chars speichern und per „find next error in document“-Funktion abrufen. Würde aber ein ziemliches Umschreiben bedeuten und ich habe noch nicht so viel vom Code gesehen, um den Aufwand abschätzen zu können.

Morgen mache ich da auf jeden Fall mal ein wenig weiter und gucke mal, ob ich was einbauen kann, was als Übergangslösung taugt. Qt6 geht eh (noch) nicht, weils noch kein WebKit dafür gibt 😉 Auf jeden Fall habe ich mich bisher recht gut im Code zurecht gefunden. Danke 😉

Shakesbier

(Themenstarter)
Avatar von Shakesbier

Anmeldungsdatum:
14. Juli 2008

Beiträge: 1165

Danke für die Rückmeldungen!

Bzgl. der Syntaxcheck-Meldungen: In der Statusleiste war es mir zu unscheinbar und einen separaten Fensterbereich für Fehlermeldungen halte ich für zu "viel" für diesen kleinen Editor - es ist ja keine IDE 😉 - bzw. stoppt die Syntaxprüfung sowieso beim ersten Fehler, daher macht ein Fehler-Sammelbereich wenig Sinn. Daher habe ich ähnlich wie in obigem Beispiel etwas mit QToolTip zusammengebaut. ChickenLipsRfun2eat: Wenn Du magst, hole Dir den neusten Code aus dem Masterbranch und sag Bescheid, wie Du es findest.

Da ich vorher noch nichts verstellt habe, wie ist der Standardwert im Code definiert? Könnte es daran liegen, dass der dann auf 0/1 steht, wenn der Wert noch nicht mittels QSettings (wenn du die nutzt) geschrieben wurde?

Wenn es noch keine Konfigurationsdatei gibt, wird der Standardwert (15 sek) aus dem Quellcode verwendet. Ich konnte bei einer frischen Instanz (keine Konfigdatei vorhanden) kein anders Verhalten feststellen.

ChickenLipsRfun2eat Team-Icon

Supporter
Avatar von ChickenLipsRfun2eat

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12070

Shakesbier schrieb:

…es ist ja keine IDE 😉

Kann ja noch werden 😉

daher habe ich ähnlich wie in obigem Beispiel etwas mit QToolTip zusammengebaut…

Hab es zwar nur kurz ausprobiert, aber es funktioniert, danke!

Wenn es noch keine Konfigurationsdatei gibt,…

Okay. Falls ich dahinter komme, melde ich mich.