File tree Expand file tree Collapse file tree 6 files changed +13
-9
lines changed
tests/baselines/reference/api Expand file tree Collapse file tree 6 files changed +13
-9
lines changed Original file line number Diff line number Diff line change @@ -5860,7 +5860,7 @@ namespace ts {
5860
5860
5861
5861
export interface UserPreferences {
5862
5862
readonly disableSuggestions ?: boolean ;
5863
- readonly quotePreference ?: "double" | "single" ;
5863
+ readonly quotePreference ?: "auto" | " double" | "single" ;
5864
5864
readonly includeCompletionsForModuleExports ?: boolean ;
5865
5865
readonly includeCompletionsWithInsertText ?: boolean ;
5866
5866
readonly importModuleSpecifierPreference ?: "relative" | "non-relative" ;
Original file line number Diff line number Diff line change @@ -2891,7 +2891,7 @@ namespace ts.server.protocol {
2891
2891
2892
2892
export interface UserPreferences {
2893
2893
readonly disableSuggestions ?: boolean ;
2894
- readonly quotePreference ?: "double" | "single" ;
2894
+ readonly quotePreference ?: "auto" | " double" | "single" ;
2895
2895
/**
2896
2896
* If enabled, TypeScript will search through all external modules' exports and add them to the completions list.
2897
2897
* This affects lone identifier completions but not completions on the right hand side of `obj.`.
Original file line number Diff line number Diff line change @@ -264,6 +264,7 @@ namespace ts.codefix {
264
264
createNew (
265
265
createIdentifier ( "Error" ) ,
266
266
/*typeArguments*/ undefined ,
267
+ // TODO Handle auto quote preference.
267
268
[ createLiteral ( "Method not implemented." , /*isSingleQuote*/ preferences . quotePreference === "single" ) ] ) ) ] ,
268
269
/*multiline*/ true ) ;
269
270
}
Original file line number Diff line number Diff line change @@ -1315,7 +1315,7 @@ namespace ts {
1315
1315
}
1316
1316
1317
1317
export function getQuotePreference ( sourceFile : SourceFile , preferences : UserPreferences ) : QuotePreference {
1318
- if ( preferences . quotePreference ) {
1318
+ if ( preferences . quotePreference && preferences . quotePreference !== "auto" ) {
1319
1319
return preferences . quotePreference === "single" ? QuotePreference . Single : QuotePreference . Double ;
1320
1320
}
1321
1321
else {
@@ -1868,15 +1868,18 @@ namespace ts {
1868
1868
if ( / ^ \d + $ / . test ( text ) ) {
1869
1869
return text ;
1870
1870
}
1871
+ // Editors can pass in undefined or empty string - we want to infer the preference in those cases.
1872
+ const quotePreference = preferences . quotePreference || "auto" ;
1871
1873
const quoted = JSON . stringify ( text ) ;
1872
- switch ( preferences . quotePreference ) {
1873
- case undefined :
1874
+ switch ( quotePreference ) {
1875
+ // TODO use getQuotePreference to infer the actual quote style.
1876
+ case "auto" :
1874
1877
case "double" :
1875
1878
return quoted ;
1876
1879
case "single" :
1877
1880
return `'${ stripQuotes ( quoted ) . replace ( "'" , "\\'" ) . replace ( '\\"' , '"' ) } '` ;
1878
1881
default :
1879
- return Debug . assertNever ( preferences . quotePreference ) ;
1882
+ return Debug . assertNever ( quotePreference ) ;
1880
1883
}
1881
1884
}
1882
1885
Original file line number Diff line number Diff line change @@ -3009,7 +3009,7 @@ declare namespace ts {
3009
3009
}
3010
3010
interface UserPreferences {
3011
3011
readonly disableSuggestions ?: boolean ;
3012
- readonly quotePreference ?: "double" | "single" ;
3012
+ readonly quotePreference ?: "auto" | " double" | "single" ;
3013
3013
readonly includeCompletionsForModuleExports ?: boolean ;
3014
3014
readonly includeCompletionsWithInsertText ?: boolean ;
3015
3015
readonly importModuleSpecifierPreference ?: "relative" | "non-relative" ;
@@ -7925,7 +7925,7 @@ declare namespace ts.server.protocol {
7925
7925
}
7926
7926
interface UserPreferences {
7927
7927
readonly disableSuggestions ?: boolean ;
7928
- readonly quotePreference ?: "double" | "single" ;
7928
+ readonly quotePreference ?: "auto" | " double" | "single" ;
7929
7929
/**
7930
7930
* If enabled, TypeScript will search through all external modules' exports and add them to the completions list.
7931
7931
* This affects lone identifier completions but not completions on the right hand side of `obj.`.
Original file line number Diff line number Diff line change @@ -3009,7 +3009,7 @@ declare namespace ts {
3009
3009
}
3010
3010
interface UserPreferences {
3011
3011
readonly disableSuggestions ?: boolean ;
3012
- readonly quotePreference ?: "double" | "single" ;
3012
+ readonly quotePreference ?: "auto" | " double" | "single" ;
3013
3013
readonly includeCompletionsForModuleExports ?: boolean ;
3014
3014
readonly includeCompletionsWithInsertText ?: boolean ;
3015
3015
readonly importModuleSpecifierPreference ?: "relative" | "non-relative" ;
You can’t perform that action at this time.
0 commit comments