File tree Expand file tree Collapse file tree 4 files changed +39
-2
lines changed
Expand file tree Collapse file tree 4 files changed +39
-2
lines changed Original file line number Diff line number Diff line change @@ -117,7 +117,7 @@ public class Base {
117117 private List <JMenu > boardsCustomMenus ;
118118 private List <JMenuItem > programmerMenus ;
119119
120- private final PdeKeywords pdeKeywords ;
120+ private PdeKeywords pdeKeywords ;
121121 private final List <JMenuItem > recentSketchesMenuItems ;
122122
123123 static public void main (String args []) throws Exception {
@@ -1250,9 +1250,25 @@ public void rebuildExamplesMenu(JMenu menu) {
12501250 }
12511251 }
12521252
1253+ private static String priorPlatformFolder ;
1254+
12531255 public void onBoardOrPortChange () {
12541256 BaseNoGui .onBoardOrPortChange ();
12551257
1258+ // reload keywords when package/platform changes
1259+ TargetPlatform tp = BaseNoGui .getTargetPlatform ();
1260+ if (tp != null ) {
1261+ String platformFolder = tp .getFolder ().getAbsolutePath ();
1262+ if (priorPlatformFolder == null || !priorPlatformFolder .equals (platformFolder )) {
1263+ pdeKeywords = new PdeKeywords ();
1264+ pdeKeywords .reload ();
1265+ priorPlatformFolder = platformFolder ;
1266+ for (Editor editor : editors ) {
1267+ editor .updateKeywords (pdeKeywords );
1268+ }
1269+ }
1270+ }
1271+
12561272 // Update editors status bar
12571273 for (Editor editor : editors ) {
12581274 editor .onBoardOrPortChange ();
Original file line number Diff line number Diff line change 4040import processing .app .helpers .OSUtils ;
4141import processing .app .helpers .PreferencesMapException ;
4242import processing .app .legacy .PApplet ;
43+ import processing .app .syntax .PdeKeywords ;
4344import processing .app .syntax .ArduinoTokenMakerFactory ;
4445import processing .app .syntax .SketchTextArea ;
4546import processing .app .tools .DiscourseFormat ;
@@ -1060,6 +1061,15 @@ public void caretUpdate(CaretEvent e) {
10601061 return textArea ;
10611062 }
10621063
1064+ public void updateKeywords (PdeKeywords keywords ) {
1065+ // update GUI for "Find In Reference"
1066+ textarea .setKeywords (keywords );
1067+ // update document for syntax highlighting
1068+ RSyntaxDocument document = (RSyntaxDocument ) textarea .getDocument ();
1069+ document .setTokenMakerFactory (new ArduinoTokenMakerFactory (keywords ));
1070+ document .setSyntaxStyle (RSyntaxDocument .SYNTAX_STYLE_CPLUSPLUS );
1071+ }
1072+
10631073 private JMenuItem createToolMenuItem (String className ) {
10641074 try {
10651075 Class <?> toolClass = Class .forName (className );
Original file line number Diff line number Diff line change 3131import processing .app .Base ;
3232import processing .app .BaseNoGui ;
3333import processing .app .legacy .PApplet ;
34+ import processing .app .debug .TargetPlatform ;
3435
3536import java .io .BufferedReader ;
3637import java .io .File ;
@@ -84,6 +85,11 @@ public PdeKeywords() {
8485 public void reload () {
8586 try {
8687 parseKeywordsTxt (new File (BaseNoGui .getContentFile ("lib" ), "keywords.txt" ));
88+ TargetPlatform tp = BaseNoGui .getTargetPlatform ();
89+ if (tp != null ) {
90+ File platformKeywords = new File (tp .getFolder (), "keywords.txt" );
91+ if (platformKeywords .exists ()) parseKeywordsTxt (platformKeywords );
92+ }
8793 for (ContributedLibrary lib : Base .getLibraries ()) {
8894 File keywords = new File (lib .getInstalledFolder (), "keywords.txt" );
8995 if (keywords .exists ()) {
Original file line number Diff line number Diff line change @@ -74,13 +74,18 @@ public class SketchTextArea extends RSyntaxTextArea {
7474
7575 private EditorListener editorListener ;
7676
77- private final PdeKeywords pdeKeywords ;
77+ private PdeKeywords pdeKeywords ;
7878
7979 public SketchTextArea (PdeKeywords pdeKeywords ) throws IOException {
8080 this .pdeKeywords = pdeKeywords ;
8181 installFeatures ();
8282 }
8383
84+ public void setKeywords (PdeKeywords keywords ) {
85+ pdeKeywords = keywords ;
86+ setLinkGenerator (new DocLinkGenerator (pdeKeywords ));
87+ }
88+
8489 private void installFeatures () throws IOException {
8590 setTheme (PreferencesData .get ("editor.syntax_theme" , "default" ));
8691
You can’t perform that action at this time.
0 commit comments