From: <dal...@us...> - 2010-04-02 18:20:13
|
Revision: 17576 http://jedit.svn.sourceforge.net/jedit/?rev=17576&view=rev Author: daleanson Date: 2010-04-02 18:20:06 +0000 (Fri, 02 Apr 2010) Log Message: ----------- additional work for indentation settings Modified Paths: -------------- plugins/Beauty/trunk/build.xml plugins/Beauty/trunk/src/beauty/BeautyPlugin.java plugins/Beauty/trunk/src/beauty/CustomBeautifierOptionPane.java Modified: plugins/Beauty/trunk/build.xml =================================================================== --- plugins/Beauty/trunk/build.xml 2010-04-02 12:56:26 UTC (rev 17575) +++ plugins/Beauty/trunk/build.xml 2010-04-02 18:20:06 UTC (rev 17576) @@ -7,8 +7,6 @@ <property file="build.properties"/> - <taskdef resource="/net/sf/antcontrib/antlib.xml"/> - <!-- default location of jedit.jar --> <property name="jedit.install.dir" value="../.."/> Modified: plugins/Beauty/trunk/src/beauty/BeautyPlugin.java =================================================================== --- plugins/Beauty/trunk/src/beauty/BeautyPlugin.java 2010-04-02 12:56:26 UTC (rev 17575) +++ plugins/Beauty/trunk/src/beauty/BeautyPlugin.java 2010-04-02 18:20:06 UTC (rev 17576) @@ -4,6 +4,7 @@ import org.gjt.sp.jedit.*; import org.gjt.sp.jedit.io.VFSManager; +import org.gjt.sp.jedit.syntax.ModeProvider; import org.gjt.sp.jedit.textarea.JEditTextArea; import org.gjt.sp.util.Log; @@ -100,25 +101,65 @@ loadProperties(); File modeFile = modeFiles.get( modeName ); + Properties props = getModeIndentProperties(modeName); + if ( modeFile == null ) { - // no custom beautifier properties file found for this mode - return new Properties(); + // no custom beautifier properties file found for this mode, + // nothing more to do. + StringWriter sw = new StringWriter(); + props.list(new PrintWriter(sw)); + System.out.println("+++++ props for " + modeName + ": " + sw.toString()); + return props; } - // read the properties file into a Properties + // read the custom beautifier properties file into a Properties try { InputStream reader = new BufferedInputStream( new FileInputStream( modeFile ) ); - Properties props = new Properties(); - props.load( reader ); + Properties p = new Properties(); + p.load( reader ); reader.close(); + props.putAll(p); + StringWriter sw = new StringWriter(); + props.list(new PrintWriter(sw)); + System.out.println("+++++ props for " + modeName + ": " + sw.toString()); return props; } catch ( Exception e ) { e.printStackTrace(); - return new Properties(); + return props; } } + private static Properties getModeIndentProperties(String modeName) { + Mode mode = jEdit.getMode(modeName); + ModeProvider.instance.loadMode(mode); + mode.loadIfNecessary(); + mode.init(); + mode.getIndentRules(); // initializes the indent rules if they haven't been already + Properties p = new Properties(); + + String indentOpenBrackets = (String)mode.getProperty("indentOpenBrackets"); + String indentCloseBrackets = (String)mode.getProperty("indentCloseBrackets"); + String unalignedOpenBrackets = (String)mode.getProperty("unalignedOpenBrackets"); + String unalignedCloseBrackets = (String)mode.getProperty("unalignedCloseBrackets"); + String indentNextLine = (String)mode.getProperty("indentNextLine"); + String unindentThisLine = (String)mode.getProperty("unindentThisLine"); + String electricKeys = (String)mode.getProperty("electricKeys"); + String lineUpClosingBracket = mode.getBooleanProperty("lineUpClosingBracket") ? "true" : "false"; + String doubleBracketIndent = mode.getBooleanProperty("doubleBracketIndent") ? "true" : "false"; + + p.setProperty("indentOpenBrackets", indentOpenBrackets == null ? "" : indentOpenBrackets); + p.setProperty("indentCloseBrackets", indentCloseBrackets == null ? "" : indentCloseBrackets); + p.setProperty("unalignedOpenBrackets", unalignedOpenBrackets == null ? "" : unalignedOpenBrackets); + p.setProperty("unalignedCloseBrackets", unalignedCloseBrackets == null ? "" : unalignedCloseBrackets); + p.setProperty("indentNextLine", indentNextLine == null ? "" : indentNextLine); + p.setProperty("unindentThisLine", unindentThisLine == null ? "" : unindentThisLine); + p.setProperty("electricKeys", electricKeys == null ? "" : electricKeys); + p.setProperty("lineUpClosingBracket", lineUpClosingBracket); + p.setProperty("doubleBracketIndent", doubleBracketIndent); + return p; + } + /** * Saves given properties with the mode name. * @param modeName The name of the mode. This will be used as the start of the Modified: plugins/Beauty/trunk/src/beauty/CustomBeautifierOptionPane.java =================================================================== --- plugins/Beauty/trunk/src/beauty/CustomBeautifierOptionPane.java 2010-04-02 12:56:26 UTC (rev 17575) +++ plugins/Beauty/trunk/src/beauty/CustomBeautifierOptionPane.java 2010-04-02 18:20:06 UTC (rev 17576) @@ -68,6 +68,10 @@ private JTextField unindentThisLine; private JTextField electricKeys; + // checkboxes for indenting properties + private JCheckBox lineUpClosingBracket; + private JCheckBox doubleBracketIndent; + // a reference to the properties maintained by BeautyPlugin private Properties modeProperties; @@ -141,6 +145,9 @@ indentNextLine = new JTextField(); unindentThisLine = new JTextField(); electricKeys = new JTextField(); + // TODO: put strings in properties file + lineUpClosingBracket = new JCheckBox("Line up closing bracket"); + doubleBracketIndent = new JCheckBox("Double bracket indent"); panel.add( usejEditIndenter, "0, 0, 1, 1, W, w, 2" ); panel.add( new JLabel( "Indent open brackets:" ), "0, 1, 1, 1, W, w, 2" ); @@ -157,6 +164,8 @@ panel.add( unindentThisLine, "0, 12, 1, 1, W, w, 2" ); panel.add( new JLabel( "Electric keys:" ), "0, 13, 1, 1, W, w, 2" ); panel.add( electricKeys, "0, 14, 1, 1, W, w, 2" ); + panel.add( lineUpClosingBracket, "0, 15, 1, 1, W, w, 2"); + panel.add( doubleBracketIndent, "0, 16, 1, 1, W, w, 2"); return panel; } @@ -279,6 +288,8 @@ indentNextLine.setEnabled( usejEditIndenter.isSelected() ); unindentThisLine.setEnabled( usejEditIndenter.isSelected() ); electricKeys.setEnabled( usejEditIndenter.isSelected() ); + lineUpClosingBracket.setEnabled( usejEditIndenter.isSelected()); + doubleBracketIndent.setEnabled( usejEditIndenter.isSelected()); } } ); @@ -328,7 +339,9 @@ modeProperties.setProperty( "indentNextLine", indentNextLine.getText() ); modeProperties.setProperty( "unindentThisLine", unindentThisLine.getText() ); modeProperties.setProperty( "electricKeys", electricKeys.getText() ); - + modeProperties.setProperty( "lineUpClosingBracket", lineUpClosingBracket.isSelected() ? "true" : "false"); + modeProperties.setProperty( "doubleBracketIndent", doubleBracketIndent.isSelected() ? "true" : "false"); + currentMode.setProperty( "indentOpenBrackets", indentOpenBrackets.getText() ); currentMode.setProperty( "indentCloseBrackets", indentCloseBrackets.getText() ); currentMode.setProperty( "unalignedOpenBrackets", unalignedOpenBrackets.getText() ); @@ -336,6 +349,8 @@ currentMode.setProperty( "indentNextLine", indentNextLine.getText() ); currentMode.setProperty( "unindentThisLine", unindentThisLine.getText() ); currentMode.setProperty( "electricKeys", electricKeys.getText() ); + currentMode.setProperty( "lineUpClosingBracket", lineUpClosingBracket.isSelected()); + currentMode.setProperty( "doubleBracketIndent", doubleBracketIndent.isSelected()); } BeautyPlugin.saveProperties( name, modeProperties ); @@ -385,6 +400,16 @@ dontPostPadCharacters.setText( "" ); preInsertLineCharacters.setText( "" ); postInsertLineCharacters.setText( "" ); + + indentOpenBrackets.setText(""); + indentCloseBrackets.setText(""); + unalignedOpenBrackets.setText(""); + unalignedCloseBrackets.setText(""); + indentNextLine.setText(""); + unindentThisLine.setText(""); + electricKeys.setText(""); + lineUpClosingBracket.setSelected( false ); + doubleBracketIndent.setSelected( false ); } private void setComponentValues() { @@ -423,12 +448,17 @@ indentNextLine.setEnabled( usejEditIndenter.isSelected() ); unindentThisLine.setEnabled( usejEditIndenter.isSelected() ); electricKeys.setEnabled( usejEditIndenter.isSelected() ); - indentOpenBrackets.setText( ( String ) currentMode.getProperty( "indentOpenBrackets" ) ); - indentCloseBrackets.setText( ( String ) currentMode.getProperty( "indentCloseBrackets" ) ); - unalignedOpenBrackets.setText( ( String ) currentMode.getProperty( "unalignedOpenBrackets" ) ); - unalignedCloseBrackets.setText( ( String ) currentMode.getProperty( "unalignedCloseBrackets" ) ); - indentNextLine.setText( ( String ) currentMode.getProperty( "indentNextLine" ) ); - unindentThisLine.setText( ( String ) currentMode.getProperty( "unindentThisLine" ) ); - electricKeys.setText( ( String ) currentMode.getProperty( "electricKeys" ) ); + lineUpClosingBracket.setEnabled( usejEditIndenter.isSelected() ); + doubleBracketIndent.setEnabled( usejEditIndenter.isSelected() ); + + indentOpenBrackets.setText( getText( "indentOpenBrackets" ) ); + indentCloseBrackets.setText( getText( "indentCloseBrackets" ) ); + unalignedOpenBrackets.setText( getText( "unalignedOpenBrackets" ) ); + unalignedCloseBrackets.setText( getText( "unalignedCloseBrackets" ) ); + indentNextLine.setText( getText( "indentNextLine" ) ); + unindentThisLine.setText( getText( "unindentThisLine" ) ); + electricKeys.setText( getText( "electricKeys" ) ); + lineUpClosingBracket.setSelected( getBoolean("lineUpClosingBracket") ); + doubleBracketIndent.setSelected( getBoolean("doubleBracketIndent") ); } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |