clang 10.0.0git

Public Member Functions | Protected Member Functions | List of all members
clang::tooling::RefactoringAction Class Referenceabstract

A refactoring action is a class that defines a set of related refactoring action rules. More...

`#include "clang/Tooling/Refactoring/RefactoringAction.h"`

## Public Member Functions
virtual | ~RefactoringAction ()
virtual StringRef | getCommand () const =0
| Returns the name of the subcommand that's used by clang-refactor for this action. More...
virtual StringRef | getDescription () const =0
RefactoringActionRules | createActiveActionRules ()

## Protected Member Functions
virtual RefactoringActionRules | createActionRules () const =0
| Returns a set of refactoring actions rules that are defined by this action. More...

## Detailed Description

A refactoring action is a class that defines a set of related refactoring action rules.

These rules get grouped under a common umbrella - a single clang-refactor subcommand.

A subclass of `RefactoringAction` is responsible for creating the set of grouped refactoring action rules that represent one refactoring operation. Although the rules in one action may have a number of different implementations, they should strive to produce a similar result. It should be easy for users to identify which refactoring action produced the result regardless of which refactoring action rule was used.

The distinction between actions and rules enables the creation of action that uses very different rules, for example:

- local vs global: a refactoring operation like "add missing switch cases" can be applied to one switch when it's selected in an editor, or to all switches in a project when an enum constant is added to an enum.
- tool vs editor: some refactoring operation can be initiated in the editor when a declaration is selected, or in a tool when the name of the declaration is passed using a command-line argument.

Definition at line 39 of file RefactoringAction.h.

## Constructor & Destructor Documentation

## ◆ ~RefactoringAction()

virtual clang::tooling::RefactoringAction::~RefactoringAction | ( |  | ) |
| inline virtual

Definition at line 41 of file RefactoringAction.h.

References createActionRules(), createActiveActionRules(), clang::tooling::createRefactoringActions(), getCommand(), and getDescription().

## Member Function Documentation

## ◆ createActionRules()

virtual RefactoringActionRules clang::tooling::RefactoringAction::createActionRules | ( |  | ) | const
| protected pure virtual

Returns a set of refactoring actions rules that are defined by this action.

Referenced by ~RefactoringAction().

## ◆ createActiveActionRules()

RefactoringActionRules clang::tooling::RefactoringAction::createActiveActionRules | ( |  | ) |

Definition at line 107 of file RefactoringActions.cpp.

Referenced by ~RefactoringAction().

## ◆ getCommand()

virtual StringRef clang::tooling::RefactoringAction::getCommand | ( |  | ) | const
| pure virtual

Returns the name of the subcommand that's used by clang-refactor for this action.

Referenced by ~RefactoringAction().

## ◆ getDescription()

virtual StringRef clang::tooling::RefactoringAction::getDescription | ( |  | ) | const
| pure virtual

Referenced by ~RefactoringAction().

The documentation for this class was generated from the following files:

- include/clang/Tooling/Refactoring/RefactoringAction.h
- lib/Tooling/Refactoring/RefactoringActions.cpp