1.2 KiB
This is how we convert a file pattern string found in a .editorconfig to a Go-compatible regex. This is done mostly according to the rules documented under "Wildcard Patterns" here: http://docs.editorconfig.org/en/master/editorconfig-format.html#patterns
The are some differences to the official documentation, however.
* Matches any string of characters, except path separators (/).
** Matches any string of characters.
? Matches any single character.
[seq] Matches any single character in seq.
[!seq] Matches any single character not in seq.
{s1,s2,s3} Matches any of the strings given (separated by commas, can be nested).
{num1..num2} Matches any integer numbers between num1 and num2, where num1 and num2 can be either positive or negative.
Differences from the official document
If file pattern is entirely *, according to the official documentation it should match files in the
same directory and not in sub-directories (because * excludes path separators). However, in open
source repositories I reviewed, a single * seems to be universally used to mean every file,
instead of the technically-correct **. We adapt to what is used in the real world to be practical.