summaryrefslogtreecommitdiff
path: root/compilerplugins/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'compilerplugins/README.md')
-rw-r--r--compilerplugins/README.md53
1 files changed, 25 insertions, 28 deletions
diff --git a/compilerplugins/README.md b/compilerplugins/README.md
index c48341e0f0d2..e076f408f07a 100644
--- a/compilerplugins/README.md
+++ b/compilerplugins/README.md
@@ -1,69 +1,66 @@
-Compiler plugins.
+# Compiler plugins
-
-== Overview ==
+## Overview
This directory contains code for compiler plugins. These are used to perform
additional actions during compilation (such as additional warnings) and
also to perform mass code refactoring.
-Currently only the Clang compiler is supported (http://wiki.documentfoundation.org/Development/Clang).
-
+Currently only the Clang compiler is supported <http://wiki.documentfoundation.org/Development/Clang>.
-== Usage ==
+## Usage
-Compiler plugins are enabled automatically by --enable-dbgutil if Clang headers
-are found or explicitly using --enable-compiler-plugins.
+Compiler plugins are enabled automatically by `--enable-dbgutil` if Clang headers
+are found or explicitly using `--enable-compiler-plugins`.
-
-== Functionality ==
+## Functionality
There are two kinds of plugin actions:
+
- compile checks - these are run during normal compilation
- rewriters - these must be run manually and modify source files
Each source has a comment saying whether it's compile check or a rewriter
and description of functionality.
-=== Compile checks ===
+### Compile Checks
Used during normal compilation to perform additional checks.
All warnings and errors are marked '[loplugin]' in the message.
-
-=== Rewriters ===
+### Rewriters
Rewriters analyse and possibly modify given source files.
-Usage: make COMPILER_PLUGIN_TOOL=<rewriter_name>
+Usage: `make COMPILER_PLUGIN_TOOL=<rewriter_name>`
Additional optional make arguments:
-- it is possible to also pass FORCE_COMPILE_ALL=1 to make to trigger rebuild of all source files,
+
+- it is possible to also pass `FORCE_COMPILE_ALL=1` to make to trigger rebuild of all source files,
even those that are up to date.
-- UPDATE_FILES=<scope> - limits which modified files will be actually written back with the changes
- - mainfile - only the main .cxx file will be modified (default)
- - all - all source files involved will be modified (possibly even header files from other LO modules),
+- `UPDATE_FILES=<scope>` - limits which modified files will be actually written back with the changes
+ - `mainfile` - only the main `.cxx` file will be modified (default)
+ - `all` - all source files involved will be modified (possibly even header files from other LO modules),
3rd party header files are however never modified
- - <module> - only files in the given LO module (toplevel directory) will be modified (including headers)
+ - `<module>` - only files in the given LO module (toplevel directory) will be modified (including headers)
Modifications will be written directly to the source files.
Some rewriter plugins are dual-mode and can also be used in a non-rewriting mode
in which they emit warnings for problematic code that they would otherwise
-automatically rewrite. When any rewriter is enabled explicitly via "make
-COMPILER_PLUGIN_TOOL=<rewriter_name>" it works in rewriting mode (and all other
+automatically rewrite. When any rewriter is enabled explicitly via `make
+COMPILER_PLUGIN_TOOL=<rewriter_name>` it works in rewriting mode (and all other
plugins are disabled), but when no rewriter is explicitly enabled (i.e., just
-"make"), all dual-mode rewriters are enabled in non-rewriting mode (along with
+`make`), all dual-mode rewriters are enabled in non-rewriting mode (along with
all non-rewriter plugins; and all non--dual-mode plugins are disabled). The
typical process to use such a dual-mode rewriter X in rewriting mode is
- make COMPILER_PLUGIN_WARNINGS_ONLY=X \
- && make COMPILER_PLUGIN_TOOL=X FORCE_COMPILE_ALL=1 UPDATE_FILES=all
+ make COMPILER_PLUGIN_WARNINGS_ONLY=X \
+ && make COMPILER_PLUGIN_TOOL=X FORCE_COMPILE_ALL=1 UPDATE_FILES=all
which first generates a full build without failing due to warnings from plugin
-X in non-rewriting mode (in case of --enable-werror) and then repeats the build
+X in non-rewriting mode (in case of `--enable-werror`) and then repeats the build
in rewriting mode (during which no object files are generate).
-== Code documentation / howtos ==
-
-http://wiki.documentfoundation.org/Clang_plugins
+## Code Documentation / HowTos
+<http://wiki.documentfoundation.org/Clang_plugins>