prefer-single-quotes

Same as prefer_single_quotes in Dart lints

Group
Style
Path
lint/style/prefer-single-quotes
Default
Off, opt in
Origin
Dart lints
Rule
405 of 512

Flags double-quoted string literals that could use single quotes without needing an escape.

Only use double quotes for strings whose text contains a single quote:

useStrings("should be single quote", r"should be single quote"); // flagged
useStrings('should be single quote', "it's fine");               // fine

Raw and multiline literals are checked too. An interpolated literal is left alone when an interpolated expression contains another string literal, and a literal nested inside another literal's interpolation is never flagged, since swapping the quotes there would clash with the outer delimiters. Each part of an adjacent-string concatenation is checked on its own.

Invalid

example.dartdart
void use(Object o) {}

void main() {
  var name = 'Ann';
  use("double");
  use(r"raw double");
  use("hello $name");
  use("""multiline""");
  use('single' "double");
  use("${name.length} chars");
}
Unnecessary use of double quotes.
4 var name = 'Ann';
5 use("double");
Unnecessary use of double quotes.
5 use("double");
6 use(r"raw double");
Unnecessary use of double quotes.
6 use(r"raw double");
7 use("hello $name");
Unnecessary use of double quotes.
7 use("hello $name");
8 use("""multiline""");
Unnecessary use of double quotes.
8 use("""multiline""");
9 use('single' "double");
Unnecessary use of double quotes.
9 use('single' "double");
10 use("${name.length} chars");

Valid

example.dartdart
import 'dart:core';

void use(Object o) {}

void main() {
  var name = 'Ann';
  use('single');
  use("it's");
  use("it\'s escaped");
  use("Hello ${name.isEmpty ? 'x' : 'y'}");
  use('outer ${"nested"}');
  use('a ${"b ${"c"}"} d ${"e"}');
  use("contains '$name'");
  use(r'raw');
}

void patternStrings(Object value) {
  switch (value) {
    case 'a${"b"}':
    case 'a${"b ${"c"}"}':
      break;
  }
}

Configure prefer-single-quotes

Set its severity in falcon.json. See the configuration guide.

falcon.jsonjson
{
  "linter": {
    "rules": {
      "style": {
        "prefer-single-quotes": "error"
      }
    }
  }
}

Or silence one occurrence with a suppression comment; the reason is required.

example.dartdart
// falcon-ignore lint/style/prefer-single-quotes: <reason>