From: <dal...@us...> - 2015-10-05 21:19:38
|
Revision: 24099 http://sourceforge.net/p/jedit/svn/24099 Author: daleanson Date: 2015-10-05 21:19:36 +0000 (Mon, 05 Oct 2015) Log Message: ----------- Handle hard vs soft tabs. Modified Paths: -------------- plugins/Beauty/trunk/src/beauty/beautifiers/JsonBeautifier.java plugins/Beauty/trunk/src/beauty/parsers/json/JSONBeautyListener.java Modified: plugins/Beauty/trunk/src/beauty/beautifiers/JsonBeautifier.java =================================================================== --- plugins/Beauty/trunk/src/beauty/beautifiers/JsonBeautifier.java 2015-10-02 21:30:44 UTC (rev 24098) +++ plugins/Beauty/trunk/src/beauty/beautifiers/JsonBeautifier.java 2015-10-05 21:19:36 UTC (rev 24099) @@ -28,7 +28,7 @@ // parse and beautify the buffer contents ParseTree tree = jsonParser.json(); ParseTreeWalker walker = new ParseTreeWalker(); - JSONBeautyListener listener = new JSONBeautyListener(text.length()); + JSONBeautyListener listener = new JSONBeautyListener(text.length(), getUseSoftTabs(), getTabWidth()); walker.walk( listener, tree ); return listener.getText(); Modified: plugins/Beauty/trunk/src/beauty/parsers/json/JSONBeautyListener.java =================================================================== --- plugins/Beauty/trunk/src/beauty/parsers/json/JSONBeautyListener.java 2015-10-02 21:30:44 UTC (rev 24098) +++ plugins/Beauty/trunk/src/beauty/parsers/json/JSONBeautyListener.java 2015-10-05 21:19:36 UTC (rev 24099) @@ -6,9 +6,20 @@ private StringBuilder output; private int tabCount = 0; + private String tab; - public JSONBeautyListener(int initialSize) { - output = new StringBuilder(initialSize); + public JSONBeautyListener(int initialSize, boolean softTabs, int tabWidth) { + output = new StringBuilder(initialSize); + if (softTabs) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < tabWidth; i++) { + sb.append(' '); + } + tab = sb.toString(); + } + else { + tab = "\t"; + } } public String getText() { @@ -104,15 +115,15 @@ private void indent() { for ( int i = 0; i < tabCount; i++ ) { - output.append( '\t' ); + output.append( tab ); } } private void outdent() { - if (output.length() == 0) { + if (output.length() < tab.length()) { return; } - while(output.charAt(output.length() - 1) == '\t') { + while(output.charAt(output.length() - 1) == '\t' || output.charAt(output.length() - 1) == ' ') { output.deleteCharAt(output.length() - 1); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |