| Index: pkg/analysis_server/tool/spec/to_html.dart
|
| diff --git a/pkg/analysis_server/tool/spec/to_html.dart b/pkg/analysis_server/tool/spec/to_html.dart
|
| index e9401960fe786cb3363d8afd0240dab8a2848efc..dc8f3e3f2baa1351d7140f9a5ab2a7f064f7cead 100644
|
| --- a/pkg/analysis_server/tool/spec/to_html.dart
|
| +++ b/pkg/analysis_server/tool/spec/to_html.dart
|
| @@ -36,10 +36,6 @@ body {
|
| -webkit-font-smoothing: auto;
|
| }
|
|
|
| -h1 {
|
| - text-align: center;
|
| -}
|
| -
|
| h2, h3, h4, h5 {
|
| margin-bottom: 0;
|
| }
|
| @@ -115,6 +111,10 @@ a:focus, a:hover {
|
| text-decoration: underline;
|
| }
|
|
|
| +.deprecated {
|
| + text-decoration: line-through;
|
| +}
|
| +
|
| /* Styles for index */
|
|
|
| .subindex ul {
|
| @@ -200,8 +200,10 @@ abstract class HtmlMixin {
|
| void html(void callback()) => element('html', {}, callback);
|
| void i(void callback()) => element('i', {}, callback);
|
| void li(void callback()) => element('li', {}, callback);
|
| - void link(String id, void callback()) {
|
| - element('a', {'href': '#$id'}, callback);
|
| + void link(String id, void callback(), [Map<dynamic, String> attributes]) {
|
| + attributes ??= {};
|
| + attributes['href'] = '#$id';
|
| + element('a', attributes, callback);
|
| }
|
|
|
| void p(void callback()) => element('p', {}, callback);
|
| @@ -209,6 +211,8 @@ abstract class HtmlMixin {
|
| void title(void callback()) => element('title', {}, callback);
|
| void tt(void callback()) => element('tt', {}, callback);
|
| void ul(void callback()) => element('ul', {}, callback);
|
| + void span(String cls, void callback()) =>
|
| + element('span', {'class': cls}, callback);
|
| }
|
|
|
| /**
|
| @@ -340,20 +344,35 @@ class ToHtmlVisitor extends HierarchicalApiVisitor
|
| });
|
| }
|
|
|
| + void generateDomainsHeader() {
|
| + h1(() {
|
| + write('Domains');
|
| + });
|
| + }
|
| +
|
| void generateTableOfContents() {
|
| - ul(() {
|
| + for (var domain in api.domains.where((domain) => !domain.experimental)) {
|
| writeln();
|
|
|
| - for (var domain in api.domains.where((domain) => !domain.experimental)) {
|
| - write(' ');
|
| - li(() {
|
| - link('domain_${domain.name}', () {
|
| - write(_toTitleCase(domain.name));
|
| - });
|
| + p(() {
|
| + link('domain_${domain.name}', () {
|
| + write(_toTitleCase(domain.name));
|
| });
|
| - writeln();
|
| - }
|
| - });
|
| + });
|
| +
|
| + ul(() {
|
| + for (Request request in domain.requests) {
|
| + li(() {
|
| + link('request_${request.longMethod}', () {
|
| + write(request.longMethod);
|
| + }, request.deprecated ? {'class': 'deprecated'} : null);
|
| + });
|
| + writeln();
|
| + }
|
| + });
|
| +
|
| + writeln();
|
| + }
|
| }
|
|
|
| void generateTypesIndex(Set<String> types) {
|
| @@ -423,6 +442,9 @@ class ToHtmlVisitor extends HierarchicalApiVisitor
|
| continue;
|
| }
|
| switch (node.localName) {
|
| + case 'domains':
|
| + generateDomainsHeader();
|
| + break;
|
| case 'domain':
|
| visitDomain(apiMappings.domains[node]);
|
| break;
|
| @@ -515,11 +537,6 @@ class ToHtmlVisitor extends HierarchicalApiVisitor
|
| anchor('notification_${notification.longEvent}', () {
|
| write(notification.longEvent);
|
| });
|
| - write(' (');
|
| - link('notification_${notification.longEvent}', () {
|
| - write('#');
|
| - });
|
| - write(')');
|
| });
|
| dd(() {
|
| box(() {
|
| @@ -556,15 +573,10 @@ class ToHtmlVisitor extends HierarchicalApiVisitor
|
| if (request.experimental) {
|
| return;
|
| }
|
| - dt('request', () {
|
| + dt(request.deprecated ? 'request deprecated' : 'request', () {
|
| anchor('request_${request.longMethod}', () {
|
| write(request.longMethod);
|
| });
|
| - write(' (');
|
| - link('request_${request.longMethod}', () {
|
| - write('#');
|
| - });
|
| - write(')');
|
| });
|
| dd(() {
|
| box(() {
|
| @@ -583,7 +595,10 @@ class ToHtmlVisitor extends HierarchicalApiVisitor
|
| if (typeDefinition.experimental) {
|
| return;
|
| }
|
| - dt('typeDefinition', () {
|
| + dt(
|
| + typeDefinition.deprecated
|
| + ? 'typeDefinition deprecated'
|
| + : 'typeDefinition', () {
|
| anchor('type_${typeDefinition.name}', () {
|
| write('${typeDefinition.name}: ');
|
| TypeVisitor typeVisitor = new TypeVisitor(api, short: true);
|
| @@ -615,7 +630,7 @@ class ToHtmlVisitor extends HierarchicalApiVisitor
|
| break;
|
| }
|
| }
|
| - dt('value', () {
|
| + dt(typeEnumValue.deprecated ? 'value deprecated' : 'value', () {
|
| write(typeEnumValue.value);
|
| });
|
| if (isDocumented) {
|
| @@ -646,22 +661,24 @@ class ToHtmlVisitor extends HierarchicalApiVisitor
|
| void visitTypeObjectField(TypeObjectField typeObjectField) {
|
| dt('field', () {
|
| b(() {
|
| - write(typeObjectField.name);
|
| + if (typeObjectField.deprecated) {
|
| + span('deprecated', () {
|
| + write(typeObjectField.name);
|
| + });
|
| + } else {
|
| + write(typeObjectField.name);
|
| + }
|
| if (typeObjectField.value != null) {
|
| write(' = ${JSON.encode(typeObjectField.value)}');
|
| } else {
|
| - write(' (');
|
| - if (typeObjectField.optional) {
|
| - gray(() {
|
| - write('optional');
|
| - });
|
| - write(' ');
|
| - }
|
| + write(': ');
|
| TypeVisitor typeVisitor = new TypeVisitor(api, short: true);
|
| addAll(typeVisitor.collectHtml(() {
|
| typeVisitor.visitTypeDecl(typeObjectField.type);
|
| }));
|
| - write(')');
|
| + if (typeObjectField.optional) {
|
| + gray(() => write(' (optional)'));
|
| + }
|
| }
|
| });
|
| });
|
|
|