clang-tools 3.8.0

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
clang::tidy::FileOptionsProvider Class Reference

Implementation of the `ClangTidyOptionsProvider` interface, which tries to find a configuration file in the closest parent directory of each source file. More...

`#include <ClangTidyOptions.h>`

Inheritance diagram for clang::tidy::FileOptionsProvider:
[legend]
Collaboration diagram for clang::tidy::FileOptionsProvider:
[legend]

## Public Types
typedef std::pair< std::string, std::function< llvm::ErrorOr < ClangTidyOptions > llvm::StringRef)> > | ConfigFileHandler
typedef std::vector < ConfigFileHandler > | ConfigFileHandlers
| Configuration file handlers listed in the order of priority. More...

## Public Member Functions
| FileOptionsProvider (const ClangTidyGlobalOptions &GlobalOptions, const ClangTidyOptions &DefaultOptions, const ClangTidyOptions &OverrideOptions)
| Initializes the `FileOptionsProvider` instance. More...
| FileOptionsProvider (const ClangTidyGlobalOptions &GlobalOptions, const ClangTidyOptions &DefaultOptions, const ClangTidyOptions &OverrideOptions, const ConfigFileHandlers &ConfigHandlers)
| Initializes the `FileOptionsProvider` instance with a custom set of configuration file handlers. More...
ClangTidyOptions | getOptions (llvm::StringRef FileName) override
| Returns options applying to a specific translation unit with the specified `FileName`. More...
Public Member Functions inherited from clang::tidy::DefaultOptionsProvider
| DefaultOptionsProvider (const ClangTidyGlobalOptions &GlobalOptions, const ClangTidyOptions &Options)
const ClangTidyGlobalOptions & | getGlobalOptions () override
| Returns global options, which are independent of the file. More...
Public Member Functions inherited from clang::tidy::ClangTidyOptionsProvider
virtual | ~ClangTidyOptionsProvider ()

## Protected Member Functions
llvm::Optional< ClangTidyOptions > | TryReadConfigFile (llvm::StringRef Directory)
| Try to read configuration files from `Directory` using registered `ConfigHandlers`. More...

## Protected Attributes
llvm::StringMap< ClangTidyOptions > | CachedOptions
ClangTidyOptions | OverrideOptions
ConfigFileHandlers | ConfigHandlers

## Detailed Description

Implementation of the `ClangTidyOptionsProvider` interface, which tries to find a configuration file in the closest parent directory of each source file.

By default, files named ".clang-tidy" will be considered, and the `clang::tidy::parseConfiguration` function will be used for parsing, but a custom set of configuration file names and parsing functions can be specified using the appropriate constructor.

Definition at line 136 of file ClangTidyOptions.h.

## Member Typedef Documentation

typedef std::pair<std::string, std::function<llvm::ErrorOr<ClangTidyOptions> llvm::StringRef)> > clang::tidy::FileOptionsProvider::ConfigFileHandler

Definition at line 141 of file ClangTidyOptions.h.

typedef std::vector<ConfigFileHandler> clang::tidy::FileOptionsProvider::ConfigFileHandlers

Configuration file handlers listed in the order of priority.

Custom configuration file formats can be supported by constructing the list of handlers and passing it to the appropriate `FileOptionsProvider` constructor. E.g. initialization of a `FileOptionsProvider` with support of a custom configuration file format for files named ".my-tidy-config" could look similar to this:

FileOptionsProvider::ConfigFileHandlers ConfigHandlers;
ConfigHandlers.emplace_back(".my-tidy-config", parseMyConfigFormat);
ConfigHandlers.emplace_back(".clang-tidy", parseConfiguration);
return llvm::make_unique<FileOptionsProvider>(
GlobalOptions, DefaultOptions, OverrideOptions, ConfigHandlers);

With the order of handlers shown above, the ".my-tidy-config" file would take precedence over ".clang-tidy" if both reside in the same directory.

Definition at line 160 of file ClangTidyOptions.h.

## Constructor & Destructor Documentation

clang::tidy::FileOptionsProvider::FileOptionsProvider | ( | const ClangTidyGlobalOptions & | GlobalOptions,
|  | const ClangTidyOptions & | DefaultOptions,
|  | const ClangTidyOptions & | OverrideOptions
| ) |  |

Initializes the `FileOptionsProvider` instance.

Parameters

  GlobalOptions | are just stored and returned to the caller of `getGlobalOptions`.
  DefaultOptions | are used for all settings not specified in a configuration file.

If any of the

Parameters

  OverrideOptions | fields are set, they will override whatever options are read from the configuration file.

Definition at line 146 of file ClangTidyOptions.cpp.

References CachedOptions, ConfigHandlers, clang::tidy::ClangTidyOptions::mergeWith(), and clang::tidy::parseConfiguration().

clang::tidy::FileOptionsProvider::FileOptionsProvider | ( | const ClangTidyGlobalOptions & | GlobalOptions,
|  | const ClangTidyOptions & | DefaultOptions,
|  | const ClangTidyOptions & | OverrideOptions,
|  | const ConfigFileHandlers & | ConfigHandlers
| ) |  |

Initializes the `FileOptionsProvider` instance with a custom set of configuration file handlers.

Parameters

  GlobalOptions | are just stored and returned to the caller of `getGlobalOptions`.
  DefaultOptions | are used for all settings not specified in a configuration file.

If any of the

Parameters

  OverrideOptions | fields are set, they will override whatever options are read from the configuration file.
  ConfigHandlers | specifies a custom set of configuration file handlers. Each handler is a pair of configuration file name and a function that can parse configuration from this file type. The configuration files in each directory are searched for in the order of appearance in `ConfigHandlers`.

Definition at line 156 of file ClangTidyOptions.cpp.

References CachedOptions, and clang::tidy::ClangTidyOptions::mergeWith().

## Member Function Documentation

ClangTidyOptions clang::tidy::FileOptionsProvider::getOptions | ( | llvm::StringRef | FileName | ) |
| override virtual

Returns options applying to a specific translation unit with the specified `FileName`.

Reimplemented from clang::tidy::DefaultOptionsProvider.

Definition at line 169 of file ClangTidyOptions.cpp.

References CachedOptions, Path, Result, and TryReadConfigFile().

llvm::Optional< ClangTidyOptions > clang::tidy::FileOptionsProvider::TryReadConfigFile | ( | llvm::StringRef | Directory | ) |
| protected

Try to read configuration files from `Directory` using registered `ConfigHandlers`.

Definition at line 209 of file ClangTidyOptions.cpp.

References ConfigHandlers, clang::tidy::DefaultOptionsProvider::getOptions(), clang::tidy::ClangTidyOptions::mergeWith(), and OverrideOptions.

Referenced by getOptions().

## Member Data Documentation

llvm::StringMap<ClangTidyOptions> clang::tidy::FileOptionsProvider::CachedOptions
| protected

Definition at line 205 of file ClangTidyOptions.h.

Referenced by FileOptionsProvider(), and getOptions().

ConfigFileHandlers clang::tidy::FileOptionsProvider::ConfigHandlers
| protected

Definition at line 207 of file ClangTidyOptions.h.

Referenced by FileOptionsProvider(), and TryReadConfigFile().

ClangTidyOptions clang::tidy::FileOptionsProvider::OverrideOptions
| protected

Definition at line 206 of file ClangTidyOptions.h.

Referenced by TryReadConfigFile().

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

- ClangTidyOptions.h
- ClangTidyOptions.cpp