Skip to content

Commit 7ce95ab

Browse files
author
Tony Sansone
committed
Update keyword list
1 parent 3217adf commit 7ce95ab

File tree

5 files changed

+237
-125
lines changed

5 files changed

+237
-125
lines changed

src/_data/keywords.yml

+207
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
- term: 'abstract'
2+
link: /language/class-modifiers#abstract
3+
type: bit
4+
- term: 'as'
5+
link: /language/operators#type-test-operators
6+
type: bit
7+
- term: 'assert'
8+
link: /language/error-handling#assert
9+
type: reserved
10+
- term: 'async'
11+
link: /language/async
12+
type: context
13+
- term: 'await'
14+
link: /language/async
15+
type: context
16+
- term: 'base'
17+
link: /language/class-modifiers#base
18+
type: bit
19+
- term: 'break'
20+
link: /language/loops#break-and-continue
21+
type: reserved
22+
- term: 'case'
23+
link: /language/branches#switch
24+
type: reserved
25+
- term: 'catch'
26+
link: /language/error-handling#catch
27+
type: reserved
28+
- term: 'class'
29+
link: /language/classes#instance-variables
30+
type: reserved
31+
- term: 'const'
32+
link: /language/variables#final-and-const
33+
type: reserved
34+
- term: 'continue'
35+
link: /language/loops#break-and-continue
36+
type: reserved
37+
- term: 'covariant'
38+
link: /guides/language/sound-problems#the-covariant-keyword
39+
type: context
40+
- term: 'default'
41+
link: /language/branches#switch
42+
type: reserved
43+
- term: 'deferred'
44+
link: /language/libraries#lazily-loading-a-library
45+
type: bit
46+
- term: 'do'
47+
link: /language/loops#while-and-do-while
48+
type: reserved
49+
- term: 'dynamic'
50+
link: /language#important-concepts
51+
type: reserved
52+
- term: 'else'
53+
link: /language/branches#if
54+
type: reserved
55+
- term: 'enum'
56+
link: /language/enums
57+
type: reserved
58+
- term: 'export'
59+
link: /guides/libraries/create-packages
60+
type: bit
61+
- term: 'extends'
62+
link: /language/extend
63+
type: reserved
64+
- term: 'extension'
65+
link: /language/extension-methods
66+
type: bit
67+
- term: 'external'
68+
link: /language/functions#external
69+
type: bit
70+
- term: 'factory'
71+
link: /language/constructors#factory-constructors
72+
type: bit
73+
- term: 'false'
74+
link: /language/built-in-types#booleans
75+
type: reserved
76+
- term: 'final (var)'
77+
link: /language/variables#final-and-const
78+
type: reserved
79+
- term: 'final (class)'
80+
link: /language/class-modifiers#final
81+
type: bit
82+
- term: 'finally'
83+
link: /language/error-handling#finally
84+
type: reserved
85+
- term: 'for'
86+
link: /language/loops#for-loops
87+
type: reserved
88+
- term: 'Function'
89+
link: /language/functions
90+
type: bit
91+
- term: 'get'
92+
link: /language/methods#getters-and-setters
93+
type: bit
94+
- term: 'hide'
95+
link: /language/libraries#importing-only-part-of-a-library
96+
type: reserved
97+
- term: 'if'
98+
link: /language/branches#if
99+
type: reserved
100+
- term: 'implements'
101+
link: /language/classes#implicit-interfaces
102+
type: bit
103+
- term: 'import'
104+
link: /language/libraries#using-libraries
105+
type: bit
106+
- term: 'in'
107+
link: /language/loops#for-loops
108+
type: reserved
109+
- term: 'interface'
110+
link: /language/class-modifiers#interface
111+
type: bit
112+
- term: 'is'
113+
link: /language/operators#type-test-operators
114+
type: reserved
115+
- term: 'late'
116+
link: /language/variables#late-variables
117+
type: bit
118+
- term: 'library'
119+
link: /language/libraries
120+
type: bit
121+
- term: 'mixin'
122+
link: /language/mixins
123+
type: bit
124+
- term: 'new'
125+
link: /language/classes#using-constructors
126+
type: reserved
127+
- term: 'null'
128+
link: /language/variables#default-value
129+
type: reserved
130+
- term: 'of'
131+
link: /guides/libraries/create-packages#organizing-a-package
132+
type: context
133+
- term: 'on'
134+
link: /language/error-handling#catch
135+
type: context
136+
- term: 'operator'
137+
link: /language/methods#operators
138+
type: bit
139+
- term: 'part'
140+
link: /guides/libraries/create-packages#organizing-a-package
141+
type: bit
142+
- term: 'required'
143+
link: /language/functions#named-parameters
144+
type: bit
145+
- term: 'rethrow'
146+
link: /language/error-handling#catch
147+
type: reserved
148+
- term: 'return'
149+
link: /language/functions#return-values
150+
type: reserved
151+
- term: 'sealed'
152+
link: /language/class-modifiers#sealed
153+
type: bit
154+
- term: 'set'
155+
link: /language/methods#getters-and-setters
156+
type: bit
157+
- term: 'show'
158+
link: /language/libraries#importing-only-part-of-a-library
159+
type: context
160+
- term: 'static'
161+
link: /language/classes#class-variables-and-methods
162+
type: bit
163+
- term: 'super'
164+
link: /language/extend
165+
type: reserved
166+
- term: 'switch'
167+
link: /language/branches#switch
168+
type: reserved
169+
- term: 'sync'
170+
link: /language/functions#generators
171+
type: context
172+
- term: 'this'
173+
link: /language/constructors
174+
type: reserved
175+
- term: 'throw'
176+
link: /language/error-handling#throw
177+
type: reserved
178+
- term: 'true'
179+
link: /language/built-in-types#booleans
180+
type: reserved
181+
- term: 'try'
182+
link: /language/error-handling#catch
183+
type: reserved
184+
- term: 'type'
185+
link: /language/extension-types
186+
type: reserved
187+
- term: 'typedef'
188+
link: /language/typedefs
189+
type: bit
190+
- term: 'var'
191+
link: /language/variables
192+
type: reserved
193+
- term: 'void'
194+
link: /language/built-in-types
195+
type: reserved
196+
- term: 'when'
197+
link: /language/branches#when
198+
type: reserved
199+
- term: 'with'
200+
link: /language/mixins
201+
type: reserved
202+
- term: 'while'
203+
link: /language/loops#while-and-do-while
204+
type: reserved
205+
- term: 'yield'
206+
link: /language/functions#generators
207+
type: context

src/_sass/_site.scss

+2-2
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ main .content {
330330
}
331331

332332
// Columns
333-
.col2 {
333+
.cols2 {
334334
list-style: none;
335335
column-count: 2;
336336
column-gap: 0;
@@ -343,7 +343,7 @@ main .content {
343343
}
344344
}
345345

346-
.col3 {
346+
.cols3 {
347347
list-style: none;
348348
column-count: 3;
349349
column-gap: 0;

src/content/language/keywords.md

+25-120
Original file line numberDiff line numberDiff line change
@@ -10,123 +10,28 @@ nextpage:
1010
title: Built-in types
1111
---
1212

13-
The following table lists the words that the Dart language treats specially.
14-
15-
{% assign ckw = '&nbsp;<sup title="contextual keyword" alt="contextual keyword">1</sup>' %}
16-
{% assign bii = '&nbsp;<sup title="built-in-identifier" alt="built-in-identifier">2</sup>' %}
17-
{% assign lrw = '&nbsp;<sup title="limited reserved word" alt="limited reserved word">3</sup>' %}
18-
19-
<div class="table-wrapper">
20-
21-
|||||
22-
|-|-|-|-|
23-
| [abstract][]{{bii}} | [else][] | [import][]{{bii}} | [show][]{{ckw}} |
24-
| [as][]{{bii}} | [enum][] | [in][] | [static][]{{bii}} |
25-
| [assert][] | [export][]{{bii}} | [interface][]{{bii}} | [super][] |
26-
| [async][]{{ckw}} | [extends][] | [is][] | [switch][] |
27-
| [await][]{{lrw}} | [extension][]{{bii}} | [late][]{{bii}} | [sync][]{{ckw}} |
28-
| [base][]{{bii}} | [external][]{{bii}} | [library][]{{bii}} | [this][] |
29-
| [break][] | [factory][]{{bii}} | [mixin][]{{bii}} | [throw][] |
30-
| [case][] | [false][] | [new][] | [true][] |
31-
| [catch][] | [final (variable)][] | [null][] | [try][] |
32-
| [class][] | [final (class)][]{{bii}} | [on][]{{ckw}} | [type][]{{lrw}} |
33-
| [const][] | [finally][] | [operator][]{{bii}} | [typedef][]{{bii}} |
34-
| [continue][] | [for][] | [part][]{{bii}} | [var][] |
35-
| [covariant][]{{bii}} | [Function][]{{bii}} | [required][]{{bii}} | [void][] |
36-
| [default][] | [get][]{{bii}} | [rethrow][] | [when][] |
37-
| [deferred][]{{bii}} | [hide][]{{ckw}} | [return][] | [while][] |
38-
| [do][] | [if][] | [sealed][]{{bii}} | [with][] |
39-
| [dynamic][]{{bii}} | [implements][]{{bii}} | [set][]{{bii}} | [yield][]{{lrw}} |
40-
41-
{:.table .table-striped .nowrap}
42-
</div>
43-
44-
[abstract]: /language/class-modifiers#abstract
45-
[as]: /language/operators#type-test-operators
46-
[assert]: /language/error-handling#assert
47-
[async]: /language/async
48-
[await]: /language/async
49-
[base]: /language/class-modifiers#base
50-
[break]: /language/loops#break-and-continue
51-
[case]: /language/branches#switch
52-
[catch]: /language/error-handling#catch
53-
[class]: /language/classes#instance-variables
54-
[const]: /language/variables#final-and-const
55-
[continue]: /language/loops#break-and-continue
56-
[covariant]: /guides/language/sound-problems#the-covariant-keyword
57-
[default]: /language/branches#switch
58-
[deferred]: /language/libraries#lazily-loading-a-library
59-
[do]: /language/loops#while-and-do-while
60-
[dynamic]: /language#important-concepts
61-
[else]: /language/branches#if
62-
[enum]: /language/enums
63-
[export]: /guides/libraries/create-packages
64-
[extends]: /language/extend
65-
[extension]: /language/extension-methods
66-
[external]: /language/functions#external
67-
[factory]: /language/constructors#factory-constructors
68-
[false]: /language/built-in-types#booleans
69-
[final (variable)]: /language/variables#final-and-const
70-
[final (class)]: /language/class-modifiers#final
71-
[finally]: /language/error-handling#finally
72-
[for]: /language/loops#for-loops
73-
[Function]: /language/functions
74-
[get]: /language/methods#getters-and-setters
75-
[hide]: /language/libraries#importing-only-part-of-a-library
76-
[if]: /language/branches#if
77-
[implements]: /language/classes#implicit-interfaces
78-
[import]: /language/libraries#using-libraries
79-
[in]: /language/loops#for-loops
80-
[interface]: /language/class-modifiers#interface
81-
[is]: /language/operators#type-test-operators
82-
[late]: /language/variables#late-variables
83-
[library]: /language/libraries
84-
[mixin]: /language/mixins
85-
[new]: /language/classes#using-constructors
86-
[null]: /language/variables#default-value
87-
[on]: /language/error-handling#catch
88-
[operator]: /language/methods#operators
89-
[part]: /guides/libraries/create-packages#organizing-a-package
90-
[required]: /language/functions#named-parameters
91-
[rethrow]: /language/error-handling#catch
92-
[return]: /language/functions#return-values
93-
[sealed]: /language/class-modifiers#sealed
94-
[set]: /language/methods#getters-and-setters
95-
[show]: /language/libraries#importing-only-part-of-a-library
96-
[static]: /language/classes#class-variables-and-methods
97-
[super]: /language/extend
98-
[switch]: /language/branches#switch
99-
[sync]: /language/functions#generators
100-
[this]: /language/constructors
101-
[throw]: /language/error-handling#throw
102-
[true]: /language/built-in-types#booleans
103-
[try]: /language/error-handling#catch
104-
[type]: /language/extension-types
105-
[typedef]: /language/typedefs
106-
[var]: /language/variables
107-
[void]: /language/built-in-types
108-
[when]: /language/branches#when
109-
[with]: /language/mixins
110-
[while]: /language/loops#while-and-do-while
111-
[yield]: /language/functions#generators
112-
113-
Avoid using these words as identifiers.
114-
However, if necessary, the keywords marked with superscripts can be identifiers:
115-
116-
* Words with the superscript **1** are **contextual keywords**,
117-
which have meaning only in specific places.
118-
They're valid identifiers everywhere.
119-
120-
* Words with the superscript **2** are **built-in identifiers**.
121-
These keywords are valid identifiers in most places,
122-
but they can't be used as class or type names, or as import prefixes.
123-
124-
* Words with the superscript **3** are limited reserved words related to
125-
[asynchrony support][].
126-
You can't use `await` or `yield` as an identifier
127-
in any function body marked with `async`, `async*`, or `sync*`.
128-
129-
All other words in the table are **reserved words**,
130-
which can't be identifiers.
131-
132-
[asynchrony support]: /language/async
13+
{% assign ckw = '&nbsp;<sup>1</sup>' %}
14+
{% assign bii = '&nbsp;<sup>2</sup>' %}
15+
16+
The following table lists the words
17+
that the Dart language reserves for its own use.
18+
Don't use these terms as identifiers unless the term notes an exception.
19+
To learn more about identifier usage, click on the term.
20+
21+
<table class="table table-striped">
22+
23+
{% tablerow keyword in keywords cols: 4 %}
24+
<a href="{{keyword.link}}">{{keyword.term}}</a>
25+
{%- case keyword.type %}
26+
{% when 'bit' %}{{bii}}
27+
{% when 'context' %}{{ckw}}
28+
{% endcase %}
29+
{% endtablerow %}
30+
</table>
31+
32+
{{ckw}} These keywords can be used as an identifier
33+
depending on **context**.
34+
35+
{{bii}} These keywords can't be used as class names, type names,
36+
or import prefixes. They can be used as identifiers in all other
37+
circumstances.

src/content/tools/index.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ except for VM libraries such as `dart:io`.
4848

4949
Dart plugins exist for these commonly used IDEs.
5050

51-
<ul class="col2">
51+
<ul class="cols2">
5252
<li>
5353
<img src="/assets/img/tools/android_studio.svg" width="48" alt="Android Studio logo">
5454
<a href="/tools/jetbrains-plugin"><b>Android Studio</b></a>
@@ -68,7 +68,7 @@ Dart plugins exist for these commonly used IDEs.
6868
The following Dart plugins are also available,
6969
thanks to the Dart community.
7070

71-
<ul class="col2">
71+
<ul class="cols2">
7272
<li>
7373
<img src="/assets/img/tools/emacs.png" alt="Emacs logo">
7474
<a href="https://github.com/nex3/dart-mode"><b>Emacs</b></a>

0 commit comments

Comments
 (0)