diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/IMakeColorManager.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/IMakefileColorManager.java similarity index 97% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/IMakeColorManager.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/IMakefileColorManager.java index 17a296fa998..5cc102c3270 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/IMakeColorManager.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/IMakefileColorManager.java @@ -15,7 +15,7 @@ import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Display; -public interface IMakeColorManager { +public interface IMakefileColorManager { public static final RGB MAKE_COMMENT = new RGB(128, 0, 0); public static final RGB MAKE_KEYWORD = new RGB(128, 128, 0); public static final RGB MAKE_FUNCTION = new RGB(128, 0, 128); diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeTextEditor.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeTextEditor.java deleted file mode 100644 index 9d5b04ea453..00000000000 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeTextEditor.java +++ /dev/null @@ -1,89 +0,0 @@ -/********************************************************************** - * Copyright (c) 2002,2003 QNX Software Systems and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * QNX Software Systems - Initial API and implementation -***********************************************************************/ -package org.eclipse.cdt.make.internal.ui.editor; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ITypedRegion; -import org.eclipse.jface.text.source.ISourceViewer; -import org.eclipse.ui.texteditor.DefaultRangeIndicator; -import org.eclipse.ui.texteditor.StatusTextEditor; - -public class MakeTextEditor extends StatusTextEditor { - public final static String MAKE_COMMENT = "make_comment"; //$NON-NLS-1$ - public final static String MAKE_KEYWORD = "make_keyword"; //$NON-NLS-1$ - public final static String MAKE_MACRO_VAR = "macro_var"; //$NON-NLS-1$ - public final static String MAKE_META_DATA = "meta_data"; //$NON-NLS-1$ - - private boolean presentationState; - - public MakeTextEditor() { - super(); - initializeEditor(); - } - - /** - * @see AbstractTextEditor#init(IEditorSite, IEditorInput) - */ - protected void initializeEditor() { - - setSourceViewerConfiguration(new MakeEditorConfiguration(new MakeColorManager())); - setRangeIndicator(new DefaultRangeIndicator()); - setEditorContextMenuId("#MakeEditorContext"); //$NON-NLS-1$ - setRulerContextMenuId("#MakeRulerContext"); //$NON-NLS-1$ - - } - - public boolean getPresentationState() { - return presentationState; - } - - public void setPresentationState(boolean newState) { - ISourceViewer srcViewer = getSourceViewer(); - if (null == srcViewer) - return; - presentationState = newState; - if (newState) - srcViewer.resetVisibleRegion(); - else { - IDocument document = getDocumentProvider().getDocument(getEditorInput()); - int nVisibleRegionLength; - // Collect old information - for (int offset = 0; offset < document.getLength();) { - try { - ITypedRegion region = document.getPartition(offset); - if (region.getType().equals(MakePartitionScanner.MAKE_INTERNAL)) { - nVisibleRegionLength = region.getOffset(); - srcViewer = getSourceViewer(); - if (null != srcViewer) - srcViewer.setVisibleRegion(0, nVisibleRegionLength); - break; - } - offset += Math.max(region.getLength(), 1); - } catch (BadLocationException e) { - break; - } - } - } - } - - /** - * @see org.eclipse.ui.texteditor.ITextEditor#selectAndReveal(int, int) - */ - public void selectAndReveal(int offset, int length) { - super.selectAndReveal(offset, length); - // Update visible region because text could be updated - // This is not the best place for that, at least not very - // straightforward. However keep it there for a meantime. - setPresentationState(getPresentationState()); - } - -} diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeCodeScanner.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileCodeScanner.java similarity index 92% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeCodeScanner.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileCodeScanner.java index 4315b3a4322..ed687f3975e 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeCodeScanner.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileCodeScanner.java @@ -25,7 +25,7 @@ import org.eclipse.jface.text.rules.Token; import org.eclipse.jface.text.rules.WhitespaceRule; import org.eclipse.jface.text.rules.WordRule; -public class MakeCodeScanner extends RuleBasedScanner { +public class MakefileCodeScanner extends RuleBasedScanner { private final static String[] keywords = { "define", "endef", "ifdef", "ifndef", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ "ifeq", "ifneq", "else", "endif", "include", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ @@ -38,16 +38,16 @@ public class MakeCodeScanner extends RuleBasedScanner { "firstword", "wildcard", "error", "warning", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ "shell", "origin", "foreach", "call" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ /** - * Constructor for MakeCodeScanner + * Constructor for MakefileCodeScanner */ - public MakeCodeScanner(IMakeColorManager provider) { + public MakefileCodeScanner(IMakefileColorManager provider) { super(); - IToken keyword = new Token(new TextAttribute(provider.getColor(IMakeColorManager.MAKE_KEYWORD))); - IToken function = new Token(new TextAttribute(provider.getColor(IMakeColorManager.MAKE_FUNCTION))); - IToken comment = new Token(new TextAttribute(provider.getColor(IMakeColorManager.MAKE_COMMENT))); - IToken macro = new Token(new TextAttribute(provider.getColor(IMakeColorManager.MAKE_MACRO_VAR))); - IToken other = new Token(new TextAttribute(provider.getColor(IMakeColorManager.MAKE_DEFAULT))); + IToken keyword = new Token(new TextAttribute(provider.getColor(IMakefileColorManager.MAKE_KEYWORD))); + IToken function = new Token(new TextAttribute(provider.getColor(IMakefileColorManager.MAKE_FUNCTION))); + IToken comment = new Token(new TextAttribute(provider.getColor(IMakefileColorManager.MAKE_COMMENT))); + IToken macro = new Token(new TextAttribute(provider.getColor(IMakefileColorManager.MAKE_MACRO_VAR))); + IToken other = new Token(new TextAttribute(provider.getColor(IMakefileColorManager.MAKE_DEFAULT))); List rules = new ArrayList(); @@ -62,7 +62,7 @@ public class MakeCodeScanner extends RuleBasedScanner { })); // Add word rule for keywords, types, and constants. - WordRule wordRule = new WordRule(new MakeWordDetector(), Token.UNDEFINED); + WordRule wordRule = new WordRule(new MakefileWordDetector(), Token.UNDEFINED); for (int i = 0; i < keywords.length; i++) wordRule.addWord(keywords[i], keyword); for (int i = 0; i < functions.length; i++) diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeColorManager.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileColorManager.java similarity index 88% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeColorManager.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileColorManager.java index 601d1aff490..e68d71b004f 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeColorManager.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileColorManager.java @@ -18,12 +18,12 @@ import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Display; -public class MakeColorManager implements IMakeColorManager { +public class MakefileColorManager implements IMakefileColorManager { protected Map fColorTable = new HashMap(10); /** - * @see IMakeColorManager#dispose() + * @see IMakefileColorManager#dispose() */ public void dispose() { Iterator e = fColorTable.values().iterator(); @@ -32,7 +32,7 @@ public class MakeColorManager implements IMakeColorManager { } /** - * @see IMakeColorManager#getColor(RGB) + * @see IMakefileColorManager#getColor(RGB) */ public Color getColor(RGB rgb) { Color color = (Color) fColorTable.get(rgb); diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileContentOutlinePage.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileContentOutlinePage.java new file mode 100644 index 00000000000..46e959cb5ae --- /dev/null +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileContentOutlinePage.java @@ -0,0 +1,252 @@ +/********************************************************************** + * Copyright (c) 2002,2003 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.make.internal.ui.editor; + +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.eclipse.cdt.make.core.makefile.IInferenceRule; +import org.eclipse.cdt.make.core.makefile.IMacroDefinition; +import org.eclipse.cdt.make.core.makefile.IMakefile; +import org.eclipse.cdt.make.core.makefile.IRule; +import org.eclipse.cdt.make.core.makefile.IStatement; +import org.eclipse.cdt.make.core.makefile.ITargetRule; +import org.eclipse.cdt.make.internal.core.makefile.posix.PosixMakefile; +import org.eclipse.cdt.make.internal.ui.MakeUIImages; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.ui.texteditor.IDocumentProvider; +import org.eclipse.ui.views.contentoutline.ContentOutlinePage; +import org.eclipse.ui.views.contentoutline.IContentOutlinePage; + +/** + * MakefileContentOutlinePage + */ +public class MakefileContentOutlinePage extends ContentOutlinePage implements IContentOutlinePage { + + private class MakefileContentProvider implements ITreeContentProvider { + + protected boolean showMacroDefinition = true; + protected boolean showTargetRule = true; + protected boolean showInferenceRule = true; + + protected IMakefile makefile; + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) + */ + public Object[] getChildren(Object element) { + if (element == fInput) { + return getElements(element); + } + return new Object[0]; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) + */ + public Object getParent(Object element) { + if (element instanceof IStatement) + return fInput; + return fInput; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) + */ + public boolean hasChildren(Object element) { + return element == fInput; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) + */ + public Object[] getElements(Object inputElement) { + List list = new ArrayList(); + if (showMacroDefinition) { + list.addAll(Arrays.asList(makefile.getMacroDefinitions())); + } + if (showInferenceRule) { + list.addAll(Arrays.asList(makefile.getInferenceRules())); + } + if (showTargetRule) { + list.addAll(Arrays.asList(makefile.getTargetRules())); + } + return list.toArray(); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.IContentProvider#dispose() + */ + public void dispose() { + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) + */ + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + if (oldInput != null) { + //IDocument document= fDocumentProvider.getDocument(oldInput); + //if (document != null) { + //} + } + + if (newInput != null) { + IDocument document = fDocumentProvider.getDocument(newInput); + if (document != null) { + try { + String content = document.get(); + Reader r = new StringReader(content); + makefile = new PosixMakefile(r); + } catch (IOException e) { + } + } + } + } + + } + + private class MakefileLabelProvider extends LabelProvider implements ILabelProvider { + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) + */ + public Image getImage(Object element) { + if (element instanceof ITargetRule) { + return MakeUIImages.getImage(MakeUIImages.IMG_OBJS_MAKEFILE_TARGET_RULE); + } else if (element instanceof IInferenceRule) { + return MakeUIImages.getImage(MakeUIImages.IMG_OBJS_MAKEFILE_INFERENCE_RULE); + } else if (element instanceof IMacroDefinition) { + return MakeUIImages.getImage(MakeUIImages.IMG_OBJS_MAKEFILE_MACRO); + } + return super.getImage(element); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) + */ + public String getText(Object element) { + if (element instanceof IRule) { + return ((IRule) element).getTarget().toString(); + } else if (element instanceof IMacroDefinition) { + return ((IMacroDefinition) element).getName(); + } + return super.getText(element); + } + + } + + protected IDocumentProvider fDocumentProvider; + protected MakefileEditor fEditor; + protected Object fInput; + + public MakefileContentOutlinePage(IDocumentProvider provider, MakefileEditor editor) { + super(); + fDocumentProvider = provider; + fEditor = editor; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite) + */ + public void createControl(Composite parent) { + super.createControl(parent); + TreeViewer viewer = getTreeViewer(); + + /* + * We might want to implement our own content provider. + * This content provider should be able to work on a dom like tree + * structure that resembles the file contents. + */ + viewer.setContentProvider(new MakefileContentProvider()); + + /* + * We probably also need our own label provider. + */ + viewer.setLabelProvider(new MakefileLabelProvider()); + + if (fInput != null) { + viewer.setInput(fInput); + } + } + + /** + * Sets the input of the outline page + */ + public void setInput(Object input) { + fInput = input; + update(); + } + + /* (non-Javadoc) + * Method declared on ContentOutlinePage + */ + public void selectionChanged(SelectionChangedEvent event) { + + super.selectionChanged(event); + + ISelection selection = event.getSelection(); + if (selection.isEmpty()) { + fEditor.resetHighlightRange(); + } else if (selection instanceof IStructuredSelection){ + Object element = ((IStructuredSelection) selection).getFirstElement(); + if (element instanceof IStatement) { + IStatement statement = (IStatement)element; + int startLine = statement.getStartLine() - 1; + int endLine = statement.getEndLine() - 1; + try { + IDocument doc = fEditor.getDocumentProvider().getDocument(fInput); + int start = doc.getLineOffset(startLine); + int len = doc.getLineLength(endLine) - 1; + int length = (doc.getLineOffset(endLine) + len) - start; + fEditor.setHighlightRange(start, length, true); + } catch (IllegalArgumentException x) { + fEditor.resetHighlightRange(); + } catch (BadLocationException e) { + fEditor.resetHighlightRange(); + } + } + } + } + + /** + * Updates the outline page. + */ + public void update() { + TreeViewer viewer = getTreeViewer(); + + if (viewer != null) { + Control control = viewer.getControl(); + if (control != null && !control.isDisposed()) { + control.setRedraw(false); + viewer.setInput(fInput); + viewer.expandAll(); + control.setRedraw(true); + } + } + } + +} diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeDocumentProvider.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileDocumentProvider.java similarity index 77% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeDocumentProvider.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileDocumentProvider.java index d4fa03e256d..9df28c86caf 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeDocumentProvider.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileDocumentProvider.java @@ -18,14 +18,14 @@ import org.eclipse.ui.editors.text.FileDocumentProvider; /** */ -public class MakeDocumentProvider extends FileDocumentProvider { +public class MakefileDocumentProvider extends FileDocumentProvider { - private static MakePartitionScanner scanner = null; + private static MakefilePartitionScanner scanner = null; /** - * Constructor for MakeDocumentProvider. + * Constructor for MakefileDocumentProvider. */ - public MakeDocumentProvider() { + public MakefileDocumentProvider() { super(); } @@ -36,19 +36,19 @@ public class MakeDocumentProvider extends FileDocumentProvider { IDocument document = super.createDocument(element); if (document != null) { IDocumentPartitioner partitioner = createPartitioner(); - document.setDocumentPartitioner(partitioner); partitioner.connect(document); + document.setDocumentPartitioner(partitioner); } return document; } private IDocumentPartitioner createPartitioner() { - return new DefaultPartitioner(getPartitionScanner(), MakePartitionScanner.TYPES); + return new DefaultPartitioner(getPartitionScanner(), MakefilePartitionScanner.TYPES); } - private MakePartitionScanner getPartitionScanner() { + private MakefilePartitionScanner getPartitionScanner() { if (scanner == null) - scanner = new MakePartitionScanner(); + scanner = new MakefilePartitionScanner(); return scanner; } diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditor.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditor.java new file mode 100644 index 00000000000..dce8e47fc30 --- /dev/null +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditor.java @@ -0,0 +1,77 @@ +/********************************************************************** + * Copyright (c) 2002,2003 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.make.internal.ui.editor; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.ui.editors.text.TextEditor; +import org.eclipse.ui.texteditor.DefaultRangeIndicator; +import org.eclipse.ui.views.contentoutline.IContentOutlinePage; + +public class MakefileEditor extends TextEditor { + public final static String MAKE_COMMENT = "make_comment"; //$NON-NLS-1$ + public final static String MAKE_KEYWORD = "make_keyword"; //$NON-NLS-1$ + public final static String MAKE_MACRO_VAR = "macro_var"; //$NON-NLS-1$ + public final static String MAKE_META_DATA = "meta_data"; //$NON-NLS-1$ + + /** + * The page that shows the outline. + */ + protected MakefileContentOutlinePage page; + + + + public MakefileEditor() { + super(); + initializeEditor(); + } + + /** + * @see AbstractTextEditor#init(IEditorSite, IEditorInput) + */ + protected void initializeEditor() { + + setSourceViewerConfiguration(new MakefileEditorConfiguration(new MakefileColorManager())); + setRangeIndicator(new DefaultRangeIndicator()); + setEditorContextMenuId("#MakefileEditorContext"); //$NON-NLS-1$ + setRulerContextMenuId("#MakefileRulerContext"); //$NON-NLS-1$ + setDocumentProvider(new MakefileDocumentProvider()); + } + + /* (non-Javadoc) + * Method declared on IAdaptable + */ + public Object getAdapter(Class key) { + if (key.equals(IContentOutlinePage.class)) { + return getOutlinePage(); + } + return super.getAdapter(key); + } + + private MakefileContentOutlinePage getOutlinePage() { + if (page == null) { + page= new MakefileContentOutlinePage(getDocumentProvider(), this); + //page.addPostSelectionChangedListener(selectionChangedListener); + page.setInput(getEditorInput()); + } + return page; + } + + /* (non-Javadoc) + * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor) + */ + public void doSave(IProgressMonitor monitor) { + super.doSave(monitor); + if (page != null) { + page.update(); + } + } + +} diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeEditorActionContributor.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditorActionContributor.java similarity index 79% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeEditorActionContributor.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditorActionContributor.java index 1a3dd707a2c..9577ac6f845 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeEditorActionContributor.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditorActionContributor.java @@ -18,16 +18,16 @@ import org.eclipse.ui.texteditor.ITextEditor; /** */ -public class MakeEditorActionContributor extends BasicTextEditorActionContributor { - private MakeEditorTogglePresentationAction togglePresentationAction; - private static final String TOGGLE_PRESENTATION = "make_toggle_presentation"; //$NON-NLS-1$ +public class MakefileEditorActionContributor extends BasicTextEditorActionContributor { + private MakefileEditorTogglePresentationAction togglePresentationAction; + private static final String TOGGLE_PRESENTATION = "makefile_toggle_presentation"; //$NON-NLS-1$ /** - * Constructor for MakeEditorActionContributor. + * Constructor for MakefileEditorActionContributor. */ - public MakeEditorActionContributor() { + public MakefileEditorActionContributor() { super(); - togglePresentationAction = new MakeEditorTogglePresentationAction(); + togglePresentationAction = new MakefileEditorTogglePresentationAction(); } /** diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeEditorConfiguration.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditorConfiguration.java similarity index 62% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeEditorConfiguration.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditorConfiguration.java index 44cf9a3b4b9..1ed5b9dd129 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeEditorConfiguration.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditorConfiguration.java @@ -20,10 +20,10 @@ import org.eclipse.jface.text.rules.Token; import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.jface.text.source.SourceViewerConfiguration; -public class MakeEditorConfiguration extends SourceViewerConfiguration { +public class MakefileEditorConfiguration extends SourceViewerConfiguration { - private IMakeColorManager colorManager = null; - private MakeCodeScanner codeScanner = null; + private IMakefileColorManager colorManager = null; + private MakefileCodeScanner codeScanner = null; /** * Single token scanner. @@ -37,7 +37,7 @@ public class MakeEditorConfiguration extends SourceViewerConfiguration { /** * Constructor for MakeConfiguration */ - public MakeEditorConfiguration(IMakeColorManager colorManager) { + public MakefileEditorConfiguration(IMakefileColorManager colorManager) { super(); this.colorManager = colorManager; } @@ -48,22 +48,22 @@ public class MakeEditorConfiguration extends SourceViewerConfiguration { public String[] getConfiguredContentTypes(ISourceViewer v) { return new String[] { IDocument.DEFAULT_CONTENT_TYPE, - MakeTextEditor.MAKE_COMMENT, - MakeTextEditor.MAKE_KEYWORD, - MakeTextEditor.MAKE_MACRO_VAR, - MakeTextEditor.MAKE_META_DATA }; + MakefileEditor.MAKE_COMMENT, + MakefileEditor.MAKE_KEYWORD, + MakefileEditor.MAKE_MACRO_VAR, + MakefileEditor.MAKE_META_DATA }; } - protected IMakeColorManager getColorManager() { + protected IMakefileColorManager getColorManager() { if (null == colorManager) - colorManager = new MakeColorManager(); + colorManager = new MakefileColorManager(); return colorManager; } - protected MakeCodeScanner getCodeScanner() { + protected MakefileCodeScanner getCodeScanner() { if (null == codeScanner) - codeScanner = new MakeCodeScanner(getColorManager()); + codeScanner = new MakefileCodeScanner(getColorManager()); return codeScanner; } @@ -77,32 +77,29 @@ public class MakeEditorConfiguration extends SourceViewerConfiguration { reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE); dr = new DefaultDamagerRepairer(getCodeScanner()); - reconciler.setDamager(dr, MakePartitionScanner.MAKE_INTERNAL); - reconciler.setRepairer(dr, MakePartitionScanner.MAKE_INTERNAL); + dr = new DefaultDamagerRepairer(getCodeScanner()); + reconciler.setDamager(dr, MakefilePartitionScanner.MAKE_COMMENT); + reconciler.setRepairer(dr, MakefilePartitionScanner.MAKE_COMMENT); dr = new DefaultDamagerRepairer(getCodeScanner()); - reconciler.setDamager(dr, MakePartitionScanner.MAKE_COMMENT); - reconciler.setRepairer(dr, MakePartitionScanner.MAKE_COMMENT); + reconciler.setDamager(dr, MakefilePartitionScanner.MAKE_MACRO_ASSIGNEMENT); + reconciler.setRepairer(dr, MakefilePartitionScanner.MAKE_MACRO_ASSIGNEMENT); dr = new DefaultDamagerRepairer(getCodeScanner()); - reconciler.setDamager(dr, MakePartitionScanner.MAKE_MACRO_ASSIGNEMENT); - reconciler.setRepairer(dr, MakePartitionScanner.MAKE_MACRO_ASSIGNEMENT); + reconciler.setDamager(dr, MakefilePartitionScanner.MAKE_INCLUDE_BLOCK); + reconciler.setRepairer(dr, MakefilePartitionScanner.MAKE_INCLUDE_BLOCK); dr = new DefaultDamagerRepairer(getCodeScanner()); - reconciler.setDamager(dr, MakePartitionScanner.MAKE_INCLUDE_BLOCK); - reconciler.setRepairer(dr, MakePartitionScanner.MAKE_INCLUDE_BLOCK); + reconciler.setDamager(dr, MakefilePartitionScanner.MAKE_IF_BLOCK); + reconciler.setRepairer(dr, MakefilePartitionScanner.MAKE_IF_BLOCK); dr = new DefaultDamagerRepairer(getCodeScanner()); - reconciler.setDamager(dr, MakePartitionScanner.MAKE_IF_BLOCK); - reconciler.setRepairer(dr, MakePartitionScanner.MAKE_IF_BLOCK); + reconciler.setDamager(dr, MakefilePartitionScanner.MAKE_DEF_BLOCK); + reconciler.setRepairer(dr, MakefilePartitionScanner.MAKE_DEF_BLOCK); dr = new DefaultDamagerRepairer(getCodeScanner()); - reconciler.setDamager(dr, MakePartitionScanner.MAKE_DEF_BLOCK); - reconciler.setRepairer(dr, MakePartitionScanner.MAKE_DEF_BLOCK); - - dr = new DefaultDamagerRepairer(getCodeScanner()); - reconciler.setDamager(dr, MakePartitionScanner.MAKE_OTHER); - reconciler.setRepairer(dr, MakePartitionScanner.MAKE_OTHER); + reconciler.setDamager(dr, MakefilePartitionScanner.MAKE_OTHER); + reconciler.setRepairer(dr, MakefilePartitionScanner.MAKE_OTHER); return reconciler; } diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeEditorTogglePresentationAction.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditorTogglePresentationAction.java similarity index 62% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeEditorTogglePresentationAction.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditorTogglePresentationAction.java index 6e8a87e3785..6926b355e9f 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeEditorTogglePresentationAction.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileEditorTogglePresentationAction.java @@ -10,42 +10,40 @@ ***********************************************************************/ package org.eclipse.cdt.make.internal.ui.editor; +import org.eclipse.cdt.make.internal.ui.MakeUIImages; import org.eclipse.cdt.make.internal.ui.MakeUIPlugin; import org.eclipse.ui.texteditor.ITextEditor; import org.eclipse.ui.texteditor.TextEditorAction; /** */ -public class MakeEditorTogglePresentationAction extends TextEditorAction { +public class MakefileEditorTogglePresentationAction extends TextEditorAction { - private final static String ACTION_ID = "org.eclipse.cdt.make.ui.MakeEditorTogglePresentationAction"; //$NON-NLS-1$ + private final static String ACTION_ID = "org.eclipse.cdt.make.ui.MakefileEditorTogglePresentationAction"; //$NON-NLS-1$ /** - * Constructor for MakeEditorTogglePresentationAction. + * Constructor for MakefileEditorTogglePresentationAction. * @param bundle * @param prefix * @param editor */ - public MakeEditorTogglePresentationAction() { - super(MakeUIPlugin.getDefault().getResourceBundle(), "MakeEditorTogglePresentationAction.", null); //$NON-NLS-1$ + public MakefileEditorTogglePresentationAction() { + super(MakeUIPlugin.getDefault().getResourceBundle(), "MakefileEditorTogglePresentationAction.", null); //$NON-NLS-1$ - setToolTipText("MakeEditorTogglePresentationAction.tooltip"); //$NON-NLS-1$ + setToolTipText("MakefileEditorTogglePresentationAction.tooltip"); //$NON-NLS-1$ setActionDefinitionId(ACTION_ID); + MakeUIImages.setImageDescriptors(this, MakeUIImages.T_TOOL, MakeUIImages.IMG_TOOLS_MAKEFILE_SEGMENT_EDIT); update(); - } /** * @see org.eclipse.jface.action.IAction#run() */ public void run() { - super.run(); - ITextEditor editor = getTextEditor(); - if (editor == null) - return; - if (!(editor instanceof MakeTextEditor)) - return; - ((MakeTextEditor) editor).setPresentationState(!((MakeTextEditor) editor).getPresentationState()); - // update(); + ITextEditor editor= getTextEditor(); + editor.resetHighlightRange(); + boolean show = editor.showsHighlightRangeOnly(); + setChecked(!show); + editor.showHighlightRangeOnly(!show); } /** @@ -61,9 +59,6 @@ public class MakeEditorTogglePresentationAction extends TextEditorAction { */ public void setEditor(ITextEditor editor) { super.setEditor(editor); - if (editor instanceof MakeTextEditor) { - ((MakeTextEditor) editor).setPresentationState(isChecked()); - } update(); } diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeMacroScanner.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileMacroScanner.java similarity index 93% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeMacroScanner.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileMacroScanner.java index 7255c2310ab..d80c85d4f8b 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeMacroScanner.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileMacroScanner.java @@ -24,7 +24,7 @@ import org.eclipse.jface.text.rules.Token; import org.eclipse.jface.text.rules.WhitespaceRule; import org.eclipse.jface.text.rules.WordRule; -public class MakeMacroScanner extends RuleBasedScanner { +public class MakefileMacroScanner extends RuleBasedScanner { private String buffer; private final static String[] DELIMITERS = { "\r", "\n", "\r\n" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ @@ -33,9 +33,9 @@ public class MakeMacroScanner extends RuleBasedScanner { public final static String tokenOther = "other"; //$NON-NLS-1$ /** - * Constructor for MakeMacroScanner + * Constructor for MakefileMacroScanner */ - public MakeMacroScanner(String buffer) { + public MakefileMacroScanner(String buffer) { super(); this.buffer = buffer; fOffset = 0; @@ -49,7 +49,7 @@ public class MakeMacroScanner extends RuleBasedScanner { rules.add(new PatternRule("\"", "\"", tText, '\\', true)); //$NON-NLS-1$ //$NON-NLS-2$ rules.add(new PatternRule("\'", "\'", tText, '\\', true)); //$NON-NLS-1$ //$NON-NLS-2$ - rules.add(new MakeSimpleMacroRule(tMacro)); + rules.add(new MakefileSimpleMacroRule(tMacro)); // Add generic whitespace rule. rules.add(new WhitespaceRule(new IWhitespaceDetector() { diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakePartitionScanner.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefilePartitionScanner.java similarity index 86% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakePartitionScanner.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefilePartitionScanner.java index dd7a59834b1..bf39286d115 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakePartitionScanner.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefilePartitionScanner.java @@ -21,19 +21,17 @@ import org.eclipse.jface.text.rules.MultiLineRule; import org.eclipse.jface.text.rules.RuleBasedPartitionScanner; import org.eclipse.jface.text.rules.Token; -public class MakePartitionScanner extends RuleBasedPartitionScanner { +public class MakefilePartitionScanner extends RuleBasedPartitionScanner { // Partition types - public final static String MAKE_INTERNAL = "make_internal"; //$NON-NLS-1$ - public final static String MAKE_COMMENT = "make_comment"; //$NON-NLS-1$ - public final static String MAKE_MACRO_ASSIGNEMENT = "make_macro_assig"; //$NON-NLS-1$ - public final static String MAKE_INCLUDE_BLOCK = "make_include_block"; //$NON-NLS-1$ - public final static String MAKE_IF_BLOCK = "make_if_block"; //$NON-NLS-1$ - public final static String MAKE_DEF_BLOCK = "make_def_block"; //$NON-NLS-1$ - public final static String MAKE_OTHER = "make_other"; //$NON-NLS-1$ + public final static String MAKE_COMMENT = "makefile_comment"; //$NON-NLS-1$ + public final static String MAKE_MACRO_ASSIGNEMENT = "makefile_macro_assignement"; //$NON-NLS-1$ + public final static String MAKE_INCLUDE_BLOCK = "makefile_include_block"; //$NON-NLS-1$ + public final static String MAKE_IF_BLOCK = "makefile_if_block"; //$NON-NLS-1$ + public final static String MAKE_DEF_BLOCK = "makefile_def_block"; //$NON-NLS-1$ + public final static String MAKE_OTHER = "makefile_other"; //$NON-NLS-1$ public final static String[] TYPES = new String[] { - MAKE_INTERNAL, MAKE_COMMENT, MAKE_MACRO_ASSIGNEMENT, MAKE_INCLUDE_BLOCK, @@ -50,12 +48,11 @@ public class MakePartitionScanner extends RuleBasedPartitionScanner { }; /** - * Constructor for MakePartitionScanner + * Constructor for MakefilePartitionScanner */ - public MakePartitionScanner() { + public MakefilePartitionScanner() { super(); -// IToken tInternal = new Token(MAKE_INTERNAL); IToken tComment = new Token(MAKE_COMMENT); IToken tMacro = new Token(MAKE_MACRO_ASSIGNEMENT); IToken tInclude = new Token(MAKE_INCLUDE_BLOCK); @@ -66,19 +63,18 @@ public class MakePartitionScanner extends RuleBasedPartitionScanner { List rules = new ArrayList(); // Add rule for single line comments. - //rules.add(new MultiLineRule("#QNX internal start", "#QNX internal end", tInternal)); //$NON-NLS-1$ //$NON-NLS-2$ rules.add(new EndOfLineRule("#", tComment)); //$NON-NLS-1$ rules.add(new EndOfLineRule("include", tInclude)); //$NON-NLS-1$ // Add rules for multi-line comments and javadoc. - rules.add(new MultiLineRule("ifdef", "endif", tIf)); //$NON-NLS-1$ //$NON-NLS-2$ - rules.add(new MultiLineRule("ifndef", "endif", tIf)); //$NON-NLS-1$ //$NON-NLS-2$ - rules.add(new MultiLineRule("ifeq", "endif", tIf)); //$NON-NLS-1$ //$NON-NLS-2$ - rules.add(new MultiLineRule("ifnneq", "endif", tIf)); //$NON-NLS-1$ //$NON-NLS-2$ + rules.add(new MultiLineRule("ifdef", "endif", tIf)); //$NON-NLS-1$ + rules.add(new MultiLineRule("ifndef", "endif", tIf)); //$NON-NLS-1$ + rules.add(new MultiLineRule("ifeq", "endif", tIf)); //$NON-NLS-1$ + rules.add(new MultiLineRule("ifnneq", "endif", tIf)); //$NON-NLS-1$ - rules.add(new MultiLineRule("define", "endef", tDef)); //$NON-NLS-1$ //$NON-NLS-2$ + rules.add(new MultiLineRule("define", "endef", tDef)); //$NON-NLS-1$ // Last rule must be supplied with default token! rules.add(new MacroRule(tMacro, tOther)); //$NON-NLS-1$ diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeSimpleMacroRule.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileSimpleMacroRule.java similarity index 94% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeSimpleMacroRule.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileSimpleMacroRule.java index dc87b2a64bf..aca8061d71a 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeSimpleMacroRule.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileSimpleMacroRule.java @@ -14,11 +14,11 @@ import org.eclipse.jface.text.rules.ICharacterScanner; import org.eclipse.jface.text.rules.IToken; import org.eclipse.jface.text.rules.PatternRule; -public class MakeSimpleMacroRule extends PatternRule { +public class MakefileSimpleMacroRule extends PatternRule { private int nOfBrackets; - public MakeSimpleMacroRule(IToken token) { + public MakefileSimpleMacroRule(IToken token) { super("$(", ")", token, (char) 0, true); //$NON-NLS-1$ //$NON-NLS-2$ } diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeWordDetector.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileWordDetector.java similarity index 95% rename from build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeWordDetector.java rename to build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileWordDetector.java index 837a0e19cd7..fc2cdf22b74 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakeWordDetector.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/MakefileWordDetector.java @@ -12,7 +12,7 @@ package org.eclipse.cdt.make.internal.ui.editor; import org.eclipse.jface.text.rules.IWordDetector; -public class MakeWordDetector implements IWordDetector { +public class MakefileWordDetector implements IWordDetector { private static final String correctStartSpecChars = "%*().><"; //$NON-NLS-1$ private static final String correctSpecChars = "@$/\\"; //$NON-NLS-1$