[analysis server] remove the --file-read-mode cli option for the analysis server Change-Id: Id07e3655cb4bcfc462ada0db8257e7cf584272f5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/171101 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Devon Carew <devoncarew@google.com>
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart index ce3c063..2a2e0e5 100644 --- a/pkg/analysis_server/lib/src/analysis_server.dart +++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -603,7 +603,6 @@ class AnalysisServerOptions { bool useAnalysisHighlight2 = false; - String fileReadMode = 'as-is'; String newAnalysisDriverLog; String clientId;
diff --git a/pkg/analysis_server/lib/src/lsp/lsp_socket_server.dart b/pkg/analysis_server/lib/src/lsp/lsp_socket_server.dart index ae00fb8..832f432 100644 --- a/pkg/analysis_server/lib/src/lsp/lsp_socket_server.dart +++ b/pkg/analysis_server/lib/src/lsp/lsp_socket_server.dart
@@ -64,18 +64,8 @@ return; } - PhysicalResourceProvider resourceProvider; - if (analysisServerOptions.fileReadMode == 'as-is') { - resourceProvider = PhysicalResourceProvider(null, - stateLocation: analysisServerOptions.cacheFolder); - } else if (analysisServerOptions.fileReadMode == 'normalize-eol-always') { - resourceProvider = PhysicalResourceProvider( - PhysicalResourceProvider.NORMALIZE_EOL_ALWAYS, - stateLocation: analysisServerOptions.cacheFolder); - } else { - throw Exception( - 'File read mode was set to the unknown mode: $analysisServerOptions.fileReadMode'); - } + var resourceProvider = PhysicalResourceProvider( + stateLocation: analysisServerOptions.cacheFolder); analysisServer = LspAnalysisServer( serverChannel,
diff --git a/pkg/analysis_server/lib/src/server/driver.dart b/pkg/analysis_server/lib/src/server/driver.dart index 8e7af39..2fa30aa 100644 --- a/pkg/analysis_server/lib/src/server/driver.dart +++ b/pkg/analysis_server/lib/src/server/driver.dart
@@ -112,7 +112,8 @@ List<String> allowed, Map<String, String> allowedHelp, String defaultsTo, - void Function(Object) callback}) { + void Function(Object) callback, + bool hide = false}) { _knownFlags.add(name); _parser.addOption(name, abbr: abbr, @@ -121,7 +122,8 @@ allowed: allowed, allowedHelp: allowedHelp, defaultsTo: defaultsTo, - callback: callback); + callback: callback, + hide: hide); } /// Generates a string displaying usage information for the defined options. @@ -229,9 +231,6 @@ static const String DISABLE_SERVER_FEATURE_SEARCH = 'disable-server-feature-search'; - /// The name of the option used to set the file read mode. - static const String FILE_READ_MODE = 'file-read-mode'; - /// The name of the option used to print usage information. static const String HELP_OPTION = 'help'; @@ -311,7 +310,6 @@ var analysisServerOptions = AnalysisServerOptions(); analysisServerOptions.useAnalysisHighlight2 = results[USE_ANALYSIS_HIGHLIGHT2]; - analysisServerOptions.fileReadMode = results[FILE_READ_MODE]; analysisServerOptions.newAnalysisDriverLog = results[NEW_ANALYSIS_DRIVER_LOG]; analysisServerOptions.clientId = results[CLIENT_ID]; @@ -773,18 +771,6 @@ help: 'enable version 2 of semantic highlight', defaultsTo: false, negatable: false); - parser.addOption(FILE_READ_MODE, - help: 'an option for reading files (some clients normalize eol ' - 'characters, which make the file offset and range information ' - 'incorrect)', - valueHelp: 'mode', - allowed: ['as-is', 'normalize-eol-always'], - allowedHelp: { - 'as-is': 'file contents are read as-is', - 'normalize-eol-always': - r"eol characters normalized to the single character new line ('\n')" - }, - defaultsTo: 'as-is'); parser.addOption(CACHE_FOLDER, valueHelp: 'path', help: 'Path to the location to write cache data'); parser.addFlag(USE_LSP, @@ -818,6 +804,8 @@ parser.addMultiOption('enable-experiment', hide: true); // Removed 9/23/2020. parser.addFlag('enable-instrumentation', hide: true); + // Removed 11/9/2020. + parser.addOption('file-read-mode', hide: true); // Removed 11/8/2020. parser.addFlag('preview-dart-2', hide: true); // Removed 9/23/2020.
diff --git a/pkg/analysis_server/lib/src/socket_server.dart b/pkg/analysis_server/lib/src/socket_server.dart index 25ad0f77..b86d18d 100644 --- a/pkg/analysis_server/lib/src/socket_server.dart +++ b/pkg/analysis_server/lib/src/socket_server.dart
@@ -17,7 +17,9 @@ abstract class AbstractSocketServer { AbstractAnalysisServer get analysisServer; + AnalysisServerOptions get analysisServerOptions; + DiagnosticServer get diagnosticServer; } @@ -66,18 +68,8 @@ return; } - PhysicalResourceProvider resourceProvider; - if (analysisServerOptions.fileReadMode == 'as-is') { - resourceProvider = PhysicalResourceProvider(null, - stateLocation: analysisServerOptions.cacheFolder); - } else if (analysisServerOptions.fileReadMode == 'normalize-eol-always') { - resourceProvider = PhysicalResourceProvider( - PhysicalResourceProvider.NORMALIZE_EOL_ALWAYS, - stateLocation: analysisServerOptions.cacheFolder); - } else { - throw Exception( - 'File read mode was set to the unknown mode: $analysisServerOptions.fileReadMode'); - } + var resourceProvider = PhysicalResourceProvider( + stateLocation: analysisServerOptions.cacheFolder); analysisServer = AnalysisServer( serverChannel,
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md index 3fdeadb..2e2dce1 100644 --- a/pkg/analyzer/CHANGELOG.md +++ b/pkg/analyzer/CHANGELOG.md
@@ -10,6 +10,10 @@ * The value of`FunctionType.element` for types created from a `typedef` is now `FunctionTypeAliasElement`, not its function element. * Removed deprecated `GenericTypeAliasElement`. +* Removed `PhysicalResourceProvider.NORMALIZE_EOL_ALWAYS`. +* Changed the default `PhysicalResourceProvider` constructor to no longer take a + required positional parameter (removed the existing `fileReadMode` positional + parameter). ## 0.40.6 * The non_nullable feature is released in 2.12 language version.
diff --git a/pkg/analyzer/lib/file_system/physical_file_system.dart b/pkg/analyzer/lib/file_system/physical_file_system.dart index 0f0ee0d..9561ff6 100644 --- a/pkg/analyzer/lib/file_system/physical_file_system.dart +++ b/pkg/analyzer/lib/file_system/physical_file_system.dart
@@ -55,22 +55,13 @@ /// A `dart:io` based implementation of [ResourceProvider]. class PhysicalResourceProvider implements ResourceProvider { - static final String Function(String) NORMALIZE_EOL_ALWAYS = - (String string) => string.replaceAll(RegExp('\r\n?'), '\n'); - - static final PhysicalResourceProvider INSTANCE = - PhysicalResourceProvider(null); + static final PhysicalResourceProvider INSTANCE = PhysicalResourceProvider(); /// The path to the base folder where state is stored. final String _stateLocation; - PhysicalResourceProvider(String Function(String) fileReadMode, - {String stateLocation}) - : _stateLocation = stateLocation ?? _getStandardStateLocation() { - if (fileReadMode != null) { - FileBasedSource.fileReadMode = fileReadMode; - } - } + PhysicalResourceProvider({String stateLocation}) + : _stateLocation = stateLocation ?? _getStandardStateLocation(); @override Context get pathContext => context; @@ -188,7 +179,7 @@ String readAsStringSync() { _throwIfWindowsDeviceDriver(); try { - return FileBasedSource.fileReadMode(_file.readAsStringSync()); + return _file.readAsStringSync(); } on io.FileSystemException catch (exception) { throw FileSystemException(exception.path, exception.message); }
diff --git a/pkg/analyzer/lib/src/generated/source_io.dart b/pkg/analyzer/lib/src/generated/source_io.dart index 2188bba..fb337a8 100644 --- a/pkg/analyzer/lib/src/generated/source_io.dart +++ b/pkg/analyzer/lib/src/generated/source_io.dart
@@ -13,9 +13,6 @@ /// Instances of the class `FileBasedSource` implement a source that represents /// a file. class FileBasedSource extends Source { - /// A function that changes the way that files are read off of disk. - static Function fileReadMode = (String s) => s; - /// Map from encoded URI/filepath pair to a unique integer identifier. This /// identifier is used for equality tests and hash codes. /// @@ -65,7 +62,7 @@ /// See [contents]. TimestampedData<String> get contentsFromFile { return TimestampedData<String>( - file.lastModified(), fileReadMode(file.readAsStringSync())); + file.lastModified(), file.readAsStringSync()); } @override
diff --git a/pkg/analyzer/test/file_system/physical_file_system_test.dart b/pkg/analyzer/test/file_system/physical_file_system_test.dart index 81e3c67..8f41e08 100644 --- a/pkg/analyzer/test/file_system/physical_file_system_test.dart +++ b/pkg/analyzer/test/file_system/physical_file_system_test.dart
@@ -56,7 +56,7 @@ /// Create the resource provider to be used by the tests. Subclasses can /// override this method to change the class of resource provider that is /// used. - PhysicalResourceProvider createProvider() => PhysicalResourceProvider(null); + PhysicalResourceProvider createProvider() => PhysicalResourceProvider(); @override File getFile({@required bool exists, String content, String filePath}) {
diff --git a/pkg/analyzer/test/generated/all_the_rest_test.dart b/pkg/analyzer/test/generated/all_the_rest_test.dart index 0706fb6..d6c1131 100644 --- a/pkg/analyzer/test/generated/all_the_rest_test.dart +++ b/pkg/analyzer/test/generated/all_the_rest_test.dart
@@ -4,7 +4,6 @@ import 'package:analyzer/error/error.dart'; import 'package:analyzer/file_system/file_system.dart'; -import 'package:analyzer/file_system/physical_file_system.dart'; import 'package:analyzer/src/dart/sdk/sdk.dart' hide SdkLibrariesReader; import 'package:analyzer/src/generated/java_engine_io.dart'; import 'package:analyzer/src/generated/java_io.dart'; @@ -176,48 +175,6 @@ expect(source1 == source2, isTrue); } - test_fileReadMode() async { - expect(FileBasedSource.fileReadMode('a'), 'a'); - expect(FileBasedSource.fileReadMode('a\n'), 'a\n'); - expect(FileBasedSource.fileReadMode('ab'), 'ab'); - expect(FileBasedSource.fileReadMode('abc'), 'abc'); - expect(FileBasedSource.fileReadMode('a\nb'), 'a\nb'); - expect(FileBasedSource.fileReadMode('a\rb'), 'a\rb'); - expect(FileBasedSource.fileReadMode('a\r\nb'), 'a\r\nb'); - } - - test_fileReadMode_changed() async { - FileBasedSource.fileReadMode = (String s) => s + 'xyz'; - expect(FileBasedSource.fileReadMode('a'), 'axyz'); - expect(FileBasedSource.fileReadMode('a\n'), 'a\nxyz'); - expect(FileBasedSource.fileReadMode('ab'), 'abxyz'); - expect(FileBasedSource.fileReadMode('abc'), 'abcxyz'); - FileBasedSource.fileReadMode = (String s) => s; - } - - test_fileReadMode_normalize_eol_always() async { - FileBasedSource.fileReadMode = - PhysicalResourceProvider.NORMALIZE_EOL_ALWAYS; - expect(FileBasedSource.fileReadMode('a'), 'a'); - - // '\n' -> '\n' as first, last and only character - expect(FileBasedSource.fileReadMode('\n'), '\n'); - expect(FileBasedSource.fileReadMode('a\n'), 'a\n'); - expect(FileBasedSource.fileReadMode('\na'), '\na'); - - // '\r\n' -> '\n' as first, last and only character - expect(FileBasedSource.fileReadMode('\r\n'), '\n'); - expect(FileBasedSource.fileReadMode('a\r\n'), 'a\n'); - expect(FileBasedSource.fileReadMode('\r\na'), '\na'); - - // '\r' -> '\n' as first, last and only character - expect(FileBasedSource.fileReadMode('\r'), '\n'); - expect(FileBasedSource.fileReadMode('a\r'), 'a\n'); - expect(FileBasedSource.fileReadMode('\ra'), '\na'); - - FileBasedSource.fileReadMode = (String s) => s; - } - test_getFullName() async { String fullPath = "/does/not/exist.dart"; JavaFile file = FileUtilities2.createFile(fullPath);
diff --git a/pkg/analyzer/test/src/source/source_resource_test.dart b/pkg/analyzer/test/src/source/source_resource_test.dart index 29cbc93..5e6f3ec 100644 --- a/pkg/analyzer/test/src/source/source_resource_test.dart +++ b/pkg/analyzer/test/src/source/source_resource_test.dart
@@ -3,7 +3,6 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analyzer/file_system/file_system.dart'; -import 'package:analyzer/file_system/physical_file_system.dart'; import 'package:analyzer/src/generated/java_engine_io.dart'; import 'package:analyzer/src/generated/sdk.dart'; import 'package:analyzer/src/generated/source.dart'; @@ -63,28 +62,6 @@ FileSource.fileReadMode = (String s) => s; } - void test_fileReadMode_normalize_eol_always() { - FileSource.fileReadMode = PhysicalResourceProvider.NORMALIZE_EOL_ALWAYS; - expect(FileSource.fileReadMode('a'), 'a'); - - // '\n' -> '\n' as first, last and only character - expect(FileSource.fileReadMode('\n'), '\n'); - expect(FileSource.fileReadMode('a\n'), 'a\n'); - expect(FileSource.fileReadMode('\na'), '\na'); - - // '\r\n' -> '\n' as first, last and only character - expect(FileSource.fileReadMode('\r\n'), '\n'); - expect(FileSource.fileReadMode('a\r\n'), 'a\n'); - expect(FileSource.fileReadMode('\r\na'), '\na'); - - // '\r' -> '\n' as first, last and only character - expect(FileSource.fileReadMode('\r'), '\n'); - expect(FileSource.fileReadMode('a\r'), 'a\n'); - expect(FileSource.fileReadMode('\ra'), '\na'); - - FileSource.fileReadMode = (String s) => s; - } - void test_getFullName() { File file = getFile("/does/not/exist.dart"); FileSource source = FileSource(file);