# Source files should not be normalized to avoid confusing clang-format-diff.py
*.c text eol=lf
*.cc text eol=lf
*.cpp text eol=lf
*.h text eol=lf
*.dart text eol=lf

# Explicitly declare text files we want to be normalized.
*.gyp text
*.gypi text
*.mk text
*.Makefile text
*.md text
*.yaml text

# File that should not be converted.
tests/dart2js/eof_line_ending_test.dart -text
tests/dart2js/string_interpolation_test.dart -text
tests/dart2js/string_interpolation_dynamic_test.dart -text
tests/dart2js/literal_string_juxtaposition_test.dart -text
tests/dart2js_2/eof_line_ending_test.dart -text
tests/dart2js_2/string_interpolation_test.dart -text
tests/dart2js_2/string_interpolation_dynamic_test.dart -text
tests/dart2js_2/literal_string_juxtaposition_test.dart -text
tests/language/string/raw_string_test.dart -text
tests/language/string/multiline_strings_test.dart -text
tests/language/string/multiline_newline_cr.dart -text
tests/language/string/multiline_newline_crlf.dart -text
tests/language/string/multiline_newline_lf.dart -text
tests/language_2/string/raw_string_test.dart -text
tests/language_2/string/multiline_strings_test.dart -text
tests/language_2/string/multiline_newline_cr.dart -text
tests/language_2/string/multiline_newline_crlf.dart -text
tests/language_2/string/multiline_newline_lf.dart -text
tests/lib_2/convert/json_pretty_test.dart -text
tests/lib_2/mirrors/method_mirror_source_line_ending_cr.dart -text
tests/lib_2/mirrors/method_mirror_source_line_ending_crlf.dart -text
tests/lib_2/mirrors/method_mirror_source_line_ending_lf.dart -text
tests/lib_2/mirrors/method_mirror_source_line_ending_test.dart -text
tests/lib_2/mirrors/method_mirror_source_other.dart -text
tests/lib_2/mirrors/method_mirror_source_test.dart -text
tests/lib/mirrors/method_mirror_source_line_ending_cr.dart -text
tests/lib/mirrors/method_mirror_source_line_ending_crlf.dart -text
tests/lib/mirrors/method_mirror_source_line_ending_lf.dart -text
tests/lib/mirrors/method_mirror_source_line_ending_test.dart -text
tests/lib/mirrors/method_mirror_source_other.dart -text
tests/lib/mirrors/method_mirror_source_test.dart -text

# Files to leave alone and not diff.
*.png binary
*.jpg binary
*.xpi binary

*.status diff=status
