class RefactoringAction

Declaration

class RefactoringAction { /* full declaration omitted */ };

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 \c 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.

Declared at: clang/include/clang/Tooling/Refactoring/RefactoringAction.h:39

Method Overview

Methods

virtual clang::tooling::RefactoringActionRules
createActionRules() const

Description

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

Declared at: clang/include/clang/Tooling/Refactoring/RefactoringAction.h:54

clang::tooling::RefactoringActionRules
createActiveActionRules()

Declared at: clang/include/clang/Tooling/Refactoring/RefactoringAction.h:49

virtual llvm::StringRef getCommand() const

Description

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

Declared at: clang/include/clang/Tooling/Refactoring/RefactoringAction.h:45

virtual llvm::StringRef getDescription() const

Declared at: clang/include/clang/Tooling/Refactoring/RefactoringAction.h:47

virtual ~RefactoringAction()

Declared at: clang/include/clang/Tooling/Refactoring/RefactoringAction.h:41