Skip to content

Commit 846c251

Browse files
authored
Add macros for keywords. (#4231)
While ddoc will color keywords as keywords in code examples, it won't do so with $(D ) or ``. To highlight them as keywords, you need to use $(D_KEYWORD ), but typing out stuff like $(D_KEYWORD typeof) or $(D_KEYWORD @Property) gets pretty verbose, especially if the keyword is mentioned several times in a paragraph. So, this adds macros for the keywords so that you don't have to type all of that out to get the same effect. So, instead of $(D_KEYWORD typeof), it would be $(K_TYPEOF). Instead of $(D_KEYWORD @Property), it would be $(K_PROPERTY). Etc. Each keyword has a similar macro and is thus similarly shortened.
1 parent b1f1c5a commit 846c251

File tree

2 files changed

+173
-7
lines changed

2 files changed

+173
-7
lines changed

keywords.ddoc

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
_= These are to make it easier to have keywords highlighted as keywords inside
2+
a ddoc comment, whereas by default, they only get highlighted in code examples.
3+
4+
K_ABSTRACT=$(D_KEYWORD abstract)
5+
K_ALIAS=$(D_KEYWORD alias)
6+
K_ALIGN=$(D_KEYWORD align)
7+
K_ASM=$(D_KEYWORD asm)
8+
K_ASSERT=$(D_KEYWORD assert)
9+
K_AUTO=$(D_KEYWORD auto)
10+
_=
11+
12+
K_BOOL=$(D_KEYWORD bool)
13+
K_BREAK=$(D_KEYWORD break)
14+
K_BYTE=$(D_KEYWORD byte)
15+
_=
16+
17+
K_CASE=$(D_KEYWORD case)
18+
K_CAST=$(D_KEYWORD cast)
19+
K_CATCH=$(D_KEYWORD catch)
20+
K_CHAR=$(D_KEYWORD char)
21+
K_CLASS=$(D_KEYWORD class)
22+
K_CONST=$(D_KEYWORD const)
23+
K_CONTINUE=$(D_KEYWORD continue)
24+
_=
25+
26+
K_DCHAR=$(D_KEYWORD dchar)
27+
K_DEBUG=$(D_KEYWORD debug)
28+
K_DEFAULT=$(D_KEYWORD default)
29+
K_DELEGATE=$(D_KEYWORD delegate)
30+
K_DEPRECATED=$(D_KEYWORD deprecated)
31+
K_DO=$(D_KEYWORD do)
32+
K_DOUBLE=$(D_KEYWORD double)
33+
_=
34+
35+
K_ELSE=$(D_KEYWORD else)
36+
K_ENUM=$(D_KEYWORD enum)
37+
K_EXPORT=$(D_KEYWORD export)
38+
K_EXTERN=$(D_KEYWORD extern)
39+
_=
40+
41+
K_FALSE=$(D_KEYWORD false)
42+
K_FINAL=$(D_KEYWORD final)
43+
K_FINALLY=$(D_KEYWORD finally)
44+
K_FLOAT=$(D_KEYWORD float)
45+
K_FOR=$(D_KEYWORD for)
46+
K_FOREACH=$(D_KEYWORD foreach)
47+
K_FOREACH_REVERSE=$(D_KEYWORD foreach_reverse)
48+
K_FUNCTION=$(D_KEYWORD function)
49+
_=
50+
51+
K_GOTO=$(D_KEYWORD goto)
52+
_=
53+
54+
K_IF=$(D_KEYWORD if)
55+
K_IMMUTABLE=$(D_KEYWORD immutable)
56+
K_IMPORT=$(D_KEYWORD import)
57+
K_IN=$(D_KEYWORD in)
58+
K_INOUT=$(D_KEYWORD inout)
59+
K_INT=$(D_KEYWORD int)
60+
K_INTERFACE=$(D_KEYWORD interface)
61+
K_INVARIANT=$(D_KEYWORD invariant)
62+
K_IS=$(D_KEYWORD is)
63+
_=
64+
65+
K_LAZY=$(D_KEYWORD lazy)
66+
K_LONG=$(D_KEYWORD long)
67+
_=
68+
69+
K_MACRO=$(D_KEYWORD macro)
70+
K_MIXIN=$(D_KEYWORD mixin)
71+
K_MODULE=$(D_KEYWORD module)
72+
_=
73+
74+
K_NEW=$(D_KEYWORD new)
75+
K_NOTHROW=$(D_KEYWORD nothrow)
76+
K_NULL=$(D_KEYWORD null)
77+
_=
78+
79+
K_OUT=$(D_KEYWORD out)
80+
K_OVERRIDE=$(D_KEYWORD override)
81+
_=
82+
83+
K_PACKAGE=$(D_KEYWORD package)
84+
K_PRAGMA=$(D_KEYWORD pragma)
85+
K_PRIVATE=$(D_KEYWORD private)
86+
K_PROTECTED=$(D_KEYWORD protected)
87+
K_PUBLIC=$(D_KEYWORD public)
88+
K_PURE=$(D_KEYWORD pure)
89+
_=
90+
91+
K_REAL=$(D_KEYWORD real)
92+
K_REF=$(D_KEYWORD ref)
93+
K_RETURN=$(D_KEYWORD return)
94+
_=
95+
96+
K_SCOPE=$(D_KEYWORD scope)
97+
K_SHARED=$(D_KEYWORD shared)
98+
K_SHORT=$(D_KEYWORD short)
99+
K_STATIC=$(D_KEYWORD static)
100+
K_STRUCT=$(D_KEYWORD struct)
101+
K_SUPER=$(D_KEYWORD super)
102+
K_SWITCH=$(D_KEYWORD switch)
103+
K_SYNCHRONIZED=$(D_KEYWORD synchronized)
104+
_=
105+
106+
K_TEMPLATE=$(D_KEYWORD template)
107+
K_THIS=$(D_KEYWORD this)
108+
K_THROW=$(D_KEYWORD throw)
109+
K_TRUE=$(D_KEYWORD true)
110+
K_TRY=$(D_KEYWORD try)
111+
K_TYPEID=$(D_KEYWORD typeid)
112+
K_TYPEOF=$(D_KEYWORD typeof)
113+
_=
114+
115+
K_UBYTE=$(D_KEYWORD ubyte)
116+
K_UINT=$(D_KEYWORD uint)
117+
K_ULONG=$(D_KEYWORD ulong)
118+
K_UNION=$(D_KEYWORD union)
119+
K_UNITTEST=$(D_KEYWORD unittest)
120+
K_USHORT=$(D_KEYWORD ushort)
121+
_=
122+
123+
K_VERSION=$(D_KEYWORD version)
124+
K_VOID=$(D_KEYWORD void)
125+
_=
126+
127+
K_WCHAR=$(D_KEYWORD wchar)
128+
K_WHILE=$(D_KEYWORD while)
129+
K_WITH=$(D_KEYWORD with)
130+
_=
131+
132+
K___GSHARED=$(D_KEYWORD __gshared)
133+
K___PARAMETERS=$(D_KEYWORD __parameters)
134+
K___RVALUE=$(D_KEYWORD __rvalue)
135+
K___TRAITS=$(D_KEYWORD __traits)
136+
K___VECTOR=$(D_KEYWORD __vector)
137+
_=
138+
139+
_= These aren't technically keywords per the spec, but they're effectively
140+
keywords, so we're treating them as such. The spec treats the @ attributes
141+
differently because of the @, but they're arguably just keywords listed in
142+
another part of the spec, and the types are aliases from object.d.
143+
144+
K_DISABLE=$(D_KEYWORD @disable)
145+
K_NOGC=$(D_KEYWORD @nogc)
146+
K_PROPERTY=$(D_KEYWORD @property)
147+
K_SAFE=$(D_KEYWORD @safe)
148+
K_SYSTEM=$(D_KEYWORD @system)
149+
K_TRUSTED=$(D_KEYWORD @trusted)
150+
_=
151+
152+
K_NORETURN=$(D_KEYWORD noreturn)
153+
_=
154+
155+
K_STRING=$(D_KEYWORD string)
156+
K_WSTRING=$(D_KEYWORD wstring)
157+
K_DSTRING=$(D_KEYWORD dstring)
158+
_=
159+
160+
K_PTRDIFF_T=$(D_KEYWORD ptrdiff_t)
161+
K_SIZEDIFF_T=$(D_KEYWORD sizediff_t)
162+
K_SIZE_T=$(D_KEYWORD size_t)
163+
_=

posix.mak

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -301,10 +301,10 @@ STYLES=$(addsuffix .css, $(addprefix css/, \
301301
# HTML Files
302302
################################################################################
303303

304-
DDOC=$(addsuffix .ddoc, macros html dlang.org doc ${GENERATED}/${LATEST}) $(NODATETIME) $G/dblog_latest.ddoc
305-
STD_DDOC_LATEST=$(addsuffix .ddoc, macros html dlang.org ${GENERATED}/${LATEST} std std_navbar-release ${GENERATED}/modlist-${LATEST}) $(NODATETIME)
306-
STD_DDOC_RELEASE=$(addsuffix .ddoc, macros html dlang.org ${GENERATED}/${LATEST} std std_navbar-release ${GENERATED}/modlist-release) $(NODATETIME)
307-
STD_DDOC_PRERELEASE=$(addsuffix .ddoc, macros html dlang.org ${GENERATED}/${LATEST} std std_navbar-prerelease ${GENERATED}/modlist-prerelease) $(NODATETIME)
304+
DDOC=$(addsuffix .ddoc, macros html dlang.org keywords doc ${GENERATED}/${LATEST}) $(NODATETIME) $G/dblog_latest.ddoc
305+
STD_DDOC_LATEST=$(addsuffix .ddoc, macros html keywords dlang.org ${GENERATED}/${LATEST} std std_navbar-release ${GENERATED}/modlist-${LATEST}) $(NODATETIME)
306+
STD_DDOC_RELEASE=$(addsuffix .ddoc, macros html keywords dlang.org ${GENERATED}/${LATEST} std std_navbar-release ${GENERATED}/modlist-release) $(NODATETIME)
307+
STD_DDOC_PRERELEASE=$(addsuffix .ddoc, macros html keywords dlang.org ${GENERATED}/${LATEST} std std_navbar-prerelease ${GENERATED}/modlist-prerelease) $(NODATETIME)
308308
SPEC_DDOC=${DDOC} spec/spec.ddoc
309309
CHANGELOG_DDOC=${DDOC} changelog/changelog.ddoc $(NODATETIME)
310310
CHANGELOG_PRE_DDOC=${CHANGELOG_DDOC} changelog/prerelease.ddoc
@@ -694,20 +694,23 @@ $(PHOBOS_LIB): $(DMD)
694694
apidocs-prerelease : $W/library-prerelease/sitemap.xml $W/library-prerelease/.htaccess
695695
apidocs-latest : $W/library/sitemap.xml $W/library/.htaccess
696696
apidocs-serve : $G/docs-prerelease.json
697-
${DPL_DOCS} ${DPL_DOCS_FLAGS} serve-html --std-macros=html.ddoc --std-macros=dlang.org.ddoc --std-macros=std.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
697+
${DPL_DOCS} ${DPL_DOCS_FLAGS} serve-html --std-macros=html.ddoc --std-macros=dlang.org.ddoc --std-macros=std.ddoc \
698+
--std-macros=keywords.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
698699
--override-macros=std-ddox-override.ddoc --package-order=std \
699700
--git-target=master --web-file-dir=. $<
700701

701702
$W/library-prerelease/sitemap.xml : $G/docs-prerelease.json
702703
@mkdir -p $(dir $@)
703-
${DPL_DOCS} ${DPL_DOCS_FLAGS} generate-html --file-name-style=lowerUnderscored --std-macros=html.ddoc --std-macros=dlang.org.ddoc --std-macros=std.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
704+
${DPL_DOCS} ${DPL_DOCS_FLAGS} generate-html --file-name-style=lowerUnderscored --std-macros=html.ddoc --std-macros=dlang.org.ddoc \
705+
--std-macros=std.ddoc --std-macros=keywords.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
704706
--override-macros=std-ddox-override.ddoc --package-order=std \
705707
--git-target=master $(DPL_DOCS_PATH_RUN_FLAGS) \
706708
$< $W/library-prerelease
707709

708710
$W/library/sitemap.xml : $G/docs-latest.json
709711
@mkdir -p $(dir $@)
710-
${DPL_DOCS} ${DPL_DOCS_FLAGS} generate-html --file-name-style=lowerUnderscored --std-macros=html.ddoc --std-macros=dlang.org.ddoc --std-macros=std.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
712+
${DPL_DOCS} ${DPL_DOCS_FLAGS} generate-html --file-name-style=lowerUnderscored --std-macros=html.ddoc --std-macros=dlang.org.ddoc \
713+
--std-macros=std.ddoc --std-macros=keywords.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
711714
--override-macros=std-ddox-override.ddoc --package-order=std \
712715
--git-target=v${LATEST} $(DPL_DOCS_PATH_RUN_FLAGS) \
713716
$< $W/library

0 commit comments

Comments
 (0)