@@ -161,7 +161,7 @@ public boolean test(Sketch sketch) {
161
161
162
162
static volatile AbstractMonitor serialMonitor ;
163
163
static AbstractMonitor serialPlotter ;
164
-
164
+
165
165
final EditorHeader header ;
166
166
EditorStatus status ;
167
167
EditorConsole console ;
@@ -257,7 +257,7 @@ public void windowDeactivated(WindowEvent e) {
257
257
258
258
//PdeKeywords keywords = new PdeKeywords();
259
259
//sketchbook = new Sketchbook(this);
260
-
260
+
261
261
buildMenuBar ();
262
262
263
263
// For rev 0120, placing things inside a JPanel
@@ -305,7 +305,7 @@ public void windowDeactivated(WindowEvent e) {
305
305
scrollPane .setViewportBorder (BorderFactory .createEmptyBorder ());
306
306
scrollPane .setLineNumbersEnabled (PreferencesData .getBoolean ("editor.linenumbers" ));
307
307
scrollPane .setIconRowHeaderEnabled (false );
308
-
308
+
309
309
Gutter gutter = scrollPane .getGutter ();
310
310
gutter .setBookmarkingEnabled (false );
311
311
//gutter.setBookmarkIcon(CompletionsRenderer.getIcon(CompletionType.TEMPLATE));
@@ -714,8 +714,8 @@ private JMenu buildGitMenu() {
714
714
715
715
item = newJMenuItem (tr ("Commit" ), 'C' );
716
716
item .addActionListener (e -> {
717
- String commitMessage = JOptionPane .showInputDialog ("Commit message:" );
718
- gitManager .commit (sketch .getFolder (), commitMessage );
717
+ String commitMessage = JOptionPane .showInputDialog ("Commit message:" );
718
+ gitManager .commit (sketch .getFolder (), commitMessage );
719
719
});
720
720
gitMenu .add (item );
721
721
@@ -725,6 +725,33 @@ private JMenu buildGitMenu() {
725
725
);
726
726
gitMenu .add (item );
727
727
728
+ item = newJMenuItem (tr ("Diff" ), 'D' );
729
+ item .addActionListener (e -> {
730
+ gitManager .diff (sketch .getFolder ());
731
+ });
732
+ gitMenu .add (item );
733
+
734
+ item = newJMenuItem (tr ("Reset" ), 'R' );
735
+ item .addActionListener (e -> {
736
+ int i = JOptionPane .showConfirmDialog (
737
+ null ,
738
+ tr ("This is revert all changes.\n Are you sure?" ),
739
+ tr ("alert" ),
740
+ JOptionPane .OK_CANCEL_OPTION
741
+ );
742
+ if (i == JOptionPane .OK_OPTION ) {
743
+ gitManager .reset (sketch .getFolder (), sketch .getCurrentCode ().getFile ());
744
+ }
745
+ // Update the currently visible program with its code
746
+ try {
747
+ sketch .load (true );
748
+ textarea .setText (sketch .getCurrentCode ().getProgram ());
749
+ } catch (IOException e1 ) {
750
+ e1 .printStackTrace ();
751
+ }
752
+ });
753
+ gitMenu .add (item );
754
+
728
755
return gitMenu ;
729
756
}
730
757
@@ -1630,7 +1657,7 @@ public void actionPerformed(ActionEvent e) {
1630
1657
}
1631
1658
1632
1659
protected void updateUndoState () {
1633
-
1660
+
1634
1661
UndoManager undo = textarea .getUndoManager ();
1635
1662
1636
1663
if (undo .canUndo ()) {
@@ -1666,7 +1693,7 @@ public void actionPerformed(ActionEvent e) {
1666
1693
1667
1694
protected void updateRedoState () {
1668
1695
UndoManager undo = textarea .getUndoManager ();
1669
-
1696
+
1670
1697
if (undo .canRedo ()) {
1671
1698
redoItem .setEnabled (true );
1672
1699
redoItem .setText (undo .getRedoPresentationName ());
@@ -1829,25 +1856,25 @@ protected void setCode(final SketchCodeDocument codeDoc) {
1829
1856
}
1830
1857
// set up this guy's own undo manager
1831
1858
// code.undo = new UndoManager();
1832
-
1859
+
1833
1860
codeDoc .setDocument (document );
1834
1861
}
1835
1862
1836
1863
if (codeDoc .getUndo () == null ){
1837
1864
codeDoc .setUndo (new LastUndoableEditAwareUndoManager (textarea , this ));
1838
1865
document .addUndoableEditListener (codeDoc .getUndo ());
1839
1866
}
1840
-
1867
+
1841
1868
// Update the document object that's in use
1842
1869
textarea .switchDocument (document , codeDoc .getUndo ());
1843
-
1870
+
1844
1871
// HACK multiple tabs: for update Listeners of Gutter, forcin call: Gutter.setTextArea(RTextArea)
1845
1872
// BUG: https://github.com/bobbylight/RSyntaxTextArea/issues/84
1846
1873
scrollPane .setViewportView (textarea );
1847
-
1874
+
1848
1875
textarea .select (codeDoc .getSelectionStart (), codeDoc .getSelectionStop ());
1849
1876
textarea .requestFocus (); // get the caret blinking
1850
-
1877
+
1851
1878
final int position = codeDoc .getScrollPosition ();
1852
1879
1853
1880
// invokeLater: Expect the document to be rendered correctly to set the new position
@@ -2594,7 +2621,7 @@ public void handleSerial() {
2594
2621
return ;
2595
2622
}
2596
2623
}
2597
-
2624
+
2598
2625
if (serialMonitor != null ) {
2599
2626
// The serial monitor already exists
2600
2627
@@ -2683,7 +2710,7 @@ public void handleSerial() {
2683
2710
} while (serialMonitor .requiresAuthorization () && !success );
2684
2711
2685
2712
}
2686
-
2713
+
2687
2714
public void handlePlotter () {
2688
2715
if (serialMonitor != null ) {
2689
2716
if (serialMonitor .isClosed ()) {
@@ -2693,7 +2720,7 @@ public void handlePlotter() {
2693
2720
return ;
2694
2721
}
2695
2722
}
2696
-
2723
+
2697
2724
if (serialPlotter != null ) {
2698
2725
// The serial plotter already exists
2699
2726
@@ -3014,7 +3041,7 @@ private void configurePopupMenu(final SketchTextArea textarea){
3014
3041
item .setName ("menuToolsAutoFormat" );
3015
3042
3016
3043
menu .add (item );
3017
-
3044
+
3018
3045
item = newJMenuItem (tr ("Comment/Uncomment" ), '/' );
3019
3046
item .addActionListener (new ActionListener () {
3020
3047
public void actionPerformed (ActionEvent e ) {
@@ -3058,23 +3085,23 @@ public void actionPerformed(ActionEvent e) {
3058
3085
3059
3086
final JMenuItem referenceItem = new JMenuItem (tr ("Find in Reference" ));
3060
3087
referenceItem .addActionListener (this ::handleFindReference );
3061
- menu .add (referenceItem );
3088
+ menu .add (referenceItem );
3062
3089
3063
3090
final JMenuItem openURLItem = new JMenuItem (tr ("Open URL" ));
3064
3091
openURLItem .addActionListener (new ActionListener () {
3065
3092
public void actionPerformed (ActionEvent e ) {
3066
3093
Base .openURL (e .getActionCommand ());
3067
3094
}
3068
3095
});
3069
- menu .add (openURLItem );
3070
-
3096
+ menu .add (openURLItem );
3097
+
3071
3098
menu .addPopupMenuListener (new PopupMenuListener () {
3072
3099
3073
3100
@ Override
3074
3101
public void popupMenuWillBecomeVisible (PopupMenuEvent e ) {
3075
3102
String referenceFile = base .getPdeKeywords ().getReference (getCurrentKeyword ());
3076
3103
referenceItem .setEnabled (referenceFile != null );
3077
-
3104
+
3078
3105
int offset = textarea .getCaretPosition ();
3079
3106
org .fife .ui .rsyntaxtextarea .Token token = RSyntaxUtilities .getTokenAtOffset (textarea , offset );
3080
3107
if (token != null && token .isHyperlink ()) {
@@ -3107,4 +3134,6 @@ public void goToLine(int line) {
3107
3134
}
3108
3135
}
3109
3136
3137
+
3138
+
3110
3139
}
0 commit comments