Path to this page:
Subject: CVS commit: pkgsrc/lang/clang-tools-extra
From: Adam Ciarcinski
Date: 2019-10-19 15:58:10
Message id: 20191019135810.98D31FBF4@cvs.NetBSD.org
Log Message:
clang-tools-extra: updated to 9.0.0
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 \
https://github.com/microsoft/vscode-languageserver-node/pull/367
* Type hierachy
Navigation to base/derived types is possible in editors that support the \
proposed protocol from \
https://github.com/microsoft/vscode-languageserver-node/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.
Files: