From ef06746e5775bf98aabea73f1bc74c1503c1ba46 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Tue, 28 Jan 2020 19:35:15 -0500 Subject: [PATCH] move the one function from SyntaxUtil into SourceUtils, drop its "s" --- .../mode/java/CompletionGenerator.java | 8 +-- .../processing/mode/java/ErrorChecker.java | 2 +- .../processing/mode/java/ImportStatement.java | 2 +- java/src/processing/mode/java/JavaEditor.java | 2 +- .../processing/mode/java/PreprocService.java | 13 +++-- .../{SourceUtils.java => SourceUtil.java} | 28 +++++++++- .../java/preproc/PdeParseTreeListener.java | 3 +- .../mode/java/preproc/SyntaxUtil.java | 53 ------------------- .../preproc/issue/IssueLocationFactory.java | 6 +-- .../PreprocessIssueMessageSimplifier.java | 8 +-- 10 files changed, 49 insertions(+), 76 deletions(-) rename java/src/processing/mode/java/{SourceUtils.java => SourceUtil.java} (94%) delete mode 100644 java/src/processing/mode/java/preproc/SyntaxUtil.java diff --git a/java/src/processing/mode/java/CompletionGenerator.java b/java/src/processing/mode/java/CompletionGenerator.java index d385e348d..419da2845 100644 --- a/java/src/processing/mode/java/CompletionGenerator.java +++ b/java/src/processing/mode/java/CompletionGenerator.java @@ -1740,10 +1740,10 @@ public class CompletionGenerator { // If the parsed code contains pde enhancements, take 'em out. // TODO: test this TextTransform transform = new TextTransform(pdePhrase); - transform.addAll(SourceUtils.replaceTypeConstructors(pdePhrase)); - transform.addAll(SourceUtils.replaceHexLiterals(pdePhrase)); - transform.addAll(SourceUtils.replaceColorRegex(pdePhrase)); - transform.addAll(SourceUtils.fixFloatsRegex(pdePhrase)); + transform.addAll(SourceUtil.replaceTypeConstructors(pdePhrase)); + transform.addAll(SourceUtil.replaceHexLiterals(pdePhrase)); + transform.addAll(SourceUtil.replaceColorRegex(pdePhrase)); + transform.addAll(SourceUtil.fixFloatsRegex(pdePhrase)); String phrase = transform.apply(); //After typing 'arg.' all members of arg type are to be listed. This one is a flag for it diff --git a/java/src/processing/mode/java/ErrorChecker.java b/java/src/processing/mode/java/ErrorChecker.java index d50b5685e..8cbcc9687 100644 --- a/java/src/processing/mode/java/ErrorChecker.java +++ b/java/src/processing/mode/java/ErrorChecker.java @@ -266,7 +266,7 @@ class ErrorChecker { int tabStartOffset = ps.tabStartOffsets[tabIndex]; int tabEndOffset = (tabIndex < ps.tabStartOffsets.length - 1) ? ps.tabStartOffsets[tabIndex + 1] : ps.scrubbedPdeCode.length(); - int[] braceResult = SourceUtils.checkForMissingBraces(ps.scrubbedPdeCode, tabStartOffset, tabEndOffset); + int[] braceResult = SourceUtil.checkForMissingBraces(ps.scrubbedPdeCode, tabStartOffset, tabEndOffset); if (braceResult[0] != 0) { JavaProblem problem = new JavaProblem(braceResult[0] < 0 diff --git a/java/src/processing/mode/java/ImportStatement.java b/java/src/processing/mode/java/ImportStatement.java index 62deb6cc5..f5438bf33 100644 --- a/java/src/processing/mode/java/ImportStatement.java +++ b/java/src/processing/mode/java/ImportStatement.java @@ -86,7 +86,7 @@ public class ImportStatement { * @return Newly parsed import statement information. */ public static ImportStatement parse(String importString) { - Matcher matcher = SourceUtils.IMPORT_REGEX_NO_KEYWORD.matcher(importString); + Matcher matcher = SourceUtil.IMPORT_REGEX_NO_KEYWORD.matcher(importString); if (!matcher.find()) return null; return parse(matcher.toMatchResult()); diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index 10dc13ca2..d9148fb03 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -1649,7 +1649,7 @@ public class JavaEditor extends Editor { if (sc.isExtension("pde")) { String tabCode = sc.getProgram(); - List imports = SourceUtils.parseProgramImports(tabCode); + List imports = SourceUtil.parseProgramImports(tabCode); if (!imports.isEmpty()) { ArrayList importHeaders = new ArrayList<>(); diff --git a/java/src/processing/mode/java/PreprocService.java b/java/src/processing/mode/java/PreprocService.java index 91328878b..1a1720d55 100644 --- a/java/src/processing/mode/java/PreprocService.java +++ b/java/src/processing/mode/java/PreprocService.java @@ -54,7 +54,6 @@ import processing.app.Util; import processing.mode.java.TextTransform.OffsetMapper; import processing.mode.java.preproc.PdePreprocessor; import processing.mode.java.preproc.PreprocessorResult; -import processing.mode.java.preproc.SyntaxUtil; import processing.data.IntList; import processing.data.StringList; @@ -332,8 +331,7 @@ public class PreprocService { * @return The newly generated preprocessed sketch. */ private PreprocSketch preprocessSketch(PreprocSketch prevResult) { - - boolean firstCheck = prevResult == null; + boolean firstCheck = (prevResult == null); PreprocSketch.Builder result = new PreprocSketch.Builder(); @@ -368,7 +366,7 @@ public class PreprocService { newPiece.append('\n'); String newPieceBuilt = newPiece.toString(); - numLines += SyntaxUtil.getCount(newPieceBuilt, "\n"); + numLines += SourceUtil.getCount(newPieceBuilt, "\n"); workBuffer.append(newPieceBuilt); } } @@ -380,7 +378,8 @@ public class PreprocService { boolean reloadLibraries = firstCheck || librariesChanged.getAndSet(false); // Core and default imports - PdePreprocessor preProcessor = editor.createPreprocessor(editor.getSketch().getName()); + PdePreprocessor preProcessor = + editor.createPreprocessor(editor.getSketch().getName()); if (coreAndDefaultImports == null) { coreAndDefaultImports = buildCoreAndDefaultImports(preProcessor); } @@ -395,7 +394,7 @@ public class PreprocService { // TODO: convert unicode escapes to chars - SourceUtils.scrubCommentsAndStrings(workBuffer); + SourceUtil.scrubCommentsAndStrings(workBuffer); result.scrubbedPdeCode = workBuffer.toString(); @@ -474,7 +473,7 @@ public class PreprocService { // Prepare advanced transforms which operate on AST TextTransform toCompilable = new TextTransform(parsableStage); - toCompilable.addAll(SourceUtils.preprocessAST(parsableCU)); + toCompilable.addAll(SourceUtil.preprocessAST(parsableCU)); // Transform code to compilable state String compilableStage = toCompilable.apply(); diff --git a/java/src/processing/mode/java/SourceUtils.java b/java/src/processing/mode/java/SourceUtil.java similarity index 94% rename from java/src/processing/mode/java/SourceUtils.java rename to java/src/processing/mode/java/SourceUtil.java index 6fc48451b..5570455ec 100644 --- a/java/src/processing/mode/java/SourceUtils.java +++ b/java/src/processing/mode/java/SourceUtil.java @@ -15,7 +15,7 @@ import java.util.regex.Pattern; import processing.mode.java.TextTransform.Edit; import processing.mode.java.preproc.PdePreprocessor; -public class SourceUtils { +public class SourceUtil { public static final Pattern IMPORT_REGEX = @@ -368,4 +368,30 @@ public class SourceUtils { } return new int[] {depth, lineNumber - 1, end - lineStart - 2, end - start - 2}; } + + + /** + * Determine how many times a string appears in another. + * + * @param body The string in which occurrences should be counted. + * @param search The string to look for. + * @return The number of times search appears in body. + */ + public static int getCount(String body, String search) { + int count = 0; + if (search.length() == 1) { + for (int i = 0; i < body.length(); i++) { + if (body.charAt(i) == search.charAt(0)) { + count++; + } + } + } else { + for (int i = 0; i < body.length(); i++) { + if (body.substring(i).startsWith(search)) { + count++; + } + } + } + return count; + } } diff --git a/java/src/processing/mode/java/preproc/PdeParseTreeListener.java b/java/src/processing/mode/java/preproc/PdeParseTreeListener.java index dd9ae8d7d..74abacb3b 100644 --- a/java/src/processing/mode/java/preproc/PdeParseTreeListener.java +++ b/java/src/processing/mode/java/preproc/PdeParseTreeListener.java @@ -32,6 +32,7 @@ import org.antlr.v4.runtime.tree.ParseTree; import processing.app.Preferences; import processing.core.PApplet; import processing.mode.java.ImportStatement; +import processing.mode.java.SourceUtil; import processing.mode.java.TextTransform; import processing.mode.java.preproc.PdePreprocessor.Mode; import processing.mode.java.preproc.issue.PdePreprocessIssue; @@ -1218,7 +1219,7 @@ public class PdeParseTreeListener extends ProcessingBaseListener { )); } - rewriteResultBuilder.addOffset(SyntaxUtil.getCount(newCode, "\n")); + rewriteResultBuilder.addOffset(SourceUtil.getCount(newCode, "\n")); } } diff --git a/java/src/processing/mode/java/preproc/SyntaxUtil.java b/java/src/processing/mode/java/preproc/SyntaxUtil.java deleted file mode 100644 index 4c41c8ebd..000000000 --- a/java/src/processing/mode/java/preproc/SyntaxUtil.java +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */ - -/* -Part of the Processing project - http://processing.org - -Copyright (c) 2012-19 The Processing Foundation - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License version 2 -as published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software Foundation, -Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -package processing.mode.java.preproc; - -/** - * Convenience functions useful for working on syntax checking for source. - */ -public class SyntaxUtil { - - /** - * Determine how many times a string appears in another. - * - * @param body The string in which occurrences should be counted. - * @param search The string to look for. - * @return The number of times search appears in body. - */ - public static int getCount(String body, String search) { - int count = 0; - if (search.length() == 1) { - for (int i = 0; i < body.length(); i++) { - if (body.charAt(i) == search.charAt(0)) { - count++; - } - } - } else { - for (int i = 0; i < body.length(); i++) { - if (body.substring(i).startsWith(search)) { - count++; - } - } - } - return count; - } -} diff --git a/java/src/processing/mode/java/preproc/issue/IssueLocationFactory.java b/java/src/processing/mode/java/preproc/issue/IssueLocationFactory.java index cd593b334..9780d3e2c 100644 --- a/java/src/processing/mode/java/preproc/issue/IssueLocationFactory.java +++ b/java/src/processing/mode/java/preproc/issue/IssueLocationFactory.java @@ -23,7 +23,7 @@ package processing.mode.java.preproc.issue; import java.util.Optional; -import processing.mode.java.preproc.SyntaxUtil; +import processing.mode.java.SourceUtil; /** @@ -58,7 +58,7 @@ public class IssueLocationFactory { // Determine if the issue should be relocated boolean shouldAttributeToPrior = simplification.getAttributeToPriorToken(); shouldAttributeToPrior = shouldAttributeToPrior && originalLine != 0; - + if (!shouldAttributeToPrior) { return new IssueLocation(originalLine, originalOffset); } @@ -82,7 +82,7 @@ public class IssueLocationFactory { if (foundStartOfMatchMaybe.isPresent()) { startOfMatch = priorCode.length() - foundStartOfMatchMaybe.get(); String contentsOfMatch = priorCode.substring(startOfMatch); - linesOffset = SyntaxUtil.getCount(contentsOfMatch, "\n"); + linesOffset = SourceUtil.getCount(contentsOfMatch, "\n"); } else { startOfMatch = priorCode.length(); linesOffset = 0; diff --git a/java/src/processing/mode/java/preproc/issue/PreprocessIssueMessageSimplifier.java b/java/src/processing/mode/java/preproc/issue/PreprocessIssueMessageSimplifier.java index 9469278f1..762dcadf3 100644 --- a/java/src/processing/mode/java/preproc/issue/PreprocessIssueMessageSimplifier.java +++ b/java/src/processing/mode/java/preproc/issue/PreprocessIssueMessageSimplifier.java @@ -24,7 +24,7 @@ package processing.mode.java.preproc.issue; import processing.app.Language; import processing.app.Platform; -import processing.mode.java.preproc.SyntaxUtil; +import processing.mode.java.SourceUtil; import java.util.ArrayList; import java.util.List; @@ -273,7 +273,7 @@ public class PreprocessIssueMessageSimplifier { messageContent = messageContent.replace(filter.get(), ""); } - int count = SyntaxUtil.getCount(messageContent, token); + int count = SourceUtil.getCount(messageContent, token); if (count % 2 == 0) { return Optional.empty(); @@ -342,8 +342,8 @@ public class PreprocessIssueMessageSimplifier { public Optional simplify(String message) { String messageContent = getOffendingArea(message); - int count1 = SyntaxUtil.getCount(messageContent, token1); - int count2 = SyntaxUtil.getCount(messageContent, token2); + int count1 = SourceUtil.getCount(messageContent, token1); + int count2 = SourceUtil.getCount(messageContent, token2); if (count1 == count2) { return Optional.empty();