Verbesserungen im Source Code in GitHub einbringen

Danke, ansonsten ist alles auf Standard :wink:

Bei STRG+Shift+ F kommt genau der Code aus dem Screenshot raus. Aber dann solls so sein :smiling_face_with_tear:

Normalerweise ja, aber in einer Characterclass nicht. (zumindest bei PCRE, keine Ahnung was PP nutzt)

Darum ging es wohl.

1 Like

Danke!

Jein.

  • Außerhalb von Zeichenklassen: ja (d.h. 1\.2 matched nur “1.2”).
  • Innerhalb von Zeichenklassen: nein (d.h. 1[.]2 matched auch nur “1.2”, genau wie 1[\.]2). Siehe regex101.com:

(Vgl. auch Java RegEx meta character (.) and ordinary dot? - Stack Overflow und die folgende Antwort)
Ähnliches gilt ĂŒbrigens fĂŒr [\w]{3}: \w ist schon eine Zeichenklasse (nĂ€mlich alle “Wortzeichen”), man braucht das nicht noch einmal in eine Zeichenklasse zu packen. Anders gesagt: \w{3} ist genau dasselbe wie [\w]{3}.

Bildschirmfoto 2024-01-17 um 16.49.22

Die REs sind selbstverstĂ€ndlich nicht falsch, nur etwas ausfĂŒhrlicher als nötig. Darauf wollte ich hinweisen (denn REs sind ja ohnehin schon nicht lesefreundlich, deshalb mE lieber so kurz wie möglich schreiben).

Ja, ich weiß. RE waren praktisch meine Muttermilch.

2 Likes

Schaden tut es aber auch nicht :wink: Sourcecodeoptimierung (da zĂ€hle ich den RE jetzt einfach mal dazu) ist nicht so mein Ding, genauso wie ich bei Operationen gerne zu viele als zu wenige Klammern setze. Von daher sollte IMHO der Backslash bleiben, u.a. um anderen Sourcecodeafficionados, die nicht RE-sattelfest sind - zu zeigen, dass man hier wirklich einen Punkt meint und nicht “beliebiges Zeichen”.

2 Likes

Bei Sourcecode können Klammern die Lesbarkeit verbessern. Dass Backslashes in RegulĂ€ren AusdrĂŒcken die Lesbarkeit verbessern, bezweifle ich. Zumal es ja im Java-Code immer zwei sein mĂŒssen – also hier [\\.] statt [.].

