title: Make clang-format order includes in a case-insensitive way
body: <p>I'm trying to configure .clang-format. My intention is for it to keep my include groups as they are in the code, but sort them alphabetically. I managed to get close to what I wanted with <code>IncludeBlocks: Preserve</code>, but it sorts includes in each block in a case sensitive way:</p>
  <p>This is what I get after applying my format</p>
  <pre class="lang-c prettyprint-override"><code>#include &quot;A1.h&quot;
  #include &quot;B2.h&quot;
  #include &quot;a2.h&quot;
  #include &quot;b1.h&quot;
  </code></pre>
  <p>And this is what I want to achieve</p>
  <pre class="lang-c prettyprint-override"><code>#include &quot;A1.h&quot;
  #include &quot;a2.h&quot;
  #include &quot;b1.h&quot;
  #include &quot;B2.h&quot;
  </code></pre>
  <p>I'm using clang-format version 10.0. My .clang-format file, in case it's relevant:</p>
  <pre><code>---
  # Brompton's Clang Format file v0.0.1
  #
  # Changelog:
  # v0.0.1 (25/9/2020):
  # - First version of this file
  
  
  # Base it on Google's Standard, with 4 spaces as indentation
  BasedOnStyle: Google
  IndentWidth: '4'
  Standard: Cpp11
  UseTab: Never
  
  # Settings for C/C++
  Language: Cpp
  # 120 chars per line, reflow comments so they stay within limits
  ColumnLimit: '120'
  ReflowComments: 'true'
  
  # Short includes alphabetically. Will respect &quot;include groups&quot;
  SortIncludes: 'true'
  IncludeBlocks: Preserve
  
  # These control when to align text under certain conditions
  # Align arguments after an open bracket ( '(', '[', '{'), on statements that are too long for a single line
  AlignAfterOpenBracket: Align
  # Align adjacent macros and variables, for enhanced readability.
  AlignConsecutiveMacros: 'true'
  AlignConsecutiveAssignments: 'true'
  # Align the '\' on scaped newlines, because it looks neater
  AlignEscapedNewlines: Left
  
  # These keep statements that could go on a single line to be collapsed. They take more space, but are more readable
  # ... Code Blocks { ... }
  AllowShortBlocksOnASingleLine: 'false'
  # ... Switch cases
  AllowShortCaseLabelsOnASingleLine: 'false'
  # ... short functions, like getters and setters
  AllowShortFunctionsOnASingleLine: Empty
  # ... single line ifs
  AllowShortIfStatementsOnASingleLine: Never
  # ... single line loops
  AllowShortLoopsOnASingleLine: 'false'
  
  # Provides a more compact view when a function parameters or arguments take more than one line
  BinPackArguments: 'true'
  BinPackParameters: 'true'
  
  # Indent cases on a switch, instead of leaving them at the same level than the switch statement.
  IndentCaseLabels: 'true'
  # Indent preprocessor the same way than code
  IndentPPDirectives: BeforeHash
  IndentWrappedFunctionNames: 'true'
  NamespaceIndentation: All
  
  # Put the pointer operator next to the type, instead of next to the variable name:
  PointerAlignment: Left
  
  # All about those extra spaces...
  # ... remove spaces after an open-curly brace and before a close-curly brace
  Cpp11BracedListStyle: 'true'
  # ... space before a list, when used to initialise an object
  SpaceBeforeCpp11BracedList: 'true'
  # ... logical not (!) next to expression
  SpaceAfterLogicalNot: 'false'
  # ... space between the '=' on assignments
  SpaceBeforeAssignmentOperators: 'true'
  # ... space after and before the parentheses in a C-style cast.
  SpacesInCStyleCastParentheses: 'false'
  # ... spaces inside () and []
  SpacesInParentheses: 'false'
  SpacesInSquareBrackets: 'false'
  # ... spaces before a ( or a [, but only on control statements.
  SpaceBeforeParens: 'ControlStatements'
  
  ...
  </code></pre>
  <p>Thanks!</p>