diff --git a/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF index 114c5e624e7..529690da189 100644 --- a/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF +++ b/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF @@ -9,21 +9,20 @@ Bundle-Vendor: %provider Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.cdt.autotools.core;bundle-version="1.0.0", - org.eclipse.cdt.make.core;bundle-version="6.0.0", org.eclipse.cdt.core;bundle-version="5.1.0", org.eclipse.core.resources;bundle-version="3.5.0", org.eclipse.cdt.managedbuilder.core;bundle-version="6.0.0", org.eclipse.jface.text;bundle-version="3.5.0", org.eclipse.ui.editors;bundle-version="3.5.0", org.eclipse.cdt.ui;bundle-version="5.1.0", - org.eclipse.help;bundle-version="3.4.0", org.eclipse.ui.ide;bundle-version="3.5.0", org.eclipse.cdt.managedbuilder.ui;bundle-version="5.1.0", org.eclipse.core.filesystem;bundle-version="1.2.0", org.eclipse.cdt.make.ui;bundle-version="6.0.0", org.eclipse.ui.views;bundle-version="3.4.0", org.eclipse.cdt.remote.core;bundle-version="1.0.0", - org.eclipse.swt + org.eclipse.swt, + org.eclipse.ui.genericeditor;bundle-version="1.0.0" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Export-Package: org.eclipse.cdt.autotools.ui, diff --git a/build/org.eclipse.cdt.autotools.ui/plugin.properties b/build/org.eclipse.cdt.autotools.ui/plugin.properties index ab4e3a45a49..310b1d67d69 100644 --- a/build/org.eclipse.cdt.autotools.ui/plugin.properties +++ b/build/org.eclipse.cdt.autotools.ui/plugin.properties @@ -95,4 +95,5 @@ GetDefinedSymbols.label = Get Defined Symbols IncludesOption.name = includes SymbolsOption.name = symbols AutomakeEditor.name = AutomakeEditor -Automake.name = automake \ No newline at end of file +Automake.name = automake +Autoconf.name = autoconf \ No newline at end of file diff --git a/build/org.eclipse.cdt.autotools.ui/plugin.xml b/build/org.eclipse.cdt.autotools.ui/plugin.xml index 2b3f23049b6..cd15096649b 100644 --- a/build/org.eclipse.cdt.autotools.ui/plugin.xml +++ b/build/org.eclipse.cdt.autotools.ui/plugin.xml @@ -36,11 +36,14 @@ - + file-names="Makefile.in" + file-extensions="am" + priority="high"> + @@ -48,22 +51,32 @@ class="org.eclipse.cdt.autotools.ui.editors.AutoconfEditor" contributorClass="org.eclipse.ui.texteditor.BasicTextEditorActionContributor" default="true" - filenames="configure.in,configure.ac,aclocal.m4,acinclude.m4,libtool.m4,ltversion.m4,ltsugar.m4,ltoptions.m4,ltdl.m4,ltgcc.m4,lt~obsolete.m4" icon="icons/autoconf.gif" id="org.eclipse.cdt.autotools.ui.editor.autoconf" - name="%Autoconf.editor.name"/> + name="%Autoconf.editor.name"> + + - + + + + + + + null - * and is assumed to return only token that carry text attributes. + * Creates a damager/repairer that uses the given scanner. The scanner may + * not be null and is assumed to return only token that carry + * text attributes. * - * @param scanner the token scanner to be used, may not be null + * @param scanner + * the token scanner to be used, may not be null */ public AutoconfMacroDamagerRepairer(ITokenScanner scanner) { super(scanner); } - @Override - public IRegion getDamageRegion(ITypedRegion partition, DocumentEvent e, boolean documentPartitioningChanged) { - // In the case of a partition with multiline rules, we will punt to - // reparse the entire partition because we don't know if the line being - // edited is in the middle of an area covered by a multiline rule. In - // such a case, we need to back up and find the start sequence of the - // rule. It is easiest to just reparse the whole partition. - return partition; - } - @Override - public void createPresentation(TextPresentation presentation, ITypedRegion region) { - -// int offset = region.getOffset(); -// int length = region.getLength(); - - super.createPresentation(presentation, region); - } } diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfSourceViewerConfiguration.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfSourceViewerConfiguration.java index 0ace96b0685..3662c8e0da2 100644 --- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfSourceViewerConfiguration.java +++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfSourceViewerConfiguration.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2015 Red Hat, Inc. + * Copyright (c) 2006, 2017 Red Hat, Inc. * 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 @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.cdt.autotools.ui.editors; +import org.eclipse.cdt.internal.autotools.ui.editors.autoconf.AutoconfPresentationReconciler; import org.eclipse.cdt.internal.autotools.ui.text.hover.AutoconfTextHover; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.preference.IPreferenceStore; @@ -19,10 +20,8 @@ import org.eclipse.jface.text.contentassist.ContentAssistant; import org.eclipse.jface.text.contentassist.IContentAssistProcessor; import org.eclipse.jface.text.contentassist.IContentAssistant; import org.eclipse.jface.text.presentation.IPresentationReconciler; -import org.eclipse.jface.text.presentation.PresentationReconciler; import org.eclipse.jface.text.reconciler.IReconciler; import org.eclipse.jface.text.reconciler.MonoReconciler; -import org.eclipse.jface.text.rules.DefaultDamagerRepairer; import org.eclipse.jface.text.source.IAnnotationHover; import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.ui.editors.text.TextSourceViewerConfiguration; @@ -91,20 +90,6 @@ public class AutoconfSourceViewerConfiguration extends } @Override public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) { - PresentationReconciler reconciler = new PresentationReconciler(); - - DefaultDamagerRepairer dr= new AutoconfMacroDamagerRepairer(new AutoconfMacroCodeScanner()); - reconciler.setDamager(dr, AutoconfPartitionScanner.AUTOCONF_MACRO); - reconciler.setRepairer(dr, AutoconfPartitionScanner.AUTOCONF_MACRO); - - dr= new DefaultDamagerRepairer(new AutoconfCodeScanner()); - reconciler.setDamager(dr, AutoconfPartitionScanner.AUTOCONF_COMMENT); - reconciler.setRepairer(dr, AutoconfPartitionScanner.AUTOCONF_COMMENT); - - dr= new MultilineRuleDamagerRepairer(new AutoconfCodeScanner()); - reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE); - reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE); - - return reconciler; + return new AutoconfPresentationReconciler(); } } diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/autoconf/AutoconfPresentationReconciler.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/autoconf/AutoconfPresentationReconciler.java new file mode 100644 index 00000000000..7b9e08b6a72 --- /dev/null +++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/autoconf/AutoconfPresentationReconciler.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2017 Red Hat Inc. 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: + * Red Hat Inc. - Initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.internal.autotools.ui.editors.autoconf; + +import org.eclipse.cdt.autotools.ui.editors.AutoconfCodeScanner; +import org.eclipse.cdt.autotools.ui.editors.AutoconfMacroCodeScanner; +import org.eclipse.cdt.autotools.ui.editors.AutoconfMacroDamagerRepairer; +import org.eclipse.cdt.autotools.ui.editors.AutoconfPartitionScanner; +import org.eclipse.cdt.autotools.ui.editors.MultilineRuleDamagerRepairer; +import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.text.presentation.PresentationReconciler; +import org.eclipse.jface.text.rules.DefaultDamagerRepairer; + +public class AutoconfPresentationReconciler extends PresentationReconciler { + + public AutoconfPresentationReconciler() { + DefaultDamagerRepairer dr = new AutoconfMacroDamagerRepairer(new AutoconfMacroCodeScanner()); + setDamager(dr, AutoconfPartitionScanner.AUTOCONF_MACRO); + setRepairer(dr, AutoconfPartitionScanner.AUTOCONF_MACRO); + + dr = new DefaultDamagerRepairer(new AutoconfCodeScanner()); + setDamager(dr, AutoconfPartitionScanner.AUTOCONF_COMMENT); + setRepairer(dr, AutoconfPartitionScanner.AUTOCONF_COMMENT); + + dr = new MultilineRuleDamagerRepairer(new AutoconfCodeScanner()); + setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE); + setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE); + } + +} diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefilePresentationReconciler.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefilePresentationReconciler.java new file mode 100644 index 00000000000..e863cd8318a --- /dev/null +++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefilePresentationReconciler.java @@ -0,0 +1,50 @@ +/******************************************************************************* + * Copyright (c) 2017 Red Hat Inc. 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: + * Red Hat Inc. - Initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.internal.autotools.ui.editors.automake; + +import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.text.presentation.PresentationReconciler; +import org.eclipse.jface.text.rules.DefaultDamagerRepairer; + +public class AutomakefilePresentationReconciler extends PresentationReconciler { + + public AutomakefilePresentationReconciler() { + AutomakefileCodeScanner scanner = new AutomakefileCodeScanner(); + DefaultDamagerRepairer dr = new DefaultDamagerRepairer(scanner); + setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE); + setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE); + + dr = new DefaultDamagerRepairer(scanner); + setDamager(dr, MakefilePartitionScanner.MAKEFILE_COMMENT_PARTITION); + setRepairer(dr, MakefilePartitionScanner.MAKEFILE_COMMENT_PARTITION); + + dr = new DefaultDamagerRepairer(scanner); + setDamager(dr, MakefilePartitionScanner.MAKEFILE_MACRO_ASSIGNEMENT_PARTITION); + setRepairer(dr, MakefilePartitionScanner.MAKEFILE_MACRO_ASSIGNEMENT_PARTITION); + + dr = new DefaultDamagerRepairer(scanner); + setDamager(dr, MakefilePartitionScanner.MAKEFILE_INCLUDE_BLOCK_PARTITION); + setRepairer(dr, MakefilePartitionScanner.MAKEFILE_INCLUDE_BLOCK_PARTITION); + + dr = new DefaultDamagerRepairer(scanner); + setDamager(dr, MakefilePartitionScanner.MAKEFILE_IF_BLOCK_PARTITION); + setRepairer(dr, MakefilePartitionScanner.MAKEFILE_IF_BLOCK_PARTITION); + + dr = new DefaultDamagerRepairer(scanner); + setDamager(dr, MakefilePartitionScanner.MAKEFILE_DEF_BLOCK_PARTITION); + setRepairer(dr, MakefilePartitionScanner.MAKEFILE_DEF_BLOCK_PARTITION); + + dr = new DefaultDamagerRepairer(scanner); + setDamager(dr, MakefilePartitionScanner.MAKEFILE_OTHER_PARTITION); + setRepairer(dr, MakefilePartitionScanner.MAKEFILE_OTHER_PARTITION); + } + +} diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileSourceConfiguration.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileSourceConfiguration.java index dd342ffcc6b..b452c9252d9 100644 --- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileSourceConfiguration.java +++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileSourceConfiguration.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2015 QNX Software Systems and others. + * Copyright (c) 2000, 2017 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 @@ -19,10 +19,8 @@ import org.eclipse.jface.text.ITextHover; import org.eclipse.jface.text.contentassist.ContentAssistant; import org.eclipse.jface.text.contentassist.IContentAssistant; import org.eclipse.jface.text.presentation.IPresentationReconciler; -import org.eclipse.jface.text.presentation.PresentationReconciler; import org.eclipse.jface.text.reconciler.IReconciler; import org.eclipse.jface.text.reconciler.MonoReconciler; -import org.eclipse.jface.text.rules.DefaultDamagerRepairer; import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.jface.util.PropertyChangeEvent; @@ -82,36 +80,7 @@ public class AutomakefileSourceConfiguration extends @Override public IPresentationReconciler getPresentationReconciler(ISourceViewer v) { - PresentationReconciler reconciler = new PresentationReconciler(); - - DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getAutomakeCodeScanner()); - reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE); - reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE); - - dr = new DefaultDamagerRepairer(getAutomakeCodeScanner()); - reconciler.setDamager(dr, MakefilePartitionScanner.MAKEFILE_COMMENT_PARTITION); - reconciler.setRepairer(dr, MakefilePartitionScanner.MAKEFILE_COMMENT_PARTITION); - - dr = new DefaultDamagerRepairer(getAutomakeCodeScanner()); - reconciler.setDamager(dr, MakefilePartitionScanner.MAKEFILE_MACRO_ASSIGNEMENT_PARTITION); - reconciler.setRepairer(dr, MakefilePartitionScanner.MAKEFILE_MACRO_ASSIGNEMENT_PARTITION); - - dr = new DefaultDamagerRepairer(getAutomakeCodeScanner()); - reconciler.setDamager(dr, MakefilePartitionScanner.MAKEFILE_INCLUDE_BLOCK_PARTITION); - reconciler.setRepairer(dr, MakefilePartitionScanner.MAKEFILE_INCLUDE_BLOCK_PARTITION); - - dr = new DefaultDamagerRepairer(getAutomakeCodeScanner()); - reconciler.setDamager(dr, MakefilePartitionScanner.MAKEFILE_IF_BLOCK_PARTITION); - reconciler.setRepairer(dr, MakefilePartitionScanner.MAKEFILE_IF_BLOCK_PARTITION); - - dr = new DefaultDamagerRepairer(getAutomakeCodeScanner()); - reconciler.setDamager(dr, MakefilePartitionScanner.MAKEFILE_DEF_BLOCK_PARTITION); - reconciler.setRepairer(dr, MakefilePartitionScanner.MAKEFILE_DEF_BLOCK_PARTITION); - - dr = new DefaultDamagerRepairer(getAutomakeCodeScanner()); - reconciler.setDamager(dr, MakefilePartitionScanner.MAKEFILE_OTHER_PARTITION); - reconciler.setRepairer(dr, MakefilePartitionScanner.MAKEFILE_OTHER_PARTITION); - return reconciler; + return new AutomakefilePresentationReconciler(); } @Override