@@ -8,6 +8,7 @@ import 'package:analysis_server/src/lsp/mapping.dart';
88import 'package:analysis_server/src/protocol_server.dart'
99 as server
1010 show SourceEdit;
11+ import 'package:analysis_server/src/utilities/extensions/formatter_options.dart' ;
1112import 'package:analyzer/dart/analysis/features.dart' ;
1213import 'package:analyzer/dart/analysis/results.dart' ;
1314import 'package:analyzer/dart/ast/token.dart' ;
@@ -17,7 +18,7 @@ import 'package:analyzer/source/source.dart';
1718import 'package:analyzer/src/dart/scanner/reader.dart' ;
1819import 'package:analyzer/src/dart/scanner/scanner.dart' ;
1920import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
20- import 'package:dart_style/dart_style.dart' ;
21+ import 'package:dart_style/dart_style.dart' hide TrailingCommas ;
2122
2223/// Checks whether a string contains only characters that are allowed to differ
2324/// between unformattedformatted code (such as whitespace, commas, semicolons).
@@ -107,10 +108,11 @@ ErrorOr<List<TextEdit>?> generateEditsForFormatting(
107108}) {
108109 var unformattedSource = result.content;
109110
111+ var formatterOptions = result.analysisOptions.formatterOptions;
110112 // The analysis options page width always takes priority over the default from
111113 // the LSP configuration.
112- var effectivePageWidth =
113- result.analysisOptions. formatterOptions.pageWidth ?? defaultPageWidth ;
114+ var effectivePageWidth = formatterOptions.pageWidth ?? defaultPageWidth;
115+ var effectiveTrailingCommas = formatterOptions.dartStyleTrailingCommas ;
114116 var effectiveLanguageVersion = result.unit.languageVersion.effective;
115117
116118 var code = SourceCode (unformattedSource);
@@ -121,6 +123,7 @@ ErrorOr<List<TextEdit>?> generateEditsForFormatting(
121123 // https://github.com/dart-lang/dart_style/issues/1337
122124 var formatter = DartFormatter (
123125 pageWidth: effectivePageWidth,
126+ trailingCommas: effectiveTrailingCommas,
124127 languageVersion: effectiveLanguageVersion,
125128 );
126129 formattedResult = formatter.formatSource (code);
0 commit comments