[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);