Skip to main content
Code Review

Return to Question

replaced http://codereview.stackexchange.com/ with https://codereview.stackexchange.com/
Source Link

After my Dialogue parser Dialogue parser has parsed a dialogue, it needs to be validated. To that end, I have several checker classes that go through the lines of the Dialogue.

After my Dialogue parser has parsed a dialogue, it needs to be validated. To that end, I have several checker classes that go through the lines of the Dialogue.

After my Dialogue parser has parsed a dialogue, it needs to be validated. To that end, I have several checker classes that go through the lines of the Dialogue.

explanation where I have duplication
Source Link
Pimgd
  • 22.5k
  • 5
  • 68
  • 144

Most of the checks, as you'll see are the same.

The checkLineOldStyle function, responsible for validating a line as a string:

 private function checkLineOldStyle(l:Line, lineString:String, varsubsReplaced:Boolean = false, dialogue:Dialogue = null, options:Options = null):void {
 if (l.isCommentLine()) {
 if (options == null || options.getSetting("commentfilter")) {
 return;
 }
 }
 
 var linebreak:String = "";
 if (options != null) {
 linebreak = options.getLineBreak();
 } else {
 linebreak = "\r\n";
 }
 
 var line:String = l.getRaw();
 var showStrippedVersion:Boolean = false;
 var issue:Issue = null;
 var issueMessageDefault:String = "";
 var lineContainsYOU:Boolean = (l.getRaw().indexOf("YOU") != -1);
 if (lineString != "") {
 if (options != null) {
 if (options.getSetting("substitutes")) {
 if (varsubsReplaced) {
 if (lineContainsYOU) {
 issueMessageDefault = "The following issue was found after replacing variable substitutions, and stripping the line of delay characters and triggers." + linebreak;
 issueMessageDefault += "Keep in mind that you can place characters in YOU/YOUR/ME/MY variable insertions, like \"Hello*, YOU*!\"." + linebreak;
 } else {
 issueMessageDefault = "The following issue was found after replacing variable substitutions, and stripping the line of delay characters and triggers:" + linebreak;
 }
 } else {
 if (lineContainsYOU) {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions." + linebreak;
 issueMessageDefault += "Keep in mind that you can place characters in YOU/YOUR/ME/MY variable insertions, like \"Hello*, YOU*!\"." + linebreak;
 } else {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions:" + linebreak;
 }
 
 }
 } else {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters and triggers:" + linebreak;
 }
 } else {
 if (lineContainsYOU) {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions." + linebreak;
 issueMessageDefault += "Keep in mind that you can place characters in YOU/YOUR/ME/MY variable insertions, like \"Hello*, YOU*!\"." + linebreak;
 } else {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions:" + linebreak;
 }
 }
 line = lineString;
 showStrippedVersion = true;
 }
 var issueMessage:String = issueMessageDefault;
 var issueSnippet:String = "";
 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\",")) {
 issueSnippet = StringFunctions.getSnippet(line, "\",");
 issueMessage += "Sentence starting with a comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\",")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\"! ")) {
 issueSnippet = StringFunctions.getSnippet(line, "\"! ");
 issueMessage += "Sentence starting with a disconnected exclamation mark (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\"! ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\". ")) {
 issueSnippet = StringFunctions.getSnippet(line, "\". ");
 issueMessage += "Sentence starting with a disconnected period (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\". ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, " ,");
 issueMessage += "Space before comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf(" ,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",,");
 issueMessage += "Double comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf(",,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ") != -1 && (options == null || !options.getSetting("NoDoubleSpace"))) {
 var splitLine:Array = line.split("\"");
 var doubleSpaceInBadLocation:Boolean = false;
 for (var i:uint = 1, isize:uint = splitLine.length; i < isize; i += 2) { //after first quotation mark, after third, after 5th... blah"HERE blah blah" fff {"HEREset":{"HEREvar":"HEREvalue"}}
 if (splitLine[i].indexOf(" ") != -1) {
 doubleSpaceInBadLocation = true;
 }
 }
 if (doubleSpaceInBadLocation) { //to prevent lines with whitespace in excess from tripping errors
 issueSnippet = StringFunctions.getSnippet(line, " ");
 issueMessage += "Double space on line " + l.getLineNumber() + ", col " + (line.indexOf(" ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 if (line.indexOf(" !") != -1 && !l.isIndexInSubstitution(line.indexOf(" !"))) {
 issueSnippet = StringFunctions.getSnippet(line, " !");
 issueMessage += "Grammatical error (space before exclamation mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(" !")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ?") != -1 && !l.isIndexInSubstitution(line.indexOf(" ?"))) {
 issueSnippet = StringFunctions.getSnippet(line, " ?");
 issueMessage += "Grammatical error (space before question mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(" ?")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",!") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",!");
 issueMessage += "Grammatical error (comma directly before exclamation mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(",!")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",?") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",?");
 issueMessage += "Grammatical error (comma directly before question mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(",?")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("!,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, "!,");
 issueMessage += "Grammatical error (comma directly after exclamation mark) on line " + l.getLineNumber() + ", col " + (line.indexOf("!,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("?,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, "?,");
 issueMessage += "Grammatical error (comma directly after question mark) on line " + l.getLineNumber() + ", col " + (line.indexOf("?,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(".,.") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ".,.");
 issueMessage += "Grammatical error (comma amidst periods: .,.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".,.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 } else {
 if (line.indexOf(".,") != -1) {
 if ((line.indexOf("...,") + 2) != line.indexOf(".,")) {
 issueSnippet = StringFunctions.getSnippet(line, ".,");
 issueMessage += "Grammatical error (period before comma ending: .,) on line " + l.getLineNumber() + ", col " + (line.indexOf(".,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 } else if (line.indexOf(",.") != -1) {
 if (line.indexOf(",...") != line.indexOf(",.")) {
 issueSnippet = StringFunctions.getSnippet(line, ",.");
 issueMessage += "Grammatical error (comma before period ending: ,.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 }
 if (line.indexOf(".!.") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ".!.");
 issueMessage += "Grammatical error (Exclamation mark amidst periods: .!.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".!.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 } else {
 if (line.indexOf("!.") != -1) {
 if (line.indexOf("!...") != line.indexOf("!.")) {
 issueSnippet = StringFunctions.getSnippet(line, "!.");
 issueMessage += "Grammatical error (double sentence ending: !.) on line " + l.getLineNumber() + ", col " + (line.indexOf("!.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 if (line.indexOf(".!") != -1) {
 if ((line.indexOf("...!") + 2) != line.indexOf(".!")) {
 issueSnippet = StringFunctions.getSnippet(line, ".!");
 issueMessage += "Grammatical error (double sentence ending: .!) on line " + l.getLineNumber() + ", col " + (line.indexOf(".!")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 }
 if (line.indexOf(".?.") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ".?.");
 issueMessage += "Grammatical error (Question mark amidst periods: .?.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".?.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 } else {
 if (line.indexOf("?.") != -1) {
 if (line.indexOf("?...") != line.indexOf("?.")) {
 issueSnippet = StringFunctions.getSnippet(line, "?.");
 issueMessage += "Grammatical error (double sentence ending: ?.) on line " + l.getLineNumber() + ", col " + (line.indexOf("?.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 if (line.indexOf(".?") != -1) {
 if ((line.indexOf("...?") + 2) != line.indexOf(".?")) {
 issueSnippet = StringFunctions.getSnippet(line, ".?");
 issueMessage += "Grammatical error (double sentence ending: .?) on line " + l.getLineNumber() + ", col " + (line.indexOf(".?")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 }
 
 if (line.indexOf("%0A ") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, "%0A ");
 issueMessage += "Space at start of new line on line " + l.getLineNumber() + ", col " + (line.indexOf("%0A ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(":\" ") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ":\" ");
 issueMessage += "Space at start of new line on line " + l.getLineNumber() + ", col " + (line.indexOf(":\" ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" . ") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, " . ");
 issueMessage += "Space before period for new line on line " + l.getLineNumber() + ", col " + (line.indexOf(" . ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (issue == null) {
 if (lineString == "") {
 if (options == null) {
 checkLineOldStyle(l, l.getLineStripped(true, true, true), false, dialogue, options);
 } else {
 checkLineOldStyle(l, l.getLineStripped(true, true, options.getSetting("substitutes")), false, dialogue, options);
 }
 } else if (!varsubsReplaced) {
 if (options == null || options.getSetting("substitutes")) {
 checkLineOldStyle(l, l.getLineStrippedLiteralSubs(true, true), true, dialogue, options);
 }
 }
 }
 }

My issue with this code is that I have a lot of repetition like this:

 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\". ")) {
 issueSnippet = StringFunctions.getSnippet(line, "\". ");
 issueMessage += "Sentence starting with a disconnected period (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\". ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, " ,");
 issueMessage += "Space before comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf(" ,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",,");
 issueMessage += "Double comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf(",,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }

Every time I declare something I check for, and then make a snippet, message, line, maybe a stripped line, create an issue and add the issue. Then I reset the message to the default. I'm repeating myself over and over, and I'd like to fix that somehow.

 private function checkLineOldStyle(l:Line, lineString:String, varsubsReplaced:Boolean = false, dialogue:Dialogue = null, options:Options = null):void {
 if (l.isCommentLine()) {
 if (options == null || options.getSetting("commentfilter")) {
 return;
 }
 }
 
 var linebreak:String = "";
 if (options != null) {
 linebreak = options.getLineBreak();
 } else {
 linebreak = "\r\n";
 }
 
 var line:String = l.getRaw();
 var showStrippedVersion:Boolean = false;
 var issue:Issue = null;
 var issueMessageDefault:String = "";
 var lineContainsYOU:Boolean = (l.getRaw().indexOf("YOU") != -1);
 if (lineString != "") {
 if (options != null) {
 if (options.getSetting("substitutes")) {
 if (varsubsReplaced) {
 if (lineContainsYOU) {
 issueMessageDefault = "The following issue was found after replacing variable substitutions, and stripping the line of delay characters and triggers." + linebreak;
 issueMessageDefault += "Keep in mind that you can place characters in YOU/YOUR/ME/MY variable insertions, like \"Hello*, YOU*!\"." + linebreak;
 } else {
 issueMessageDefault = "The following issue was found after replacing variable substitutions, and stripping the line of delay characters and triggers:" + linebreak;
 }
 } else {
 if (lineContainsYOU) {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions." + linebreak;
 issueMessageDefault += "Keep in mind that you can place characters in YOU/YOUR/ME/MY variable insertions, like \"Hello*, YOU*!\"." + linebreak;
 } else {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions:" + linebreak;
 }
 
 }
 } else {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters and triggers:" + linebreak;
 }
 } else {
 if (lineContainsYOU) {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions." + linebreak;
 issueMessageDefault += "Keep in mind that you can place characters in YOU/YOUR/ME/MY variable insertions, like \"Hello*, YOU*!\"." + linebreak;
 } else {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions:" + linebreak;
 }
 }
 line = lineString;
 showStrippedVersion = true;
 }
 var issueMessage:String = issueMessageDefault;
 var issueSnippet:String = "";
 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\",")) {
 issueSnippet = StringFunctions.getSnippet(line, "\",");
 issueMessage += "Sentence starting with a comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\",")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\"! ")) {
 issueSnippet = StringFunctions.getSnippet(line, "\"! ");
 issueMessage += "Sentence starting with a disconnected exclamation mark (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\"! ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\". ")) {
 issueSnippet = StringFunctions.getSnippet(line, "\". ");
 issueMessage += "Sentence starting with a disconnected period (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\". ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, " ,");
 issueMessage += "Space before comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf(" ,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",,");
 issueMessage += "Double comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf(",,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ") != -1 && (options == null || !options.getSetting("NoDoubleSpace"))) {
 var splitLine:Array = line.split("\"");
 var doubleSpaceInBadLocation:Boolean = false;
 for (var i:uint = 1, isize:uint = splitLine.length; i < isize; i += 2) { //after first quotation mark, after third, after 5th... blah"HERE blah blah" fff {"HEREset":{"HEREvar":"HEREvalue"}}
 if (splitLine[i].indexOf(" ") != -1) {
 doubleSpaceInBadLocation = true;
 }
 }
 if (doubleSpaceInBadLocation) { //to prevent lines with whitespace in excess from tripping errors
 issueSnippet = StringFunctions.getSnippet(line, " ");
 issueMessage += "Double space on line " + l.getLineNumber() + ", col " + (line.indexOf(" ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 if (line.indexOf(" !") != -1 && !l.isIndexInSubstitution(line.indexOf(" !"))) {
 issueSnippet = StringFunctions.getSnippet(line, " !");
 issueMessage += "Grammatical error (space before exclamation mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(" !")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ?") != -1 && !l.isIndexInSubstitution(line.indexOf(" ?"))) {
 issueSnippet = StringFunctions.getSnippet(line, " ?");
 issueMessage += "Grammatical error (space before question mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(" ?")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",!") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",!");
 issueMessage += "Grammatical error (comma directly before exclamation mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(",!")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",?") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",?");
 issueMessage += "Grammatical error (comma directly before question mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(",?")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("!,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, "!,");
 issueMessage += "Grammatical error (comma directly after exclamation mark) on line " + l.getLineNumber() + ", col " + (line.indexOf("!,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("?,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, "?,");
 issueMessage += "Grammatical error (comma directly after question mark) on line " + l.getLineNumber() + ", col " + (line.indexOf("?,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(".,.") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ".,.");
 issueMessage += "Grammatical error (comma amidst periods: .,.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".,.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 } else {
 if (line.indexOf(".,") != -1) {
 if ((line.indexOf("...,") + 2) != line.indexOf(".,")) {
 issueSnippet = StringFunctions.getSnippet(line, ".,");
 issueMessage += "Grammatical error (period before comma ending: .,) on line " + l.getLineNumber() + ", col " + (line.indexOf(".,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 } else if (line.indexOf(",.") != -1) {
 if (line.indexOf(",...") != line.indexOf(",.")) {
 issueSnippet = StringFunctions.getSnippet(line, ",.");
 issueMessage += "Grammatical error (comma before period ending: ,.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 }
 if (line.indexOf(".!.") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ".!.");
 issueMessage += "Grammatical error (Exclamation mark amidst periods: .!.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".!.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 } else {
 if (line.indexOf("!.") != -1) {
 if (line.indexOf("!...") != line.indexOf("!.")) {
 issueSnippet = StringFunctions.getSnippet(line, "!.");
 issueMessage += "Grammatical error (double sentence ending: !.) on line " + l.getLineNumber() + ", col " + (line.indexOf("!.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 if (line.indexOf(".!") != -1) {
 if ((line.indexOf("...!") + 2) != line.indexOf(".!")) {
 issueSnippet = StringFunctions.getSnippet(line, ".!");
 issueMessage += "Grammatical error (double sentence ending: .!) on line " + l.getLineNumber() + ", col " + (line.indexOf(".!")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 }
 if (line.indexOf(".?.") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ".?.");
 issueMessage += "Grammatical error (Question mark amidst periods: .?.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".?.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 } else {
 if (line.indexOf("?.") != -1) {
 if (line.indexOf("?...") != line.indexOf("?.")) {
 issueSnippet = StringFunctions.getSnippet(line, "?.");
 issueMessage += "Grammatical error (double sentence ending: ?.) on line " + l.getLineNumber() + ", col " + (line.indexOf("?.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 if (line.indexOf(".?") != -1) {
 if ((line.indexOf("...?") + 2) != line.indexOf(".?")) {
 issueSnippet = StringFunctions.getSnippet(line, ".?");
 issueMessage += "Grammatical error (double sentence ending: .?) on line " + l.getLineNumber() + ", col " + (line.indexOf(".?")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 }
 
 if (line.indexOf("%0A ") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, "%0A ");
 issueMessage += "Space at start of new line on line " + l.getLineNumber() + ", col " + (line.indexOf("%0A ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(":\" ") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ":\" ");
 issueMessage += "Space at start of new line on line " + l.getLineNumber() + ", col " + (line.indexOf(":\" ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" . ") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, " . ");
 issueMessage += "Space before period for new line on line " + l.getLineNumber() + ", col " + (line.indexOf(" . ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (issue == null) {
 if (lineString == "") {
 if (options == null) {
 checkLineOldStyle(l, l.getLineStripped(true, true, true), false, dialogue, options);
 } else {
 checkLineOldStyle(l, l.getLineStripped(true, true, options.getSetting("substitutes")), false, dialogue, options);
 }
 } else if (!varsubsReplaced) {
 if (options == null || options.getSetting("substitutes")) {
 checkLineOldStyle(l, l.getLineStrippedLiteralSubs(true, true), true, dialogue, options);
 }
 }
 }
 }

Most of the checks, as you'll see are the same.

The checkLineOldStyle function, responsible for validating a line as a string:

 private function checkLineOldStyle(l:Line, lineString:String, varsubsReplaced:Boolean = false, dialogue:Dialogue = null, options:Options = null):void {
 if (l.isCommentLine()) {
 if (options == null || options.getSetting("commentfilter")) {
 return;
 }
 }
 
 var linebreak:String = "";
 if (options != null) {
 linebreak = options.getLineBreak();
 } else {
 linebreak = "\r\n";
 }
 
 var line:String = l.getRaw();
 var showStrippedVersion:Boolean = false;
 var issue:Issue = null;
 var issueMessageDefault:String = "";
 var lineContainsYOU:Boolean = (l.getRaw().indexOf("YOU") != -1);
 if (lineString != "") {
 if (options != null) {
 if (options.getSetting("substitutes")) {
 if (varsubsReplaced) {
 if (lineContainsYOU) {
 issueMessageDefault = "The following issue was found after replacing variable substitutions, and stripping the line of delay characters and triggers." + linebreak;
 issueMessageDefault += "Keep in mind that you can place characters in YOU/YOUR/ME/MY variable insertions, like \"Hello*, YOU*!\"." + linebreak;
 } else {
 issueMessageDefault = "The following issue was found after replacing variable substitutions, and stripping the line of delay characters and triggers:" + linebreak;
 }
 } else {
 if (lineContainsYOU) {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions." + linebreak;
 issueMessageDefault += "Keep in mind that you can place characters in YOU/YOUR/ME/MY variable insertions, like \"Hello*, YOU*!\"." + linebreak;
 } else {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions:" + linebreak;
 }
 
 }
 } else {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters and triggers:" + linebreak;
 }
 } else {
 if (lineContainsYOU) {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions." + linebreak;
 issueMessageDefault += "Keep in mind that you can place characters in YOU/YOUR/ME/MY variable insertions, like \"Hello*, YOU*!\"." + linebreak;
 } else {
 issueMessageDefault = "The following issue was found after stripping the line of delay characters, triggers and variable substitutions:" + linebreak;
 }
 }
 line = lineString;
 showStrippedVersion = true;
 }
 var issueMessage:String = issueMessageDefault;
 var issueSnippet:String = "";
 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\",")) {
 issueSnippet = StringFunctions.getSnippet(line, "\",");
 issueMessage += "Sentence starting with a comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\",")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\"! ")) {
 issueSnippet = StringFunctions.getSnippet(line, "\"! ");
 issueMessage += "Sentence starting with a disconnected exclamation mark (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\"! ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\". ")) {
 issueSnippet = StringFunctions.getSnippet(line, "\". ");
 issueMessage += "Sentence starting with a disconnected period (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\". ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, " ,");
 issueMessage += "Space before comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf(" ,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",,");
 issueMessage += "Double comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf(",,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ") != -1 && (options == null || !options.getSetting("NoDoubleSpace"))) {
 var splitLine:Array = line.split("\"");
 var doubleSpaceInBadLocation:Boolean = false;
 for (var i:uint = 1, isize:uint = splitLine.length; i < isize; i += 2) { //after first quotation mark, after third, after 5th... blah"HERE blah blah" fff {"HEREset":{"HEREvar":"HEREvalue"}}
 if (splitLine[i].indexOf(" ") != -1) {
 doubleSpaceInBadLocation = true;
 }
 }
 if (doubleSpaceInBadLocation) { //to prevent lines with whitespace in excess from tripping errors
 issueSnippet = StringFunctions.getSnippet(line, " ");
 issueMessage += "Double space on line " + l.getLineNumber() + ", col " + (line.indexOf(" ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 if (line.indexOf(" !") != -1 && !l.isIndexInSubstitution(line.indexOf(" !"))) {
 issueSnippet = StringFunctions.getSnippet(line, " !");
 issueMessage += "Grammatical error (space before exclamation mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(" !")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ?") != -1 && !l.isIndexInSubstitution(line.indexOf(" ?"))) {
 issueSnippet = StringFunctions.getSnippet(line, " ?");
 issueMessage += "Grammatical error (space before question mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(" ?")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",!") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",!");
 issueMessage += "Grammatical error (comma directly before exclamation mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(",!")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",?") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",?");
 issueMessage += "Grammatical error (comma directly before question mark) on line " + l.getLineNumber() + ", col " + (line.indexOf(",?")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("!,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, "!,");
 issueMessage += "Grammatical error (comma directly after exclamation mark) on line " + l.getLineNumber() + ", col " + (line.indexOf("!,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf("?,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, "?,");
 issueMessage += "Grammatical error (comma directly after question mark) on line " + l.getLineNumber() + ", col " + (line.indexOf("?,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(".,.") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ".,.");
 issueMessage += "Grammatical error (comma amidst periods: .,.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".,.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 } else {
 if (line.indexOf(".,") != -1) {
 if ((line.indexOf("...,") + 2) != line.indexOf(".,")) {
 issueSnippet = StringFunctions.getSnippet(line, ".,");
 issueMessage += "Grammatical error (period before comma ending: .,) on line " + l.getLineNumber() + ", col " + (line.indexOf(".,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 } else if (line.indexOf(",.") != -1) {
 if (line.indexOf(",...") != line.indexOf(",.")) {
 issueSnippet = StringFunctions.getSnippet(line, ",.");
 issueMessage += "Grammatical error (comma before period ending: ,.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 }
 if (line.indexOf(".!.") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ".!.");
 issueMessage += "Grammatical error (Exclamation mark amidst periods: .!.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".!.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 } else {
 if (line.indexOf("!.") != -1) {
 if (line.indexOf("!...") != line.indexOf("!.")) {
 issueSnippet = StringFunctions.getSnippet(line, "!.");
 issueMessage += "Grammatical error (double sentence ending: !.) on line " + l.getLineNumber() + ", col " + (line.indexOf("!.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 if (line.indexOf(".!") != -1) {
 if ((line.indexOf("...!") + 2) != line.indexOf(".!")) {
 issueSnippet = StringFunctions.getSnippet(line, ".!");
 issueMessage += "Grammatical error (double sentence ending: .!) on line " + l.getLineNumber() + ", col " + (line.indexOf(".!")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 }
 if (line.indexOf(".?.") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ".?.");
 issueMessage += "Grammatical error (Question mark amidst periods: .?.) on line " + l.getLineNumber() + ", col " + (line.indexOf(".?.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 } else {
 if (line.indexOf("?.") != -1) {
 if (line.indexOf("?...") != line.indexOf("?.")) {
 issueSnippet = StringFunctions.getSnippet(line, "?.");
 issueMessage += "Grammatical error (double sentence ending: ?.) on line " + l.getLineNumber() + ", col " + (line.indexOf("?.")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 if (line.indexOf(".?") != -1) {
 if ((line.indexOf("...?") + 2) != line.indexOf(".?")) {
 issueSnippet = StringFunctions.getSnippet(line, ".?");
 issueMessage += "Grammatical error (double sentence ending: .?) on line " + l.getLineNumber() + ", col " + (line.indexOf(".?")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 }
 }
 
 if (line.indexOf("%0A ") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, "%0A ");
 issueMessage += "Space at start of new line on line " + l.getLineNumber() + ", col " + (line.indexOf("%0A ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(":\" ") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ":\" ");
 issueMessage += "Space at start of new line on line " + l.getLineNumber() + ", col " + (line.indexOf(":\" ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" . ") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, " . ");
 issueMessage += "Space before period for new line on line " + l.getLineNumber() + ", col " + (line.indexOf(" . ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (issue == null) {
 if (lineString == "") {
 if (options == null) {
 checkLineOldStyle(l, l.getLineStripped(true, true, true), false, dialogue, options);
 } else {
 checkLineOldStyle(l, l.getLineStripped(true, true, options.getSetting("substitutes")), false, dialogue, options);
 }
 } else if (!varsubsReplaced) {
 if (options == null || options.getSetting("substitutes")) {
 checkLineOldStyle(l, l.getLineStrippedLiteralSubs(true, true), true, dialogue, options);
 }
 }
 }
 }

My issue with this code is that I have a lot of repetition like this:

 if (line.indexOf("\"") != -1 && line.indexOf("\"") == line.indexOf("\". ")) {
 issueSnippet = StringFunctions.getSnippet(line, "\". ");
 issueMessage += "Sentence starting with a disconnected period (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf("\". ")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(" ,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, " ,");
 issueMessage += "Space before comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf(" ,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }
 if (line.indexOf(",,") != -1) {
 issueSnippet = StringFunctions.getSnippet(line, ",,");
 issueMessage += "Double comma (grammatical error) on dialogue line on line " + l.getLineNumber() + ", col " + (line.indexOf(",,")) + " near \"" + issueSnippet + "\"" + linebreak;
 issueMessage += l.printLineMessage(linebreak);
 if (showStrippedVersion) {
 issueMessage += "Stripped Line " + l.getLineNumber() + ": " + lineString + linebreak;
 }
 issueMessage += linebreak;
 issue = new Issue(Severity.getEnum("MINOR"), l, issueSnippet, issueMessage, "Grammar");
 addIssue(issue);
 issueMessage = issueMessageDefault;
 }

Every time I declare something I check for, and then make a snippet, message, line, maybe a stripped line, create an issue and add the issue. Then I reset the message to the default. I'm repeating myself over and over, and I'd like to fix that somehow.

fix formatting a bit
Source Link
Pimgd
  • 22.5k
  • 5
  • 68
  • 144
[ ] - Double space is always bad. Can be disabled with #DialogueChecker-NoDoubleSpace#.
[,,] - Double comma.
[ ,] - Space in front of comma is a grammatical error.
[,?] - Grammatical error.
[,!] - Grammatical error.
[ !] - Space before exclamation mark is a grammatical error.
[ ?] - Space before question mark is a grammatical error.
[!.] - Grammatical error. (Whitelisted: [!...].)
[?.] - Grammatical error. (Whitelisted: [?...].)
[%0A ] - Space at start of new line
[:" ] - Space at start of new line (or you have spaces in your variables - which is not wrong (maybe I could catch this by whitelisting [":" ]))
[ . ] - Space before end of line is a grammatical error.
[.!.] - Grammatical error.
[.?.] - Grammatical error.
[.?] - Grammatical error, double sentence ending.
[.,] - Grammatical error, wrongfully continued sentence.
[.!] - Grammatical error, double sentence ending.
[.,.] - Grammatical error. Maybe it's a wrongfully typed ellipsis?
[!,] - Grammatical error, as a finished sentence shouldn't be continued with a comma.
[?,] - Grammatical error, as a finished sentence shouldn't be continued with a comma.
[,.] - Grammatical error, as a comma indicates that more text will follow.
- Lines starting with a comma, as this is not a proper way to begin a sentence.
- Lines starting with a disconnected exclamation mark [! ].
- Lines starting with a disconnected period [. ].
- All of the above, when the following is stripped: 
-- Anything between asterisks that contain YOU, YOUR, ME or MY (substitutes) 
-- delay characters ("Б")
-- triggers (anything between square brackets, game uses these to simulate actions e.g. "Hello.[OPEN_EYES]!" would print as "Hello.!",
with character eyes being opened between the period and the exclamation mark)

with character eyes being opened between the period and the exclamation mark)

[ ] - Double space is always bad. Can be disabled with #DialogueChecker-NoDoubleSpace#.
[,,] - Double comma.
[ ,] - Space in front of comma is a grammatical error.
[,?] - Grammatical error.
[,!] - Grammatical error.
[ !] - Space before exclamation mark is a grammatical error.
[ ?] - Space before question mark is a grammatical error.
[!.] - Grammatical error. (Whitelisted: [!...].)
[?.] - Grammatical error. (Whitelisted: [?...].)
[%0A ] - Space at start of new line
[:" ] - Space at start of new line (or you have spaces in your variables - which is not wrong (maybe I could catch this by whitelisting [":" ]))
[ . ] - Space before end of line is a grammatical error.
[.!.] - Grammatical error.
[.?.] - Grammatical error.
[.?] - Grammatical error, double sentence ending.
[.,] - Grammatical error, wrongfully continued sentence.
[.!] - Grammatical error, double sentence ending.
[.,.] - Grammatical error. Maybe it's a wrongfully typed ellipsis?
[!,] - Grammatical error, as a finished sentence shouldn't be continued with a comma.
[?,] - Grammatical error, as a finished sentence shouldn't be continued with a comma.
[,.] - Grammatical error, as a comma indicates that more text will follow.
- Lines starting with a comma, as this is not a proper way to begin a sentence.
- Lines starting with a disconnected exclamation mark [! ].
- Lines starting with a disconnected period [. ].
- All of the above, when the following is stripped: 
-- Anything between asterisks that contain YOU, YOUR, ME or MY (substitutes) 
-- delay characters ("Б")
-- triggers (anything between square brackets, game uses these to simulate actions e.g. "Hello.[OPEN_EYES]!" would print as "Hello.!",

with character eyes being opened between the period and the exclamation mark)

[ ] - Double space is always bad. Can be disabled with #DialogueChecker-NoDoubleSpace#.
[,,] - Double comma.
[ ,] - Space in front of comma is a grammatical error.
[,?] - Grammatical error.
[,!] - Grammatical error.
[ !] - Space before exclamation mark is a grammatical error.
[ ?] - Space before question mark is a grammatical error.
[!.] - Grammatical error. (Whitelisted: [!...].)
[?.] - Grammatical error. (Whitelisted: [?...].)
[%0A ] - Space at start of new line
[:" ] - Space at start of new line (or you have spaces in your variables - which is not wrong (maybe I could catch this by whitelisting [":" ]))
[ . ] - Space before end of line is a grammatical error.
[.!.] - Grammatical error.
[.?.] - Grammatical error.
[.?] - Grammatical error, double sentence ending.
[.,] - Grammatical error, wrongfully continued sentence.
[.!] - Grammatical error, double sentence ending.
[.,.] - Grammatical error. Maybe it's a wrongfully typed ellipsis?
[!,] - Grammatical error, as a finished sentence shouldn't be continued with a comma.
[?,] - Grammatical error, as a finished sentence shouldn't be continued with a comma.
[,.] - Grammatical error, as a comma indicates that more text will follow.
- Lines starting with a comma, as this is not a proper way to begin a sentence.
- Lines starting with a disconnected exclamation mark [! ].
- Lines starting with a disconnected period [. ].
- All of the above, when the following is stripped: 
-- Anything between asterisks that contain YOU, YOUR, ME or MY (substitutes) 
-- delay characters ("Б")
-- triggers (anything between square brackets, game uses these to simulate actions e.g. "Hello.[OPEN_EYES]!" would print as "Hello.!",
with character eyes being opened between the period and the exclamation mark)
added 99 characters in body
Source Link
Jamal
  • 35.2k
  • 13
  • 134
  • 238
Loading
deleted 2 characters in body
Source Link
Pimgd
  • 22.5k
  • 5
  • 68
  • 144
Loading
added 2 characters in body
Source Link
Pimgd
  • 22.5k
  • 5
  • 68
  • 144
Loading
added 73 characters in body
Source Link
Pimgd
  • 22.5k
  • 5
  • 68
  • 144
Loading
expanded check list to describe the first part of the code better
Source Link
Pimgd
  • 22.5k
  • 5
  • 68
  • 144
Loading
Source Link
Pimgd
  • 22.5k
  • 5
  • 68
  • 144
Loading
default

AltStyle によって変換されたページ (->オリジナル) /