X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fcom%2Fdogcows%2FEditor.java;h=bb14ce65cf517ca9e9b5aec8384ea98322961754;hb=15cdeb736935e012a479d24c50ff10b88553bf9f;hp=ea6805849419036d6d73dcffe7d3ad4c056e35d3;hpb=548a5bcd9713b69f91e332ea1005a9b41f84a146;p=chaz%2Fvimcoder diff --git a/src/com/dogcows/Editor.java b/src/com/dogcows/Editor.java index ea68058..bb14ce6 100644 --- a/src/com/dogcows/Editor.java +++ b/src/com/dogcows/Editor.java @@ -24,22 +24,22 @@ public class Editor /** * The problem ID number. */ - private String id; + private String id; /** * The name of the class. */ - private String name; + private String name; /** * The path of the current source file. */ - private File sourceFile; + private File sourceFile; /** * The path of the problem directory. */ - private File directory; + private File directory; /** @@ -48,10 +48,10 @@ public class Editor private static final Map languageExtension = new HashMap(); static { - languageExtension.put("Java", "java"); - languageExtension.put("C++", "cc"); - languageExtension.put("C#", "cs"); - languageExtension.put("VB", "vb"); + languageExtension.put("Java", "java"); + languageExtension.put("C++", "cc"); + languageExtension.put("C#", "cs"); + languageExtension.put("VB", "vb"); languageExtension.put("Python", "py"); } @@ -64,8 +64,7 @@ public class Editor * @throws Exception If the editor could not set itself up. */ public Editor(ProblemComponentModel component, - Language language, - Renderer renderer) throws Exception + Language language, Renderer renderer) throws Exception { this.id = String.valueOf(component.getProblem().getProblemID()); this.name = component.getClassName(); @@ -85,22 +84,20 @@ public class Editor } String lang = language.getName(); - String ext = languageExtension.get(lang); + String ext = languageExtension.get(lang); // Set up the terms used for the template expansion. HashMap terms = new HashMap(); - terms.put("RETURNTYPE", component.getReturnType().getDescriptor(language).replaceAll("\\s+", "")); - terms.put("CLASSNAME", name); - terms.put("METHODNAME", component.getMethodName()); + terms.put("RETURNTYPE", component.getReturnType().getDescriptor(language)); + terms.put("CLASSNAME", name); + terms.put("METHODNAME", component.getMethodName()); terms.put("METHODPARAMS", getMethodParams(component.getParamTypes(), - component.getParamNames(), - language)); - terms.put("METHODPARAMNAMES", Util.join(component.getParamNames(), ", ")); - terms.put("METHODPARAMSTREAMIN", Util.join(component.getParamNames(), " >> ")); + component.getParamNames(), language)); + terms.put("METHODPARAMNAMES", Util.join(component.getParamNames(), ", ")); + terms.put("METHODPARAMSTREAMIN", Util.join(component.getParamNames(), " >> ")); terms.put("METHODPARAMSTREAMOUT", Util.join(component.getParamNames(), " << \", \" << ")); - terms.put("METHODPARAMDECLARES", getMethodParamDeclarations(component.getParamTypes(), - component.getParamNames(), - language)); + terms.put("METHODPARAMDECLARES", getMethodParamDeclarations(component.getParamTypes(), + component.getParamNames(), language)); // Write the problem statement as an HTML file in the problem directory. File problemFile = new File(directory, "Problem.html"); @@ -122,8 +119,7 @@ public class Editor sourceFile = new File(directory, name + "." + ext); if (!sourceFile.canRead()) { - String text = Util.expandTemplate(readTemplate(lang + "Template"), - terms); + String text = Util.expandTemplate(readTemplate(lang + "Template"), terms); FileWriter writer = new FileWriter(sourceFile); writer.write(text); writer.close(); @@ -133,8 +129,7 @@ public class Editor File driverFile = new File(directory, "driver." + ext); if (!driverFile.canRead()) { - String text = Util.expandTemplate(readTemplate(lang + "Driver"), - terms); + String text = Util.expandTemplate(readTemplate(lang + "Driver"), terms); FileWriter writer = new FileWriter(driverFile); writer.write(text); writer.close(); @@ -164,9 +159,9 @@ public class Editor // Finally, expand the Makefile template and write it. File makeFile = new File(directory, "Makefile"); + if (!makeFile.canRead()) { - String text = Util.expandTemplate(readTemplate(lang + "Makefile"), - terms); + String text = Util.expandTemplate(readTemplate(lang + "Makefile"), terms); FileWriter writer = new FileWriter(makeFile); writer.write(text); writer.close(); @@ -208,8 +203,7 @@ public class Editor * @param argument A single argument for the remote command. * @throws Exception If the command could not be sent. */ - private void sendVimCommand(String command, - String argument) throws Exception + private void sendVimCommand(String command, String argument) throws Exception { String[] arguments = {argument}; sendVimCommand(command, arguments); @@ -223,8 +217,7 @@ public class Editor * @param argument Arguments for the remote command. * @throws Exception If the command could not be sent. */ - private void sendVimCommand(String command, - String[] arguments) throws Exception + private void sendVimCommand(String command, String[] arguments) throws Exception { String[] vimCommand = VimCoder.getVimCommand().split("\\s"); String[] flags = {"--servername", "VimCoder" + id, command}; @@ -243,7 +236,7 @@ public class Editor * before the timeout, we will assume it is not backgrounding and * that everything worked. This works as long as the Vim server is * able to start within the stall period. */ - long expire = System.currentTimeMillis() + 250; + long expire = System.currentTimeMillis() + 2500; while (System.currentTimeMillis() < expire) { Thread.yield(); @@ -295,7 +288,7 @@ public class Editor String[] strings = new String[types.length]; for (int i = 0; i < types.length; ++i) { - strings[i] = types[i].getDescriptor(language).replaceAll("\\s+", ""); + strings[i] = types[i].getDescriptor(language); } return strings; } @@ -310,9 +303,7 @@ public class Editor * @param language The language used for representing the data types. * @return The list of parameters. */ - private String getMethodParams(DataType[] types, - String[] names, - Language language) + private String getMethodParams(DataType[] types, String[] names, Language language) { String[] typeStrings = getStringTypes(types, language); return Util.join(Util.combine(typeStrings, names, " "), ", "); @@ -328,9 +319,7 @@ public class Editor * @param language The language used for representing the data types. * @return The parameters as a block of declarations. */ - private String getMethodParamDeclarations(DataType[] types, - String[] names, - Language language) + private String getMethodParamDeclarations(DataType[] types, String[] names, Language language) { final String end = ";" + System.getProperty("line.separator"); String[] typeStrings = getStringTypes(types, language); @@ -338,3 +327,4 @@ public class Editor } } +// vim:noet:ts=8