<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/141129>141129</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Clang-format not following rule `UseTab: Always`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-format
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          kunalchandan
      </td>
    </tr>
</table>

<pre>
    # Issue

First I would like to thank the authors of the tool. I have enjoyed using it and hope to continue using it.
If there is something I am doing incorrectly I would gladly be corrected.


I believe Clang-format is indenting with spaces when I want to only use tab indents.

## Sample

```c

#define FG_CYN  "\x1B[36m"
#define FG_WHT  "\x1B[37m"

#define RST     "\x1B[0m"

void fun_function(int param_a) {
        printf("I have a really long string here that exceeds my column limit");
        printf("I sometimes like" FG_CYN " to break with inserted defines" RST);
}
```

My minimal `.clang-format`

```yaml
BasedOnStyle: GNU
Language: Cpp
ColumnLimit: 80

UseTab: Always
IndentWidth: 8
TabWidth: 8
ContinuationIndentWidth: 8

BreakStringLiterals: true
```

## Output

```c

#define FG_CYN  "\x1B[36m"
#define FG_WHT  "\x1B[37m"

#define RST     "\x1B[0m"

void fun_function(int param_a)
{
        printf("I have a really long string I's extra super long here that "
               "exceeds my column limit");
        printf("I sometimes like colors and I insert them like this " FG_CYN
               " to break with inserted defines" RST);
}
```

more clearly or in another way

```c

void fun_function(int param_a)
{
\tprintf("I have a really long string I's extra super long here that "
\t\s\s\s\s\s\s\s\s"exceeds my column limit");
\tprintf("I sometimes like colors and I insert them like this " FG_CYN
\t\s\s\s\s\s\s\s\s" to break with inserted defines" RST);
}

```

I don't want to see `\s` or space characters used to indent, and only ever want to see `\t` or tabs as indents.

Thanks in advance :)


## Other supporting system information

Using vscode.

```
$ clang-format --version
clang-format version 20.1.4
```
clang-format installed with python venv

Ubuntu 22.04

Python 3.10

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUVkFv2zgT_TX0ZRBBpiwrOujguHA_A_3axSZFsaeCEscWG4oUyJFT_fsFKdWJ3WDRbnvZIEEs8vFxZt7zjIT36mgQK5bfsfzNQgzUWlc9DkbophVGCrOorRwrxjPYez8gSzcs3eyU8wR7eLKDlqDVIwJZoFaYR6AWYeLxYA_xkazVCeyhFScENF_siBIGr8wRFIEwElrbR4rGGlJmwPNuwtLNPrI4BOXB2w6pDXt7EB1IG2Gmsc5hQ3o8B3XUQuoRaoR5D2UyBR8YoUat8ISw1cIcbw7WdYICvzISQwhHeFLUgu9Fgx6eWjSBWRgKUVqjRxg8Aol6PuG_kfMs1OpedL2ei8XW6fTbnCESD8og7N5-3v71nqUl45zl26_LO5bfZesuPF7hPv3v4RpXfMO9hP55f41Ln2EnqyQcBvP5MJiGlDWM3ypD0Asnus-C8RJYcRexZe-UoQPjt4zzWTkBDoXWI2hrjuDJhTJFYagVBPi1QZQeuhEaq4fOgFadonA7L1n2Km-UU3Xoo4kY53NNIHwkC7VD8ThJoYxHRyhhytQHRMj2zF28eVnsKeP_j9Apozqhga3TpHmh9hlzPjKKTrN0cyc8yg_mnkaNLNvA2_cfWbp5J8xxEMe4su17lm62Mcl3McdsA7cz3UePD6IOKxv9JEYf7BYt8klJaiOSpZsHUV88byfji6DKK_AQVijFfSz6O0XohPZhl9z0pbzMe7bhh4H6gf57Noxy_qQR94wXHvArOQF-6NFNu8_-_HZ_CdMP4_zXLRvOhU4Xmth-9mjoVt3cFVvl4dnW1_f_Dot31iE0GoXTI1gHyoAwNjRMeBLj69r_jAL5ln63BPmWWL71__j3Y-J8F9yvqvNjof073b6Tbg8ylL6g82TxiKFRxWvWaZAzTiBoWuFEQ-h8mDsyQKe5w_g2ZhdHEp6i6NdUNFORqD0IfzWxHsLU9tE28iRMg8CyzeyAi14SLeWHvrcuDkg_esIOlJn6aXDR3ADD7sk3VmLySt58BS_7MNzcnND56fjFxrwMPE2WyeqK5gKpjCehNcpJj36k1ho4oTnNIdWDoQE4T9LVtPLHBMmSZSBbyCqTZVaKBVbLYlWUqywrs0VbrdYFZqVIM57XK37L66Zep8ucF7JumkIWC1XxlOdpzvmyXJV5lpQN1k3RiIM83NbZbclWKXZC6UTrU5dYd1yo8B5VLVfLJS8XWtSofXz_4vxiPIXe-WbhqnDuph6Onq1SrTz5ZyZSpLG6eIUxluBgtbZPQQQ36GiC72bSOl0MTlctUe-j3DvGd0dF7VAnje0Y34VL5n83vbNfsCHGdzF2z_huDv9U8b8DAAD__xvWKaI">