10

Is there any official directive in .clang-format file to exclude directory for applying?

Projects sometimes use git submodule, but it is not useful to run clang-format over all directory and then use git checkout to undo changes in submodule folder.

I have found some related links:

But they don't seem official.

ndmeiri
  • 4,979
  • 12
  • 37
  • 45
Andrey
  • 119
  • 1
  • 6
  • Does this answer your question? [How to ignore files or directories with clang-format 3.9](https://stackoverflow.com/questions/50647960/how-to-ignore-files-or-directories-with-clang-format-3-9) – Antonio Aug 13 '21 at 08:17

2 Answers2

13

If you can add new _clang-format files (though in this case it looks like you can't?) you can create a new one with

DisableFormat: true
SortIncludes: false

Obviously this doesn't work if you can't add new _clang-format files :)

Aleksey Kontsevich
  • 4,671
  • 4
  • 46
  • 101
Fatlad
  • 324
  • 5
  • 21
3

So far, I don't know of any option of clang-format to exclude files or directories. But what I do, is to create the list of files I want to process in a bash script and then call clang-format for them:

#!/bin/bash
folder=.
exclude_folder=./submodule
format_files=`find "${folder}" -type f -path "${exclude_folder}" -prune

for file in $format_files
do
  clang-format -i "$file"
done

Here the magic is done by the prune option in find. (How to exclude a directory in find . command).

Hope this help you at least.

Pato Sandaña
  • 519
  • 5
  • 14