Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
93eac884
Unverified
Commit
93eac884
authored
Jul 09, 2020
by
includecmath
Committed by
GitHub
Jul 09, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[flutter_tools] Clean code analyze command (#60200)
parent
741608a2
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
51 additions
and
27 deletions
+51
-27
analyze_base.dart
packages/flutter_tools/lib/src/commands/analyze_base.dart
+18
-0
analyze_continuously.dart
.../flutter_tools/lib/src/commands/analyze_continuously.dart
+10
-10
analyze_once.dart
packages/flutter_tools/lib/src/commands/analyze_once.dart
+16
-17
analyze_test.dart
...tter_tools/test/commands.shard/hermetic/analyze_test.dart
+7
-0
No files found.
packages/flutter_tools/lib/src/commands/analyze_base.dart
View file @
93eac884
...
...
@@ -85,6 +85,24 @@ abstract class AnalyzeBase {
}
bool
get
isBenchmarking
=>
argResults
[
'benchmark'
]
as
bool
;
static
String
generateDartDocMessage
(
int
undocumentedMembers
)
{
String
dartDocMessage
;
assert
(
undocumentedMembers
>=
0
);
switch
(
undocumentedMembers
)
{
case
0
:
dartDocMessage
=
'all public member have documentation'
;
break
;
case
1
:
dartDocMessage
=
'one public member lacks documentation'
;
break
;
default
:
dartDocMessage
=
'
$undocumentedMembers
public members lack documentation'
;
}
return
dartDocMessage
;
}
}
class
PackageDependency
{
...
...
packages/flutter_tools/lib/src/commands/analyze_continuously.dart
View file @
93eac884
...
...
@@ -20,7 +20,10 @@ import '../dart/analysis.dart';
import
'analyze_base.dart'
;
class
AnalyzeContinuously
extends
AnalyzeBase
{
AnalyzeContinuously
(
ArgResults
argResults
,
List
<
String
>
repoRoots
,
List
<
Directory
>
repoPackages
,
{
AnalyzeContinuously
(
ArgResults
argResults
,
List
<
String
>
repoRoots
,
List
<
Directory
>
repoPackages
,
{
@required
FileSystem
fileSystem
,
@required
Logger
logger
,
@required
Terminal
terminal
,
...
...
@@ -72,7 +75,9 @@ class AnalyzeContinuously extends AnalyzeBase {
final
String
sdkPath
=
argResults
[
'dart-sdk'
]
as
String
??
artifacts
.
getArtifactPath
(
Artifact
.
engineDartSdkPath
);
final
AnalysisServer
server
=
AnalysisServer
(
sdkPath
,
directories
,
final
AnalysisServer
server
=
AnalysisServer
(
sdkPath
,
directories
,
fileSystem:
fileSystem
,
logger:
logger
,
platform:
platform
,
...
...
@@ -159,20 +164,15 @@ class AnalyzeContinuously extends AnalyzeBase {
}
else
if
(
issueCount
!=
0
)
{
errorsMessage
=
'
$issueCount
${pluralize('issue', issueCount)}
found'
;
}
else
{
errorsMessage
=
'
no issues found
'
;
errorsMessage
=
'
No issues found!
'
;
}
String
dartdocMessage
;
if
(
undocumentedMembers
==
1
)
{
dartdocMessage
=
'one public member lacks documentation'
;
}
else
{
dartdocMessage
=
'
$undocumentedMembers
public members lack documentation'
;
}
final
String
dartDocMessage
=
AnalyzeBase
.
generateDartDocMessage
(
undocumentedMembers
);
final
String
files
=
'
${analyzedPaths.length}
${pluralize('file', analyzedPaths.length)}
'
;
final
String
seconds
=
(
analysisTimer
.
elapsedMilliseconds
/
1000.0
).
toStringAsFixed
(
2
);
if
(
undocumentedMembers
>
0
)
{
logger
.
printStatus
(
'
$errorsMessage
•
$dart
d
ocMessage
• analyzed
$files
in
$seconds
seconds'
);
logger
.
printStatus
(
'
$errorsMessage
•
$dart
D
ocMessage
• analyzed
$files
in
$seconds
seconds'
);
}
else
{
logger
.
printStatus
(
'
$errorsMessage
• analyzed
$files
in
$seconds
seconds'
);
}
...
...
packages/flutter_tools/lib/src/commands/analyze_once.dart
View file @
93eac884
...
...
@@ -16,10 +16,8 @@ import '../base/platform.dart';
import
'../base/terminal.dart'
;
import
'../base/utils.dart'
;
import
'../dart/analysis.dart'
;
import
'analyze.dart'
;
import
'analyze_base.dart'
;
/// An aspect of the [AnalyzeCommand] to perform once time analysis.
class
AnalyzeOnce
extends
AnalyzeBase
{
AnalyzeOnce
(
ArgResults
argResults
,
...
...
@@ -87,7 +85,6 @@ class AnalyzeOnce extends AnalyzeBase {
throwToolExit
(
'Nothing to analyze.'
,
exitCode:
0
);
}
// analyze all
final
Completer
<
void
>
analysisCompleter
=
Completer
<
void
>();
final
List
<
AnalysisError
>
errors
=
<
AnalysisError
>[];
...
...
@@ -109,17 +106,24 @@ class AnalyzeOnce extends AnalyzeBase {
Status
progress
;
try
{
StreamSubscription
<
bool
>
subscription
;
subscription
=
server
.
onAnalyzing
.
listen
((
bool
isAnalyzing
)
{
void
handleAnalysisStatus
(
bool
isAnalyzing
)
{
if
(!
isAnalyzing
)
{
analysisCompleter
.
complete
();
subscription
?.
cancel
();
subscription
=
null
;
}
});
server
.
onErrors
.
listen
((
FileAnalysisErrors
fileErrors
)
{
// Record the issues found (but filter out to do comments).
errors
.
addAll
(
fileErrors
.
errors
.
where
((
AnalysisError
error
)
=>
error
.
type
!=
'TODO'
));
});
}
subscription
=
server
.
onAnalyzing
.
listen
((
bool
isAnalyzing
)
=>
handleAnalysisStatus
(
isAnalyzing
));
void
handleAnalysisErrors
(
FileAnalysisErrors
fileErrors
)
{
fileErrors
.
errors
.
removeWhere
((
AnalysisError
error
)
=>
error
.
type
==
'TODO'
);
errors
.
addAll
(
fileErrors
.
errors
);
}
server
.
onErrors
.
listen
(
handleAnalysisErrors
);
await
server
.
start
();
// Completing the future in the callback can't fail.
...
...
@@ -175,19 +179,14 @@ class AnalyzeOnce extends AnalyzeBase {
final
String
seconds
=
(
timer
.
elapsedMilliseconds
/
1000.0
).
toStringAsFixed
(
1
);
String
dartdocMessage
;
if
(
undocumentedMembers
==
1
)
{
dartdocMessage
=
'one public member lacks documentation'
;
}
else
{
dartdocMessage
=
'
$undocumentedMembers
public members lack documentation'
;
}
final
String
dartDocMessage
=
AnalyzeBase
.
generateDartDocMessage
(
undocumentedMembers
);
// We consider any level of error to be an error exit (we don't report different levels).
if
(
errors
.
isNotEmpty
)
{
final
int
errorCount
=
errors
.
length
;
logger
.
printStatus
(
''
);
if
(
undocumentedMembers
>
0
)
{
throwToolExit
(
'
$errorCount
${pluralize('issue', errorCount)}
found. (ran in
${seconds}
s;
$dart
d
ocMessage
)'
);
throwToolExit
(
'
$errorCount
${pluralize('issue', errorCount)}
found. (ran in
${seconds}
s;
$dart
D
ocMessage
)'
);
}
else
{
throwToolExit
(
'
$errorCount
${pluralize('issue', errorCount)}
found. (ran in
${seconds}
s)'
);
}
...
...
@@ -199,7 +198,7 @@ class AnalyzeOnce extends AnalyzeBase {
if
(
argResults
[
'congratulate'
]
as
bool
)
{
if
(
undocumentedMembers
>
0
)
{
logger
.
printStatus
(
'No issues found! (ran in
${seconds}
s;
$dart
d
ocMessage
)'
);
logger
.
printStatus
(
'No issues found! (ran in
${seconds}
s;
$dart
D
ocMessage
)'
);
}
else
{
logger
.
printStatus
(
'No issues found! (ran in
${seconds}
s)'
);
}
...
...
packages/flutter_tools/test/commands.shard/hermetic/analyze_test.dart
View file @
93eac884
...
...
@@ -5,12 +5,19 @@
import
'package:file/file.dart'
;
import
'package:file/memory.dart'
;
import
'package:flutter_tools/src/cache.dart'
;
import
'package:flutter_tools/src/commands/analyze_base.dart'
;
import
'../../src/common.dart'
;
const
String
_kFlutterRoot
=
'/data/flutter'
;
void
main
(
)
{
testWithoutContext
(
'analyze generate correct DartDoc message'
,
()
async
{
expect
(
AnalyzeBase
.
generateDartDocMessage
(
0
),
'all public member have documentation'
);
expect
(
AnalyzeBase
.
generateDartDocMessage
(
1
),
'one public member lacks documentation'
);
expect
(
AnalyzeBase
.
generateDartDocMessage
(
2
),
'2 public members lack documentation'
);
});
testWithoutContext
(
'analyze inRepo'
,
()
{
final
FileSystem
fileSystem
=
MemoryFileSystem
.
test
();
fileSystem
.
directory
(
_kFlutterRoot
).
createSync
(
recursive:
true
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment