0.5.4
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
schema.h
Go to the documentation of this file.
1/**
2 * @file src/config/schema.h
3 *
4 * Copyright (c) 2021-2024 Bartek Kryza <bkryza@gmail.com>
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18#pragma once
19
20#include <string>
21
22namespace clanguml::config {
23
24const std::string schema_str = R"(
25types:
26 map_t<K;V>: { $K: V }
27 comment_parser_t: !variant
28 - plain
29 - clang
30 diagram_type_t: !variant
31 - class
32 - sequence
33 - include
34 - package
35 generate_method_arguments_t: !variant
36 - full
37 - abbreviated
38 - none
39 generate_links_t:
40 link: !optional [string, map_t<string;string>]
41 tooltip: !optional [string, map_t<string;string>]
42 git_t:
43 branch: string
44 revision: [string, int]
45 commit: string
46 toplevel: string
47 layout_hint_key: !variant
48 - up
49 - left
50 - right
51 - down
52 - row
53 - column
54 - together
55 layout_hint_value: [string, [string]]
56 layout_hint_t: [map_t<layout_hint_key;layout_hint_value>]
57 layout_t: map_t<string;layout_hint_t>
58 package_type_t: !variant
59 - namespace
60 - directory
61 - module
62 member_order_t: !variant
63 - lexical
64 - as_is
65 regex_t:
66 r: string
67 regex_or_string_t: [string, regex_t]
68 element_types_filter_t: !variant
69 - class
70 - enum
71 - concept
72 - method
73 - function
74 - function_template
75 - lambda
76 relationship_filter_t: !variant
77 - extension
78 - inheritance
79 - composition
80 - aggregation
81 - containment
82 - ownership
83 - association
84 - instantiation
85 - friendship
86 - alias
87 - dependency
88 - constraint
89 - none
90 relationship_context_t: !variant
91 - extension
92 - inheritance
93 - composition
94 - aggregation
95 - containment
96 - ownership
97 - association
98 - instantiation
99 - friendship
100 - dependency
101 - constraint
102 access_filter_t: !variant
103 - public
104 - protected
105 - private
106 module_access_filter_t: !variant
107 - public
108 - private
109 method_type_filter_t: !variant
110 - constructor
111 - destructor
112 - assignment
113 - operator
114 - defaulted
115 - deleted
116 - static
117 callee_type_filter_t: !variant
118 - constructor
119 - assignment
120 - operator
121 - defaulted
122 - static
123 - method
124 - function
125 - function_template
126 - lambda
127 - cuda_kernel
128 - cuda_device
129 direction_t: !variant
130 - inward
131 - outward
132 - any
133 context_filter_match_t:
134 match:
135 radius: int
136 pattern: regex_or_string_t
137 direction: !optional direction_t
138 relationships: !optional [relationship_context_t]
139 context_filter_t:
140 - regex_or_string_t
141 - context_filter_match_t
142 filter_t:
143 namespaces: !optional [regex_or_string_t]
144 modules: !optional [regex_or_string_t]
145 elements: !optional [regex_or_string_t]
146 element_types: !optional [element_types_filter_t]
147 relationships: !optional [relationship_filter_t]
148 access: !optional [access_filter_t]
149 module_access: !optional [module_access_filter_t]
150 subclasses: !optional [regex_or_string_t]
151 parents: !optional [regex_or_string_t]
152 specializations: !optional [regex_or_string_t]
153 dependants: !optional [regex_or_string_t]
154 dependencies: !optional [regex_or_string_t]
155 context: !optional [context_filter_t]
156 paths: !optional [string]
157 method_types: !optional [method_type_filter_t]
158 callee_types: !optional [callee_type_filter_t]
159 anyof: !optional filter_t
160 allof: !optional filter_t
161 function_location_t:
162 function: string
163 marker_location_t:
164 marker: string
165 source_location_t:
166 - function_location_t
167 - marker_location_t
168 filter_mode_t: !variant
169 - basic
170 - advanced
171 class_diagram_t:
172 type: !variant [class]
173 #
174 # Common options
175 #
176 __parent_path: !optional string
177 comment_parser: !optional comment_parser_t
178 debug_mode: !optional bool
179 filter_mode: !optional filter_mode_t
180 include_system_headers: !optional bool
181 exclude: !optional filter_t
182 generate_links: !optional generate_links_t
183 git: !optional git_t
184 glob: !optional [regex_or_string_t]
185 include: !optional filter_t
186 plantuml: !optional
187 before: !optional [string]
188 after: !optional [string]
189 cmd: !optional string
190 style: !optional map_t<string;string>
191 mermaid: !optional
192 before: !optional [string]
193 after: !optional [string]
194 cmd: !optional string
195 relative_to: !optional string
196 using_namespace: !optional [string, [string]]
197 using_module: !optional string
198 generate_metadata: !optional bool
199 title: !optional string
200 #
201 # Class diagram specific options
202 #
203 generate_method_arguments: !optional generate_method_arguments_t
204 generate_packages: !optional bool
205 generate_concept_requirements: !optional bool
206 package_type: !optional package_type_t
207 generate_template_argument_dependencies: !optional bool
208 skip_redundant_dependencies: !optional bool
209 member_order: !optional member_order_t
210 group_methods: !optional bool
211 type_aliases: !optional map_t<string;string>
212 relationship_hints: !optional map_t<string;any>
213 include_relations_also_as_members: !optional bool
214 layout: !optional layout_t
215 sequence_diagram_t:
216 type: !variant [sequence]
217 #
218 # Common options
219 #
220 __parent_path: !optional string
221 comment_parser: !optional comment_parser_t
222 debug_mode: !optional bool
223 exclude: !optional filter_t
224 generate_links: !optional generate_links_t
225 filter_mode: !optional filter_mode_t
226 include_system_headers: !optional bool
227 git: !optional git_t
228 glob: !optional [regex_or_string_t]
229 include: !optional filter_t
230 plantuml: !optional
231 before: !optional [string]
232 after: !optional [string]
233 cmd: !optional string
234 mermaid: !optional
235 before: !optional [string]
236 after: !optional [string]
237 cmd: !optional string
238 relative_to: !optional string
239 type_aliases: !optional map_t<string;string>
240 using_namespace: !optional [string, [string]]
241 generate_metadata: !optional bool
242 title: !optional string
243 #
244 # Sequence diagram specific options
245 #
246 generate_method_arguments: !optional generate_method_arguments_t
247 combine_free_functions_into_file_participants: !optional bool
248 inline_lambda_messages: !optional bool
249 generate_return_types: !optional bool
250 generate_condition_statements: !optional bool
251 generate_message_comments: !optional bool
252 message_comment_width: !optional int
253 participants_order: !optional [string]
254 start_from: !optional [source_location_t] # deprecated -> 'from'
255 from: !optional [source_location_t]
256 from_to: !optional [[source_location_t]]
257 to: !optional [source_location_t]
258 package_diagram_t:
259 type: !variant [package]
260 #
261 # Common options
262 #
263 __parent_path: !optional string
264 comment_parser: !optional comment_parser_t
265 debug_mode: !optional bool
266 exclude: !optional filter_t
267 generate_links: !optional generate_links_t
268 git: !optional git_t
269 glob: !optional [regex_or_string_t]
270 filter_mode: !optional filter_mode_t
271 include_system_headers: !optional bool
272 include: !optional filter_t
273 plantuml: !optional
274 before: !optional [string]
275 after: !optional [string]
276 cmd: !optional string
277 mermaid: !optional
278 before: !optional [string]
279 after: !optional [string]
280 cmd: !optional string
281 relative_to: !optional string
282 using_namespace: !optional [string, [string]]
283 using_module: !optional string
284 generate_metadata: !optional bool
285 title: !optional string
286 #
287 # Package diagram specific options
288 #
289 generate_packages: !optional bool
290 package_type: !optional package_type_t
291 layout: !optional layout_t
292 include_diagram_t:
293 type: !variant [include]
294 #
295 # Common options
296 #
297 __parent_path: !optional string
298 comment_parser: !optional comment_parser_t
299 debug_mode: !optional bool
300 filter_mode: !optional filter_mode_t
301 include_system_headers: !optional bool
302 exclude: !optional filter_t
303 generate_links: !optional generate_links_t
304 git: !optional git_t
305 glob: !optional [regex_or_string_t]
306 include: !optional filter_t
307 plantuml: !optional
308 before: !optional [string]
309 after: !optional [string]
310 cmd: !optional string
311 mermaid: !optional
312 before: !optional [string]
313 after: !optional [string]
314 cmd: !optional string
315 relative_to: !optional string
316 using_namespace: !optional [string, [string]]
317 generate_metadata: !optional bool
318 title: !optional string
319 #
320 # Include diagram specific options
321 #
322 generate_system_headers: !optional bool
323 diagram_t:
324 - class_diagram_t
325 - sequence_diagram_t
326 - package_diagram_t
327 - include_diagram_t
328 diagram_template_t:
329 description: !optional string
330 type: diagram_type_t
331 template: string
332 diagram_templates_t: map_t<string;diagram_template_t>
333
334root:
335 #
336 # Root options
337 #
338 compilation_database_dir: !optional string
339 output_directory: !optional string
340 query_driver: !optional string
341 add_compile_flags: !optional [string]
342 remove_compile_flags: !optional [regex_or_string_t]
343 allow_empty_diagrams: !optional bool
344 diagram_templates: !optional diagram_templates_t
345 diagrams: !required map_t<string;diagram_t>
346 #
347 # Common options
348 #
349 __parent_path: !optional string
350 comment_parser: !optional comment_parser_t
351 debug_mode: !optional bool
352 exclude: !optional filter_t
353 generate_links: !optional generate_links_t
354 git: !optional git_t
355 glob: !optional [regex_or_string_t]
356 include: !optional filter_t
357 plantuml: !optional
358 before: !optional [string]
359 after: !optional [string]
360 cmd: !optional string
361 mermaid: !optional
362 before: !optional [string]
363 after: !optional [string]
364 cmd: !optional string
365 relative_to: !optional string
366 using_namespace: !optional [string, [string]]
367 using_module: !optional string
368 generate_metadata: !optional bool
369 #
370 # Inheritable custom options
371 #
372 include_relations_also_as_members: !optional bool
373 generate_method_arguments: !optional generate_method_arguments_t
374 combine_free_functions_into_file_participants: !optional bool
375 inline_lambda_messages: !optional bool
376 generate_concept_requirements: !optional bool
377 generate_return_types: !optional bool
378 generate_condition_statements: !optional bool
379 generate_message_comments: !optional bool
380 message_comment_width: !optional int
381 generate_packages: !optional bool
382 group_methods: !optional bool
383 package_type: !optional package_type_t
384 generate_template_argument_dependencies: !optional bool
385 skip_redundant_dependencies: !optional bool
386 type_aliases: !optional map_t<string;string>
387 filter_mode: !optional filter_mode_t
388 include_system_headers: !optional bool
389)";
390
391} // namespace clanguml::config