diff --git a/pkg/analysis_server/benchmark/integration/input_converter.dart b/pkg/analysis_server/benchmark/integration/input_converter.dart index 0924118deb8..bbd3e8573b4 100644 --- a/pkg/analysis_server/benchmark/integration/input_converter.dart +++ b/pkg/analysis_server/benchmark/integration/input_converter.dart @@ -19,7 +19,7 @@ import 'operation.dart'; /// Common input converter superclass for sharing implementation. abstract class CommonInputConverter extends Converter { - static final ERROR_PREFIX = 'Server responded with an error: '; + static const _errorPrefix = 'Server responded with an error: '; final Logger logger = Logger('InstrumentationInputConverter'); final Set eventsSeen = {}; @@ -172,8 +172,8 @@ abstract class CommonInputConverter extends Converter { var result = exception; if (exception is UnimplementedError) { var message = exception.message; - if (message!.startsWith(ERROR_PREFIX)) { - result = json.decode(message.substring(ERROR_PREFIX.length)); + if (message!.startsWith(_errorPrefix)) { + result = json.decode(message.substring(_errorPrefix.length)); } } processResponseResult(id, result); diff --git a/pkg/analysis_server/benchmark/integration/instrumentation_input_converter.dart b/pkg/analysis_server/benchmark/integration/instrumentation_input_converter.dart index 8ec19d8f6ec..fdaa134169d 100644 --- a/pkg/analysis_server/benchmark/integration/instrumentation_input_converter.dart +++ b/pkg/analysis_server/benchmark/integration/instrumentation_input_converter.dart @@ -11,11 +11,11 @@ import 'package:logging/logging.dart'; import 'input_converter.dart'; import 'operation.dart'; -final int COLON = ':'.codeUnitAt(0); - /// [InstrumentationInputConverter] converts an instrumentation stream /// into a series of operations to be sent to the analysis server. class InstrumentationInputConverter extends CommonInputConverter { + static final _colon = ':'.codeUnitAt(0); + final Set codesSeen = {}; /// [readBuffer] holds the contents of the file being read from disk @@ -109,10 +109,10 @@ class InstrumentationInputConverter extends CommonInputConverter { var sb = StringBuffer(); while (index < line.length) { var code = line.codeUnitAt(index); - if (code == COLON) { + if (code == _colon) { // Embedded colons are doubled var next = index + 1; - if (next < line.length && line.codeUnitAt(next) == COLON) { + if (next < line.length && line.codeUnitAt(next) == _colon) { sb.write(':'); ++index; } else { diff --git a/pkg/analysis_server/benchmark/integration/log_file_input_converter.dart b/pkg/analysis_server/benchmark/integration/log_file_input_converter.dart index 9cdf12fe0d2..f5454b6fd05 100644 --- a/pkg/analysis_server/benchmark/integration/log_file_input_converter.dart +++ b/pkg/analysis_server/benchmark/integration/log_file_input_converter.dart @@ -10,15 +10,16 @@ import 'package:logging/logging.dart'; import 'input_converter.dart'; import 'operation.dart'; -const CONNECTED_MSG_FRAGMENT = ' <= {"event":"server.connected"'; -const RECEIVED_FRAGMENT = ' <= {'; -const SENT_FRAGMENT = ' => {'; -final int NINE = '9'.codeUnitAt(0); -final int ZERO = '0'.codeUnitAt(0); - /// [LogFileInputConverter] converts a log file stream /// into a series of operations to be sent to the analysis server. class LogFileInputConverter extends CommonInputConverter { + static const _connectedMsgFragment = ' <= {"event":"server.connected"'; + static const _receivedFragment = ' <= {'; + static const _sentFragment = ' => {'; + + static final _nine = '9'.codeUnitAt(0); + static final _zero = '0'.codeUnitAt(0); + LogFileInputConverter(super.tmpSrcDirPath, super.srcPathMap); @override @@ -26,14 +27,14 @@ class LogFileInputConverter extends CommonInputConverter { try { var timeStampString = _parseTimeStamp(line); var data = line.substring(timeStampString.length); - if (data.startsWith(RECEIVED_FRAGMENT)) { + if (data.startsWith(_receivedFragment)) { var jsonData = asMap(json.decode(data.substring(4))); if (jsonData.containsKey('event')) { return convertNotification(jsonData); } else { return convertResponse(jsonData); } - } else if (data.startsWith(SENT_FRAGMENT)) { + } else if (data.startsWith(_sentFragment)) { var jsonData = asMap(json.decode(data.substring(4))); if (jsonData.containsKey('method')) { return convertRequest(jsonData); @@ -56,9 +57,9 @@ class LogFileInputConverter extends CommonInputConverter { static bool isFormat(String line) { var timeStampString = _parseTimeStamp(line); var start = timeStampString.length; - var end = start + CONNECTED_MSG_FRAGMENT.length; + var end = start + _connectedMsgFragment.length; return (10 < start && end < line.length) && - line.substring(start, end) == CONNECTED_MSG_FRAGMENT; + line.substring(start, end) == _connectedMsgFragment; } /// Parse the given line and return the millisecond timestamp or `null` @@ -67,7 +68,7 @@ class LogFileInputConverter extends CommonInputConverter { var index = 0; while (index < line.length) { var code = line.codeUnitAt(index); - if (code < ZERO || NINE < code) { + if (code < _zero || _nine < code) { return line.substring(0, index); } ++index; diff --git a/pkg/analysis_server/lib/protocol/protocol.dart b/pkg/analysis_server/lib/protocol/protocol.dart index 56c0c94ad39..f9115ea279a 100644 --- a/pkg/analysis_server/lib/protocol/protocol.dart +++ b/pkg/analysis_server/lib/protocol/protocol.dart @@ -291,10 +291,6 @@ abstract class RequestOrResponse { /// /// Clients may not extend, implement or mix-in this class. class Response extends RequestOrResponse { - /// The [Response] instance that is returned when a real [Response] cannot - /// be provided at the moment. - static final Response DELAYED_RESPONSE = Response('DELAYED_RESPONSE'); - /// The name of the JSON attribute containing the id of the request for which /// this is a response. static const String ID = 'id'; diff --git a/pkg/analysis_server/lib/src/computer/computer_highlights.dart b/pkg/analysis_server/lib/src/computer/computer_highlights.dart index 751b73f9de4..6ca8c42d757 100644 --- a/pkg/analysis_server/lib/src/computer/computer_highlights.dart +++ b/pkg/analysis_server/lib/src/computer/computer_highlights.dart @@ -2,6 +2,10 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. +// Many functions here are mostly camelcase, with an occasional underscore to +// separate phrases. +// ignore_for_file: non_constant_identifier_names + import 'dart:math' as math; import 'package:_fe_analyzer_shared/src/parser/quote.dart' diff --git a/pkg/analysis_server/lib/src/protocol_server.dart b/pkg/analysis_server/lib/src/protocol_server.dart index 913f61498ec..740cdbb9ed6 100644 --- a/pkg/analysis_server/lib/src/protocol_server.dart +++ b/pkg/analysis_server/lib/src/protocol_server.dart @@ -2,6 +2,10 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. +// Many functions here are mostly camelcase, with an occasional underscore to +// separate phrases. +// ignore_for_file: non_constant_identifier_names + import 'package:analysis_server/plugin/protocol/protocol_dart.dart'; import 'package:analysis_server/protocol/protocol_generated.dart'; import 'package:analysis_server/src/computer/computer_color.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart b/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart index 05476c358de..3b8e458e304 100644 --- a/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart +++ b/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart @@ -2,6 +2,10 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. +// Many functions here are mostly camelcase, with an occasional underscore to +// separate phrases. +// ignore_for_file: non_constant_identifier_names + import 'dart:math'; import 'package:analysis_server/src/protocol_server.dart' hide Element; @@ -129,7 +133,7 @@ class StatementCompletionKind { /// The computer for Dart statement completions. class StatementCompletionProcessor { - static final NO_COMPLETION = StatementCompletion( + static final _noCompletion = StatementCompletion( DartStatementCompletion.NO_COMPLETION, SourceChange('', edits: []), ); @@ -167,13 +171,13 @@ class StatementCompletionProcessor { Future compute() async { var node = _selectedNode(); if (node == null) { - return NO_COMPLETION; + return _noCompletion; } node = node.thisOrAncestorMatching( (n) => n is Statement || _isNonStatementDeclaration(n), ); if (node == null) { - return _complete_simpleEnter() ? completion! : NO_COMPLETION; + return _complete_simpleEnter() ? completion! : _noCompletion; } if (node is Block) { if (node.statements.isNotEmpty) { @@ -227,7 +231,7 @@ class StatementCompletionProcessor { if (_complete_simpleEnter()) { return completion!; } - return NO_COMPLETION; + return _noCompletion; } void _addInsertEdit(int offset, String text) { diff --git a/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart b/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart index 0dc767eab57..1053fdd23fb 100644 --- a/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart +++ b/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart @@ -2,6 +2,10 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. +// Many functions here are mostly camelcase, with an occasional underscore to +// separate phrases. +// ignore_for_file: non_constant_identifier_names + import 'dart:math' as math; import 'package:analysis_server/src/services/correction/fix.dart'; diff --git a/pkg/analysis_server/lib/src/services/correction/levenshtein.dart b/pkg/analysis_server/lib/src/services/correction/levenshtein.dart index 03f0051b710..676240ca509 100644 --- a/pkg/analysis_server/lib/src/services/correction/levenshtein.dart +++ b/pkg/analysis_server/lib/src/services/correction/levenshtein.dart @@ -35,40 +35,40 @@ int levenshtein( t = t.toLowerCase(); } - var s_len = s.length; - var t_len = t.length; + var sLength = s.length; + var tLength = t.length; // if one string is empty, // the edit distance is necessarily the length of the other - if (s_len == 0) { - return t_len <= threshold ? t_len : LEVENSHTEIN_MAX; + if (sLength == 0) { + return tLength <= threshold ? tLength : LEVENSHTEIN_MAX; } - if (t_len == 0) { - return s_len <= threshold ? s_len : LEVENSHTEIN_MAX; + if (tLength == 0) { + return sLength <= threshold ? sLength : LEVENSHTEIN_MAX; } // the distance can never be less than abs(s_len - t_len) - if ((s_len - t_len).abs() > threshold) { + if ((sLength - tLength).abs() > threshold) { return LEVENSHTEIN_MAX; } // swap the two strings to consume less memory - if (s_len > t_len) { + if (sLength > tLength) { var tmp = s; s = t; t = tmp; - s_len = t_len; - t_len = t.length; + sLength = tLength; + tLength = t.length; } // 'previous' cost array, horizontally - var p = List.filled(s_len + 1, 0); + var p = List.filled(sLength + 1, 0); // cost array, horizontally - var d = List.filled(s_len + 1, 0); + var d = List.filled(sLength + 1, 0); // placeholder to assist in swapping p and d List holder; // fill in starting table values - var boundary = math.min(s_len, threshold) + 1; + var boundary = math.min(sLength, threshold) + 1; for (var i = 0; i < boundary; i++) { p[i] = i; } @@ -79,14 +79,14 @@ int levenshtein( _setRange(d, 0, d.length, _MAX_VALUE); // iterates through t - for (var j = 1; j <= t_len; j++) { + for (var j = 1; j <= tLength; j++) { // jth character of t - var t_j = t.codeUnitAt(j - 1); + var tAtJ = t.codeUnitAt(j - 1); d[0] = j; // compute stripe indices, constrain to array size var min = math.max(1, j - threshold); - var max = math.min(s_len, j + threshold); + var max = math.min(sLength, j + threshold); // the stripe may lead off of the table if s and t are of different sizes if (min > max) { @@ -100,7 +100,7 @@ int levenshtein( // iterates through [min, max] in s for (var i = min; i <= max; i++) { - if (s.codeUnitAt(i - 1) == t_j) { + if (s.codeUnitAt(i - 1) == tAtJ) { // diagonally left and up d[i] = p[i - 1]; } else { @@ -117,8 +117,8 @@ int levenshtein( // if p[n] is greater than the threshold, // there's no guarantee on it being the correct distance - if (p[s_len] <= threshold) { - return p[s_len]; + if (p[sLength] <= threshold) { + return p[sLength]; } return LEVENSHTEIN_MAX; diff --git a/pkg/analysis_server/lib/src/services/correction/name_suggestion.dart b/pkg/analysis_server/lib/src/services/correction/name_suggestion.dart index bafb192df09..190a0f76670 100644 --- a/pkg/analysis_server/lib/src/services/correction/name_suggestion.dart +++ b/pkg/analysis_server/lib/src/services/correction/name_suggestion.dart @@ -9,8 +9,6 @@ import 'package:analyzer/dart/element/type.dart'; import 'package:analyzer/src/utilities/extensions/string.dart'; import 'package:analyzer_plugin/src/utilities/string_utilities.dart'; -final List _KNOWN_METHOD_NAME_PREFIXES = ['get', 'is', 'to']; - /// Returns all variants of names by removing leading words one by one. List getCamelWordCombinations(String name) { var result = []; @@ -215,15 +213,15 @@ String? _getBaseNameFromUnwrappedExpression(Expression expression) { name = name.substring(0, name.length - 1); } } - // strip known prefixes + // Strip known prefixes. if (name != null) { - for (var i = 0; i < _KNOWN_METHOD_NAME_PREFIXES.length; i++) { - var curr = _KNOWN_METHOD_NAME_PREFIXES[i]; - if (name.startsWith(curr)) { - if (name == curr) { + const knownMethodNamePrefixes = ['get', 'is', 'to']; + for (var knownPrefix in knownMethodNamePrefixes) { + if (name.startsWith(knownPrefix)) { + if (name == knownPrefix) { return null; - } else if (isUpperCase(name.codeUnitAt(curr.length))) { - return name.substring(curr.length); + } else if (isUpperCase(name.codeUnitAt(knownPrefix.length))) { + return name.substring(knownPrefix.length); } } } diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring_manager.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring_manager.dart index e4a93dbeed4..699b5fdafe9 100644 --- a/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring_manager.dart +++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring_manager.dart @@ -2,6 +2,10 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. +// Many variables here are mostly camelcase, with an occasional underscore to +// separate phrases. +// ignore_for_file: non_constant_identifier_names + import 'dart:async'; import 'package:analysis_server/src/collections.dart'; diff --git a/pkg/analysis_server/lib/src/utilities/stream.dart b/pkg/analysis_server/lib/src/utilities/stream.dart index 868dd672d47..ef5e9c7402d 100644 --- a/pkg/analysis_server/lib/src/utilities/stream.dart +++ b/pkg/analysis_server/lib/src/utilities/stream.dart @@ -28,25 +28,22 @@ class MoreTypedStreamController { if (pauseData != null) { throw StateError('Already paused'); } - var local_onPause = onPause; - if (local_onPause != null) { - pauseData = local_onPause(listenData as ListenData); + if (onPause != null) { + pauseData = onPause(listenData as ListenData); } }, onResume: () { - var local_onResume = onResume; - if (local_onResume != null) { - var local_pauseData = pauseData as PauseData; + if (onResume != null) { + var currentPauseData = pauseData as PauseData; pauseData = null; - local_onResume(listenData as ListenData, local_pauseData); + onResume(listenData as ListenData, currentPauseData); } }, onCancel: () { - var local_onCancel = onCancel; - if (local_onCancel != null) { - var local_listenData = listenData as ListenData; + if (onCancel != null) { + var currentListenData = listenData as ListenData; listenData = null; - local_onCancel(local_listenData); + onCancel(currentListenData); } }, sync: sync, diff --git a/pkg/analysis_server/lib/src/utilities/strings.dart b/pkg/analysis_server/lib/src/utilities/strings.dart index 41b186a2ac2..25968dff39c 100644 --- a/pkg/analysis_server/lib/src/utilities/strings.dart +++ b/pkg/analysis_server/lib/src/utilities/strings.dart @@ -100,11 +100,11 @@ int findCommonPrefix(String a, String b) { /// Returns the number of characters common to the end of [a] and [b]. int findCommonSuffix(String a, String b) { - var a_length = a.length; - var b_length = b.length; - var n = min(a_length, b_length); + var aLength = a.length; + var bLength = b.length; + var n = min(aLength, bLength); for (var i = 1; i <= n; i++) { - if (a.codeUnitAt(a_length - i) != b.codeUnitAt(b_length - i)) { + if (a.codeUnitAt(aLength - i) != b.codeUnitAt(bLength - i)) { return i - 1; } } diff --git a/pkg/analysis_server/test/analysis_options.yaml b/pkg/analysis_server/test/analysis_options.yaml index 43c176d95f7..181041b1ec9 100644 --- a/pkg/analysis_server/test/analysis_options.yaml +++ b/pkg/analysis_server/test/analysis_options.yaml @@ -7,4 +7,6 @@ analyzer: # We have some long test class names which include one or more underscores # to improve readability. camel_case_types: ignore - + # There are just over 100 violations of this, which can likely be ignored + # on a case-by-case or file-by-file basis. + non_constant_identifier_names: ignore diff --git a/pkg/analysis_server/tool/code_completion/corpus.dart b/pkg/analysis_server/tool/code_completion/corpus.dart index c6e8e29a32c..824d6cf10af 100644 --- a/pkg/analysis_server/tool/code_completion/corpus.dart +++ b/pkg/analysis_server/tool/code_completion/corpus.dart @@ -71,7 +71,7 @@ final _homeDir = ? Platform.environment['LOCALAPPDATA']! : Platform.environment['HOME']!; -final _package_config = path.join('.dart_tool', 'package_config.json'); +final _packageConfig = path.join('.dart_tool', 'package_config.json'); Future _clone(String repo) async { var name = _trimName( @@ -106,7 +106,7 @@ Future _runPub(String dir) async => Future _runPubGet(FileSystemEntity dir) async { if (_hasPubspec(dir)) { - var packageFile = path.join(dir.path, _package_config); + var packageFile = path.join(dir.path, _packageConfig); if (!File(packageFile).existsSync() || forcePubUpdate) { var relativeDirPath = path.relative(dir.path, from: _appDir); print('Getting pub dependencies for "$relativeDirPath"...'); diff --git a/pkg/analysis_server/tool/code_completion/metrics_util.dart b/pkg/analysis_server/tool/code_completion/metrics_util.dart index 5dd9b0d03e6..235937d860c 100644 --- a/pkg/analysis_server/tool/code_completion/metrics_util.dart +++ b/pkg/analysis_server/tool/code_completion/metrics_util.dart @@ -215,10 +215,10 @@ class DistributionComputer { } /// A computer for the mean reciprocal rank. The MRR as well as the MRR only -/// if the item was in the top 5 in the list see [MAX_RANK], is computed. +/// if the item was in the top 5 in the list see [_maxRank], is computed. /// https://en.wikipedia.org/wiki/Mean_reciprocal_rank. class MeanReciprocalRankComputer { - static final int MAX_RANK = 5; + static const int _maxRank = 5; final String name; double _sum = 0; double _sum_5 = 0; @@ -252,7 +252,7 @@ class MeanReciprocalRankComputer { void addRank(int rank) { if (rank != 0) { _sum += 1 / rank; - if (rank <= MAX_RANK) { + if (rank <= _maxRank) { _sum_5 += 1 / rank; } } diff --git a/pkg/analysis_server/tool/lsp_spec/codegen_dart.dart b/pkg/analysis_server/tool/lsp_spec/codegen_dart.dart index befdd2ab1bf..701dcbb318c 100644 --- a/pkg/analysis_server/tool/lsp_spec/codegen_dart.dart +++ b/pkg/analysis_server/tool/lsp_spec/codegen_dart.dart @@ -251,8 +251,8 @@ bool _isSimpleType(TypeBase type) { bool _isSpecType(TypeBase type) { type = resolveTypeAlias(type); return type is TypeReference && - type != TypeReference.LspObject && - type != TypeReference.LspAny && + type != TypeReference.lspObject && + type != TypeReference.lspAny && (_interfaces.containsKey(type.name) || (_namespaces.containsKey(type.name))); } diff --git a/pkg/analysis_server/tool/lsp_spec/generate_all.dart b/pkg/analysis_server/tool/lsp_spec/generate_all.dart index 5b607634e82..82278c29f54 100644 --- a/pkg/analysis_server/tool/lsp_spec/generate_all.dart +++ b/pkg/analysis_server/tool/lsp_spec/generate_all.dart @@ -184,12 +184,12 @@ List getCustomClasses() { var customTypes = [ TypeAlias( name: 'LSPAny', - baseType: TypeReference.LspAny, + baseType: TypeReference.lspAny, renameReferences: false, ), TypeAlias( name: 'LSPObject', - baseType: TypeReference.LspObject, + baseType: TypeReference.lspObject, renameReferences: false, ), // The DocumentFilter more complex in v3.17's meta_model (to allow @@ -443,7 +443,7 @@ List getCustomClasses() { ), Field( name: 'value', - type: TypeReference.LspAny, + type: TypeReference.lspAny, allowsNull: false, allowsUndefined: true, comment: @@ -466,7 +466,7 @@ List getCustomClasses() { ), Field( name: 'defaultValue', - type: TypeReference.LspAny, + type: TypeReference.lspAny, allowsNull: false, allowsUndefined: true, comment: @@ -536,7 +536,7 @@ List getCustomClasses() { field('name', type: 'string'), Field( name: 'newValue', - type: TypeReference.LspAny, + type: TypeReference.lspAny, allowsNull: true, allowsUndefined: false, ), @@ -574,7 +574,7 @@ List getCustomClasses() { ), AbstractGetter( name: 'defaultValue', - type: TypeReference.LspAny, + type: TypeReference.lspAny, comment: 'An optional default value for the parameter. The type of ' 'this value may vary between parameter kinds but must always be ' diff --git a/pkg/analysis_server/tool/lsp_spec/meta_model.dart b/pkg/analysis_server/tool/lsp_spec/meta_model.dart index 28afe282a1d..d52bb7152a4 100644 --- a/pkg/analysis_server/tool/lsp_spec/meta_model.dart +++ b/pkg/analysis_server/tool/lsp_spec/meta_model.dart @@ -262,10 +262,10 @@ class TypeReference extends TypeBase { static final TypeBase int = TypeReference('int'); /// Any object (but not null). - static final TypeBase LspObject = TypeReference('Object'); + static final TypeBase lspObject = TypeReference('Object'); /// Any object (or null/undefined). - static final TypeBase LspAny = NullableType(TypeReference.LspObject); + static final TypeBase lspAny = NullableType(TypeReference.lspObject); final String name; final List typeArgs;