📄 codeswitcher.java
字号:
longline = true; } else { longline = false; } } write.write(line + ls); } read.close(); write.flush(); write.close(); File fbak = new File(name + ".bak"); fbak.delete(); f.renameTo(fbak); File fcopy = new File(name); fnew.renameTo(fcopy); fbak.delete(); } catch (Exception e) { printError(e.getMessage()); } } /** * Method declaration * * * @param name * * @return */ int testFile(String name) { File f = new File(name); try { LineNumberReader read = new LineNumberReader(new FileReader(f)); int l = 1, maxline = 0; boolean longline = false; while (true) { String line = read.readLine(); if (line == null) { break; } if (line.length() > MAX_LINELENGTH &&!line.startsWith("org.hsqldb.test.Profile.")) { System.out.println("long line in " + name + " at line " + l); } if (line.startsWith(" ")) { int spaces = 0; for (; spaces < line.length(); spaces++) { if (line.charAt(spaces) != ' ') { break; } } if (spaces > 3 && testLine(line) &&!longline) { maxline++; } else if (isLongline(line)) { longline = true; } else { longline = false; } String s = line.substring(spaces); if (s.startsWith("if(")) { if (!s.endsWith(" {")) { System.out.println("if( without { in " + name + " at line " + l); } } else if (s.startsWith("} else if(")) { if (!s.endsWith(" {")) { System.out.println("} else if without { in " + name + " at line " + l); } } else if (s.startsWith("while(")) { if (!s.endsWith(" {")) { System.out.println("while( without { in " + name + " at line " + l); } } else if (s.startsWith("switch(")) { if (!s.endsWith(" {")) { System.out.println("switch( without { in " + name + " at line " + l); } } else if (s.startsWith("do ")) { if (!s.endsWith(" {")) { System.out.println("do without { in " + name + " at line " + l); } } } l++; } read.close(); return maxline; } catch (Exception e) { printError(e.getMessage()); } return -1; } /** * Method declaration * * * @param line * * @return */ boolean testLine(String line) { if (!line.endsWith(";")) { return false; } if (line.trim().startsWith("super(")) { return false; } return true; } /** * Method declaration * * * @param s * * @return */ boolean isLongline(String s) { char c = s.charAt(s.length() - 1); if (",(+-&|".indexOf(c) >= 0) { return true; } return false; } /** * Method declaration * * * @param name * * @return */ boolean processFile(String name) { File f = new File(name); File fnew = new File(name + ".new"); int state = 0; // 0=normal 1=inside_if 2=inside_else boolean switchoff = false; boolean working = false; try { Vector v = getFileLines(f); Vector v1 = new Vector(v.size()); for (int i = 0; i < v.size(); i++) { v1.addElement(v.elementAt(i)); } for (int i = 0; i < v.size(); i++) { String line = (String) v.elementAt(i); if (line == null) { break; } if (working) { if (line.equals("/*") || line.equals("*/")) { v.removeElementAt(i--); continue; } } if (line.startsWith("//#")) { if (line.startsWith("//#ifdef ")) { if (state != 0) { printError( "'#ifdef' not allowed inside '#ifdef'"); return false; } state = 1; String s = line.substring(9); if (vSwitchOn.indexOf(s) != -1) { working = true; switchoff = false; } else if (vSwitchOff.indexOf(s) != -1) { working = true; v.insertElementAt("/*", ++i); switchoff = true; } if (vSwitches.indexOf(s) == -1) { vSwitches.addElement(s); } } else if (line.startsWith("//#else")) { if (state != 1) { printError("'#else' without '#ifdef'"); return false; } state = 2; if (!working) {} else if (switchoff) { if (v.elementAt(i - 1).equals("")) { v.insertElementAt("*/", i - 1); i++; } else { v.insertElementAt("*/", i++); } switchoff = false; } else { v.insertElementAt("/*", ++i); switchoff = true; } } else if (line.startsWith("//#endif")) { if (state == 0) { printError("'#endif' without '#ifdef'"); return false; } state = 0; if (working && switchoff) { if (v.elementAt(i - 1).equals("")) { v.insertElementAt("*/", i - 1); i++; } else { v.insertElementAt("*/", i++); } } working = false; } else {} } } if (state != 0) { printError("'#endif' missing"); return false; } boolean filechanged = false; for (int i = 0; i < v.size(); i++) { if (!v1.elementAt(i).equals(v.elementAt(i))) { filechanged = true; break; } } if (!filechanged) { return true; } writeFileLines(v, fnew); File fbak = new File(name + ".bak"); fbak.delete(); f.renameTo(fbak); File fcopy = new File(name); fnew.renameTo(fcopy); fbak.delete(); return true; } catch (Exception e) { printError(e.getMessage()); return false; } } static Vector getFileLines(File f) throws IOException { LineNumberReader read = new LineNumberReader(new FileReader(f)); Vector v = new Vector(); for (;;) { String line = read.readLine(); if (line == null) { break; } v.addElement(line); } read.close(); return v; } static void writeFileLines(Vector v, File f) throws IOException { FileWriter write = new FileWriter(f); for (int i = 0; i < v.size(); i++) { write.write((String) v.elementAt(i)); write.write(ls); } write.flush(); write.close(); } /** * Method declaration * * * @param error */ static void printError(String error) { System.out.println(""); System.out.println("ERROR: " + error); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -