Hallo,
ich habe in Netbeans jede Menge Code die ich irgendwie in den Griff bekommen muss.
Daher möchte ich nachfragen, ob jemand eine Möglichkeit kennt Methoden aus Klassen miteinander direkt in Netbeans zu vergleichen.
Aktuell mache ich das mit dem Tool Diff Files, muss aber dazu jedesmal den Code in zwei Textdateien kopieren um diese vergleichen zu können.
Ich würde mich freuen wenn das etwas unkomplizierter gehen würde.
Weil es sich um doppelten Code handelt.
Damals kannte ich kein Code-Management und hatte Netbeans Projektverzeichnisse als Zip-Dateien komprimiert.
Jetzt muss ich heraus finden welches die aktuellsten Dateien sind aus eine Datenmenge von 13GB.
Wenn es die Entwicklung eines Projektes ist, dann ist es evtl. am einfachsten, das in git einmal aufzubauen - dann kann man gezielt auch in der IDE Versionen vergleichen bzw. man sieht auch nur noch Unterschiede.
Man könnte darüber nachdenken, ein NetBeans-Plugin zu schreiben. Welches NB verwendest Du denn und wäre Dir geholfen, z. B. selektierten Text mit der Zwischenablage zu diffen?
Kannst mal den Anhang probieren, sollte ab NB 12.2 funktionieren, getestet habe ich es mit NB 15. Das nbm vorher entpacken, dann in NetBeans Tools -> Plugins -> Downloaded aufrufen, auf "Add Plugins..." klicken, das nbm auswählen und dann ggf. nochmal auf Install klicken.
Danach sollte Dir im Editor (Java-Datei!) per Rechtsklick der Befehl "Diff to Clipboard" zur Verfügung stehen. Wenn Du den aufrufst, wird der markierte Text mit dem Inhalt der Zwischenablage gedifft.
Das ganze Teil ist natürlich Quick & Dirty umgesetzt, also nicht zu viel erwarten
@mihe7
vielen Dank für das Plugin, es funktioniert.
Ich habe auf dem System Netbeans in der Version 13 und auch 15 Installiert.
Da ich im Vorfeld wusste, das mein Projekt sehr umfangreich sein wird, habe ich mir überlegt wie ich einen Dynamischen Überblick meiner Funktionen/Methoden realisieren kann.
Die einfachste Lösung war es über eine Kommentarzeile mit Schlüsselwörter (gpFunk = geplant, gpFunk = geprüft, pFunk = projektiert) zu realisieren und auch damit den bearbeitungszustand an zu geben. Jede Methode wird dann mit einer zusätzlichen Kommentarzeile belastet aber dafür erspare ich mir einen Verwaltungsaufwand in externen Listen die dann statisch wären.
Wenn ich alle Projekte in Nebeans öffne erhalte ich eine Liste aller Funktionen, und da kann ich ebenfalls doppelte sichten.
Mit einem Doppelklick öffne ich dann die entsprechende Funktion in einem Codefenster links und eine weitere im rechten Codefenster.
Ideal wäre es wenn in beiden Fenstern die Selektionen gdifft werden könnten.
Dann könnte man die Dateien schneller bearbeiten.
Du willst also in zwei Fenstern selektieren und dann den Diff haben? Da kann ich schon mal schauen, wie das funktioniert aber im Endeffekt sparst Du Dir damit ein Strg+C, oder?
Ach, Du meinst den Diff direkt im Editor anzeigen? Glaube nicht, dass das mal eben funktioniert. Was ich mir vorstellen könnte: den Diff im Ausgabebereich anzeigen. Dann wäre der Diff-Tab z. B. unterhalb und im Editorbereich hättest Du die beiden Dokumente nebeneinander.
Nein, nicht direkt in den Editor.
Schon in dem Diff-Fenster anzeigen lassen.
Ich habe zwei Fenster aus verschiedenen java Dateien nebeneinander.
Ich würde anstatt mit dem Clipboard zu vergleichen das andere Fenster mit den Selektierten Codezeilen vergleichen lassen wollen.
Aber mit dem Plugin welches du gemacht hast, hilft mir schon sehr viel weiter.
Jetzt wo ich es schon mehrfach angewandt habe kann ich dir sagen das eine weitere Optimierung nicht wirklich notwendig wäre.
Willst Du das evtl. auf GitHub teilen und bereit stellen? Nur als Idee (Nein, keine Angst. Du bekehrst mich schon nicht zu Netbeans. Nicht, dass Du da irgendwelche Befürchtungen hast ... )
Ja Konrad ich weis das die andere IDE nutzt
Wie sieht das den bei IJ aus mit vergleichen von Quellcode Schnipsel?
Ich habe habe da noch unzählige Dateien die kein Netbeansprojekt sind und könnte probieren wie leistungsfähig die andere Seite ist.
Ja Konrad ich weis das die andere IDE nutzt
Wie sieht das den bei IJ aus mit vergleichen von Quellcode Schnipsel?
Ich habe habe da noch unzählige Dateien die kein Netbeansprojekt sind und könnte probieren wie leistungsfähig die andere Seite ist.
Wenn Du da jetzt so ein Addon für Netbeans hast und Du ja auch mehr Erfahrung mit Netbeans gesammelt hast in der Vergangenheit wäre mein Tipp auf jeden Fall, jetzt bei Netbeans zu bleiben.
Ich wüsste jetzt nicht, dass IntelliJ wirklich gut zwei unterschiedliche Dateien bzw. deren Teile vergleichen könnte. Heisst nicht, dass es das nicht kann sondern nur, dass ich diese Funktionalität nicht kenne. Daher auch meine Idee mit der Versionierung - denn da kenne ich die Möglichkeiten, unterschiedliche Versionen miteinander zu vergleichen.
Daher war das nur ein kleiner dezenter Hinweis an @mihe7, dass ich mir sowas durchaus als GitHub Repository vorstellen könnte.
Willst Du das evtl. auf GitHub teilen und bereit stellen? Nur als Idee (Nein, keine Angst. Du bekehrst mich schon nicht zu Netbeans. Nicht, dass Du da irgendwelche Befürchtungen hast ... )
Kann ich machen, allerdings ist die Qualität halt unter aller Sau und ich weiß auch nicht, ob das intern alles so seine Richtigkeit hat - das war der Grund, warum ich das nicht gleich hochgeladen habe
Mich würde mal interessieren wie ihr eure eigenen Funktionen bzw. Codeschnipsel verwaltet?
Ich tendiere immer dazu so effizient zu arbeiten und wenn ich Funktionen immer öfter Benötige füge ich diese in meine eigene Bibliothek hinzu, die ich dann für meine Programme verwende.
Mich würde mal interessieren wie ihr eure eigenen Funktionen bzw. Codeschnipsel verwaltet?
Ich tendiere immer dazu so effizient zu arbeiten und wenn ich Funktionen immer öfter Benötige füge ich diese in meine eigene Bibliothek hinzu, die ich dann für meine Programme verwende.
Das ist bei mir nicht anders. Ich habe da auch eine Library, in der ich sowas vorhalte (incl. Unit Tests) und wenn ich da was brauche, dann kopiere ich mir diese (ohne Unit-Tests - das ist natürlich diskussionswürdig. Aber Änderungen nur mit Anpassung Unit-Tests, daher Änderungen nur im "Master".).
Ansonsten klaue ich mir oft auch direkt aus Projekten. Die Arbeit mit der Library kommt erst dann, wenn ich der Meinung bin, dass ich es brauche. So lange ich es nicht brauche, spare ich mir die extra Arbeit.
Mich würde mal interessieren wie ihr eure eigenen Funktionen bzw. Codeschnipsel verwaltet?
Ich tendiere immer dazu so effizient zu arbeiten und wenn ich Funktionen immer öfter Benötige füge ich diese in meine eigene Bibliothek hinzu, die ich dann für meine Programme verwende.
Also bevor ich mir eine Bibliothek mit Codeschnipseln anlege, verwalte, dokumentiere und durchsuche - habe ich das 5 mal neu geschrieben. Java, und auch alles Andere, entwickelt sich immer weiter. Was soll man mit den Codeschnipseln von gestern machen, außer unter veraltet ablegen. Moderne IDE's unterstützen so gut das man nur wenig tippen muss und dann gibt es da noch Github Copilot und Stackoverflow.
@KonradN
Hi,
da du ja in IJ so fit bist, frage ich mal wie gut es denn funktioniert doppelten Code zu finden und eliminieren.
Ich habe mal gelesen das IJ unschlagbar super sein soll was dies betrifft.
Funktioniert das Dateiübergreifend doppelte Methoden zu finden und zu eliminieren.
Ich würde mir dann von der IJ Ulimate die 30 Tage Version istallieren um das nach zu vollziehen.
Danke
@MiMa, Du könntest auch einfach z. B. PMD mit dem cpd-Goal laufen lassen: mvn pmd:cpd Und ja, die Code Analyse von IJ ist wirklich schön, da kann NB nicht mithalten.
Habe mir IJ mal installiert und schau mal wie es geht.
Seit dem Schlaganfall sind schon 9 Monate her, ich habe immer noch Konzentrationsprobleme und einige dinge sind mir einfach wieder entfallen.
Ich bin auch bereit zu IJ zu wechseln, muss es aber erstmal lernen und nutze Netbeans erstmal parallel dazu.