mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
80104 - Maintain consistency with JDT UI
Extracted Folding and Hovers tab pages into separate preference pages
This commit is contained in:
parent
c7d8278a6a
commit
908501d4a6
26 changed files with 364 additions and 197 deletions
|
@ -64,7 +64,6 @@ public class FoldingTest extends TestCase {
|
|||
|
||||
IPreferenceStore store= CUIPlugin.getDefault().getPreferenceStore();
|
||||
store.setValue(PreferenceConstants.EDITOR_FOLDING_ENABLED, true);
|
||||
store.setValue(PreferenceConstants.EDITOR_FOLDING_COMMENTS_ENABLED, true);
|
||||
store.setValue(PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED, true);
|
||||
store.setValue(PreferenceConstants.EDITOR_FOLDING_INACTIVE_CODE, false);
|
||||
store.setValue(PreferenceConstants.EDITOR_FOLDING_HEADERS, false);
|
||||
|
@ -82,7 +81,6 @@ public class FoldingTest extends TestCase {
|
|||
|
||||
IPreferenceStore store= CUIPlugin.getDefault().getPreferenceStore();
|
||||
store.setToDefault(PreferenceConstants.EDITOR_FOLDING_ENABLED);
|
||||
store.setToDefault(PreferenceConstants.EDITOR_FOLDING_COMMENTS_ENABLED);
|
||||
store.setToDefault(PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED);
|
||||
store.setToDefault(PreferenceConstants.EDITOR_FOLDING_INACTIVE_CODE);
|
||||
store.setToDefault(PreferenceConstants.EDITOR_FOLDING_HEADERS);
|
||||
|
|
|
@ -139,6 +139,8 @@ CodeFormatterPreferencePage.name=Code Style
|
|||
CodeAssistPreferencePage.name=Content Assist
|
||||
SmartTypingPreferencePage.name=Typing
|
||||
ColoringPreferencePage.name=Syntax Coloring
|
||||
FoldingPreferencePage.name=Folding
|
||||
HoverPreferencePage.name=Hovers
|
||||
|
||||
todoPageName=C/C++ Task Tags
|
||||
todoTaskPrefName=Task Tags
|
||||
|
|
|
@ -585,6 +585,16 @@
|
|||
category="org.eclipse.cdt.ui.preferences.CEditorPreferencePage"
|
||||
class="org.eclipse.cdt.internal.ui.preferences.CEditorColoringPreferencePage"
|
||||
id="org.eclipse.cdt.ui.preferences.CodeColoringPreferencePage"/>
|
||||
<page
|
||||
name="%FoldingPreferencePage.name"
|
||||
category="org.eclipse.cdt.ui.preferences.CEditorPreferencePage"
|
||||
class="org.eclipse.cdt.internal.ui.preferences.FoldingPreferencePage"
|
||||
id="org.eclipse.cdt.ui.preferences.FoldingPreferencePage"/>
|
||||
<page
|
||||
name="%HoverPreferencePage.name"
|
||||
category="org.eclipse.cdt.ui.preferences.CEditorPreferencePage"
|
||||
class="org.eclipse.cdt.internal.ui.preferences.CEditorHoverPreferencePage"
|
||||
id="org.eclipse.cdt.ui.preferences.HoverPreferencePage"/>
|
||||
<page
|
||||
name="%CPluginTemplatePreferencePage.name"
|
||||
category="org.eclipse.cdt.ui.preferences.CEditorPreferencePage"
|
||||
|
@ -637,12 +647,12 @@
|
|||
class="org.eclipse.cdt.internal.ui.preferences.IndexerPreferencePage"
|
||||
id="org.eclipse.cdt.ui.preferences.IndexerPreferencePage"
|
||||
name="%indexerPrefName"/>
|
||||
<page
|
||||
<!--page
|
||||
name="%WorkInProgress.name"
|
||||
category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage"
|
||||
class="org.eclipse.cdt.internal.ui.preferences.WorkInProgressPreferencePage"
|
||||
id="org.eclipse.cdt.ui.preferneces.WorkInProgressPreferencePage">
|
||||
</page>
|
||||
</page-->
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.editorActions">
|
||||
|
|
|
@ -276,8 +276,6 @@ Editor.error.revert.message=Internal error:
|
|||
Editor.error.no_input=Unable to read text editor input
|
||||
Editor.error.invalid_input=Invalid text editor input
|
||||
|
||||
CEditorPreferencePage.description= C/C++ Editor Preferences
|
||||
|
||||
# ------- OpenIncludeDeclarationAction------------
|
||||
|
||||
OpenIncludeAction.label=&Open
|
||||
|
|
|
@ -54,6 +54,7 @@ public interface ICHelpContextIds {
|
|||
public static final String C_EDITOR_NAVIGATION_PAGE = PREFIX + "c_editor_navigation"; //$NON-NLS-1$
|
||||
public static final String C_EDITOR_HOVERS_PAGE = PREFIX + "c_editor_hov"; //$NON-NLS-1$
|
||||
public static final String C_EDITOR_TYPING_PAGE = PREFIX + "c_editor_typing"; //$NON-NLS-1$;
|
||||
public static final String C_EDITOR_FOLDING_PAGE = PREFIX + "c_editor_folding"; //$NON-NLS-1$;
|
||||
public static final String FILE_TYPES_STD_PAGE = PREFIX + "std_prop_file_types"; //$NON-NLS-1$
|
||||
public static final String FILE_TYPES_MAN_PAGE = PREFIX + "std_prop_file_types"; //$NON-NLS-1$
|
||||
public static final String FILE_TYPES_PREF_PAGE = PREFIX + "c_file_types"; //$NON-NLS-1$
|
||||
|
|
|
@ -2915,10 +2915,12 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IR
|
|||
protected String[] collectContextMenuPreferencePages() {
|
||||
// Add C/C++ Editor relevant pages
|
||||
String[] parentPrefPageIds = super.collectContextMenuPreferencePages();
|
||||
String[] prefPageIds = new String[parentPrefPageIds.length + 6];
|
||||
String[] prefPageIds = new String[parentPrefPageIds.length + 8];
|
||||
int nIds = 0;
|
||||
prefPageIds[nIds++] = "org.eclipse.cdt.ui.preferences.CEditorPreferencePage"; //$NON-NLS-1$
|
||||
prefPageIds[nIds++] = "org.eclipse.cdt.ui.preferences.CodeAssistPreferencePage"; //$NON-NLS-1$
|
||||
prefPageIds[nIds++] = "org.eclipse.cdt.ui.preferences.HoverPreferencePage"; //$NON-NLS-1$
|
||||
prefPageIds[nIds++] = "org.eclipse.cdt.ui.preferences.FoldingPreferencePage"; //$NON-NLS-1$
|
||||
prefPageIds[nIds++] = "org.eclipse.cdt.ui.preferences.CodeColoringPreferencePage"; //$NON-NLS-1$
|
||||
prefPageIds[nIds++] = "org.eclipse.cdt.ui.preferences.TemplatePreferencePage"; //$NON-NLS-1$
|
||||
prefPageIds[nIds++] = "org.eclipse.cdt.ui.preferences.SmartTypingPreferencePage"; //$NON-NLS-1$
|
||||
|
|
|
@ -21,8 +21,6 @@ AddIncludeOnSelection.error.message4=BadLocationException:
|
|||
AddIncludeOnSelection.label=Add Include
|
||||
AddIncludeOnSelection.tooltip=Add Include Statement on Selection
|
||||
|
||||
CEditorPreferencePage.description= C Editor Preferences
|
||||
|
||||
OpenHierarchy.description=Show the type hierarchy of the selected element
|
||||
OpenHierarchy.dialog.message=&Select the type to open:
|
||||
OpenHierarchy.dialog.title=Open Type Hierarchy
|
||||
|
|
|
@ -692,9 +692,13 @@ public class SemanticHighlightingPresenter implements ITextPresentationListener,
|
|||
* Invalidate text presentation of all positions.
|
||||
*/
|
||||
private void invalidateTextPresentation() {
|
||||
for (int i= 0, n= fPositions.size(); i < n; i++) {
|
||||
Position position= (Position) fPositions.get(i);
|
||||
fSourceViewer.invalidateTextPresentation(position.getOffset(), position.getLength());
|
||||
if (fPositions.size() > 1000) {
|
||||
fSourceViewer.invalidateTextPresentation();
|
||||
} else {
|
||||
for (int i= 0, n= fPositions.size(); i < n; i++) {
|
||||
Position position= (Position) fPositions.get(i);
|
||||
fSourceViewer.invalidateTextPresentation(position.getOffset(), position.getLength());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,8 +19,11 @@ import java.util.Iterator;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.preference.PreferencePage;
|
||||
import org.eclipse.jface.resource.JFaceResources;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.ModifyEvent;
|
||||
import org.eclipse.swt.events.ModifyListener;
|
||||
|
@ -34,21 +37,13 @@ import org.eclipse.swt.widgets.Control;
|
|||
import org.eclipse.swt.widgets.Group;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Text;
|
||||
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.preference.PreferencePage;
|
||||
import org.eclipse.jface.resource.JFaceResources;
|
||||
|
||||
import org.eclipse.jface.text.Assert;
|
||||
|
||||
import org.eclipse.ui.forms.events.ExpansionAdapter;
|
||||
import org.eclipse.ui.forms.events.ExpansionEvent;
|
||||
import org.eclipse.ui.forms.widgets.ExpandableComposite;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.util.Messages;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
|
||||
import org.eclipse.cdt.internal.ui.dialogs.StatusUtil;
|
||||
import org.eclipse.cdt.internal.ui.util.Messages;
|
||||
import org.eclipse.cdt.internal.ui.util.PixelConverter;
|
||||
|
||||
/**
|
||||
|
|
|
@ -26,6 +26,7 @@ import org.eclipse.jface.resource.JFaceResources;
|
|||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.Document;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.viewers.IColorProvider;
|
||||
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||
|
@ -40,6 +41,7 @@ import org.eclipse.swt.SWT;
|
|||
import org.eclipse.swt.events.SelectionAdapter;
|
||||
import org.eclipse.swt.events.SelectionEvent;
|
||||
import org.eclipse.swt.events.SelectionListener;
|
||||
import org.eclipse.swt.graphics.Color;
|
||||
import org.eclipse.swt.graphics.Font;
|
||||
import org.eclipse.swt.graphics.FontMetrics;
|
||||
import org.eclipse.swt.graphics.GC;
|
||||
|
@ -49,6 +51,7 @@ import org.eclipse.swt.layout.GridLayout;
|
|||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Link;
|
||||
import org.eclipse.swt.widgets.ScrollBar;
|
||||
|
@ -187,7 +190,7 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
|
|||
/**
|
||||
* Color list label provider.
|
||||
*/
|
||||
private class ColorListLabelProvider extends LabelProvider {
|
||||
private class ColorListLabelProvider extends LabelProvider implements IColorProvider {
|
||||
/*
|
||||
* @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
|
||||
*/
|
||||
|
@ -196,6 +199,25 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
|
|||
return (String) element;
|
||||
return ((HighlightingColorListItem)element).getDisplayName();
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
|
||||
*/
|
||||
public Color getBackground(Object element) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
|
||||
*/
|
||||
public Color getForeground(Object element) {
|
||||
if (element instanceof SemanticHighlightingColorListItem) {
|
||||
if (!getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SEMANTIC_HIGHLIGHTING_ENABLED)) {
|
||||
return Display.getDefault().getSystemColor(SWT.COLOR_GRAY);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -294,6 +316,7 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
|
|||
|
||||
private ColorSelector fSyntaxForegroundColorEditor;
|
||||
private Label fColorEditorLabel;
|
||||
private Button fEnableSemanticHighlightingCheckbox;
|
||||
private Button fBoldCheckBox;
|
||||
private Button fEnableCheckbox;
|
||||
/**
|
||||
|
@ -451,6 +474,9 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
|
|||
public void performDefaults() {
|
||||
super.performDefaults();
|
||||
|
||||
fEnableSemanticHighlightingCheckbox.setSelection(getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SEMANTIC_HIGHLIGHTING_ENABLED));
|
||||
fListViewer.refresh();
|
||||
|
||||
handleSyntaxColorListSelection();
|
||||
|
||||
uninstallSemanticHighlighting();
|
||||
|
@ -488,8 +514,9 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
|
|||
fStrikethroughCheckBox.setSelection(getPreferenceStore().getBoolean(item.getStrikethroughKey()));
|
||||
fUnderlineCheckBox.setSelection(getPreferenceStore().getBoolean(item.getUnderlineKey()));
|
||||
if (item instanceof SemanticHighlightingColorListItem) {
|
||||
fEnableCheckbox.setEnabled(true);
|
||||
boolean enable= getPreferenceStore().getBoolean(((SemanticHighlightingColorListItem) item).getEnableKey());
|
||||
boolean semanticHighlightingEnabled= getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SEMANTIC_HIGHLIGHTING_ENABLED);
|
||||
fEnableCheckbox.setEnabled(semanticHighlightingEnabled);
|
||||
boolean enable= semanticHighlightingEnabled && getPreferenceStore().getBoolean(((SemanticHighlightingColorListItem) item).getEnableKey());
|
||||
fEnableCheckbox.setSelection(enable);
|
||||
fSyntaxForegroundColorEditor.getButton().setEnabled(enable);
|
||||
fColorEditorLabel.setEnabled(enable);
|
||||
|
@ -534,6 +561,13 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
|
|||
link.setLayoutData(gridData);
|
||||
|
||||
addFiller(colorComposite, 1);
|
||||
|
||||
fEnableSemanticHighlightingCheckbox= new Button(colorComposite, SWT.CHECK);
|
||||
fEnableSemanticHighlightingCheckbox.setText(PreferencesMessages.CEditorColoringConfigurationBlock_enable_semantic_highlighting);
|
||||
gridData= new GridData(GridData.FILL_HORIZONTAL);
|
||||
gridData.horizontalAlignment= GridData.BEGINNING;
|
||||
gridData.horizontalSpan= 1;
|
||||
fEnableSemanticHighlightingCheckbox.setLayoutData(gridData);
|
||||
|
||||
Label label;
|
||||
label= new Label(colorComposite, SWT.LEFT);
|
||||
|
@ -722,6 +756,23 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
|
|||
}
|
||||
});
|
||||
|
||||
fEnableSemanticHighlightingCheckbox.addSelectionListener(new SelectionListener() {
|
||||
public void widgetDefaultSelected(SelectionEvent e) {
|
||||
// do nothing
|
||||
}
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
HighlightingColorListItem item= getHighlightingColorListItem();
|
||||
if (item instanceof SemanticHighlightingColorListItem) {
|
||||
boolean enable= fEnableSemanticHighlightingCheckbox.getSelection();
|
||||
getPreferenceStore().setValue(PreferenceConstants.EDITOR_SEMANTIC_HIGHLIGHTING_ENABLED, enable);
|
||||
fListViewer.refresh();
|
||||
handleSyntaxColorListSelection();
|
||||
uninstallSemanticHighlighting();
|
||||
installSemanticHighlighting();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
colorComposite.layout(false);
|
||||
|
||||
return colorComposite;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2002, 2005 QNX Software Systems and others.
|
||||
* Copyright (c) 2002, 2006 QNX Software Systems 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
|
||||
|
@ -7,6 +7,7 @@
|
|||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
* Anton Leherbauer (Wind River Systems)
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.internal.ui.preferences;
|
||||
|
@ -15,19 +16,11 @@ import java.util.ArrayList;
|
|||
import java.util.HashMap;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
||||
import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
|
||||
import org.eclipse.cdt.internal.ui.dialogs.StatusUtil;
|
||||
import org.eclipse.cdt.internal.ui.text.c.hover.CEditorTextHoverDescriptor;
|
||||
import org.eclipse.cdt.internal.ui.util.PixelConverter;
|
||||
import org.eclipse.cdt.internal.ui.util.SWTUtil;
|
||||
import org.eclipse.cdt.internal.ui.util.TableLayoutComposite;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.jface.action.Action;
|
||||
import org.eclipse.jface.dialogs.Dialog;
|
||||
import org.eclipse.jface.text.Assert;
|
||||
import org.eclipse.jface.preference.PreferencePage;
|
||||
import org.eclipse.jface.viewers.CheckStateChangedEvent;
|
||||
import org.eclipse.jface.viewers.CheckboxTableViewer;
|
||||
import org.eclipse.jface.viewers.ColumnWeightData;
|
||||
|
@ -60,10 +53,21 @@ import org.eclipse.swt.widgets.TableItem;
|
|||
import org.eclipse.swt.widgets.Text;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
||||
import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
|
||||
import org.eclipse.cdt.internal.ui.dialogs.StatusUtil;
|
||||
import org.eclipse.cdt.internal.ui.text.c.hover.CEditorTextHoverDescriptor;
|
||||
import org.eclipse.cdt.internal.ui.util.PixelConverter;
|
||||
import org.eclipse.cdt.internal.ui.util.SWTUtil;
|
||||
import org.eclipse.cdt.internal.ui.util.TableLayoutComposite;
|
||||
|
||||
/**
|
||||
* CEditorHoverConfigurationBlock
|
||||
*/
|
||||
public class CEditorHoverConfigurationBlock {
|
||||
public class CEditorHoverConfigurationBlock implements IPreferenceConfigurationBlock {
|
||||
static final String DELIMITER= PreferencesMessages.CEditorHoverConfigurationBlock_delimiter;
|
||||
|
||||
private static final int ENABLED_PROP= 0;
|
||||
|
@ -152,11 +156,11 @@ public class CEditorHoverConfigurationBlock {
|
|||
//private Button fShowHoverAffordanceCheckbox;
|
||||
private Button fShowEditorAnnotationCheckbox;
|
||||
|
||||
private CEditorPreferencePage fMainPreferencePage;
|
||||
private PreferencePage fMainPreferencePage;
|
||||
|
||||
private StatusInfo fStatus;
|
||||
|
||||
public CEditorHoverConfigurationBlock(CEditorPreferencePage mainPreferencePage, OverlayPreferenceStore store) {
|
||||
public CEditorHoverConfigurationBlock(PreferencePage mainPreferencePage, OverlayPreferenceStore store) {
|
||||
Assert.isNotNull(mainPreferencePage);
|
||||
Assert.isNotNull(store);
|
||||
fMainPreferencePage= mainPreferencePage;
|
||||
|
@ -180,11 +184,8 @@ public class CEditorHoverConfigurationBlock {
|
|||
return keys;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates page for hover preferences.
|
||||
*
|
||||
* @param parent the parent composite
|
||||
* @return the control for the preference page
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.IPreferenceConfigurationBlock#createControl(org.eclipse.swt.widgets.Composite)
|
||||
*/
|
||||
public Control createControl(Composite parent) {
|
||||
|
||||
|
@ -380,7 +381,10 @@ public class CEditorHoverConfigurationBlock {
|
|||
return CUIPlugin.getDefault().getCEditorTextHoverDescriptors();
|
||||
}
|
||||
|
||||
void initialize() {
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.IPreferenceConfigurationBlock#initialize()
|
||||
*/
|
||||
public void initialize() {
|
||||
CEditorTextHoverDescriptor[] hoverDescs= getContributedHovers();
|
||||
fHoverConfigs= new HoverConfig[hoverDescs.length];
|
||||
for (int i= 0; i < hoverDescs.length; i++)
|
||||
|
@ -403,7 +407,10 @@ public class CEditorHoverConfigurationBlock {
|
|||
fHoverTableViewer.refresh();
|
||||
}
|
||||
|
||||
void performOk() {
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.IPreferenceConfigurationBlock#performOk()
|
||||
*/
|
||||
public void performOk() {
|
||||
StringBuffer buf= new StringBuffer();
|
||||
StringBuffer maskBuf= new StringBuffer();
|
||||
for (int i= 0; i < fHoverConfigs.length; i++) {
|
||||
|
@ -430,7 +437,10 @@ public class CEditorHoverConfigurationBlock {
|
|||
CUIPlugin.getDefault().resetCEditorTextHoverDescriptors();
|
||||
}
|
||||
|
||||
void performDefaults() {
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.IPreferenceConfigurationBlock#performDefaults()
|
||||
*/
|
||||
public void performDefaults() {
|
||||
fStatus= new StatusInfo();
|
||||
restoreFromPreferences();
|
||||
initializeFields();
|
||||
|
@ -553,12 +563,8 @@ public class CEditorHoverConfigurationBlock {
|
|||
i++;
|
||||
}
|
||||
|
||||
if (fStatus.isOK())
|
||||
fMainPreferencePage.updateStatus(fStatus);
|
||||
else {
|
||||
fMainPreferencePage.setValid(false);
|
||||
StatusUtil.applyToStatusLine(fMainPreferencePage, fStatus);
|
||||
}
|
||||
fMainPreferencePage.setValid(fStatus.isOK());
|
||||
StatusUtil.applyToStatusLine(fMainPreferencePage, fStatus);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2006 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
|
||||
* Anton Leherbauer (Wind River Systems)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.preferences;
|
||||
|
||||
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
||||
|
||||
/**
|
||||
* The page for setting the editor hover options.
|
||||
*/
|
||||
public final class CEditorHoverPreferencePage extends AbstractConfigurationBlockPreferencePage {
|
||||
|
||||
/*
|
||||
* @see org.eclipse.ui.internal.editors.text.AbstractConfigureationBlockPreferencePage#getHelpId()
|
||||
*/
|
||||
protected String getHelpId() {
|
||||
return ICHelpContextIds.C_EDITOR_HOVERS_PAGE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.ui.internal.editors.text.AbstractConfigurationBlockPreferencePage#setDescription()
|
||||
*/
|
||||
protected void setDescription() {
|
||||
String description= PreferencesMessages.CEditorPreferencePage_hover_title;
|
||||
setDescription(description);
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.org.eclipse.ui.internal.editors.text.AbstractConfigurationBlockPreferencePage#setPreferenceStore()
|
||||
*/
|
||||
protected void setPreferenceStore() {
|
||||
setPreferenceStore(CUIPlugin.getDefault().getPreferenceStore());
|
||||
}
|
||||
|
||||
|
||||
protected Label createDescriptionLabel(Composite parent) {
|
||||
return null; // no description for new look.
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.ui.internal.editors.text.AbstractConfigureationBlockPreferencePage#createConfigurationBlock(org.eclipse.ui.internal.editors.text.OverlayPreferenceStore)
|
||||
*/
|
||||
protected IPreferenceConfigurationBlock createConfigurationBlock(OverlayPreferenceStore overlayPreferenceStore) {
|
||||
return new CEditorHoverConfigurationBlock(this, overlayPreferenceStore);
|
||||
}
|
||||
}
|
|
@ -32,16 +32,12 @@ import org.eclipse.swt.widgets.Label;
|
|||
import org.eclipse.swt.widgets.Link;
|
||||
import org.eclipse.swt.widgets.List;
|
||||
import org.eclipse.swt.widgets.Listener;
|
||||
import org.eclipse.swt.widgets.TabFolder;
|
||||
import org.eclipse.swt.widgets.TabItem;
|
||||
import org.eclipse.ui.IWorkbenchPreferencePage;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
import org.eclipse.ui.dialogs.PreferencesUtil;
|
||||
import org.eclipse.ui.texteditor.AbstractTextEditor;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
import org.eclipse.cdt.utils.ui.controls.TabFolderLayout;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
|
@ -56,23 +52,13 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
|
|||
{PreferencesMessages.CEditorPreferencePage_behaviorPage_inactiveCodeColor, CEditor.INACTIVE_CODE_COLOR, null },
|
||||
};
|
||||
|
||||
protected List fList;
|
||||
protected ColorSelector fForegroundColorEditor;
|
||||
protected Button fBoldCheckBox;
|
||||
|
||||
private CEditorHoverConfigurationBlock fCEditorHoverConfigurationBlock;
|
||||
private FoldingConfigurationBlock fFoldingConfigurationBlock;
|
||||
|
||||
private List fAppearanceColorList;
|
||||
|
||||
private ColorSelector fAppearanceColorEditor;
|
||||
|
||||
private Button fAppearanceColorDefault;
|
||||
|
||||
|
||||
public CEditorPreferencePage() {
|
||||
super();
|
||||
setDescription(CUIPlugin.getResourceString("CEditorPreferencePage.description")); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
protected OverlayPreferenceStore.OverlayKey[] createOverlayStoreKeys() {
|
||||
|
@ -265,6 +251,9 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
|
|||
PreferencesUtil.createPreferenceDialogOn(getShell(), u, null, null);
|
||||
}
|
||||
});
|
||||
// TODO replace by link-specific tooltips when
|
||||
// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=88866 gets fixed
|
||||
link.setToolTipText(PreferencesMessages.CEditorPreferencePage_link_tooltip);
|
||||
|
||||
GridData gridData= new GridData(SWT.FILL, SWT.BEGINNING, true, false);
|
||||
gridData.widthHint= 150; // only expand further if anyone else requires it
|
||||
|
@ -277,33 +266,16 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
|
|||
*/
|
||||
protected Control createContents(Composite parent) {
|
||||
|
||||
fCEditorHoverConfigurationBlock= new CEditorHoverConfigurationBlock(this, fOverlayStore);
|
||||
fFoldingConfigurationBlock= new FoldingConfigurationBlock(fOverlayStore);
|
||||
|
||||
fOverlayStore.load();
|
||||
fOverlayStore.start();
|
||||
|
||||
createHeader(parent);
|
||||
|
||||
TabFolder folder = new TabFolder(parent, SWT.NONE);
|
||||
folder.setLayout(new TabFolderLayout());
|
||||
folder.setLayoutData(new GridData(GridData.FILL_BOTH));
|
||||
|
||||
TabItem item = new TabItem(folder, SWT.NONE);
|
||||
item.setText(PreferencesMessages.CEditorPreferencePage_generalTabTitle);
|
||||
item.setControl(createAppearancePage(folder));
|
||||
|
||||
item= new TabItem(folder, SWT.NONE);
|
||||
item.setText(PreferencesMessages.CEditorPreferencePage_hoverTab_title);
|
||||
item.setControl(fCEditorHoverConfigurationBlock.createControl(folder));
|
||||
|
||||
item= new TabItem(folder, SWT.NONE);
|
||||
item.setText(PreferencesMessages.CEditorPreferencePage_folding_title);
|
||||
item.setControl(fFoldingConfigurationBlock.createControl(folder));
|
||||
createAppearancePage(parent);
|
||||
|
||||
initialize();
|
||||
|
||||
return folder;
|
||||
return parent;
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
|
@ -320,45 +292,28 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
|
|||
}
|
||||
});
|
||||
|
||||
fFoldingConfigurationBlock.initialize();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* @see PreferencePage#performOk()
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.AbstractPreferencePage#performOk()
|
||||
*/
|
||||
public boolean performOk() {
|
||||
fCEditorHoverConfigurationBlock.performOk();
|
||||
fFoldingConfigurationBlock.performOk();
|
||||
return super.performOk();
|
||||
}
|
||||
|
||||
/*
|
||||
* @see PreferencePage#performDefaults()
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.AbstractPreferencePage#performDefaults()
|
||||
*/
|
||||
protected void performDefaults() {
|
||||
|
||||
super.performDefaults();
|
||||
|
||||
handleAppearanceColorListSelection();
|
||||
|
||||
fCEditorHoverConfigurationBlock.performDefaults();
|
||||
fFoldingConfigurationBlock.performDefaults();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* @see DialogPage#dispose()
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.AbstractPreferencePage#dispose()
|
||||
*/
|
||||
public void dispose() {
|
||||
|
||||
fFoldingConfigurationBlock.dispose();
|
||||
|
||||
if (fOverlayStore != null) {
|
||||
fOverlayStore.stop();
|
||||
fOverlayStore = null;
|
||||
}
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
|
|
@ -16,16 +16,10 @@ import java.util.HashMap;
|
|||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.text.folding.CFoldingStructureProviderDescriptor;
|
||||
import org.eclipse.cdt.internal.ui.text.folding.CFoldingStructureProviderRegistry;
|
||||
import org.eclipse.cdt.internal.ui.util.PixelConverter;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
import org.eclipse.cdt.ui.text.folding.ICFoldingPreferenceBlock;
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.jface.text.Assert;
|
||||
import org.eclipse.jface.viewers.ComboViewer;
|
||||
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||
import org.eclipse.jface.viewers.IStructuredContentProvider;
|
||||
|
@ -48,12 +42,20 @@ import org.eclipse.swt.widgets.Composite;
|
|||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
import org.eclipse.cdt.ui.text.folding.ICFoldingPreferenceBlock;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.text.folding.CFoldingStructureProviderDescriptor;
|
||||
import org.eclipse.cdt.internal.ui.text.folding.CFoldingStructureProviderRegistry;
|
||||
import org.eclipse.cdt.internal.ui.util.PixelConverter;
|
||||
|
||||
/**
|
||||
* Configures C Editor folding preferences.
|
||||
*
|
||||
* @since 3.0
|
||||
*/
|
||||
class FoldingConfigurationBlock {
|
||||
class FoldingConfigurationBlock implements IPreferenceConfigurationBlock {
|
||||
|
||||
private static class ErrorPreferences implements ICFoldingPreferenceBlock {
|
||||
private String fMessage;
|
||||
|
@ -135,13 +137,10 @@ class FoldingConfigurationBlock {
|
|||
return keys;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates page for folding preferences.
|
||||
*
|
||||
* @param parent the parent composite
|
||||
* @return the control for the preference page
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.IPreferenceConfigurationBlock#createControl(org.eclipse.swt.widgets.Composite)
|
||||
*/
|
||||
Control createControl(Composite parent) {
|
||||
public Control createControl(Composite parent) {
|
||||
|
||||
Composite composite= new Composite(parent, SWT.NULL);
|
||||
// assume parent page uses griddata
|
||||
|
@ -307,18 +306,27 @@ class FoldingConfigurationBlock {
|
|||
prefs.initialize();
|
||||
}
|
||||
|
||||
void initialize() {
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.IPreferenceConfigurationBlock#initialize()
|
||||
*/
|
||||
public void initialize() {
|
||||
restoreFromPreferences();
|
||||
}
|
||||
|
||||
void performOk() {
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.IPreferenceConfigurationBlock#performOk()
|
||||
*/
|
||||
public void performOk() {
|
||||
for (Iterator it= fProviderPreferences.values().iterator(); it.hasNext();) {
|
||||
ICFoldingPreferenceBlock prefs= (ICFoldingPreferenceBlock) it.next();
|
||||
prefs.performOk();
|
||||
}
|
||||
}
|
||||
|
||||
void performDefaults() {
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.IPreferenceConfigurationBlock#performDefaults()
|
||||
*/
|
||||
public void performDefaults() {
|
||||
restoreFromPreferences();
|
||||
for (Iterator it= fProviderPreferences.values().iterator(); it.hasNext();) {
|
||||
ICFoldingPreferenceBlock prefs= (ICFoldingPreferenceBlock) it.next();
|
||||
|
@ -326,7 +334,10 @@ class FoldingConfigurationBlock {
|
|||
}
|
||||
}
|
||||
|
||||
void dispose() {
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.preferences.IPreferenceConfigurationBlock#dispose()
|
||||
*/
|
||||
public void dispose() {
|
||||
for (Iterator it= fProviderPreferences.values().iterator(); it.hasNext();) {
|
||||
ICFoldingPreferenceBlock prefs= (ICFoldingPreferenceBlock) it.next();
|
||||
prefs.dispose();
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2006 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
|
||||
* Anton Leherbauer (Wind River Systems)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.preferences;
|
||||
|
||||
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
||||
|
||||
/**
|
||||
* The page for setting the editor folding options.
|
||||
*/
|
||||
public final class FoldingPreferencePage extends AbstractConfigurationBlockPreferencePage {
|
||||
|
||||
/*
|
||||
* @see org.eclipse.ui.internal.editors.text.AbstractConfigureationBlockPreferencePage#getHelpId()
|
||||
*/
|
||||
protected String getHelpId() {
|
||||
return ICHelpContextIds.C_EDITOR_FOLDING_PAGE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.ui.internal.editors.text.AbstractConfigurationBlockPreferencePage#setDescription()
|
||||
*/
|
||||
protected void setDescription() {
|
||||
String description= PreferencesMessages.CEditorPreferencePage_folding_title;
|
||||
setDescription(description);
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.org.eclipse.ui.internal.editors.text.AbstractConfigurationBlockPreferencePage#setPreferenceStore()
|
||||
*/
|
||||
protected void setPreferenceStore() {
|
||||
setPreferenceStore(CUIPlugin.getDefault().getPreferenceStore());
|
||||
}
|
||||
|
||||
|
||||
protected Label createDescriptionLabel(Composite parent) {
|
||||
return null; // no description for new look.
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.ui.internal.editors.text.AbstractConfigureationBlockPreferencePage#createConfigurationBlock(org.eclipse.ui.internal.editors.text.OverlayPreferenceStore)
|
||||
*/
|
||||
protected IPreferenceConfigurationBlock createConfigurationBlock(OverlayPreferenceStore overlayPreferenceStore) {
|
||||
return new FoldingConfigurationBlock(overlayPreferenceStore);
|
||||
}
|
||||
}
|
|
@ -60,7 +60,7 @@ public final class PreferencesMessages extends NLS {
|
|||
public static String TodoTaskInputDialog_error_entryExists;
|
||||
public static String TodoTaskInputDialog_error_noSpace;
|
||||
public static String CEditorPreferencePage_link;
|
||||
public static String CEditorPreferencePage_generalTabTitle;
|
||||
public static String CEditorPreferencePage_link_tooltip;
|
||||
public static String CEditorPreferencePage_colors;
|
||||
public static String CEditorPreferencePage_invalid_input;
|
||||
public static String CEditorPreferencePage_empty_input;
|
||||
|
@ -99,6 +99,7 @@ public final class PreferencesMessages extends NLS {
|
|||
public static String CEditorColoringConfigurationBlock_coloring_category_preprocessor;
|
||||
public static String CEditorColoringConfigurationBlock_coloring_element;
|
||||
public static String CEditorColoringConfigurationBlock_link;
|
||||
public static String CEditorColoringConfigurationBlock_enable_semantic_highlighting;
|
||||
public static String CEditorColoringConfigurationBlock_enable;
|
||||
public static String CEditorColoringConfigurationBlock_preview;
|
||||
public static String CEditorColoringConfigurationBlock_color;
|
||||
|
@ -136,7 +137,7 @@ public final class PreferencesMessages extends NLS {
|
|||
public static String CFileTypeDialog_title;
|
||||
public static String CFileTypeDialog_patternLabel;
|
||||
public static String CFileTypeDialog_typeLabel;
|
||||
public static String CEditorPreferencePage_hoverTab_title;
|
||||
public static String CEditorPreferencePage_hover_title;
|
||||
public static String CEditorHoverConfigurationBlock_hoverPreferences;
|
||||
public static String CEditorHoverConfigurationBlock_keyModifier;
|
||||
public static String CEditorHoverConfigurationBlock_description;
|
||||
|
|
|
@ -60,8 +60,9 @@ TodoTaskInputDialog_error_comma=Name cannot contain a comma.
|
|||
TodoTaskInputDialog_error_entryExists=Entry with the same name already exists.
|
||||
TodoTaskInputDialog_error_noSpace=Name can not start or end with a whitespace.
|
||||
|
||||
CEditorPreferencePage_link=Note that some preferences may be set on the <a href="org.eclipse.ui.preferencePages.GeneralTextEditor">Text Editors</a> preference page.
|
||||
CEditorPreferencePage_generalTabTitle=Appeara&nce
|
||||
CEditorPreferencePage_link=C/C++ Editor Preferences. Note that some preferences may be set on the <a href="org.eclipse.ui.preferencePages.GeneralTextEditor">Text Editors</a> preference page.
|
||||
CEditorPreferencePage_link_tooltip=Show the shared text editor preferences
|
||||
|
||||
CEditorPreferencePage_colors=Synta&x
|
||||
|
||||
CEditorPreferencePage_invalid_input=Invalid input.
|
||||
|
@ -102,6 +103,7 @@ CEditorColoringConfigurationBlock_coloring_category_preprocessor=Preprocessor
|
|||
CEditorColoringConfigurationBlock_coloring_element=Element:
|
||||
# DO NOT TRANSLATE "org.eclipse.ui.preferencePages.GeneralTextEditor" and "org.eclipse.ui.preferencePages.ColorsAndFonts"
|
||||
CEditorColoringConfigurationBlock_link=Default colors and font can be configured on the <a href=\"org.eclipse.ui.preferencePages.GeneralTextEditor\">Text Editors</a> and on the <a href=\"org.eclipse.ui.preferencePages.ColorsAndFonts\">Colors and Fonts</a> preference page.
|
||||
CEditorColoringConfigurationBlock_enable_semantic_highlighting=Enable semantic highlighting
|
||||
CEditorColoringConfigurationBlock_enable=Enab&le
|
||||
CEditorColoringConfigurationBlock_preview=Previe&w:
|
||||
CEditorColoringConfigurationBlock_color=C&olor:
|
||||
|
@ -144,8 +146,8 @@ CFileTypeDialog_title=C/C++ File Type
|
|||
CFileTypeDialog_patternLabel=Pattern:
|
||||
CFileTypeDialog_typeLabel=Type:
|
||||
|
||||
# Hover tab
|
||||
CEditorPreferencePage_hoverTab_title= Ho&vers
|
||||
# Hover page
|
||||
CEditorPreferencePage_hover_title= Ho&vers
|
||||
CEditorHoverConfigurationBlock_hoverPreferences= Text &Hover key modifier preferences:
|
||||
CEditorHoverConfigurationBlock_keyModifier= Pressed key &modifier while hovering:
|
||||
CEditorHoverConfigurationBlock_description= Description:
|
||||
|
|
|
@ -29,7 +29,6 @@ import org.eclipse.ui.IWorkbenchPreferencePage;
|
|||
import org.eclipse.ui.PlatformUI;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
|
||||
/**
|
||||
* Preference page for work in progress.
|
||||
|
@ -84,10 +83,7 @@ public class WorkInProgressPreferencePage extends PreferencePage implements IWor
|
|||
result.setLayout(layout);
|
||||
|
||||
// Add your controls here
|
||||
addCheckBox(result, "Enable semantic highlighting", PreferenceConstants.EDITOR_SEMANTIC_HIGHLIGHTING_ENABLED); //$NON-NLS-1$
|
||||
addCheckBox(result, "Enable folding of preprocessor branches (#if/#endif)", PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED); //$NON-NLS-1$
|
||||
addCheckBox(result, "Enable comment folding", PreferenceConstants.EDITOR_FOLDING_COMMENTS_ENABLED); //$NON-NLS-1$
|
||||
|
||||
|
||||
applyDialogFont(result);
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -11,11 +11,12 @@
|
|||
|
||||
package org.eclipse.cdt.internal.ui.text.folding;
|
||||
|
||||
import org.eclipse.cdt.ui.text.folding.ICFoldingPreferenceBlock;
|
||||
import org.eclipse.cdt.ui.text.folding.ICFoldingStructureProvider;
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IConfigurationElement;
|
||||
import org.eclipse.jface.text.Assert;
|
||||
|
||||
import org.eclipse.cdt.ui.text.folding.ICFoldingPreferenceBlock;
|
||||
import org.eclipse.cdt.ui.text.folding.ICFoldingStructureProvider;
|
||||
|
||||
/**
|
||||
* Describes a contribution to the folding provider extension point.
|
||||
|
|
|
@ -17,11 +17,6 @@ import java.util.HashMap;
|
|||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.preferences.OverlayPreferenceStore;
|
||||
import org.eclipse.cdt.internal.ui.preferences.OverlayPreferenceStore.OverlayKey;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
import org.eclipse.cdt.ui.text.folding.ICFoldingPreferenceBlock;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.SelectionEvent;
|
||||
|
@ -31,7 +26,14 @@ import org.eclipse.swt.layout.GridLayout;
|
|||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
import org.eclipse.cdt.ui.text.folding.ICFoldingPreferenceBlock;
|
||||
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.preferences.OverlayPreferenceStore;
|
||||
import org.eclipse.cdt.internal.ui.preferences.OverlayPreferenceStore.OverlayKey;
|
||||
|
||||
/**
|
||||
*/
|
||||
|
@ -47,9 +49,12 @@ public class DefaultCFoldingPreferenceBlock implements ICFoldingPreferenceBlock
|
|||
}
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
Button button= (Button) e.widget;
|
||||
fOverlayStore.setValue((String) fCheckBoxes.get(button), button.getSelection());
|
||||
String key= (String) fCheckBoxes.get(button);
|
||||
fOverlayStore.setValue(key, button.getSelection());
|
||||
updateEnablement(key);
|
||||
}
|
||||
};
|
||||
private Button fInactiveCodeFoldingCheckBox;
|
||||
|
||||
|
||||
public DefaultCFoldingPreferenceBlock() {
|
||||
|
@ -68,6 +73,7 @@ public class DefaultCFoldingPreferenceBlock implements ICFoldingPreferenceBlock
|
|||
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_COMMENTS));
|
||||
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_HEADERS));
|
||||
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_INACTIVE_CODE));
|
||||
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED));
|
||||
|
||||
return (OverlayKey[]) overlayKeys.toArray(new OverlayKey[overlayKeys.size()]);
|
||||
}
|
||||
|
@ -84,17 +90,19 @@ public class DefaultCFoldingPreferenceBlock implements ICFoldingPreferenceBlock
|
|||
layout.verticalSpacing= 3;
|
||||
layout.marginWidth= 0;
|
||||
inner.setLayout(layout);
|
||||
|
||||
Label label= new Label(inner, SWT.LEFT);
|
||||
label.setText(FoldingMessages.getString("DefaultCFoldingPreferenceBlock.title")); //$NON-NLS-1$
|
||||
|
||||
addCheckBox(inner, FoldingMessages.getString("DefaultCFoldingPreferenceBlock.macros"), PreferenceConstants.EDITOR_FOLDING_MACROS, 0); //$NON-NLS-1$
|
||||
addCheckBox(inner, FoldingMessages.getString("DefaultCFoldingPreferenceBlock.functions"), PreferenceConstants.EDITOR_FOLDING_FUNCTIONS, 0); //$NON-NLS-1$
|
||||
addCheckBox(inner, FoldingMessages.getString("DefaultCFoldingPreferenceBlock.methods"), PreferenceConstants.EDITOR_FOLDING_METHODS, 0); //$NON-NLS-1$
|
||||
addCheckBox(inner, FoldingMessages.getString("DefaultCFoldingPreferenceBlock.structures"), PreferenceConstants.EDITOR_FOLDING_STRUCTURES, 0); //$NON-NLS-1$
|
||||
addCheckBox(inner, FoldingMessages.getString("DefaultCFoldingPreferenceBlock.comments"), PreferenceConstants.EDITOR_FOLDING_COMMENTS, 0); //$NON-NLS-1$
|
||||
addCheckBox(inner, FoldingMessages.getString("DefaultCFoldingPreferenceBlock.headers"), PreferenceConstants.EDITOR_FOLDING_HEADERS, 0); //$NON-NLS-1$
|
||||
addCheckBox(inner, FoldingMessages.getString("DefaultCFoldingPreferenceBlock.inactive_code"), PreferenceConstants.EDITOR_FOLDING_INACTIVE_CODE, 0); //$NON-NLS-1$
|
||||
|
||||
addCheckBox(inner, FoldingMessages.DefaultCFoldingPreferenceBlock_preprocessor_enabled, PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED, 1);
|
||||
ControlFactory.createEmptySpace(inner);
|
||||
|
||||
Composite group= ControlFactory.createGroup(inner, FoldingMessages.DefaultCFoldingPreferenceBlock_title, 1);
|
||||
|
||||
addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_macros, PreferenceConstants.EDITOR_FOLDING_MACROS, 0);
|
||||
addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_functions, PreferenceConstants.EDITOR_FOLDING_FUNCTIONS, 0);
|
||||
addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_methods, PreferenceConstants.EDITOR_FOLDING_METHODS, 0);
|
||||
addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_structures, PreferenceConstants.EDITOR_FOLDING_STRUCTURES, 0);
|
||||
addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_comments, PreferenceConstants.EDITOR_FOLDING_COMMENTS, 0);
|
||||
addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_headers, PreferenceConstants.EDITOR_FOLDING_HEADERS, 0);
|
||||
fInactiveCodeFoldingCheckBox= addCheckBox(group, FoldingMessages.DefaultCFoldingPreferenceBlock_inactive_code, PreferenceConstants.EDITOR_FOLDING_INACTIVE_CODE, 0);
|
||||
|
||||
return inner;
|
||||
}
|
||||
|
@ -121,9 +129,16 @@ public class DefaultCFoldingPreferenceBlock implements ICFoldingPreferenceBlock
|
|||
Button b= (Button) it.next();
|
||||
String key= (String) fCheckBoxes.get(b);
|
||||
b.setSelection(fOverlayStore.getBoolean(key));
|
||||
updateEnablement(key);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void updateEnablement(String key) {
|
||||
if (PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED.equals(key)) {
|
||||
fInactiveCodeFoldingCheckBox.setEnabled(fOverlayStore.getBoolean(key));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.text.folding.AbstractCFoldingPreferences#performOk()
|
||||
*/
|
||||
|
|
|
@ -24,12 +24,12 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Stack;
|
||||
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.text.Assert;
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.IRegion;
|
||||
|
@ -849,7 +849,7 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
fCollapseComments= store.getBoolean(PreferenceConstants.EDITOR_FOLDING_COMMENTS);
|
||||
fCollapseInactiveCode= store.getBoolean(PreferenceConstants.EDITOR_FOLDING_INACTIVE_CODE);
|
||||
fPreprocessorBranchFoldingEnabled= store.getBoolean(PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED);
|
||||
fCommentFoldingEnabled= store.getBoolean(PreferenceConstants.EDITOR_FOLDING_COMMENTS_ENABLED);
|
||||
fCommentFoldingEnabled= true;
|
||||
}
|
||||
|
||||
private void update(FoldingStructureComputationContext ctx) {
|
||||
|
|
|
@ -40,7 +40,7 @@ public class EmptyCFoldingPreferenceBlock implements ICFoldingPreferenceBlock {
|
|||
label.setLayoutData(gd);
|
||||
|
||||
label= new Label(inner, SWT.CENTER);
|
||||
label.setText(FoldingMessages.getString("EmptyCFoldingPreferenceBlock.emptyCaption")); //$NON-NLS-1$
|
||||
label.setText(FoldingMessages.EmptyCFoldingPreferenceBlock_emptyCaption);
|
||||
gd= new GridData(GridData.CENTER);
|
||||
label.setLayoutData(gd);
|
||||
|
||||
|
|
|
@ -8,29 +8,30 @@
|
|||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.internal.ui.text.folding;
|
||||
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.ResourceBundle;
|
||||
import org.eclipse.osgi.util.NLS;
|
||||
|
||||
/**
|
||||
* @since 3.0
|
||||
*/
|
||||
class FoldingMessages {
|
||||
public final class FoldingMessages extends NLS {
|
||||
|
||||
private static final String BUNDLE_NAME= FoldingMessages.class.getName();
|
||||
|
||||
private static final ResourceBundle RESOURCE_BUNDLE= ResourceBundle.getBundle(BUNDLE_NAME);
|
||||
private static final String BUNDLE_NAME = "org.eclipse.cdt.internal.ui.text.folding.FoldingMessages";//$NON-NLS-1$
|
||||
|
||||
private FoldingMessages() {
|
||||
// Do not instantiate
|
||||
}
|
||||
|
||||
public static String getString(String key) {
|
||||
try {
|
||||
return RESOURCE_BUNDLE.getString(key);
|
||||
} catch (MissingResourceException e) {
|
||||
return '!' + key + '!';
|
||||
}
|
||||
public static String DefaultCFoldingPreferenceBlock_title;
|
||||
public static String DefaultCFoldingPreferenceBlock_macros;
|
||||
public static String DefaultCFoldingPreferenceBlock_functions;
|
||||
public static String DefaultCFoldingPreferenceBlock_methods;
|
||||
public static String DefaultCFoldingPreferenceBlock_structures;
|
||||
public static String DefaultCFoldingPreferenceBlock_comments;
|
||||
public static String DefaultCFoldingPreferenceBlock_headers;
|
||||
public static String DefaultCFoldingPreferenceBlock_inactive_code;
|
||||
public static String DefaultCFoldingPreferenceBlock_preprocessor_enabled;
|
||||
public static String EmptyCFoldingPreferenceBlock_emptyCaption;
|
||||
|
||||
static {
|
||||
NLS.initializeMessages(BUNDLE_NAME, FoldingMessages.class);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,13 +11,14 @@
|
|||
###############################################################################
|
||||
|
||||
|
||||
DefaultCFoldingPreferenceBlock.title= Initially fold these region types:
|
||||
DefaultCFoldingPreferenceBlock.macros= &Macros
|
||||
DefaultCFoldingPreferenceBlock.functions= &Functions
|
||||
DefaultCFoldingPreferenceBlock.methods= &Methods
|
||||
DefaultCFoldingPreferenceBlock.structures= &Structures
|
||||
DefaultCFoldingPreferenceBlock.comments= &Comments
|
||||
DefaultCFoldingPreferenceBlock.headers= &Header Comments
|
||||
DefaultCFoldingPreferenceBlock.inactive_code= &Inactive Preprocessor Branches
|
||||
DefaultCFoldingPreferenceBlock_title= Initially fold these region types:
|
||||
DefaultCFoldingPreferenceBlock_macros= &Macros
|
||||
DefaultCFoldingPreferenceBlock_functions= &Functions
|
||||
DefaultCFoldingPreferenceBlock_methods= &Methods
|
||||
DefaultCFoldingPreferenceBlock_structures= &Structures
|
||||
DefaultCFoldingPreferenceBlock_comments= &Comments
|
||||
DefaultCFoldingPreferenceBlock_headers= &Header Comments
|
||||
DefaultCFoldingPreferenceBlock_inactive_code= &Inactive Preprocessor Branches
|
||||
DefaultCFoldingPreferenceBlock_preprocessor_enabled= Enable folding of preprocessor branches (#if/#endif)
|
||||
|
||||
EmptyCFoldingPreferenceBlock.emptyCaption=
|
||||
EmptyCFoldingPreferenceBlock_emptyCaption=
|
||||
|
|
|
@ -872,16 +872,6 @@ public class PreferenceConstants {
|
|||
*/
|
||||
public static final String EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED= "editor_folding_preprocessor_enabled"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* A named preference that controls whether folding of comments is enabled.
|
||||
* <p>
|
||||
* Value is of type <code>Boolean</code>.
|
||||
* </p>
|
||||
*
|
||||
* @since 4.0
|
||||
*/
|
||||
public static final String EDITOR_FOLDING_COMMENTS_ENABLED= "editor_folding_comments_enabled"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* A named preference that controls if templates are formatted when applied.
|
||||
* <p>
|
||||
|
@ -1087,7 +1077,6 @@ public class PreferenceConstants {
|
|||
store.setDefault(PreferenceConstants.EDITOR_FOLDING_COMMENTS, false);
|
||||
store.setDefault(PreferenceConstants.EDITOR_FOLDING_HEADERS, true);
|
||||
store.setDefault(PreferenceConstants.EDITOR_FOLDING_INACTIVE_CODE, true);
|
||||
store.setDefault(PreferenceConstants.EDITOR_FOLDING_COMMENTS_ENABLED, false);
|
||||
store.setDefault(PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED, false);
|
||||
|
||||
store.setDefault(PreferenceConstants.EDITOR_CLOSE_STRINGS, true);
|
||||
|
|
|
@ -128,6 +128,16 @@
|
|||
<topic href="reference/cdt_u_c_editor_hov.htm"
|
||||
label="Editor Hovers Preferences"/>
|
||||
</context>
|
||||
<context id ="c_editor_typing">
|
||||
<description>Click below to see help.</description>
|
||||
<topic href="reference/cdt_u_c_pref.htm"
|
||||
label="C/C++ Preferences"/>
|
||||
</context>
|
||||
<context id ="c_editor_folding">
|
||||
<description>Click below to see help.</description>
|
||||
<topic href="reference/cdt_u_c_pref.htm"
|
||||
label="C/C++ Preferences"/>
|
||||
</context>
|
||||
<context id ="c_editor_navigation">
|
||||
<description>Click below to see help.</description>
|
||||
<topic href="reference/cdt_u_c_editor_navigation.htm"
|
||||
|
|
Loading…
Add table
Reference in a new issue