1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
|
Format: 1.4
# This is the main Natural Docs languages file. If you change anything here,
# it will apply to EVERY PROJECT you use Natural Docs on. If you'd like to
# change something for just one project, edit the Languages.txt in its project
# directory instead.
#-------------------------------------------------------------------------------
# SYNTAX:
#
# Unlike other Natural Docs configuration files, in this file all comments
# MUST be alone on a line. Some languages deal with the # character, so you
# cannot put comments on the same line as content.
#
# Also, all lists are separated with spaces, not commas, again because some
# languages may need to use them.
#
# Language: [name]
# Defines a new language. Its name can use any characters.
#
# The language Shebang Script is special. It's entry is only used for
# extensions, and files with those extensions have their shebang (#!) lines
# read to determine the real language of the file. Extensionless files are
# always treated this way.
#
# The language Text File is also special. It's treated as one big comment
# so you can put Natural Docs content in them without special symbols. Also,
# if you don't specify a package separator, ignored prefixes, or enum value
# behavior, it will copy those settings from the language that is used most
# in the source tree.
#
# Extensions: [extension] [extension] ...
# Defines the file extensions of the language's source files. You can use *
# to mean any undefined extension.
#
# Shebang Strings: [string] [string] ...
# Defines a list of strings that can appear in the shebang (#!) line to
# designate that it's part of the language.
#
# Ignore Prefixes in Index: [prefix] [prefix] ...
# Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ...
# Specifies prefixes that should be ignored when sorting symbols in an
# index. Can be specified in general or for a specific topic type.
#
#------------------------------------------------------------------------------
# For basic language support only:
#
# Line Comments: [symbol] [symbol] ...
# Defines a space-separated list of symbols that are used for line comments,
# if any.
#
# Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ...
# Defines a space-separated list of symbol pairs that are used for block
# comments, if any.
#
# Package Separator: [symbol]
# Defines the default package separator symbol. The default is a dot.
#
# [Topic Type] Prototype Enders: [symbol] [symbol] ...
# When defined, Natural Docs will attempt to get a prototype from the code
# immediately following the topic type. It stops when it reaches one of
# these symbols. Use \n for line breaks.
#
# Line Extender: [symbol]
# Defines the symbol that allows a prototype to span multiple lines if
# normally a line break would end it.
#
# Enum Values: [global|under type|under parent]
# Defines how enum values are referenced. The default is global.
# global - Values are always global, referenced as 'value'.
# under type - Values are under the enum type, referenced as
# 'package.enum.value'.
# under parent - Values are under the enum's parent, referenced as
# 'package.value'.
#
# Perl Package: [perl package]
# Specifies the Perl package used to fine-tune the language behavior in ways
# too complex to do in this file.
#
#------------------------------------------------------------------------------
# For full language support only:
#
# Full Language Support: [perl package]
# Specifies the Perl package that has the parsing routines necessary for full
# language support.
#
#-------------------------------------------------------------------------------
# The following languages MUST be defined in this file:
#
# Text File, Shebang Script
# If you add a language that you think would be useful to other developers
# and should be included in Natural Docs by default, please e-mail it to
# languages [at] naturaldocs [dot] org.
Language: Text File
Extension: txt
Language: Shebang Script
Extension: cgi
Language: C/C++
Extensions: c cpp h hpp cxx hxx
Ignore Function Prefix in Index: ~
Line Comment: //
Block Comment: /* */
Package Separator: ::
Enum Values: Under parent
Class Prototype Enders: ; {
Function Prototype Enders: ; {
Variable Prototype Enders: ; =
Language: C#
Extension: cs
Ignore Prefix in Index: @
Full Language Support: NaturalDocs::Languages::CSharp
Language: Java
Extension: java
Line Comment: //
Block Comment: /* */
Enum Values: Under type
Function Prototype Ender: {
Variable Prototype Enders: ; =
Language: JavaScript
Extension: js
Line Comment: //
Block Comment: /* */
Enum Values: Under type
Function Prototype Ender: {
Variable Prototype Enders: ; =
Language: Perl
Extensions: pl pm
Shebang String: perl
Ignore Variable Prefixes in Index: $ @ % *
Full Language Support: NaturalDocs::Languages::Perl
Language: Python
Extension: py
Shebang String: python
Line Comment: #
Function Prototype Ender: :
Variable Prototype Ender: =
Line Extender: \
Language: PHP
Extensions: inc php php3 php4 phtml
Shebang String: php
Ignore Variable Prefix in Index: $
Line Comments: // #
Block Comment: /* */
Function Prototype Enders: ; {
Variable Prototype Enders: ; =
Language: SQL
Extension: sql
Line Comment: --
Block Comment: /* */
Enum Values: Global
Function Prototype Enders: , ; ) as As AS is Is IS
Variable Prototype Enders: , ; ) := default Default DEFAULT
Database Index Prototype Enders: , ; )
Database Trigger Prototype Enders: begin Begin BEGIN as As AS
Perl Package: NaturalDocs::Languages::PLSQL
Language: Visual Basic
Extensions: vb vbs bas cls frm
Line Comment: '
Enum Values: Under type
Function Prototype Ender: \n
Variable Prototype Enders: \n =
Line Extender: _
Language: Pascal
Extension: pas
Line Comment: //
Block Comments: { } (* *)
Function Prototype Ender: ;
Variable Prototype Enders: ; =
Perl Package: NaturalDocs::Languages::Pascal
Language: Assembly
Extension: asm
Line Comment: ;
Variable Prototype Ender: \n
Line Extender: \
Language: Ada
Extensions: ada ads adb
Line Comment: --
Function Prototype Enders: ; is Is IS
Variable Prototype Enders: ; :=
Perl Package: NaturalDocs::Languages::Ada
Language: Tcl
Extensions: tcl exp
Shebang Strings: tclsh wish expect
Line Comment: #
Package Separator: ::
Function Prototype Enders: ; {
Variable Prototype Enders: ; \n
Line Extender: \
Perl Package: NaturalDocs::Languages::Tcl
Language: Ruby
Extension: rb
Shebang String: ruby
Ignore Variable Prefixes in Index: $ @ @@
Line Comment: #
Enum Values: Under parent
Function Prototype Enders: ; \n
Variable Prototype Enders: ; \n =
Line Extender: \
Language: Makefile
Extensions: mk mak make
Line Comment: #
Language: ActionScript
Extensions: as mxml
Full Language Support: NaturalDocs::Languages::ActionScript
Language: ColdFusion
Extensions: cfm cfml cfc
Line Comment: //
Block Comments: <!--- ---> /* */
Function Prototype Enders: { <
Language: R
Extension: r
Line Comment: #
Function Prototype Enders: { ;
Variable Prototype Enders: <- = ; \n
Language: Fortran
Extensions: f90 f95 f03
Line Comment: !
Function Prototype Ender: \n
Variable Prototype Enders: \n = =>
Line Extender: &
|