mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
178601: Add control statement options to preference UI
This commit is contained in:
parent
93e5a9c520
commit
264311b69c
4 changed files with 162 additions and 25 deletions
|
@ -0,0 +1,139 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2007 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.preferences.formatter;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Observable;
|
||||
import java.util.Observer;
|
||||
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Group;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.formatter.DefaultCodeFormatterConstants;
|
||||
|
||||
|
||||
public class ControlStatementsTabPage extends FormatterTabPage {
|
||||
|
||||
/**
|
||||
* Constant array for boolean selection
|
||||
*/
|
||||
private static String[] FALSE_TRUE = {
|
||||
DefaultCodeFormatterConstants.FALSE,
|
||||
DefaultCodeFormatterConstants.TRUE
|
||||
};
|
||||
|
||||
/**
|
||||
* Constant array for insert / not_insert.
|
||||
*/
|
||||
private static String[] DO_NOT_INSERT_INSERT = {
|
||||
CCorePlugin.DO_NOT_INSERT,
|
||||
CCorePlugin.INSERT
|
||||
};
|
||||
|
||||
|
||||
private final String PREVIEW=
|
||||
createPreviewHeader(FormatterMessages.ControlStatementsTabPage_preview_header) +
|
||||
"class Example {" + //$NON-NLS-1$
|
||||
" void bar() {" + //$NON-NLS-1$
|
||||
" do {} while (true);" + //$NON-NLS-1$
|
||||
" try {} catch (...) { }" + //$NON-NLS-1$
|
||||
" }" + //$NON-NLS-1$
|
||||
" void foo2() {" + //$NON-NLS-1$
|
||||
" if (true) { " + //$NON-NLS-1$
|
||||
" return;" + //$NON-NLS-1$
|
||||
" }" + //$NON-NLS-1$
|
||||
" if (true) {" + //$NON-NLS-1$
|
||||
" return;" + //$NON-NLS-1$
|
||||
" } else if (false) {" + //$NON-NLS-1$
|
||||
" return; " + //$NON-NLS-1$
|
||||
" } else {" + //$NON-NLS-1$
|
||||
" return;" + //$NON-NLS-1$
|
||||
" }" + //$NON-NLS-1$
|
||||
" }" + //$NON-NLS-1$
|
||||
" void foo(int state) {" + //$NON-NLS-1$
|
||||
" if (true) return;" + //$NON-NLS-1$
|
||||
" if (true) " + //$NON-NLS-1$
|
||||
" return;" + //$NON-NLS-1$
|
||||
" else if (false)" + //$NON-NLS-1$
|
||||
" return;" + //$NON-NLS-1$
|
||||
" else return;" + //$NON-NLS-1$
|
||||
" }" + //$NON-NLS-1$
|
||||
"};"; //$NON-NLS-1$
|
||||
|
||||
|
||||
private TranslationUnitPreview fPreview;
|
||||
|
||||
protected CheckboxPreference fThenStatementPref, fSimpleIfPref;
|
||||
|
||||
|
||||
public ControlStatementsTabPage(ModifyDialog modifyDialog, Map workingValues) {
|
||||
super(modifyDialog, workingValues);
|
||||
}
|
||||
|
||||
protected void doCreatePreferences(Composite composite, int numColumns) {
|
||||
|
||||
final Group generalGroup= createGroup(numColumns, composite, FormatterMessages.ControlStatementsTabPage_general_group_title);
|
||||
createOption(generalGroup, numColumns, FormatterMessages.ControlStatementsTabPage_general_group_insert_new_line_before_else_statements, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, DO_NOT_INSERT_INSERT);
|
||||
createOption(generalGroup, numColumns, FormatterMessages.ControlStatementsTabPage_general_group_insert_new_line_before_catch_statements, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, DO_NOT_INSERT_INSERT);
|
||||
createOption(generalGroup, numColumns, FormatterMessages.ControlStatementsTabPage_general_group_insert_new_line_before_while_in_do_statements, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, DO_NOT_INSERT_INSERT);
|
||||
|
||||
final Group ifElseGroup= createGroup(numColumns, composite, FormatterMessages.ControlStatementsTabPage_if_else_group_title);
|
||||
fThenStatementPref= createOption(ifElseGroup, numColumns, FormatterMessages.ControlStatementsTabPage_if_else_group_keep_then_on_same_line, DefaultCodeFormatterConstants.FORMATTER_KEEP_THEN_STATEMENT_ON_SAME_LINE, FALSE_TRUE);
|
||||
|
||||
Label l= new Label(ifElseGroup, SWT.NONE);
|
||||
GridData gd= new GridData();
|
||||
gd.widthHint= fPixelConverter.convertWidthInCharsToPixels(4);
|
||||
l.setLayoutData(gd);
|
||||
|
||||
fSimpleIfPref= createOption(ifElseGroup, numColumns - 1, FormatterMessages.ControlStatementsTabPage_if_else_group_keep_simple_if_on_one_line, DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_IF_ON_ONE_LINE, FALSE_TRUE);
|
||||
|
||||
fThenStatementPref.addObserver( new Observer() {
|
||||
public void update(Observable o, Object arg) {
|
||||
fSimpleIfPref.setEnabled(!fThenStatementPref.getChecked());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
fSimpleIfPref.setEnabled(!fThenStatementPref.getChecked());
|
||||
|
||||
createOption(ifElseGroup, numColumns, FormatterMessages.ControlStatementsTabPage_if_else_group_keep_else_on_same_line, DefaultCodeFormatterConstants.FORMATTER_KEEP_ELSE_STATEMENT_ON_SAME_LINE, FALSE_TRUE);
|
||||
createCheckboxPref(ifElseGroup, numColumns, FormatterMessages.ControlStatementsTabPage_if_else_group_keep_else_if_on_one_line, DefaultCodeFormatterConstants.FORMATTER_COMPACT_ELSE_IF, FALSE_TRUE);
|
||||
// createCheckboxPref(ifElseGroup, numColumns, FormatterMessages.ControlStatementsTabPage_if_else_group_keep_guardian_clause_on_one_line, DefaultCodeFormatterConstants.FORMATTER_KEEP_GUARDIAN_CLAUSE_ON_ONE_LINE, FALSE_TRUE);
|
||||
}
|
||||
|
||||
protected void initializePage() {
|
||||
fPreview.setPreviewText(PREVIEW);
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.formatter.ModifyDialogTabPage#doCreateCPreview(org.eclipse.swt.widgets.Composite)
|
||||
*/
|
||||
protected CPreview doCreateCPreview(Composite parent) {
|
||||
fPreview= new TranslationUnitPreview(fWorkingValues, parent);
|
||||
return fPreview;
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.formatter.ModifyDialogTabPage#doUpdatePreview()
|
||||
*/
|
||||
protected void doUpdatePreview() {
|
||||
super.doUpdatePreview();
|
||||
fPreview.update();
|
||||
}
|
||||
|
||||
private CheckboxPreference createOption(Composite composite, int span, String name, String key, String [] values) {
|
||||
return createCheckboxPref(composite, span, name, key, values);
|
||||
}
|
||||
}
|
|
@ -320,17 +320,16 @@ final class FormatterMessages extends NLS {
|
|||
// public static String CommentsTabPage_new_line_after_param_tags;
|
||||
// public static String CommentsTabPage_group3_title;
|
||||
// public static String CommentsTabPage_line_width;
|
||||
// public static String ControlStatementsTabPage_preview_header;
|
||||
// public static String ControlStatementsTabPage_general_group_title;
|
||||
// public static String ControlStatementsTabPage_general_group_insert_new_line_before_else_statements;
|
||||
// public static String ControlStatementsTabPage_general_group_insert_new_line_before_catch_statements;
|
||||
// public static String ControlStatementsTabPage_general_group_insert_new_line_before_finally_statements;
|
||||
// public static String ControlStatementsTabPage_general_group_insert_new_line_before_while_in_do_statements;
|
||||
// public static String ControlStatementsTabPage_if_else_group_title;
|
||||
// public static String ControlStatementsTabPage_if_else_group_keep_then_on_same_line;
|
||||
// public static String ControlStatementsTabPage_if_else_group_keep_simple_if_on_one_line;
|
||||
// public static String ControlStatementsTabPage_if_else_group_keep_else_on_same_line;
|
||||
// public static String ControlStatementsTabPage_if_else_group_keep_else_if_on_one_line;
|
||||
public static String ControlStatementsTabPage_preview_header;
|
||||
public static String ControlStatementsTabPage_general_group_title;
|
||||
public static String ControlStatementsTabPage_general_group_insert_new_line_before_else_statements;
|
||||
public static String ControlStatementsTabPage_general_group_insert_new_line_before_catch_statements;
|
||||
public static String ControlStatementsTabPage_general_group_insert_new_line_before_while_in_do_statements;
|
||||
public static String ControlStatementsTabPage_if_else_group_title;
|
||||
public static String ControlStatementsTabPage_if_else_group_keep_then_on_same_line;
|
||||
public static String ControlStatementsTabPage_if_else_group_keep_simple_if_on_one_line;
|
||||
public static String ControlStatementsTabPage_if_else_group_keep_else_on_same_line;
|
||||
public static String ControlStatementsTabPage_if_else_group_keep_else_if_on_one_line;
|
||||
// public static String ControlStatementsTabPage_if_else_group_keep_guardian_clause_on_one_line;
|
||||
public static String CreateProfileDialog_status_message_profile_with_this_name_already_exists;
|
||||
public static String CreateProfileDialog_status_message_profile_name_is_empty;
|
||||
|
@ -366,7 +365,7 @@ final class FormatterMessages extends NLS {
|
|||
public static String ModifyDialog_tabpage_whitespace_title;
|
||||
// public static String ModifyDialog_tabpage_blank_lines_title;
|
||||
// public static String ModifyDialog_tabpage_new_lines_title;
|
||||
// public static String ModifyDialog_tabpage_control_statements_title;
|
||||
public static String ModifyDialog_tabpage_control_statements_title;
|
||||
public static String ModifyDialog_tabpage_line_wrapping_title;
|
||||
// public static String ModifyDialog_tabpage_comments_title;
|
||||
public static String ModifyDialogTabPage_preview_label_text;
|
||||
|
|
|
@ -364,18 +364,17 @@ CustomCodeFormatterBlock_contributed_formatter_warning=Contributed formatters ma
|
|||
#CommentsTabPage_line_width=Ma&ximum line width for comments:
|
||||
|
||||
|
||||
#ControlStatementsTabPage_preview_header=If...else
|
||||
#ControlStatementsTabPage_general_group_title=General
|
||||
#ControlStatementsTabPage_general_group_insert_new_line_before_else_statements=Insert new line before '&else' in an 'if' statement
|
||||
#ControlStatementsTabPage_general_group_insert_new_line_before_catch_statements=Insert new line before '&catch' in a 'try' statement
|
||||
#ControlStatementsTabPage_general_group_insert_new_line_before_finally_statements=Insert new line before '&finally' in a 'try' statement
|
||||
#ControlStatementsTabPage_general_group_insert_new_line_before_while_in_do_statements=Insert new line before 'w&hile' in a 'do' statement
|
||||
ControlStatementsTabPage_preview_header=If...else
|
||||
ControlStatementsTabPage_general_group_title=General
|
||||
ControlStatementsTabPage_general_group_insert_new_line_before_else_statements=Insert new line before '&else' in an 'if' statement
|
||||
ControlStatementsTabPage_general_group_insert_new_line_before_catch_statements=Insert new line before '&catch' in a 'try' statement
|
||||
ControlStatementsTabPage_general_group_insert_new_line_before_while_in_do_statements=Insert new line before 'w&hile' in a 'do' statement
|
||||
|
||||
#ControlStatementsTabPage_if_else_group_title='if else'
|
||||
#ControlStatementsTabPage_if_else_group_keep_then_on_same_line=Keep 'then' statement &on same line
|
||||
#ControlStatementsTabPage_if_else_group_keep_simple_if_on_one_line=Keep &simple 'if' on one line
|
||||
#ControlStatementsTabPage_if_else_group_keep_else_on_same_line=Keep 'else' st&atement on same line
|
||||
#ControlStatementsTabPage_if_else_group_keep_else_if_on_one_line=&Keep 'else if' on one line
|
||||
ControlStatementsTabPage_if_else_group_title='if else'
|
||||
ControlStatementsTabPage_if_else_group_keep_then_on_same_line=Keep 'then' statement &on same line
|
||||
ControlStatementsTabPage_if_else_group_keep_simple_if_on_one_line=Keep &simple 'if' on one line
|
||||
ControlStatementsTabPage_if_else_group_keep_else_on_same_line=Keep 'else' st&atement on same line
|
||||
ControlStatementsTabPage_if_else_group_keep_else_if_on_one_line=&Keep 'else if' on one line
|
||||
#ControlStatementsTabPage_if_else_group_keep_guardian_clause_on_one_line=Keep 'return' or 'throw' cla&use on one line
|
||||
|
||||
CreateProfileDialog_status_message_profile_with_this_name_already_exists=A profile with this name already exists.
|
||||
|
@ -429,7 +428,7 @@ ModifyDialog_tabpage_indentation_title=In&dentation
|
|||
ModifyDialog_tabpage_whitespace_title=&White Space
|
||||
#ModifyDialog_tabpage_blank_lines_title=Bla&nk Lines
|
||||
#ModifyDialog_tabpage_new_lines_title=New &Lines
|
||||
#ModifyDialog_tabpage_control_statements_title=Con&trol Statements
|
||||
ModifyDialog_tabpage_control_statements_title=Con&trol Statements
|
||||
ModifyDialog_tabpage_line_wrapping_title=Line Wra&pping
|
||||
#ModifyDialog_tabpage_comments_title=Co&mments
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ public class FormatterModifyDialog extends ModifyDialog {
|
|||
addTabPage(FormatterMessages.ModifyDialog_tabpage_whitespace_title, new WhiteSpaceTabPage(this, values));
|
||||
// addTabPage(FormatterMessages.ModifyDialog_tabpage_blank_lines_title, new BlankLinesTabPage(this, values));
|
||||
// addTabPage(FormatterMessages.ModifyDialog_tabpage_new_lines_title, new NewLinesTabPage(this, values));
|
||||
// addTabPage(FormatterMessages.ModifyDialog_tabpage_control_statements_title, new ControlStatementsTabPage(this, values));
|
||||
addTabPage(FormatterMessages.ModifyDialog_tabpage_control_statements_title, new ControlStatementsTabPage(this, values));
|
||||
addTabPage(FormatterMessages.ModifyDialog_tabpage_line_wrapping_title, new LineWrappingTabPage(this, values));
|
||||
// addTabPage(FormatterMessages.ModifyDialog_tabpage_comments_title, new CommentsTabPage(this, values));
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue