46 Commits

Author SHA1 Message Date
Greg Spencer a3186fbaa1 Analyze dartpad (#45124)
This fixes the sample code analysis to treat dartpad snippets in the same way as snippet snippets, which it wasn't until now (the snippet generator was treating them as "samples"), and some errors crept in. This PR also fixes those errors.

Also, added a --verbose option to the sample analyzer.
2019-11-19 15:16:12 -08:00
Alexandre Ardhuin df4bf453ab more UI-as-code (#35516) 2019-09-17 16:23:44 +02:00
Alexandre Ardhuin 758009ba70 more ui-as-code (#35393)
* more ui-as-code

* address review comments
2019-07-02 21:11:56 +02:00
Alexandre Ardhuin 9c31f9f41a remove unnecessary ..toList() (#35263) 2019-07-01 07:05:42 +02:00
Alexandre Ardhuin 919dcf53f3 enable lints prefer_spread_collections and prefer_inlined_adds (#35189) 2019-06-27 21:23:16 +02:00
Alexandre Ardhuin fecf99ff1e enable lint avoid_bool_literals_in_conditional_expressions (#35055) 2019-06-25 17:40:05 +02:00
Michael Thomsen 7ae3caf309 Rename flutter packages to flutter pub (#33041) 2019-05-21 16:38:58 +02:00
LongCatIsLooong 712195b559 update sample code analyzer regexp & test case (#30201)
updates the regex the analyzer uses, so it should be able to recognize expressions such as
const Foo a = Foo(); as "other code" rather than a constructor call.
2019-04-01 17:27:29 -07:00
Greg Spencer 262f12b4a9 Remove remaining "## Sample code" segments, and fix the snippet generator. (#27793)
This converts all remaining "## Sample code" segments into snippets, and fixes
the snippet generator to handle multiple snippets in the same dartdoc block
properly.

I also generated, compiled, and ran each of the existing application samples,
and fixed them up to be more useful and/or just run without errors.

This PR fixes these problems with examples:

1. Switching tabs in a snippet now works if there is more than one snippet in
   a single dartdoc block.
2. Generation of snippet code now works if there is more than one snippet.
3. Contrast of text and links in the code sample block has been improved to
   recommended levels.
4. Added five new snippet templates, including a "freeform" template to make
   it possible to show examples that need to change the app instantiation.
5. Fixed several examples to run properly, a couple by adding the "Scaffold"
   widget to the template, a couple by just fixing their code.
6. Fixed visual look of some of the samples when they run by placing many
   samples inside of a Scaffold.
7. In order to make it easier to run locally, changed the sample analyzer to
   remove the contents of the supplied temp directory before running, since
   having files that hang around is problematic (only a problem when running
   locally with the `--temp` argument).
8. Added a `SampleCheckerException` class, and handle sample checking
   exceptions more gracefully.
9. Deprecated the old "## Sample code" designation, and added enforcement for
   the deprecation.
10. Removed unnecessary `new` from templates (although they never appeared in
   the samples thanks to dartfmt, but still).

Fixes #26398
Fixes #27411
2019-02-15 07:48:49 -08:00
Greg Spencer bcd60fa89a Make sample analyzer more friendly for running locally. (#27648)
Now the sample analyzer can be run locally with:

dart dev/bots/analyze-sample-code.dart --temp=/tmp/samples

And it leaves /tmp/samples around so you can take a look at the code that was generated to see if it's the artificial environment that the samples are evaluated in that is the culprit for a failed analysis.

Before, you had to specify the whole path to the dart executable, and had to modify the code to keep the tempdir around.
2019-02-08 10:12:14 -08:00
Janice Collins 4a110b6227 Allow snippets tool to be run from arbitrary CWDs (#25243)
* Allow snippets tool to be run from arbitrary CWDs

* Drop use of absolute when using Platform.executable (path is not relative, might require PATH resolution)

* canonicalize paths

* Use path.fromUri consistently to resolve file URIs

* Force commit to try to kick Cirrus

* Force commit to kick Cirrus, again
2018-12-12 09:40:18 -08:00
Greg Spencer a6e901130e Convert existing '## Sample code' samples to '{@tool sample}...{@end-tool}' form. (#24077)
This converts existing ## Sample code samples to {@tool sample}...{@end-tool} form.

Also:
1. Fixed a minor bug in analyze-sample-code.dart
2. Made the snippet tool only insert descriptions if the description is non-empty.
3. Moved the Card diagram to before the code sample.
2018-11-07 20:35:10 -08:00
Greg Spencer 094f93dfcf Fixes several bugs in samples, quotes HTML properly, and pre-compiles snippet tool. (#24020)
When converting all of the samples to use the snippet tool, I encountered some bugs/shortcomings:

1. The document production took 90 minutes, since the snippet tool was being invoked from the command line each time. I fixed this by snapshotting the executable before running, so it's down to 7 minutes.

2. The sample code was not being properly escaped by the snippet tool, so generics were causing issues in the HTML output. It is now quoted.

3. Code examples that used languages other than Dart were not supported. Anything that highlight.js was compiled for dartdoc with is now supported.

4. The comment color for highlight.js was light grey on white, which was pretty unreadable. It's now dark green and bold.
2018-11-07 08:29:14 -08:00
Greg Spencer 202b045b50 Rewrite the analyze-sample-code script to also analyze snippets (#23893)
This rewrites the sample code analysis script to be a little less of a hack (but still not pretty), and to handle snippets as well.

It also changes the semantics of how sample code is handled: the namespace for the sample code is now limited to the file that it appears in, so some additional "Examples can assume:" blocks were added. The upside of this is that there will be far fewer name collisions.

I fixed the output too: no longer will you get 4000 lines of numbered output with the error at the top and have to grep for the actual problem. It gives the filename and line number of the original location of the code (in the comment in the tree), and prints out the source code on the line that caused the problem along with the error.

For snippets, it prints out the location of the start of the snippet and the source code line that causes the problem. It can't print out the original line, because snippets get formatted when they are written, so the line might not be in the same place.
2018-11-05 07:31:35 -08:00
Greg Spencer 2000583ed3 Revert "don't disable TODO issues in IDEs (#23274)" (#23297)
Devon asked me to revert commit c4d1b31b74.

Merging on red to fix the build.
2018-10-19 10:03:35 -07:00
Devon Carew c4d1b31b74 don't disable TODO issues in IDEs (#23274)
* don't disable TODO issues in IDEs

* minor change to start cirrus
2018-10-19 08:01:05 -07:00
Alexandre Ardhuin 936dea28da enable lint prefer_void_to_null (#23174)
* enable lint prefer_void_to_null

* replace last Null by void
2018-10-17 08:09:29 +02:00
Greg Spencer 081d2a7a86 Re-land text wrapping/color PR (#22831)
This attempts to re-land #22656.

There are two changes from the original:

I turned off wrapping completely when not sending output to a terminal. Previously I had defaulted to wrapping at and arbitrary 100 chars in that case, just to keep long messages from being too long, but that turns out the be a bad idea because there are tests that are relying on the specific form of the output. It's also pretty arbitrary, and mostly people sending output to a non-terminal will want unwrapped text.

I found a better way to terminate ANSI color/bold sequences, so that they can be embedded within each other without needed quite as complex a dance with removing redundant sequences.

As part of these changes, I removed the Logger.supportsColor setter so that the one source of truth for color support is in AnsiTerminal.supportsColor.

*     Turn on line wrapping again in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)

    This turns on text wrapping for usage messages and status messages. When on a terminal, wraps to the width of the terminal. When writing to a non-terminal, wrap lines at a default column width (currently defined to be 100 chars). If --no-wrap is specified, then no wrapping occurs. If --wrap-column is specified, wraps to that column (if --wrap is on).

    Adds ANSI color to the doctor and analysis output on terminals. This is in this PR with the wrapping, since wrapping needs to know how to count visible characters in the presence of ANSI sequences. (This is just one more step towards re-implementing all of Curses for Flutter. :-)) Will not print ANSI sequences when sent to a non-terminal, or of --no-color is specified.

    Fixes ANSI color and bold sequences so that they can be combined (bold, colored text), and a small bug in indentation calculation for wrapping.

    Since wrapping is now turned on, also removed many redundant '\n's in the code.
2018-10-10 18:17:56 -07:00
Greg Spencer 2d81adf74c Revert "Turn on line wrapping in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)" (#22759)
This reverts commit e438632165
because it breaks 160 benchmarks, and several devicelab tests,
due to changing the format of the output.
2018-10-05 22:29:37 -07:00
Greg Spencer e438632165 Turn on line wrapping in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)
This turns on text wrapping for usage messages and status messages. When on a terminal, wraps to the width of the terminal. When writing to a non-terminal, wrap lines at a default column width (currently defined to be 100 chars). If --no-wrap is specified, then no wrapping occurs. If --wrap-column is specified, wraps to that column (if --wrap is on).

Adds ANSI color to the doctor and analysis output on terminals. This is in this PR with the wrapping, since wrapping needs to know how to count visible characters in the presence of ANSI sequences. (This is just one more step towards re-implementing all of Curses for Flutter. :-)) Will not print ANSI sequences when sent to a non-terminal, or of --no-color is specified.

Fixes ANSI color and bold sequences so that they can be combined (bold, colored text), and a small bug in indentation calculation for wrapping.

Since wrapping is now turned on, also removed many redundant '\n's in the code.
2018-10-05 20:00:11 -07:00
Alexandre Ardhuin d340e2f229 apply lint prefer_void_to_null in dev/ (#22661) 2018-10-04 18:44:23 +02:00
Ian Hickson 6d134e0c86 Animation API improvements (#21540) 2018-09-23 00:43:05 -07:00
Alexandre Ardhuin d927c93310 Unnecessary new (#20138)
* enable lint unnecessary_new

* fix tests

* fix tests

* fix tests
2018-09-12 08:29:29 +02:00
Alexandre Ardhuin 976cffa24d lint unnecessary_new on samples (#21539)
* lint unnecessary_new on samples

* fix tests
2018-09-07 11:00:05 +02:00
Alexandre Ardhuin 3c58195350 lint unnecessary_const on samples (#21155) 2018-09-07 09:13:13 +02:00