prefer_double_quotes

Stable
Fix available

Prefer double quotes where they won't require escape sequences.

Details

#

DO use double quotes where they wouldn't require additional escapes.

That means strings with a double quote may use apostrophes so that the double quote isn't escaped (note: we don't lint the other way around, ie, a double quoted string with an escaped double quote is not flagged).

It's also rare, but possible, to have strings within string interpolations. In this case, it's much more readable to use a single quote somewhere. So single quotes are allowed either within, or containing, an interpolated string literal. Arguably strings within string interpolations should be its own type of lint.

BAD:

dart
useStrings(
    'should be double quote',
    r'should be double quote',
    r\'''should be double quotes\''')

GOOD:

dart
useStrings(
    "should be double quote",
    r"should be double quote",
    r"""should be double quotes""",
    'ok with " inside',
    'nested \${a ? "strings" : "can"} be wrapped by a double quote',
    "and nested \${a ? 'strings' : 'can be double quoted themselves'}");

Incompatible rules

#

The prefer_double_quotes rule is incompatible with the following rules:

Enable

#

To enable the prefer_double_quotes rule, add prefer_double_quotes under linter > rules in your analysis_options.yaml file:

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_double_quotes

If you're instead using the YAML map syntax to configure linter rules, add prefer_double_quotes: true under linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    prefer_double_quotes: true