llvm-project/clang-tools-extra
Haojian Wu 0e1a50e9c4 Overhaul clang-include-fixer.el
General overhaul to fix many coding bugs, simplify the code, and improve readability.

* Clarify documentation strings of user options.
* Say that clang-include-fixer-executable is a file to have auto completion.
* Allow user to select available options for clang-include-fixer-input-format. Turn it into a symbol as it's not a free-form string.
* Remove clang-include-fixer-query-mode. This option was apparently used to select between two different operation modes, which is not a typical use case for user options. Provide two separate commands instead.
* Add a face for the overlay highlighting so that users can customize it.
Move user commands to the front so that readers of the code aren't buried in internal functions.
* Make process calls asynchronous. This is possible here because clang-include-fixer doesn't change files in place. This means input is no longer blocked while clang-include-fixer is running.
* Factor out logic in helper functions to keep functions short.
* Add comments where appropriate.
* Provide an alternative buffer replacement strategy for the case that a single line was inserted (the normal case in the case of clang-include-fixer). This keeps point, markers, and other buffer information intact.
* Use let-alist and association lists instead of property lists to shorten the code.
* Instead of highlighting only the first occurrence of a symbol, highlight all occurrences and move point to the closest one.
* Detect qualified names at point.
* Use filepos-to-bufferpos if available.
* Formatting.

Patch by Philipp Stephani!

llvm-svn: 283306
2016-10-05 10:04:13 +00:00
..
change-namespace [change-namespace] Fix a misplaced case when there is no trailing newline character at the end of the file. 2016-10-04 10:35:53 +00:00
clang-apply-replacements Changes related to new implementation of tooling::Replacements as class. 2016-08-01 10:16:39 +00:00
clang-move Fix a documentation warning. 2016-10-04 10:40:52 +00:00
clang-query Update to match LLVM r272232. 2016-06-09 00:54:42 +00:00
clang-rename [clang-rename] Overhaul clang-rename.el. 2016-10-02 14:51:33 +00:00
clang-reorder-fields [clang-rename] Fix handling of unchanged files 2016-09-17 17:08:47 +00:00
clang-tidy Fix some false-positives with cppcoreguidelines-pro-type-member-init. Handle classes with default constructors that are defaulted or are not present in the AST. 2016-10-04 14:48:05 +00:00
clang-tidy-vs Make building the clang-tidy VS extension less spammy. 2016-10-04 21:27:09 +00:00
docs Overhaul clang-include-fixer.el 2016-10-05 10:04:13 +00:00
include-fixer Overhaul clang-include-fixer.el 2016-10-05 10:04:13 +00:00
modularize Adapt to TraverseLambdaCapture interface change from D23204 2016-08-17 15:00:22 +00:00
pp-trace Fix Clang-tidy modernize-deprecated-headers warnings; other minor fixes. 2016-03-17 17:02:25 +00:00
test Fix some false-positives with cppcoreguidelines-pro-type-member-init. Handle classes with default constructors that are defaulted or are not present in the AST. 2016-10-04 14:48:05 +00:00
tool-template Changes related to new implementation of tooling::Replacements as class. 2016-08-01 10:16:39 +00:00
unittests [change-namespace] Fix a misplaced case when there is no trailing newline character at the end of the file. 2016-10-04 10:35:53 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.gitignore
CMakeLists.txt [clang-move] A prototype tool for moving class definition to new file. 2016-09-21 13:18:19 +00:00
CODE_OWNERS.TXT Updating the code owners list. 2015-09-02 20:00:41 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:38:47 +00:00
README.txt Update references to new lists.llvm.org mailing lists. 2015-08-05 03:56:44 +00:00

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/