Hallo, bei mir tritt in der Nutzung von VS Code zur Java-Programmierung folgendes Problem auf:
Mehrzeilige Methoden-Verkettungen werden von der IDE nicht erkannt und einzelne Umbrüche als End-of-the-line interpretiert. Das führt dazu, dass ich beispielsweise Streams nicht über mehrere Zeilen hinweg anlegen kann, sondern alles in einer einzelnen Zeile deklarieren muss.
Kurz zu meiner Arbeitsumgebung: Ich nutze Windows 11, VS Code und öffne meine Java-Dateien in der Jshell. In anderen IDE, die ich für Projektentwicklung nutze (z.B. Intellij) tritt das Problem nicht auf. Allerdings benötige ich VS Studio als einfachen Texteditor, da so von der Uni gefordert (wir arbeiten im Rahmen des Programmieren-Moduls ausschließlich in der JShell und ohne IDE-Werkzeuge).
Nun habe ich schon den Tipp bekommen, dass es an den Zeilenumbruch-Einstellungen von VS Code unter Windows (default: CRLF) liegen könnte, aber auch nach Umstellen auf LF, dem Verwenden unterschiedlicher Terminals (PowerShell, WSL) konnte ich das Problem leider nicht beheben.
Ich bin durch die intensive Arbeit mit der JShell im Rahmen der Uni nun schon öfters auf JShell-spezifische Probleme gestoßen
Über ChatGPT habe ich noch den Tipp erhalten, mal
auszuführen, um zu prüfen, ob LF oder CRLF existiert. Leider wird hier gar kein passender String gefunden, was ja schon mal darauf hindeutet, dass die Datei wirklich nicht in LF formartiert ist. Es ist mir aber ein Rätsel, wie ich das ändern könnte, wenn für den Editor in VS Code explizit LF eingestellt wurde und das für neu angelegte Dateien
Ich möchte auch mal zeigen, in welcher Form die Umbruch-Zeichen vorhanden sind:


Wenn meine Recherchen korrekt sind, könnte das darauf hindeuten, das LF zwar korrekt aktiviert ist, die Zeilenumbrüche aber erst gar nicht korrekt gespeichert werden (da kein \n). Fragt sich nur, was das ansonsten für Zeichen sein sollen (oder ob die Zeichen in der Darstellung doch schon escaped werden).
Habt ihr Ideen, wo die Ursache liegt und wie ich das beheben kann? Vor allem so, dass ich künftig nicht jede Datei manuell in das korrekte Format formatieren muss, sondern es per default angewendet wird.
Mehrzeilige Methoden-Verkettungen werden von der IDE nicht erkannt und einzelne Umbrüche als End-of-the-line interpretiert. Das führt dazu, dass ich beispielsweise Streams nicht über mehrere Zeilen hinweg anlegen kann, sondern alles in einer einzelnen Zeile deklarieren muss.
Kurz zu meiner Arbeitsumgebung: Ich nutze Windows 11, VS Code und öffne meine Java-Dateien in der Jshell. In anderen IDE, die ich für Projektentwicklung nutze (z.B. Intellij) tritt das Problem nicht auf. Allerdings benötige ich VS Studio als einfachen Texteditor, da so von der Uni gefordert (wir arbeiten im Rahmen des Programmieren-Moduls ausschließlich in der JShell und ohne IDE-Werkzeuge).
Nun habe ich schon den Tipp bekommen, dass es an den Zeilenumbruch-Einstellungen von VS Code unter Windows (default: CRLF) liegen könnte, aber auch nach Umstellen auf LF, dem Verwenden unterschiedlicher Terminals (PowerShell, WSL) konnte ich das Problem leider nicht beheben.
Ich bin durch die intensive Arbeit mit der JShell im Rahmen der Uni nun schon öfters auf JShell-spezifische Probleme gestoßen
Java:
List.of("Apfel", "Ankunft", "brachial", "altern", "THM").stream()
.map(String::toUpperCase)
.filter(s -> s.startsWith("A"))
.count();
Code:
jshell> /o nightly_business.java
| Fehler:
| Unzulässiger Ausdrucksbeginn
| .map(String::toUpperCase)
| ^
Über ChatGPT habe ich noch den Tipp erhalten, mal
Code:
Get-Content datei.java | Format-Hex | Select-String "0A|0D"
auszuführen, um zu prüfen, ob LF oder CRLF existiert. Leider wird hier gar kein passender String gefunden, was ja schon mal darauf hindeutet, dass die Datei wirklich nicht in LF formartiert ist. Es ist mir aber ein Rätsel, wie ich das ändern könnte, wenn für den Editor in VS Code explizit LF eingestellt wurde und das für neu angelegte Dateien
Ich möchte auch mal zeigen, in welcher Form die Umbruch-Zeichen vorhanden sind:


Wenn meine Recherchen korrekt sind, könnte das darauf hindeuten, das LF zwar korrekt aktiviert ist, die Zeilenumbrüche aber erst gar nicht korrekt gespeichert werden (da kein \n). Fragt sich nur, was das ansonsten für Zeichen sein sollen (oder ob die Zeichen in der Darstellung doch schon escaped werden).
Habt ihr Ideen, wo die Ursache liegt und wie ich das beheben kann? Vor allem so, dass ich künftig nicht jede Datei manuell in das korrekte Format formatieren muss, sondern es per default angewendet wird.