diff --git a/cypress/integration/rendering/classDiagram.spec.js b/cypress/integration/rendering/classDiagram.spec.js index 1e4585149..4b0efc85c 100644 --- a/cypress/integration/rendering/classDiagram.spec.js +++ b/cypress/integration/rendering/classDiagram.spec.js @@ -19,6 +19,9 @@ describe('Class diagram', () => { Class01 : size() Class01 : int chimp Class01 : int gorilla + Class01 : -int privateChimp + Class01 : +int publicGorilla + Class01 : #int protectedMarmoset Class08 <--> C2: Cool label class Class10 { <<service>> diff --git a/dist/index.html b/dist/index.html index 73f6ff154..2fb6f2ab6 100644 --- a/dist/index.html +++ b/dist/index.html @@ -408,9 +408,9 @@ Class09 "0" --* "1..n" C3 Class09 --|> Class07 Class07 : equals() Class07 : Object[] elementData -Class01 : size() -Class01 : int chimp -Class01 : int gorilla +Class01 : #size() +Class01 : -int chimp +Class01 : +int gorilla Class08 <--> C2: Cool label class Class10 { <<service>> diff --git a/src/diagrams/class/classDiagram.spec.js b/src/diagrams/class/classDiagram.spec.js index a24a01a88..4ed51c1db 100644 --- a/src/diagrams/class/classDiagram.spec.js +++ b/src/diagrams/class/classDiagram.spec.js @@ -40,6 +40,21 @@ describe('class diagram, ', function() { parser.parse(str); }); + + it('should handle visibility for methods and members', function() { + const str = + 'classDiagram\n' + + 'class TestClass\n' + + 'TestClass : -int privateMember\n' + + 'TestClass : +int publicMember\n' + + 'TestClass : #int protectedMember\n' + + 'TestClass : -privateMethod()\n' + + 'TestClass : +publicMethod()\n' + + 'TestClass : #protectedMethod()\n' + + + parser.parse(str); + }); + it('should handle class definitions', function() { const str = 'classDiagram\n' + diff --git a/src/diagrams/class/parser/classDiagram.jison b/src/diagrams/class/parser/classDiagram.jison index 4b0fe97c2..f9e1d22af 100644 --- a/src/diagrams/class/parser/classDiagram.jison +++ b/src/diagrams/class/parser/classDiagram.jison @@ -36,7 +36,7 @@ \s*o return 'AGGREGATION'; \-\- return 'LINE'; \.\. return 'DOTTED_LINE'; -":"[^#\n;]+ return 'LABEL'; +":"[^\n;]+ return 'LABEL'; \- return 'MINUS'; "." return 'DOT'; \+ return 'PLUS';