Skip to content

Commit 3c8ef59

Browse files
authored
Add support for unnamed groups (#84)
1 parent ca038c3 commit 3c8ef59

File tree

7 files changed

+205
-4
lines changed

7 files changed

+205
-4
lines changed

src/plantuml.pegjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,11 @@ Together
153153
//
154154

155155
Group
156-
= _ type:GroupType " " _ name:ElementName _ Stereotypes? _ Color? _ NewLine? _ "{" _ NewLine elements:UMLElement* _ "}" EndLine
156+
= _ type:GroupType " " _ name:ElementName? _ Stereotypes? _ Color? _ NewLine? _ "{" _ NewLine elements:UMLElement* _ "}" EndLine
157157
{
158158
return new types.Group(
159-
name.name,
160-
name.title,
159+
name?.name || "",
160+
name?.title || "",
161161
type,
162162
removeUndefined(elements),
163163
);

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ export class Class {
118118
}
119119
}
120120

121-
export type GroupType = ('package' | 'node' | 'folder' | 'frame' | 'cloud' | 'database')
121+
export type GroupType = ('package' | 'namespace' | 'node' | 'folder' | 'frame' | 'cloud' | 'database' | 'rectangle' )
122122
export class Group {
123123
constructor (
124124
public name: string,
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
@startuml
2+
package {
3+
}
4+
// note: unnamed namespaces are not supported in platuml.
5+
namespace {
6+
}
7+
node {
8+
}
9+
folder {
10+
}
11+
frame {
12+
}
13+
cloud {
14+
}
15+
database {
16+
}
17+
rectangle {
18+
}
19+
@enduml
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
[
2+
{
3+
"elements": [
4+
{
5+
"name": "",
6+
"title": "",
7+
"type": "package",
8+
"elements": []
9+
},
10+
{
11+
"name": "",
12+
"title": "",
13+
"type": "namespace",
14+
"elements": []
15+
},
16+
{
17+
"name": "",
18+
"title": "",
19+
"type": "node",
20+
"elements": []
21+
},
22+
{
23+
"name": "",
24+
"title": "",
25+
"type": "folder",
26+
"elements": []
27+
},
28+
{
29+
"name": "",
30+
"title": "",
31+
"type": "frame",
32+
"elements": []
33+
},
34+
{
35+
"name": "",
36+
"title": "",
37+
"type": "cloud",
38+
"elements": []
39+
},
40+
{
41+
"name": "",
42+
"title": "",
43+
"type": "database",
44+
"elements": []
45+
},
46+
{
47+
"name": "",
48+
"title": "",
49+
"type": "rectangle",
50+
"elements": []
51+
}
52+
]
53+
}
54+
]
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"nodes": [],
3+
"edges": []
4+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
[
2+
{
3+
"name": "test/fixtures/class-unnamed-group/in.plantuml",
4+
"diagrams": [
5+
{
6+
"elements": [
7+
{
8+
"name": "",
9+
"title": "",
10+
"type": "package",
11+
"elements": []
12+
},
13+
{
14+
"name": "",
15+
"title": "",
16+
"type": "namespace",
17+
"elements": []
18+
},
19+
{
20+
"name": "",
21+
"title": "",
22+
"type": "node",
23+
"elements": []
24+
},
25+
{
26+
"name": "",
27+
"title": "",
28+
"type": "folder",
29+
"elements": []
30+
},
31+
{
32+
"name": "",
33+
"title": "",
34+
"type": "frame",
35+
"elements": []
36+
},
37+
{
38+
"name": "",
39+
"title": "",
40+
"type": "cloud",
41+
"elements": []
42+
},
43+
{
44+
"name": "",
45+
"title": "",
46+
"type": "database",
47+
"elements": []
48+
},
49+
{
50+
"name": "",
51+
"title": "",
52+
"type": "rectangle",
53+
"elements": []
54+
}
55+
]
56+
}
57+
]
58+
}
59+
]
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
{
2+
"nodes": [
3+
{
4+
"name": "test/fixtures/class-unnamed-group/in.plantuml",
5+
"diagrams": [
6+
{
7+
"elements": [
8+
{
9+
"name": "",
10+
"title": "",
11+
"type": "package",
12+
"elements": []
13+
},
14+
{
15+
"name": "",
16+
"title": "",
17+
"type": "namespace",
18+
"elements": []
19+
},
20+
{
21+
"name": "",
22+
"title": "",
23+
"type": "node",
24+
"elements": []
25+
},
26+
{
27+
"name": "",
28+
"title": "",
29+
"type": "folder",
30+
"elements": []
31+
},
32+
{
33+
"name": "",
34+
"title": "",
35+
"type": "frame",
36+
"elements": []
37+
},
38+
{
39+
"name": "",
40+
"title": "",
41+
"type": "cloud",
42+
"elements": []
43+
},
44+
{
45+
"name": "",
46+
"title": "",
47+
"type": "database",
48+
"elements": []
49+
},
50+
{
51+
"name": "",
52+
"title": "",
53+
"type": "rectangle",
54+
"elements": []
55+
}
56+
]
57+
}
58+
],
59+
"id": "test/fixtures/class-unnamed-group/in.plantuml",
60+
"type": "File",
61+
"hidden": true
62+
}
63+
],
64+
"edges": []
65+
}

0 commit comments

Comments
 (0)