Und was spricht fĂŒr [\\w] statt \\w? So was findet sich hĂ€ufig im Code, z.B. hier
Nr\\.[\\s]{1,}[\\d+]\\/(?<year>[\\d]{4}) (new PDF Importer for J&T Direktbank by ZfT2 · Pull Request #3748 · portfolio-performance/portfolio · GitHub). Das ließe sich Ă€quivalent schreiben als
Nr\\.\\s+\\d+\\/(?<year>\\d{4})
Ein anderes Beispiel dafĂŒr:
[\\d]{2}\\.[\\d]{2}\\.[\\d]{4} (aus Modify ING Diba PDF-Importer to support new transaction by Nirus2000 · Pull Request #3749 · portfolio-performance/portfolio · GitHub)
Das ist dasselbe wie
\\d{2}\\.\\d{2}\\.\\d{4}
nur lÀnger und schwieriger zu erfassen.

Ich sehe nicht, dass die ĂŒberflĂŒssigen eckigen Klammern etwas fĂŒr die Lesbarkeit tun (und auch nicht, warum man im ersten Fall inkonsistent {1,} statt + schreibt).

Aber ich muss den Code ja auch nicht stÀndig lesen. Also nicht meine Baustelle, sondern nur meine VorschlÀge.

Das kann ich gut verstehen. Man sollte aber gerade bei RE genau das schreiben, was man meint und will. Nicht mehr (und erst recht nicht weniger :wink: )
In erster Linie, um die Lesbarkeit zu verbessern (dazu gibt es ja offenbar unterschiedliche Auffassungen). Aber auch, um blöde Bugs zu vermeiden, etwa die Backtracking-Katastrophe, die seinerzeit Cloudflare böse ausbremste.

2 Likes

Hallo,

Im Master Ich habe zwei JUNIT-Fehler, bei testLimitPriceConverter_deCH
und testLimitPriceConverter_deDE in portfolio.model.AttributeTypeTest, aber ich denke, das sind Fehlalarme. Dennoch kann es bedeuten, dass etwas im Test korrigiert werden sollte, aber ich bin mir nicht sicher, was. Ich denke, der Expected ist falsch.

Zweiter Punkt: Wenn ich aus Eclipse starte, öffnet sich PP mit der Spracheinstellung Automatisch. Wenn ich sie Ă€ndere, speichere, schließe und wieder öffne, ist Automatisch wieder eingestellt. Das bedeutet, dass PP von Eclipse aus nur auf Französisch geöffnet werden kann, was ein wenig unpraktisch ist, wenn ich einen Screenshot der Korrektur/des kleinen Features zeigen möchte.

Sorry, wenn dies nicht der richtige Thread ist, ich dachte nicht, dass es ein Github Issue wert war.

Übersetzt mit DeepL.com (kostenlose Version)

Ich vermute das liegt auch an der Lokalisierung. Der Test prĂŒft die lokalisierte Fehlermeldung. Das Problem scheint daran zu liegen, dass ein Text mit Apostrophe durch das MessageFormat geschickt wird - das verĂ€ndert den Text. Das habe ich behoben. Just FYI fĂŒr @kimmerin

WĂ€hrend der Entwicklung, kannst Du die Sprache ĂŒber den Parameter -nl einstellen. (Ich meine die werden von Eclipse ansonsten mit den Parametern Deines Eclipse Workspace vorbelegt).

Bildschirmfoto 2024-05-04 um 06.48.52

Hallo Andreas,
Danke, beide Themen sind behoben!
Was die Sprache angeht, war ich ĂŒberrascht, weil ich denke, dass sich dieses “automatische” Verhalten erst kĂŒrzlich geĂ€ndert hat. Ich war in der Lage, die Sprache von einem Eclipsed-gestarteten PP vorher zu wechseln.

Die Message in der Exception prĂŒfe ich, um sicherzugehen, dass im Test auch wirklich die Exception geworfen wird, die ich an der Stelle erwarte (hatte ich schon mal, dass der Test einen Daumen nach oben zeigte, obwohl eigentlich was schiefgegangen ist, beide FĂ€lle aber die gleiche Art Exception erzeugten).

Da die Exceptionmessages schon fertig lokalisiert geworfen werden, muss man gegen diese testen. Mir ist es nicht gelungen - sei es durch @Before oder @BeforeClass ein fixes Locale zu setzen, das dann beim Laden der Sprachdateien berĂŒcksichtigt wird; immer war das schon an der Stelle durch und in meinem Fall die deutschen Meldungen schon geladen.

Wo wĂ€re das? Ich habe da Zweifel, da ich ehrlich gesagt nicht wĂŒsste, wo man ein Default-Locale im Workspace einstellen könnte (Encoding schon). FĂŒr mich sieht das so aus, als ob die Spracheinstellungen des OS an die Applikation weitergereicht werden, da PP bei mir aus Eclipse heraus mit deutschem Locale hochfĂ€hrt (und wie oben beschrieben die Unittests auch deutschsprachig sind), wĂ€hrend Eclipse selbst hier mit englischer Lokalisierung lĂ€uft.

Da hast Du vermutlich recht. Es wird einfach die Locale von dem Eclipse IDE Prozess and die Tests weitergegeben.

Kann es sein, daß das Launch Configuration DSL Plug-in nicht ganz so optional ist? Die Anleitung sagt zwar:

Optionally, install via the Eclipse Marketplace

Aber ich hatte das Plug-in aus Versehen nicht installiert und hatte dann einige Warnings und habe auch keine Run Configurations gehabt. Erst nach Installation und Neustart konnte ich PP per Run Configuration starten und bin runter auf zwei Warnings.

Hi @flaix,

ich vermute, das bezieht sich auf die Quelle und nicht auf die Plug-ins.

Viele GrĂŒĂŸe

Hallo,

wie genau macht ihr die Übersetzung von z. B. kyrillischen Zeichen ins Unicode Format. FĂŒr einzelne Zeichen ist das manuell schnell gemacht, fĂŒr mehr wirds schnell unbequem und fehleranfĂ€llig.

Und in dem Zusammenhang eine Frage zu den Spracheinstellungen.

Ich kenne den Language Parameter: u.A. -nl de_DE, wo genau muss ich diesen in der launches.lc angeben?

Danke und viele GrĂŒĂŸe

https://itpro.cz/juniconv/

1 Like

Merci @Rafa, sweets my day!

@chirlu

Weißt du vielleicht wie ich PP aus eclipse heraus in anderer Sprache starten kann? Die Sprache wird im Bootloader explizit mit/ausgegeben.

Danke.

Viele GrĂŒĂŸe

Siehe bitte einmal in der launch configuration → VM arguments nach, dort sollte bereits ein Parameter alla -nl de_DE zu finden sein.

Hi @Rafa,

leider nicht. VM und Programm sind beide leer. Ich hab auch schon versucht, sie dort anzulegen. Jeweils ohne Erfolg.

Der Bootloader bleibt unverÀndert.

Danke und viele GrĂŒĂŸe

Dann halt nochmal hier :wink: In portfolio-app/eclipse die Datei launches.lc öffnen und dort einen vm-argument-Eintrag hinzufĂŒgen (bzw. mehrere), mit denen man das Locale einstellt. Also aus der HĂŒfte geschossen

vm-argument "-Duser.country=DE"
vm-argument "-Duser.language=tlh"

Das wĂŒrde das Land auf Deutschland und die Sprache auf Klingonisch setzen. Ob’s klappt, mĂŒsstest du aber selbst probieren.

1 Like

Hallo @Sn1kk3r5

Die AufĂŒhrungskonfiguration Ă€ndern:

Deutsch

-Duser.country=de

Englisch

-Duser.country=en




Gruß
Alex

1 Like