Summary: This new Style rule is made as a part of adding support for NetBSD KNF in clang-format. NetBSD have it's own priority of includes which should be followed while formatting NetBSD code. This style sorts the Cpp Includes according to the priorities of NetBSD, as mentioned in the [Style Guide](http://cvsweb.netbsd.org/bsdweb.cgi/src/share/misc/style?rev=HEAD&content-type=text/x-cvsweb-markup) The working of this Style rule shown below: **Configuration:** This revision introduces a new field under IncludeCategories named `SortPriority` which defines the priority of ordering the `#includes` and the `Priority` will define the categories for grouping the `#include blocks`. Reviewers: cfe-commits, mgorny, christos, MyDeveloperDay Reviewed By: MyDeveloperDay Subscribers: lebedev.ri, rdwampler, christos, mgorny, krytarowski Patch By: Manikishan Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D64695 llvm-svn: 372919
32 lines
1.1 KiB
C++
32 lines
1.1 KiB
C++
//===--- IncludeStyle.cpp - Style of C++ #include directives -----*- C++-*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "clang/Tooling/Inclusions/IncludeStyle.h"
|
|
|
|
using clang::tooling::IncludeStyle;
|
|
|
|
namespace llvm {
|
|
namespace yaml {
|
|
|
|
void MappingTraits<IncludeStyle::IncludeCategory>::mapping(
|
|
IO &IO, IncludeStyle::IncludeCategory &Category) {
|
|
IO.mapOptional("Regex", Category.Regex);
|
|
IO.mapOptional("Priority", Category.Priority);
|
|
IO.mapOptional("SortPriority", Category.SortPriority);
|
|
}
|
|
|
|
void ScalarEnumerationTraits<IncludeStyle::IncludeBlocksStyle>::enumeration(
|
|
IO &IO, IncludeStyle::IncludeBlocksStyle &Value) {
|
|
IO.enumCase(Value, "Preserve", IncludeStyle::IBS_Preserve);
|
|
IO.enumCase(Value, "Merge", IncludeStyle::IBS_Merge);
|
|
IO.enumCase(Value, "Regroup", IncludeStyle::IBS_Regroup);
|
|
}
|
|
|
|
} // namespace yaml
|
|
} // namespace llvm
|