GP-4269 - Minor refactor of plugin category names

This commit is contained in:
dragonmacher 2024-01-26 19:24:48 -05:00
parent fbdc01c33a
commit ca9cfe9f9a
63 changed files with 204 additions and 287 deletions

View File

@ -26,8 +26,9 @@ import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
import ghidra.util.datastruct.ListenerSet;
//@formatter:off
@PluginInfo(
category = PluginCategoryNames.MISC,
category = PluginCategoryNames.DEBUGGER,
shortDescription = "Service for monitoring task progress",
description = """
Implements a pub-sub model for notifying of tasks and progress. Publishers can create
@ -36,7 +37,9 @@ import ghidra.util.datastruct.ListenerSet;
""",
servicesProvided = { ProgressService.class },
packageName = DebuggerPluginPackage.NAME,
status = PluginStatus.RELEASED)
status = PluginStatus.RELEASED
)
//@formatter:on
public class ProgressServicePlugin extends Plugin implements ProgressService {
ListenerSet<ProgressListener> listeners = new ListenerSet<>(ProgressListener.class, true);

View File

@ -15,16 +15,13 @@
*/
package ghidra.app.merge;
import javax.swing.JComponent;
import ghidra.app.CorePluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.model.DomainFile;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
import ghidra.program.model.address.Address;
import ghidra.program.model.listing.DataTypeArchive;
import ghidra.program.model.listing.Program;
import javax.swing.JComponent;
/**
* Plugin that provides a merge component provider for data type archives.
@ -33,7 +30,7 @@ import javax.swing.JComponent;
@PluginInfo(
status = PluginStatus.HIDDEN,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = PluginCategoryNames.COMMON,
shortDescription = "DataType Archive Merge Manager",
description = "Manage merge of DataType Archives"
)
@ -46,187 +43,98 @@ public class DataTypeArchiveMergeManagerPlugin extends MergeManagerPlugin {
* @param mergeManager the merge manager that will control the merge process
* @param dataTypeArchive the data type archive
*/
public DataTypeArchiveMergeManagerPlugin( PluginTool tool,
DataTypeArchiveMergeManager mergeManager,
DataTypeArchive dataTypeArchive) {
public DataTypeArchiveMergeManagerPlugin(PluginTool tool,
DataTypeArchiveMergeManager mergeManager,
DataTypeArchive dataTypeArchive) {
super(tool, mergeManager, dataTypeArchive);
// registerEventConsumed(ProgramActivatedPluginEvent.class);
// registerServiceProvided(ProgramManager.class, this);
}
@Override
public MergeManagerProvider createProvider() {
return new MergeManagerProvider(this,
"Merge Data Type Archives for " + currentDomainObject.getName());
}
@Override
public void processEvent(PluginEvent event) {
// if (event instanceof ProgramActivatedPluginEvent) {
// Program activeProgram = ((ProgramActivatedPluginEvent) event).getActiveProgram();
// currentProgram = activeProgram;
// }
}
public MergeManagerProvider createProvider() {
return new MergeManagerProvider(this,
"Merge Data Type Archives for " + currentDomainObject.getName());
}
@Override
protected void dispose() {
public void processEvent(PluginEvent event) {
// stub
}
@Override
protected void dispose() {
provider.dispose();
}
public static String getDescription() {
return "Manage merge of Programs";
}
public static String getDescriptiveName() {
return "Program Merge Manager";
}
public static String getCategory() {
return "Unmanaged";
}
/**
* Gets the merge manager associated with this plug-in.
* @return the merge manager
*/
@Override
DataTypeArchiveMergeManager getMergeManager() {
return (DataTypeArchiveMergeManager)mergeManager;
DataTypeArchiveMergeManager getMergeManager() {
return (DataTypeArchiveMergeManager) mergeManager;
}
/**
* Defines and displays a component for resolving merge conflicts.
* @param component the component
* @param componentID the identifier for this component
*/
@Override
void setMergeComponent(JComponent component, String componentID) {
void setMergeComponent(JComponent component, String componentID) {
provider.setMergeComponent(component, componentID);
}
/**
* Sets the merge description at the top of the merge tool.
* @param mergeDescription the new description
*/
@Override
void updateMergeDescription(String mergeDescription) {
void updateMergeDescription(String mergeDescription) {
provider.updateMergeDescription(mergeDescription);
}
/**
* Sets the message below the progress meter in the current phase progress area.
* @param progressDescription the new text message to display. If null, then the default message is displayed.
*/
@Override
void updateProgressDetails(String progressDescription) {
void updateProgressDetails(String progressDescription) {
provider.updateProgressDetails(progressDescription);
}
/**
* Sets the percentage of the progress meter that is filled in for the current phase progress area.
* @param currentPercentProgress the percentage of the progress bar to fill in from 0 to 100.
*/
@Override
void setCurrentProgress(int currentPercentProgress) {
void setCurrentProgress(int currentPercentProgress) {
provider.setCurrentProgress(currentPercentProgress);
}
/**
* Displays the default information in the merge tool.
*/
@Override
void showDefaultComponent() {
void showDefaultComponent() {
provider.showDefaultComponent();
}
/**
* Enables/disables the Apply button at the bottom of the merge tool.
* The Apply button is for applying conflicts.
* @param state true means enable the button. false means disable it.
*/
@Override
void setApplyEnabled(boolean state) {
void setApplyEnabled(boolean state) {
provider.setApplyEnabled(state);
}
/**
* Gets the provider for the merge.
* @return the provider
*/
@Override
MergeManagerProvider getProvider() {
MergeManagerProvider getProvider() {
return provider;
}
public boolean closeAllPrograms(boolean ignoreChanges) {
return false;
}
public boolean closeProgram() {
return false;
}
public boolean closeProgram(Program program, boolean ignoreChanges) {
return false;
}
public DataTypeArchive[] getAllOpenDataTypeArchives() {
DataTypeArchiveMergeManager archiveMergeManager = (DataTypeArchiveMergeManager)mergeManager;
return new DataTypeArchive[] {
archiveMergeManager.getDataTypeArchive(MergeConstants.RESULT),
archiveMergeManager.getDataTypeArchive(MergeConstants.LATEST),
archiveMergeManager.getDataTypeArchive(MergeConstants.MY),
archiveMergeManager.getDataTypeArchive(MergeConstants.ORIGINAL)
};
}
public DataTypeArchive getCurrentDataTypeArchive() {
return (DataTypeArchive)currentDomainObject;
}
public Program getProgram(Address addr) {
return null;
}
public int getSearchPriority(Program p) {
return 0;
}
public boolean isVisible(Program program) {
return false;
}
public Program openProgram(DomainFile domainFile) {
return null;
}
public Program openProgram(DomainFile df, int version) {
return null;
}
public Program openProgram(DomainFile domainFile, int version, int state) {
return null;
}
public void openProgram(Program program) {
}
public void openProgram(Program program, boolean current) {
}
public void openProgram(Program program, int state) {
}
public void releaseProgram(Program program, Object persistentOwner) {
}
public void setCurrentProgram(Program p) {
}
public boolean setPersistentOwner(Program program, Object owner) {
return false;
}
public void setSearchPriority(Program p, int priority) {
}
}

View File

@ -38,7 +38,7 @@ import ghidra.program.model.listing.Program;
@PluginInfo(
status = PluginStatus.HIDDEN,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = PluginCategoryNames.COMMON,
shortDescription = "Program Merge Manager",
description = "Manage merge of Programs",
servicesProvided = { ProgramManager.class },

View File

@ -30,7 +30,7 @@ import ghidra.program.util.ProgramLocation;
@PluginInfo(
status = PluginStatus.STABLE,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.TESTING,
category = PluginCategoryNames.COMMON,
shortDescription = "Listing Merge",
description = "Merge Panel for Listing",
eventsConsumed = { ProgramLocationPluginEvent.class }
@ -44,14 +44,14 @@ public class ListingMergePanelPlugin extends Plugin implements ProgramaticUseOnl
* @param tool merge tool
* @param mergePanel merge panel
*/
public ListingMergePanelPlugin(PluginTool tool, ListingMergePanel mergePanel) {
super(tool);
public ListingMergePanelPlugin(PluginTool tool, ListingMergePanel mergePanel) {
super(tool);
createProvider(mergePanel);
firePluginEvent(new ProgramActivatedPluginEvent(this.getName(),
mergePanel.getProgram(MergeConstants.RESULT)));
createActions();
}
private void createActions() {
ViewInstructionDetailsAction viewDetailsAction = new ViewInstructionDetailsAction(this);
tool.addAction(viewDetailsAction);
@ -60,17 +60,18 @@ public class ListingMergePanelPlugin extends Plugin implements ProgramaticUseOnl
public ComponentProvider getProvider() {
return provider;
}
/* (non-Javadoc)
* @see ghidra.framework.plugintool.Plugin#dispose()
*/
@Override
public void dispose() {
public void dispose() {
if (provider != null) {
provider.dispose();
firePluginEvent(new ProgramActivatedPluginEvent(this.getName(), null));
}
}
public static String getDescription() {
return "Listing Merge";
}
@ -84,19 +85,18 @@ public class ListingMergePanelPlugin extends Plugin implements ProgramaticUseOnl
}
private void createProvider(ListingMergePanel mergePanel) {
provider = new ListingMergePanelProvider(tool,this, getName(), mergePanel);
provider = new ListingMergePanelProvider(tool, this, getName(), mergePanel);
tool.addComponentProvider(provider, false);
}
@Override
public void processEvent(PluginEvent event) {
public void processEvent(PluginEvent event) {
if (event instanceof ProgramLocationPluginEvent) {
ProgramLocationPluginEvent evt = (ProgramLocationPluginEvent)event;
ProgramLocation location = evt.getLocation();
ListingMergePanel mergePanel = (ListingMergePanel)provider.getComponent();
mergePanel.goTo(location, true);
}
}
if (event instanceof ProgramLocationPluginEvent) {
ProgramLocationPluginEvent evt = (ProgramLocationPluginEvent) event;
ProgramLocation location = evt.getLocation();
ListingMergePanel mergePanel = (ListingMergePanel) provider.getComponent();
mergePanel.goTo(location, true);
}
}
}

View File

@ -43,7 +43,7 @@ import docking.action.MenuData;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.TREE,
category = PluginCategoryNames.PROGRAM_ORGANIZATION,
shortDescription = "Apply Module Algorithm to a folder or fragment",
description = "This plugin applies the \"module\" algorithm "+
" to a Folder or Fragment in a program tree. This algorithm "+

View File

@ -18,7 +18,6 @@ package ghidra.app.plugin.core.assembler;
import docking.ActionContext;
import ghidra.app.CorePluginPackage;
import ghidra.app.context.ListingActionContext;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.app.plugin.ProgramPlugin;
import ghidra.app.plugin.assembler.Assemblers;
import ghidra.docking.settings.Settings;
@ -40,7 +39,7 @@ import ghidra.program.model.mem.MemBuffer;
* The API for instruction assembly is available from {@link Assemblers}. For data assembly, the API
* is in {@link DataType#encodeRepresentation(String, MemBuffer, Settings, int)}.
*/
@PluginInfo(status = PluginStatus.RELEASED, packageName = CorePluginPackage.NAME, category = PluginCategoryNames.PATCHING, shortDescription = "Assembler", description = "This plugin provides functionality for assembly patching. " +
@PluginInfo(status = PluginStatus.RELEASED, packageName = CorePluginPackage.NAME, category = "Patching", shortDescription = "Assembler", description = "This plugin provides functionality for assembly patching. " +
"The assembler supports most processor languages also supported by the " +
"disassembler. Depending on the particular processor, your mileage may vary. " +
"We are in the process of testing and improving support for all our processors. " +

View File

@ -51,7 +51,7 @@ import ghidra.util.exception.NotFoundException;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.COMMON,
shortDescription = "Provides the block model service",
description = "This plugin provides registration and distribution of basic-block "
+ "and subroutine models via the block model service.",

View File

@ -49,7 +49,7 @@ import ghidra.util.task.*;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.COMMON,
shortDescription = "Clipboard Manager",
description = "This plugin manages cut/copy/paste of labels, comments, formatted code, and byte strings to and from the system clipboard.",
servicesProvided = { ClipboardService.class }

View File

@ -47,7 +47,7 @@ import ghidra.util.Swing;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.DIFF,
category = PluginCategoryNames.CODE_VIEWER,
shortDescription = "Compare Functions",
description = "Allows users to compare two or more functions",
servicesProvided = { FunctionComparisonService.class },

View File

@ -40,7 +40,7 @@ import ghidra.program.util.ProgramSelection;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.COMMON,
shortDescription = "Go To Service",
description = "This plugin provides the service used by other plugins to " +
"go to an address in the program, or to an address in another program." +
@ -225,7 +225,8 @@ public final class GoToServicePlugin extends ProgramPlugin {
}
@Override
public void removeHighlightProvider(ListingHighlightProvider highlightProvider, Program program) {
public void removeHighlightProvider(ListingHighlightProvider highlightProvider,
Program program) {
CodeViewerService service = tool.getService(CodeViewerService.class);
if (service != null) {
service.removeHighlightProvider(highlightProvider, program);
@ -233,7 +234,8 @@ public final class GoToServicePlugin extends ProgramPlugin {
}
@Override
public void setHighlightProvider(ListingHighlightProvider highlightProvider, Program program) {
public void setHighlightProvider(ListingHighlightProvider highlightProvider,
Program program) {
CodeViewerService service = tool.getService(CodeViewerService.class);
if (service != null) {
service.setHighlightProvider(highlightProvider, program);

View File

@ -24,7 +24,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
@PluginInfo(
status = PluginStatus.STABLE,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.COMMON,
shortDescription = "Interpreter panel service",
description = "Provides a generic interpreter connection and mates it to a panel"
+ " which takes input from the user and displays output from the interpreter.",

View File

@ -29,7 +29,7 @@ import ghidra.util.HelpLocation;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.COMMON,
shortDescription = "Provides the marker display",
description = "This plugin extends the code browser to include left and right marker" +
"components. The left margin shows marks related to the address being shown at " +

View File

@ -18,8 +18,8 @@ package ghidra.app.plugin.core.misc;
import docking.ActionContext;
import docking.ComponentProvider;
import docking.action.builder.ActionBuilder;
import ghidra.app.CorePluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.main.UtilityPluginPackage;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -28,8 +28,8 @@ import ghidra.framework.plugintool.util.PluginStatus;
*/
@PluginInfo( //@formatter:off
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.MISC,
packageName = UtilityPluginPackage.NAME,
category = PluginCategoryNames.FRAMEWORK,
shortDescription = "Provides generic actions for increasing/decreasing fonts.",
description = "This plugin provides actions for increasing fonts used by component providers. "+
"ComponentProviders can either override the \"changeFontSize()\" method or register a" +

View File

@ -39,7 +39,7 @@ import ghidra.util.exception.AssertException;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.MISC,
category = PluginCategoryNames.COMMON,
shortDescription = "Generates recovery snapshot files",
description = "Facilitates the periodic creation of recovery snapshot files. " +
"In the event of a crash or application hang, these files may be used to " +

View File

@ -52,7 +52,7 @@ import docking.action.MenuData;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.TREE,
category = PluginCategoryNames.PROGRAM_ORGANIZATION,
shortDescription = "Rename Fragment",
description = "Rename a fragment in the program tree viewer with either the " +
"selected label within the fragment or with the minimum " +

View File

@ -54,7 +54,7 @@ import ghidra.util.task.*;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.TREE,
category = PluginCategoryNames.PROGRAM_ORGANIZATION,
shortDescription = "Sort Fragments within Module",
description = "Plugin to sort Modules and Fragments within a selected Module. " +
"Child Module folders are always name-sorted and placed " +

View File

@ -49,7 +49,7 @@ import ghidra.util.bean.opteditor.OptionsVetoException;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.COMMON,
shortDescription = "Tool State History",
description = "This plugin maintains a history of tool states. "
+ "It is used in conjunction with other plugins "

View File

@ -48,7 +48,7 @@ import ghidra.util.task.*;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.COMMON,
shortDescription = "Set Language",
description = "This plugin provides the set language feature."
)

View File

@ -57,7 +57,7 @@ import ghidra.util.task.TaskLauncher;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.COMMON,
shortDescription = "Manage open programs",
description = "This plugin provides actions for opening and closing programs. It also " +
"provides a service to allow plugins to open/close programs. This plugin is " +

View File

@ -15,6 +15,9 @@
*/
package ghidra.app.plugin.core.programtree;
import docking.ActionContext;
import docking.action.DockingAction;
import docking.action.MenuData;
import ghidra.app.CorePluginPackage;
import ghidra.app.cmd.module.ComplexityDepthModularizationCmd;
import ghidra.app.cmd.module.DominanceModularizationCmd;
@ -25,35 +28,30 @@ import ghidra.framework.plugintool.PluginInfo;
import ghidra.framework.plugintool.PluginTool;
import ghidra.framework.plugintool.util.PluginStatus;
import ghidra.util.HelpLocation;
import docking.ActionContext;
import docking.action.DockingAction;
import docking.action.MenuData;
/**
*
* Provides actions for organizing the program tree based on various algorithms. Currently, there
* are two algorithms:
*
* Dominance: organizes the functions in a program such that a function is in a subtree of another
* function if all call paths to that function must past through the parent funciton.
*
* Complexity Depth: organizes the functions into "levels" from the bottom up. All leaf functions are
* in the same lowest level (highest number, call it level N). All functions that only call leaf functions
* are in the next higher level, N-1. Functions in the highest level (labeled level 0) are those furthest
* from the leaves.
*
*/
//@formatter:off
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.TREE,
category = PluginCategoryNames.PROGRAM_ORGANIZATION,
shortDescription = "Program Tree Modularization Plugin",
description = "Provides actions for orgainizing a program tree into modules or fragments. " +
"Currently there are two organizations, dominance and complexity depth",
servicesRequired = { BlockModelService.class }
)
//@formatter:on
/**
* Provides actions for organizing the program tree based on various algorithms. Currently, there
* are two algorithms:
* <p>
* Dominance: organizes the functions in a program such that a function is in a subtree of another
* function if all call paths to that function must past through the parent function.
* <p>
* Complexity Depth: organizes the functions into "levels" from the bottom up. All leaf functions
* are in the same lowest level (highest number, call it level N). All functions that only call
* leaf functions are in the next higher level, N-1. Functions in the highest level (labeled level
* 0) are those furthest from the leaves.
*/
public class ProgramTreeModularizationPlugin extends ProgramPlugin {
public ProgramTreeModularizationPlugin(PluginTool tool) {

View File

@ -55,7 +55,7 @@ import resources.Icons;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.TREE,
category = PluginCategoryNames.PROGRAM_ORGANIZATION,
shortDescription = "Show Program Tree Views",
description = "This plugin shows a view for " +
" each tree in the program. A tree can be organized into " +

View File

@ -43,7 +43,7 @@ import ghidra.util.HelpLocation;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.TREE,
category = PluginCategoryNames.PROGRAM_ORGANIZATION,
shortDescription = "Selects addresses from Program Tree",
description = "Allows the user to select code in the code browser from a selection" +
" of nodes (modules and fragments) in the Program Tree.",

View File

@ -91,7 +91,7 @@ public class SymbolRowObject implements Comparable<SymbolRowObject> {
/**
* The <code>AbstractSortedTableModel.EndOfChainComparator</code> makes it
* neccessary to implement this method to avoid use of identity hash equality
* necessary to implement this method to avoid use of identity hash equality
* when two instances are otherwise equal.
*/
@Override

View File

@ -45,7 +45,7 @@ import ghidra.util.task.SwingUpdateManager;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.COMMON,
shortDescription = "Results table service",
description = "Provides a generic results service that takes a list of information "
+ "and displays the list to user in the form of a table",

View File

@ -33,10 +33,10 @@ import help.HelpService;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.TESTING,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = "Show component information",
description = "This plugin is a debug aid that displays " +
"a table of information about the components in the application."
description = "A debug aid that displays a table of information about the components in the " +
"application."
)
//@formatter:on
public class ComponentInfoPlugin extends Plugin {

View File

@ -33,7 +33,7 @@ import resources.Icons;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.TESTING,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = "Show database tables",
description = "This plugin is a debug aid that allows the user to browse database tables.",
eventsConsumed = { ProgramActivatedPluginEvent.class }

View File

@ -35,7 +35,7 @@ import help.HelpService;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.TESTING,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = "Displays domain object events",
description = "This plugin provides a component to display domain object event " +
"as they are generated. The maximum number of messages shown is " +

View File

@ -27,7 +27,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
@PluginInfo(
status = PluginStatus.STABLE,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.TESTING,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = "Show Domain Folder change notifications",
description = "Displays active project domain folder change notifications",
servicesRequired = { FrontEndService.class }

View File

@ -31,7 +31,7 @@ import help.HelpService;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.TESTING,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = "Show plugin events",
description = "This plugin is a debug aid that prints " +
"plugin event information. It can also be used as a sample " +

View File

@ -56,7 +56,7 @@ import ghidra.util.xml.GenericXMLOutputter;
@PluginInfo(
status = PluginStatus.STABLE,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.MISC,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = "Generate Old Language File",
description = "This plugin allows the user to generate an old-language XML " +
"file from the current version of a loaded language. " +

View File

@ -26,7 +26,7 @@ import docking.*;
import docking.action.DockingAction;
import docking.action.MenuData;
import docking.actions.SharedStubKeyBindingAction;
import docking.help.*;
import docking.help.HelpManager;
import docking.tool.ToolConstants;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
@ -45,9 +45,9 @@ import help.HelpService;
*/
//@formatter:off
@PluginInfo(
status = PluginStatus.RELEASED,
status = PluginStatus.STABLE,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.TESTING,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = "Write JavaHelp Info",
description = "This plugin identifies " +
"those plugin actions that do not have help associated with them. The file, " +

View File

@ -41,7 +41,7 @@ import ghidra.program.util.*;
@PluginInfo(
status = PluginStatus.STABLE,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.TESTING,
category = PluginCategoryNames.COMMON,
shortDescription = "Show Markers for Properties",
description = "This plugin shows a list of properties in the program."+
" For each property selected, navigation markers are displayed to indicate "+

View File

@ -40,7 +40,7 @@ import ghidra.util.Swing;
@PluginInfo(
status = PluginStatus.STABLE,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = WindowLocationPlugin.NAME,
description = "Shows all known window and screen geometry"
)

View File

@ -39,7 +39,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.TESTING,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = "Capture Screenshots",
description = "Capture screen images and export to Portable Network Graphic (.PNG) format."
)
@ -84,7 +84,8 @@ public class ScreenshotPlugin extends ProgramPlugin {
RenderedImage image = generateImage(activeComponent);
String componentName =
((DockableComponent) activeComponent).getComponentWindowingPlaceholder().getName();
((DockableComponent) activeComponent).getComponentWindowingPlaceholder()
.getName();
File file = getFile(componentName + ".png");
if (file != null) {
@ -93,7 +94,8 @@ public class ScreenshotPlugin extends ProgramPlugin {
}
};
captureActiveWindowAction.setAddToAllWindows(true);
captureActiveWindowAction.setDescription("Takes a screenshot of the active component provider and exports it to PNG format.");
captureActiveWindowAction.setDescription(
"Takes a screenshot of the active component provider and exports it to PNG format.");
captureActiveWindowAction.setKeyBindingData(new KeyBindingData(KeyEvent.VK_F11,
InputEvent.ALT_DOWN_MASK));
String group = "ScreenCapture";
@ -118,7 +120,8 @@ public class ScreenshotPlugin extends ProgramPlugin {
}
};
captureToolFrameAction.setAddToAllWindows(true);
captureToolFrameAction.setDescription("Takes a screenshot of the active tool and exports it to PNG format.");
captureToolFrameAction.setDescription(
"Takes a screenshot of the active tool and exports it to PNG format.");
captureToolFrameAction.setKeyBindingData(new KeyBindingData(KeyEvent.VK_F12,
InputEvent.ALT_DOWN_MASK));
captureToolFrameAction.setMenuBarData(new MenuData(new String[] { ToolConstants.MENU_TOOLS,

View File

@ -27,7 +27,7 @@ import ghidra.util.HelpLocation;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = UtilityPluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = "Runtime Information",
description = "Plugin for displaying runtime information"
)

View File

@ -19,7 +19,6 @@ import java.util.Iterator;
import ghidra.app.CorePluginPackage;
import ghidra.app.events.*;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.app.services.*;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -27,20 +26,33 @@ import ghidra.program.model.listing.Program;
import ghidra.program.util.ProgramSelection;
import ghidra.util.SystemUtilities;
//@formatter:off
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = "Byte Viewer",
shortDescription = "Displays bytes in memory",
description = "Provides a component for showing the bytes in memory. Additional plugins " +
"provide capabilites for this plugin to show the bytes in various formats (e.g., hex, " +
"octal, decimal). The hex format plugin is loaded by default when this plugin is loaded.",
servicesRequired = {
ProgramManager.class, GoToService.class, NavigationHistoryService.class,
ClipboardService.class
},
eventsConsumed = {
ProgramLocationPluginEvent.class, ProgramActivatedPluginEvent.class,
ProgramSelectionPluginEvent.class, ProgramHighlightPluginEvent.class,
ProgramClosedPluginEvent.class, ByteBlockChangePluginEvent.class
},
eventsProduced = {
ProgramLocationPluginEvent.class, ProgramSelectionPluginEvent.class,
ByteBlockChangePluginEvent.class
}
)
//@formatter:on
/**
* Visible Plugin to show ByteBlock data in various formats.
* Plugin to show ByteBlock data in various formats.
*/
@PluginInfo(status = PluginStatus.RELEASED, packageName = CorePluginPackage.NAME, category = PluginCategoryNames.BYTE_VIEWER, shortDescription = "Displays bytes in memory", description = "Provides a component for showing the bytes in memory. " +
"Additional plugins provide capabilites for this plugin" +
" to show the bytes in various formats (e.g., hex, octal, decimal)." +
" The hex format plugin is loaded by default when this plugin is loaded.", servicesRequired = {
ProgramManager.class, GoToService.class, NavigationHistoryService.class,
ClipboardService.class, }, eventsConsumed = { ProgramLocationPluginEvent.class,
ProgramActivatedPluginEvent.class, ProgramSelectionPluginEvent.class,
ProgramHighlightPluginEvent.class, ProgramClosedPluginEvent.class,
ByteBlockChangePluginEvent.class, }, eventsProduced = {
ProgramLocationPluginEvent.class, ProgramSelectionPluginEvent.class,
ByteBlockChangePluginEvent.class, })
public class ByteViewerPlugin extends AbstractByteViewerPlugin<ProgramByteViewerComponentProvider> {
public ByteViewerPlugin(PluginTool tool) {

View File

@ -29,7 +29,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.DECOMPILER,
category = PluginCategoryNames.ANALYSIS,
shortDescription = "Data Type Hover",
description = "Displays data type information in a tooltip as you hover over a data type name in the decompiler.",
servicesProvided = { DecompilerHoverService.class }

View File

@ -29,7 +29,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.DECOMPILER,
category = PluginCategoryNames.ANALYSIS,
shortDescription = "Function Name Hover",
description = "Pop-up display of the function prototype of the hovered-over function name in the decompiler",
servicesProvided = { DecompilerHoverService.class }

View File

@ -29,7 +29,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.DECOMPILER,
category = PluginCategoryNames.ANALYSIS,
shortDescription = "Reference Hover",
description = "Pop-up display of \"referred to\" code and data",
servicesProvided = { DecompilerHoverService.class }

View File

@ -29,7 +29,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.DECOMPILER,
category = PluginCategoryNames.ANALYSIS,
shortDescription = "Scalar Value Hover",
description = "Pop-up display of various interpretations of the hovered-over decompiler scalar",
servicesProvided = { DecompilerHoverService.class }

View File

@ -63,7 +63,7 @@ import ghidra.util.task.TaskMonitor;
@PluginInfo(
status = PluginStatus.STABLE,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.DIAGNOSTIC,
shortDescription = "Function ID Debug",
description = "This plugin is for debugging function identification libraries."
)

View File

@ -50,7 +50,7 @@ import resources.Icons;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.INTERPRETERS,
category = PluginCategoryNames.COMMON,
shortDescription = "Python Interpreter",
description = "Provides an interactive Python Interpreter that is tightly integrated with a loaded Ghidra program.",
servicesRequired = { InterpreterPanelService.class },

View File

@ -45,7 +45,7 @@ import ghidra.util.Msg;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = CorePluginPackage.NAME,
category = PluginCategoryNames.MISC,
category = PluginCategoryNames.CODE_VIEWER,
shortDescription = "Source Code Lookup Plugin",
description = "Plugin to send requests to the development IDE to lookup symbols in source files.",
servicesRequired = { EclipseIntegrationService.class },

View File

@ -15,26 +15,33 @@
*/
package ghidra.app.plugin;
import ghidra.framework.main.ApplicationLevelPlugin;
import ghidra.framework.plugintool.util.PluginDescription;
import ghidra.framework.plugintool.util.PluginStatus;
/**
* A listing of commonly used {@link PluginDescription} category names.
* <p>
* Note - the Front End tool automatically include plugins that: 1) implement
* {@link ApplicationLevelPlugin}, have the {@link PluginStatus#RELEASED}, and do not have the
* {@link #EXAMPLES} category. If you wish to create an {@link ApplicationLevelPlugin} that is not
* automatically included in the Front End, the easiest way to do that is to mark its status as
* {@link PluginStatus#STABLE}.
*/
public interface PluginCategoryNames {
String COMMON = GenericPluginCategoryNames.COMMON;
String SUPPORT = GenericPluginCategoryNames.SUPPORT;
String CODE_VIEWER = "Code Viewer";
String BYTE_VIEWER = "Byte Viewer";
String GRAPH = "Graph";
String ANALYSIS = "Analysis";
String NAVIGATION = "Navigation";
String SEARCH = "Search";
String TREE = "Program Tree";
String TESTING = GenericPluginCategoryNames.TESTING;
String DIAGNOSTIC = "Diagnostic";
String DIFF = "Code Difference";
String MISC = GenericPluginCategoryNames.MISC;
String USER_ANNOTATION = "User Annotation";
String EXAMPLES = GenericPluginCategoryNames.EXAMPLES;
String SELECTION = "Selection";
String INTERPRETERS = "Interpreters";
String DEBUGGER = "Debugger";
String PATCHING = "Patching";
String DECOMPILER = "Decompiler";
String UNMANAGED = "Unmanaged";
public String ANALYSIS = "Analysis";
// common to tools that open programs
public String COMMON = "Common";
public String CODE_VIEWER = "Code Viewer";
public String DEBUGGER = "Debugger";
public String DIAGNOSTIC = "Diagnostic";
public String EXAMPLES = "Examples";
public String FRAMEWORK = "Framework";
public String GRAPH = "Graph";
public String NAVIGATION = "Navigation";
public String SEARCH = "Search";
public String SELECTION = "Selection";
public String PROGRAM_ORGANIZATION = "Program Organization";
}

View File

@ -31,7 +31,7 @@ import ghidra.util.HelpLocation;
@PluginInfo(
status = PluginStatus.RELEASED,
packageName = UtilityPluginPackage.NAME,
category = PluginCategoryNames.SUPPORT,
category = PluginCategoryNames.FRAMEWORK,
shortDescription = "Manages themes for the Ghidra GUI",
description = "Adds actions and options to manage Themes within Ghidra. " +
"This plugin is available only in the Ghidra Project Window."

View File

@ -688,8 +688,8 @@ public class FrontEndPlugin extends Plugin
connectionButton.setContentAreaFilled(false);
connectionButton.setSelected(isConnected);
connectionButton
.setBorder(isConnected ? BorderFactory.createBevelBorder(BevelBorder.LOWERED)
: BorderFactory.createBevelBorder(BevelBorder.RAISED));
.setBorder(isConnected ? BorderFactory.createBevelBorder(BevelBorder.LOWERED)
: BorderFactory.createBevelBorder(BevelBorder.RAISED));
connectionIconPanel.add(connectionButton);
if (isConnected) {
@ -701,7 +701,7 @@ public class FrontEndPlugin extends Plugin
}
}
repositoryLabel
.setText("Project Repository: " + repository.getName() + getAccessString(user));
.setText("Project Repository: " + repository.getName() + getAccessString(user));
String serverName = repository.getServerInfo().getServerName();
connectionButton.setToolTipText(
@ -973,7 +973,7 @@ public class FrontEndPlugin extends Plugin
};
renameToolAction.setPopupMenuData(new MenuData(new String[] { "Rename..." }, "tool"));
renameToolAction
.setHelpLocation(new HelpLocation(ToolConstants.TOOL_HELP_TOPIC, "Rename Tool"));
.setHelpLocation(new HelpLocation(ToolConstants.TOOL_HELP_TOPIC, "Rename Tool"));
propertiesAction = new ToolButtonAction(PROPERTIES_ACTION_NAME) {
@Override
@ -997,7 +997,7 @@ public class FrontEndPlugin extends Plugin
new MenuData(new String[] { "Configure Plugins..." }, "zproperties"));
propertiesAction
.setHelpLocation(new HelpLocation(ToolConstants.TOOL_HELP_TOPIC, "Configure_Tool"));
.setHelpLocation(new HelpLocation(ToolConstants.TOOL_HELP_TOPIC, "Configure_Tool"));
tool.addLocalAction(frontEndProvider, exportToolAction);
tool.addLocalAction(frontEndProvider, renameToolAction);

View File

@ -43,7 +43,7 @@ import docking.util.image.ToolIconURL;
import docking.widgets.OptionDialog;
import generic.jar.ResourceFile;
import generic.util.WindowUtilities;
import ghidra.app.plugin.GenericPluginCategoryNames;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.app.util.GenericHelpTopics;
import ghidra.framework.Application;
import ghidra.framework.LoggingInitialization;
@ -279,7 +279,7 @@ public class FrontEndTool extends PluginTool implements OptionsChangeListener {
/**
* Add those plugins that implement the ApplicationLevelPlugin interface and have a
* RELEASED status and not (example || testing) category.
* RELEASED status and not example category.
*/
private void installDefaultApplicationLevelPlugins() {
List<String> classNames = new ArrayList<>();
@ -288,8 +288,7 @@ public class FrontEndTool extends PluginTool implements OptionsChangeListener {
PluginDescription pd = PluginDescription.getPluginDescription(pluginClass);
String category = pd.getCategory();
boolean isBadCategory = category.equals(GenericPluginCategoryNames.EXAMPLES) ||
category.equals(GenericPluginCategoryNames.TESTING);
boolean isBadCategory = category.equals(PluginCategoryNames.EXAMPLES);
if (pd.getStatus() == PluginStatus.RELEASED && !isBadCategory) {
classNames.add(pluginClass.getName());
}

View File

@ -51,6 +51,7 @@ public class PluginDescription implements Comparable<PluginDescription> {
private static HashMap<Class<? extends Plugin>, PluginDescription> CACHE = new HashMap<>();
private static final String DOTCLASS_EXT = ".class";
private static final String NO_CATEGORY = "NO_CATEGORY";
private final Class<? extends Plugin> pluginClass;
private final String name;
@ -370,7 +371,7 @@ public class PluginDescription implements Comparable<PluginDescription> {
*/
private static PluginDescription createDefaultPluginDescription(Class<? extends Plugin> c) {
return new PluginDescription(c, MiscellaneousPluginPackage.NAME,
PluginCategoryNames.UNMANAGED, null, null, PluginStatus.UNSTABLE, false,
NO_CATEGORY, null, null, PluginStatus.UNSTABLE, false,
Collections.emptyList(), Collections.emptyList(), Collections.emptyList(),
Collections.emptyList());
}

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -26,7 +25,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin",
servicesProvided = { CircularServiceA.class },

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -26,7 +25,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin",
servicesProvided = CircularServiceB.class,

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -33,7 +32,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin",
servicesRequired = { DiamondServiceB.class, DiamondServiceC.class} )

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -33,7 +32,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin",
servicesProvided = DiamondServiceB.class,

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -33,7 +32,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin",
servicesProvided = DiamondServiceC.class,

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -33,7 +32,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin",
servicesProvided = DiamondServiceD.class)

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -26,7 +25,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin" )
//@formatter:on

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -26,7 +25,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin",
servicesRequired = { InitFailServiceB.class } )

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -26,7 +25,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin",
servicesProvided = { InitFailServiceB.class } )

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -26,7 +25,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin")
//@formatter:on

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -26,7 +25,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin")
//@formatter:on

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -27,7 +26,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin",
servicesRequired = { MissingDepServiceB.class } )

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -27,7 +26,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin",
description = "Test plugin",
servicesProvided = MissingDepServiceB.class)

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -28,7 +27,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
*/
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin name collision",
description = "Test plugin name collision.")
//@formatter:on

View File

@ -16,7 +16,6 @@
package ghidra.framework.plugintool.testplugins.secondconflict;
import ghidra.app.DeveloperPluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.framework.plugintool.*;
import ghidra.framework.plugintool.util.PluginStatus;
@ -28,7 +27,7 @@ import ghidra.framework.plugintool.util.PluginStatus;
//@formatter:off
@PluginInfo(status = PluginStatus.HIDDEN,
packageName = DeveloperPluginPackage.NAME,
category = PluginCategoryNames.UNMANAGED,
category = "NONE",
shortDescription = "Test plugin name collision",
description = "Test plugin name collision.")
//@formatter:on