diff --git a/core/org.eclipse.cdt.ui/.settings/.api_filters b/core/org.eclipse.cdt.ui/.settings/.api_filters
new file mode 100644
index 00000000000..736a9f302cf
--- /dev/null
+++ b/core/org.eclipse.cdt.ui/.settings/.api_filters
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/actions/DeleteResConfigsAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/actions/DeleteResConfigsAction.java
deleted file mode 100644
index 1de2e3cfdf2..00000000000
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/actions/DeleteResConfigsAction.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2011 Intel Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Intel Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.ui.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.cdt.core.model.CoreModel;
-import org.eclipse.cdt.core.model.ICContainer;
-import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ITranslationUnit;
-import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
-import org.eclipse.cdt.core.settings.model.ICProjectDescription;
-import org.eclipse.cdt.core.settings.model.ICResourceDescription;
-import org.eclipse.cdt.internal.ui.actions.ActionMessages;
-import org.eclipse.cdt.internal.ui.actions.DeleteResConfigsHandler;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.ui.newui.AbstractPage;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowPulldownDelegate2;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
-
-/**
- * Action which deletes resource description. (If resource description is missing
- * one from parent is normally used)
- * @deprecated as of CDT 8.0 now using {@link DeleteResConfigsHandler}
- */
-@Deprecated
-public class DeleteResConfigsAction implements IWorkbenchWindowPulldownDelegate2, IObjectActionDelegate {
-
- protected ArrayList objects = null;
- private ArrayList outData = null;
-
- @Override
- public void selectionChanged(IAction action, ISelection selection) {
- objects = null;
- outData = null;
-
- if (!selection.isEmpty()) {
- // case for context menu
- if (selection instanceof IStructuredSelection) {
- Object[] obs = ((IStructuredSelection) selection).toArray();
- if (obs.length > 0) {
- for (int i = 0; i < obs.length; i++) {
- IResource res = null;
- // only folders and files may be affected by this action
- if (obs[i] instanceof ICContainer || obs[i] instanceof ITranslationUnit)
- res = ((ICElement) obs[i]).getResource();
- // project's configuration cannot be deleted
- else if (obs[i] instanceof IResource && !(obs[i] instanceof IProject))
- res = (IResource) obs[i];
- if (res != null) {
- IProject p = res.getProject();
- if (!p.isOpen())
- continue;
-
- if (!CoreModel.getDefault().isNewStyleProject(p))
- continue;
-
- IPath path = res.getProjectRelativePath();
- // getting description in read-only mode
- ICProjectDescription prjd = CoreModel.getDefault().getProjectDescription(p, false);
- if (prjd == null)
- continue;
- ICConfigurationDescription[] cfgds = prjd.getConfigurations();
- if (cfgds == null || cfgds.length == 0)
- continue;
- for (ICConfigurationDescription cfgd : cfgds) {
- ICResourceDescription rd = cfgd.getResourceDescription(path, true);
- if (rd != null) {
- if (objects == null)
- objects = new ArrayList<>();
- objects.add(res);
- break; // stop configurations scanning
- }
- }
- }
- }
- }
- }
- }
- action.setEnabled(objects != null);
- }
-
- @Override
- public void run(IAction action) {
- openDialog();
- }
-
- private void openDialog() {
- if (objects == null || objects.size() == 0)
- return;
- // create list of configurations to delete
-
- ListSelectionDialog dialog = new ListSelectionDialog(CUIPlugin.getActiveWorkbenchShell(), objects,
- createSelectionDialogContentProvider(), new LabelProvider() {
- }, ActionMessages.DeleteResConfigsAction_0);
- dialog.setTitle(ActionMessages.DeleteResConfigsAction_1);
- if (dialog.open() == Window.OK) {
- Object[] selected = dialog.getResult();
- if (selected != null && selected.length > 0) {
- for (Object element : selected) {
- ((ResCfgData) element).delete();
- AbstractPage.updateViews(((ResCfgData) element).res);
- }
- }
- }
- }
-
- // Stores data for resource description with its "parents".
- class ResCfgData {
- IResource res;
- ICProjectDescription prjd;
- ICConfigurationDescription cfgd;
- ICResourceDescription rdesc;
-
- public ResCfgData(IResource res2, ICProjectDescription prjd2, ICConfigurationDescription cfgd2,
- ICResourceDescription rdesc2) {
- res = res2;
- prjd = prjd2;
- cfgd = cfgd2;
- rdesc = rdesc2;
- }
-
- // performs deletion
- public void delete() {
- try {
- cfgd.removeResourceDescription(rdesc);
- CoreModel.getDefault().setProjectDescription(res.getProject(), prjd);
- } catch (CoreException e) {
- }
- }
-
- @Override
- public String toString() {
- return "[" + cfgd.getName() + "] for " + res.getName(); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- private IStructuredContentProvider createSelectionDialogContentProvider() {
- return new IStructuredContentProvider() {
-
- @Override
- public Object[] getElements(Object inputElement) {
- if (outData != null)
- return outData.toArray();
-
- outData = new ArrayList<>();
- List> ls = (List>) inputElement;
- Iterator> it = ls.iterator();
- IProject proj = null;
- ICProjectDescription prjd = null;
- ICConfigurationDescription[] cfgds = null;
-
- // creating list of all res descs for all objects
- while (it.hasNext()) {
- IResource res = (IResource) it.next();
- IPath path = res.getProjectRelativePath();
- if (res.getProject() != proj) {
- proj = res.getProject();
- prjd = CoreModel.getDefault().getProjectDescription(proj);
- cfgds = prjd.getConfigurations();
- }
- if (cfgds != null) {
- for (ICConfigurationDescription cfgd : cfgds) {
- ICResourceDescription rd = cfgd.getResourceDescription(path, true);
- if (rd != null)
- outData.add(new ResCfgData(res, prjd, cfgd, rd));
- }
- }
- }
- return outData.toArray();
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- };
- }
-
- @Override
- public void dispose() {
- objects = null;
- }
-
- // doing nothing
- @Override
- public void init(IWorkbenchWindow window) {
- }
-
- @Override
- public Menu getMenu(Menu parent) {
- return null;
- }
-
- @Override
- public Menu getMenu(Control parent) {
- return null;
- }
-
- @Override
- public void setActivePart(IAction action, IWorkbenchPart targetPart) {
- }
-
-}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/actions/ExcludeFromBuildAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/actions/ExcludeFromBuildAction.java
deleted file mode 100644
index 71ba1b511ac..00000000000
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/actions/ExcludeFromBuildAction.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2011 Intel Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Intel Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.ui.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.cdt.core.model.CoreModel;
-import org.eclipse.cdt.core.model.ICContainer;
-import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.cdt.core.model.ITranslationUnit;
-import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
-import org.eclipse.cdt.core.settings.model.ICProjectDescription;
-import org.eclipse.cdt.core.settings.model.ICSourceEntry;
-import org.eclipse.cdt.core.settings.model.util.CDataUtil;
-import org.eclipse.cdt.internal.ui.actions.ActionMessages;
-import org.eclipse.cdt.internal.ui.actions.ExcludeFromBuildHandler;
-import org.eclipse.cdt.internal.ui.newui.Messages;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.ui.newui.AbstractPage;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowPulldownDelegate2;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
-
-/**
- * Action which excludes resources from build.
- * @deprecated as of CDT 8.0 now using {@link ExcludeFromBuildHandler}
- */
-@Deprecated
-public class ExcludeFromBuildAction implements IWorkbenchWindowPulldownDelegate2, IObjectActionDelegate {
-
- protected ArrayList objects = null;
- protected ArrayList cfgNames = null;
-
- @Override
- public void selectionChanged(IAction action, ISelection selection) {
- objects = null;
- cfgNames = null;
- boolean cfgsOK = true;
-
- if (!selection.isEmpty()) {
- // case for context menu
- if (selection instanceof IStructuredSelection) {
- Object[] obs = ((IStructuredSelection) selection).toArray();
- if (obs.length > 0) {
- for (int i = 0; i < obs.length && cfgsOK; i++) {
- // if project selected, don't do anything
- if ((obs[i] instanceof IProject) || (obs[i] instanceof ICProject)) {
- cfgsOK = false;
- break;
- }
- IResource res = null;
- // only folders and files may be affected by this action
- if (obs[i] instanceof ICContainer || obs[i] instanceof ITranslationUnit) {
- res = ((ICElement) obs[i]).getResource();
- } else if (obs[i] instanceof IResource) {
- // project's configuration cannot be deleted
- res = (IResource) obs[i];
- }
- if (res != null) {
- ICConfigurationDescription[] cfgds = getCfgsRead(res);
- if (cfgds == null || cfgds.length == 0)
- continue;
-
- if (objects == null)
- objects = new ArrayList<>();
- objects.add(res);
- if (cfgNames == null) {
- cfgNames = new ArrayList<>(cfgds.length);
- for (int j = 0; j < cfgds.length; j++) {
- if (!canExclude(res, cfgds[j])) {
- cfgNames = null;
- cfgsOK = false;
- break;
- }
- cfgNames.add(cfgds[j].getName());
- }
- } else {
- if (cfgNames.size() != cfgds.length) {
- cfgsOK = false;
- } else {
- for (int j = 0; j < cfgds.length; j++) {
- if (!canExclude(res, cfgds[j]) || !cfgNames.contains(cfgds[j].getName())) {
- cfgsOK = false;
- break;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- action.setEnabled(cfgsOK && objects != null);
- }
-
- private boolean canExclude(IResource res, ICConfigurationDescription cfg) {
- IPath p = res.getFullPath();
- ICSourceEntry[] ent = cfg.getSourceEntries();
- boolean state = CDataUtil.isExcluded(p, ent);
- return CDataUtil.canExclude(p, (res instanceof IFolder), !state, ent);
- }
-
- private void setExclude(IResource res, ICConfigurationDescription cfg, boolean exclude) {
- try {
- ICSourceEntry[] newEntries = CDataUtil.setExcluded(res.getFullPath(), (res instanceof IFolder), exclude,
- cfg.getSourceEntries());
- cfg.setSourceEntries(newEntries);
- } catch (CoreException e) {
- CUIPlugin.log(e);
- }
- }
-
- @Override
- public void run(IAction action) {
- openDialog();
- }
-
- private ICConfigurationDescription[] getCfgsRead(IResource res) {
- IProject p = res.getProject();
- if (!p.isOpen())
- return null;
- if (!CoreModel.getDefault().isNewStyleProject(p))
- return null;
- ICProjectDescription prjd = CoreModel.getDefault().getProjectDescription(p, false);
- if (prjd == null)
- return null;
- return prjd.getConfigurations();
- }
-
- private void openDialog() {
- if (objects == null || objects.size() == 0)
- return;
- // create list of configurations to delete
-
- ListSelectionDialog dialog = new ListSelectionDialog(CUIPlugin.getActiveWorkbenchShell(), cfgNames,
- createSelectionDialogContentProvider(), new LabelProvider() {
- }, ActionMessages.ExcludeFromBuildAction_0);
- dialog.setTitle(ActionMessages.ExcludeFromBuildAction_1);
-
- boolean[] status = new boolean[cfgNames.size()];
- Iterator it = objects.iterator();
- while (it.hasNext()) {
- IResource res = it.next();
- ICConfigurationDescription[] cfgds = getCfgsRead(res);
- IPath p = res.getFullPath();
- for (int i = 0; i < cfgds.length; i++) {
- boolean b = CDataUtil.isExcluded(p, cfgds[i].getSourceEntries());
- if (b)
- status[i] = true;
- }
- }
- ArrayList lst = new ArrayList<>();
- for (int i = 0; i < status.length; i++)
- if (status[i])
- lst.add(cfgNames.get(i));
- if (lst.size() > 0)
- dialog.setInitialElementSelections(lst);
-
- if (dialog.open() == Window.OK) {
- Object[] selected = dialog.getResult(); // may be empty
- Iterator it2 = objects.iterator();
- while (it2.hasNext()) {
- IResource res = it2.next();
- IProject p = res.getProject();
- if (!p.isOpen())
- continue;
- // get writable description
- ICProjectDescription prjd = CoreModel.getDefault().getProjectDescription(p, true);
- if (prjd == null)
- continue;
- ICConfigurationDescription[] cfgds = prjd.getConfigurations();
- for (int i = 0; i < cfgds.length; i++) {
- boolean exclude = false;
- for (int j = 0; j < selected.length; j++) {
- if (cfgds[i].getName().equals(selected[j])) {
- exclude = true;
- break;
- }
- }
- setExclude(res, cfgds[i], exclude);
- }
- try {
- CoreModel.getDefault().setProjectDescription(p, prjd);
- } catch (CoreException e) {
- CUIPlugin.logError(Messages.AbstractPage_11 + e.getLocalizedMessage());
- }
- AbstractPage.updateViews(res);
- }
- }
- }
-
- private IStructuredContentProvider createSelectionDialogContentProvider() {
- return new IStructuredContentProvider() {
- @Override
- public Object[] getElements(Object inputElement) {
- return cfgNames.toArray();
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- };
- }
-
- @Override
- public void dispose() {
- objects = null;
- }
-
- // doing nothing
- @Override
- public void init(IWorkbenchWindow window) {
- }
-
- @Override
- public Menu getMenu(Menu parent) {
- return null;
- }
-
- @Override
- public Menu getMenu(Control parent) {
- return null;
- }
-
- @Override
- public void setActivePart(IAction action, IWorkbenchPart targetPart) {
- }
-}