diff --git a/pkg/analysis_server/lib/src/lsp/mapping.dart b/pkg/analysis_server/lib/src/lsp/mapping.dart index 9ef05933dab..64559e523a2 100644 --- a/pkg/analysis_server/lib/src/lsp/mapping.dart +++ b/pkg/analysis_server/lib/src/lsp/mapping.dart @@ -1538,17 +1538,9 @@ lsp.SignatureHelp toSignatureHelp( ? ' = ${p.defaultValueCode}' : ''; - var hasFinal = p is FieldFormalParameterElement - ? (p.field?.isFinal ?? false) - : p.isFinal; - var hasVar = p is FieldFormalParameterElement && p.isDeclaring && !hasFinal; + var prefix = p.isRequiredNamed ? 'required ' : ''; - var prefixes = [ - if (hasFinal) 'final ', - if (hasVar) 'var ', - if (p.isRequiredNamed) 'required ', - ]; - return '${prefixes.join()}${p.type} ${p.displayName}$defaultCodeSuffix'; + return '$prefix${p.type} ${p.displayName}$defaultCodeSuffix'; } /// Gets the full signature label in the form diff --git a/pkg/analysis_server/test/lsp/signature_help_test.dart b/pkg/analysis_server/test/lsp/signature_help_test.dart index 63f7ab23cd0..150498499bb 100644 --- a/pkg/analysis_server/test/lsp/signature_help_test.dart +++ b/pkg/analysis_server/test/lsp/signature_help_test.dart @@ -663,6 +663,8 @@ final a = A(^); ); } + /// Keywords for declaraing parameters should not be shown because they don't + /// change the parameters and are just visual noise. Future test_params_final() async { var content = ''' foo(final String s) { @@ -670,12 +672,12 @@ foo(final String s) { } '''; - var expectedLabel = 'foo(final String s)'; + var expectedLabel = 'foo(String s)'; await _expectSignature( content, expectedLabel, - expectedParams: [ParameterInformation(label: 'final String s')], + expectedParams: [ParameterInformation(label: 'String s')], ); } @@ -798,10 +800,10 @@ class A(final int x, var int y, int z); final a = A(^); '''; - var expectedLabel = 'A(final int x, var int y, int z)'; + var expectedLabel = 'A(int x, int y, int z)'; var expectedParams = [ - ParameterInformation(label: 'final int x'), - ParameterInformation(label: 'var int y'), + ParameterInformation(label: 'int x'), + ParameterInformation(label: 'int y'), ParameterInformation(label: 'int z'), ];