llvm-project/clang-tools-extra
Adam Czachorowski 24bb2d1e77 [clangd] Add a tweak for adding "using" statement.
Summary:
This triggers on types and function calls with namespace qualifiers. The
action is to remove the qualifier and instead add a "using" statement at
appropriate place.

It is not always clear where to add the "using" line. Right now we find
the nearest "using" line and add it there, thus keeping with local
convention. If there are no usings, we put it at the deepest relevant
namespace level.

This is an initial version only. There are several improvements that
can be made:
* Support for qualifiers that are not purely namespace (e.g.  record
types, etc).
* Removing qualifier from other instances of the same type/call.
* Smarter placement of the "using" line.

Reviewers: sammccall

Reviewed By: sammccall

Subscribers: nridge, mgorny, ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D76432
2020-04-02 17:37:38 +02:00
..
clang-apply-replacements [clang-apply-replacements] No longer deduplucates replacements from the same TU 2020-03-25 09:36:36 +00:00
clang-change-namespace Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
clang-doc Upgrade some instances of std::sort to llvm::sort. NFC. 2020-03-28 19:23:29 +01:00
clang-include-fixer Avoid including FileManager.h from SourceManager.h 2020-03-11 13:53:12 -07:00
clang-move [clang][Analysis] CallGraph: store the actual call `Expr*` in the CallGraphNode::CallRecord 2020-02-13 23:37:53 +03:00
clang-query Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
clang-reorder-fields [ASTMatchers] StringRef'ify hasName 2020-01-29 10:53:08 +01:00
clang-tidy [clang-tidy] Fix crash in readability-redundant-string-cstr 2020-03-31 13:27:32 +01:00
clangd [clangd] Add a tweak for adding "using" statement. 2020-04-02 17:37:38 +02:00
docs clagn-tidy/doc: Add a link to readability-static-accessed-through-instance from readability-convert-member-functions-to-static 2020-04-01 17:01:48 +02:00
modularize Upgrade some instances of std::sort to llvm::sort. NFC. 2020-03-28 19:23:29 +01:00
pp-trace Avoid including FileManager.h from SourceManager.h 2020-03-11 13:53:12 -07:00
test [clang-tidy] Fix crash in readability-redundant-string-cstr 2020-03-31 13:27:32 +01:00
tool-template Revert "Use InitLLVM to setup a pretty stack printer" 2019-11-25 21:06:56 -05:00
unittests [clang-doc] Improving Markdown Output 2020-03-06 17:37:08 -08:00
.gitignore
CMakeLists.txt Remove clang-tidy-vs from clang-tools-extra (PR41791) 2019-08-27 18:36:08 +00:00
CODE_OWNERS.TXT [clangd] add CODE_OWNERS 2020-01-29 12:43:19 +01:00
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
README.txt

README.txt

//===----------------------------------------------------------------------===//
// Clang Tools repository
//===----------------------------------------------------------------------===//

Welcome to the repository of extra Clang Tools.  This repository holds tools
that are developed as part of the LLVM compiler infrastructure project and the
Clang frontend.  These tools are kept in a separate "extra" repository to
allow lighter weight checkouts of the core Clang codebase.

This repository is only intended to be checked out inside of a full LLVM+Clang
tree, and in the 'tools/extra' subdirectory of the Clang checkout.

All discussion regarding Clang, Clang-based tools, and code in this repository
should be held using the standard Clang mailing lists:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

Code review for this tree should take place on the standard Clang patch and
commit lists:
  http://lists.llvm.org/mailman/listinfo/cfe-commits

If you find a bug in these tools, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/