Subject: CVS commit: pkgsrc/lang/clang-tools-extra
From: Adam Ciarcinski
Date: 2019-10-19 15:58:10
Message id:

Log Message:
clang-tools-extra: updated to 9.0.0

Improvements to clangd
* Background indexing is on by default
When using clangd, it will build an index of your code base (all files listed in \ 
your compile database). This index enables go-to-definition, find-references, \ 
and even code completion to find symbols across your project.
This feature can consume a lot of CPU. It can be disabled using the \ 
--background-index=false flag, and respects -j to use fewer threads. The index \ 
is written to .clangd/index in the project root.

* Contextual code actions
Extract variable, expand auto, expand macro, convert string to raw string. More \ 
to come in the future!

* Clang-tidy warnings are available
These will be produced for projects that have a .clang-tidy file in their source \ 
tree, as described in the clang-tidy documentation.

* Improved diagnostics
Errors from headers are now shown (on the #including line). The message now \ 
indicates if fixes are available. Navigation between errors and associated notes \ 
is improved (for editors that support Diagnostic.relatedInformation).

* Suggested includes
When a class or other name is not found, clangd may suggest to fix this by \ 
adding the corresponding #include directive.

* Semantic highlighting
clangd can push syntax information to the editor, allowing it to highlight e.g. \ 
member variables differently from locals. (requires editor support)
This implements the proposed protocol from \ … e/pull/367

* Type hierachy
Navigation to base/derived types is possible in editors that support the \ 
proposed protocol from \ … e/pull/426

* Improvements to include insertion
Only headers with #include-guards will be inserted, and the feature can be \ 
disabled with the --header-insertion=never flag.
Standard library headers should now be inserted more accurately, particularly \ 
for C++ other than libstdc++, and for the C standard library.

* Code completion
Overloads are bundled into a single completion item by default. (for editors \ 
that support signature-help).
Redundant const/non-const overloads are no longer shown.
Before clangd is warmed up (during preamble build), limited identifier- and \ 
index-based code completion is available.

* Format-on-type
A new implementation of format-on-type is triggered by hitting enter: it \ 
attempts to reformat the previous line and reindent the new line. (Requires \ 
editor support).

* Toolchain header detection
Projects that use an embedded gcc toolchain may only work when used with the \ 
corresponding standard library. clangd can now query the toolchain to find these \ 
headers. The compilation database must correctly specify this toolchain, and the \ 
--query-driver=/path/to/toolchain/bin/* flag must be passed to clangd.

* Miscellaneous improvements
Hover now produces richer Markdown-formatted text (for supported editors).
Rename is safer and more helpful, though is still within one file only.
Files without extensions (e.g. C++ standard library) are handled better.
clangd can understand offsets in UTF-8 or UTF-32 through command-line flags or \ 
protocol extensions. (Useful with editors/platforms that don’t speak UTF-16).
Editors that support edits near the cursor in code-completion can set the \ 
textDocument.completion.editsNearCursor capability to true, and clangd will \ 
provide completions that correct . to ->, and vice-versa.

Improvements to clang-tidy

New OpenMP module.
New abseil-duration-addition check.
New abseil-duration-conversion-cast check.
New abseil-duration-unnecessary-conversion check.
New abseil-time-comparison check.
New abseil-time-subtraction check.
New android-cloexec-pipe check.
New android-cloexec-pipe2 check.
New bugprone-branch-clone check.
New bugprone-posix-return check.
New bugprone-unhandled-self-assignment check.
New fuchsia-default-arguments-calls check.
New fuchsia-default-arguments-declarations check.
New google-objc-avoid-nsobject-new check.
New google-readability-avoid-underscore-in-googletest-name check.
New llvm-prefer-isa-or-dyn-cast-in-conditionals check.
New modernize-use-trailing-return-type check.
New objc-super-self check.
New openmp-exception-escape check.
New openmp-use-default-none check.
New readability-convert-member-functions-to-static check.
New alias cert-oop54-cpp to bugprone-unhandled-self-assignment was added.
New alias cppcoreguidelines-explicit-virtual-functions to modernize-use-override \ 
was added.
Added UseAssignment option to cppcoreguidelines-pro-type-member-init
The fuchsia-default-arguments check has been removed.
The google-runtime-int check has been disabled in Objective-C++.
The modernize-use-override now supports OverrideSpelling and FinalSpelling options.
The misc-throw-by-value-catch-by-reference now supports WarnOnLargeObject and \ 
MaxSize options to warn on any large trivial object caught by value.
The Acronyms and IncludeDefaultAcronyms options for the \ 
objc-property-declaration check have been removed.

Improvements to pp-trace
* Added a new option -callbacks to filter preprocessor callbacks. It replaces \ 
the -ignore option.