{"action":"created","comment":{"url":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/comments/168082637","pull_request_review_id":96391388,"id":168082637,"diff_hunk":"@@ -2034,6 +2038,43 @@ public void exitStringTemplateLiteral(BallerinaParser.StringTemplateLiteralConte\n         this.pkgBuilder.createStringTemplateLiteral(getCurrentPos(ctx), getWS(ctx), stringFragments, endingText);\n     }\n \n+    /**\n+     * {@inheritDoc}\n+     */\n+    @Override\n+    public void enterDocumentationAttachment(BallerinaParser.DocumentationAttachmentContext ctx) {\n+        if (ctx.exception != null) {\n+            return;\n+        }\n+        this.pkgBuilder.startDocumentationAttachment(getCurrentPos(ctx));\n+    }\n+\n+    /**\n+     * {@inheritDoc}\n+     */\n+    @Override\n+    public void exitDocumentationTemplateContent(BallerinaParser.DocumentationTemplateContentContext ctx) {\n+        if (ctx.exception != null) {\n+            return;\n+        }\n+        String contentText = ctx.docText() != null ? ctx.docText().getText() : null;\n+        this.pkgBuilder.setDocumentationAttachmentContent(getCurrentPos(ctx), getWS(ctx), contentText);\n+    }\n+\n+    /**\n+     * {@inheritDoc}\n+     */\n+    @Override\n+    public void exitDocumentationTemplateAttributeDescription\n+    (BallerinaParser.DocumentationTemplateAttributeDescriptionContext ctx) {\n+        if (ctx.exception != null) {\n+            return;\n+        }\n+        String attributeName = ctx.DocumentationTemplateAttributeEnd().getText();\n+        String endText = ctx.docText() != null ? ctx.docText().getText().trim() : null;","path":"compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/parser/BLangParserListener.java","position":61,"original_position":61,"commit_id":"5e9d2cd7e18d0496beb93b3dac623800e8710b92","original_commit_id":"5e9d2cd7e18d0496beb93b3dac623800e8710b92","user":{"login":"hasithaa","id":1356214,"avatar_url":"https://avatars0.githubusercontent.com/u/1356214?v=4","gravatar_id":"","url":"https://api.github.com/users/hasithaa","html_url":"https://github.com/hasithaa","followers_url":"https://api.github.com/users/hasithaa/followers","following_url":"https://api.github.com/users/hasithaa/following{/other_user}","gists_url":"https://api.github.com/users/hasithaa/gists{/gist_id}","starred_url":"https://api.github.com/users/hasithaa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hasithaa/subscriptions","organizations_url":"https://api.github.com/users/hasithaa/orgs","repos_url":"https://api.github.com/users/hasithaa/repos","events_url":"https://api.github.com/users/hasithaa/events{/privacy}","received_events_url":"https://api.github.com/users/hasithaa/received_events","type":"User","site_admin":false},"body":"put empty string, if docText is null. Then you can avoid, null check in pkgBuilder level.","created_at":"2018-02-14T05:55:27Z","updated_at":"2018-02-14T05:55:27Z","html_url":"https://github.com/ballerina-lang/ballerina/pull/4661#discussion_r168082637","pull_request_url":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/4661","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/comments/168082637"},"html":{"href":"https://github.com/ballerina-lang/ballerina/pull/4661#discussion_r168082637"},"pull_request":{"href":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/4661"}}},"pull_request":{"url":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/4661","id":169010347,"html_url":"https://github.com/ballerina-lang/ballerina/pull/4661","diff_url":"https://github.com/ballerina-lang/ballerina/pull/4661.diff","patch_url":"https://github.com/ballerina-lang/ballerina/pull/4661.patch","issue_url":"https://api.github.com/repos/ballerina-lang/ballerina/issues/4661","number":4661,"state":"open","locked":false,"title":"Markdown based documentation for Ballerina.","user":{"login":"djkevincr","id":1346010,"avatar_url":"https://avatars2.githubusercontent.com/u/1346010?v=4","gravatar_id":"","url":"https://api.github.com/users/djkevincr","html_url":"https://github.com/djkevincr","followers_url":"https://api.github.com/users/djkevincr/followers","following_url":"https://api.github.com/users/djkevincr/following{/other_user}","gists_url":"https://api.github.com/users/djkevincr/gists{/gist_id}","starred_url":"https://api.github.com/users/djkevincr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djkevincr/subscriptions","organizations_url":"https://api.github.com/users/djkevincr/orgs","repos_url":"https://api.github.com/users/djkevincr/repos","events_url":"https://api.github.com/users/djkevincr/events{/privacy}","received_events_url":"https://api.github.com/users/djkevincr/received_events","type":"User","site_admin":false},"body":"## Purpose\r\n> Introduce markdown based Documentation for Ballerina https://github.com/ballerina-lang/ballerina/issues/4660\r\n\r\n## Goals\r\n> This will deprecate the use of annotation for documentation Ballerina Language constructs.\r\n\r\n## Approach\r\n> N/A\r\n\r\n## User stories\r\n> N/A\r\n\r\n## Release note\r\n> Markdown based syntax for Ballerina Language construct documentation.\r\n\r\n## Documentation\r\n> https://docs.google.com/document/d/1kCd4MraQP5UtgH6qfUpgH7XhpUnhuVtbyOxSK15LnDI/edit#heading=h.5610q2yl8q19\r\n\r\n## Training\r\n> N/A\r\n\r\n## Certification\r\n> N/A\r\n\r\n## Marketing\r\n> N/A\r\n\r\n## Automation tests\r\n - Unit tests \r\n\r\n## Security checks\r\n - N/A\r\n\r\n## Samples\r\n> \r\ndocumentation {\r\n Gets a access parameter value (`true` or `false`) for a given key. Please note that #foo will always be bigger than #bar.\r\n Example:\r\n `SymbolEnv pkgEnv = symbolEnter.packageEnvs.get(pkgNode.symbol);`\r\n - #file file path `C:\\users\\OddThinking\\Documents\\My Source\\Widget\\foo.src`\r\n - #accessMode read or write mode\r\n - #successful boolean `true` or `false`\r\n } public function <File file> open (string accessMode) (boolean successful) {\r\n    return successful;\r\n}\r\n\r\n## Related PRs\r\n> N/A\r\n\r\n## Migrations (if applicable)\r\n> N/A\r\n\r\n## Test environment\r\n> Ubuntu Oracle JDK 8\r\n \r\n## Learning\r\n> N/A","created_at":"2018-02-14T02:50:05Z","updated_at":"2018-02-14T05:55:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bd70d5107af52a77847ce487669bbb0fb01d8c6a","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":828131123,"url":"https://api.github.com/repos/ballerina-lang/ballerina/labels/component/compiler","name":"component/compiler","color":"0b6664","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/4661/commits","review_comments_url":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/4661/comments","review_comment_url":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ballerina-lang/ballerina/issues/4661/comments","statuses_url":"https://api.github.com/repos/ballerina-lang/ballerina/statuses/5e9d2cd7e18d0496beb93b3dac623800e8710b92","head":{"label":"djkevincr:markup_doc","ref":"markup_doc","sha":"5e9d2cd7e18d0496beb93b3dac623800e8710b92","user":{"login":"djkevincr","id":1346010,"avatar_url":"https://avatars2.githubusercontent.com/u/1346010?v=4","gravatar_id":"","url":"https://api.github.com/users/djkevincr","html_url":"https://github.com/djkevincr","followers_url":"https://api.github.com/users/djkevincr/followers","following_url":"https://api.github.com/users/djkevincr/following{/other_user}","gists_url":"https://api.github.com/users/djkevincr/gists{/gist_id}","starred_url":"https://api.github.com/users/djkevincr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djkevincr/subscriptions","organizations_url":"https://api.github.com/users/djkevincr/orgs","repos_url":"https://api.github.com/users/djkevincr/repos","events_url":"https://api.github.com/users/djkevincr/events{/privacy}","received_events_url":"https://api.github.com/users/djkevincr/received_events","type":"User","site_admin":false},"repo":{"id":84032268,"name":"ballerina","full_name":"djkevincr/ballerina","owner":{"login":"djkevincr","id":1346010,"avatar_url":"https://avatars2.githubusercontent.com/u/1346010?v=4","gravatar_id":"","url":"https://api.github.com/users/djkevincr","html_url":"https://github.com/djkevincr","followers_url":"https://api.github.com/users/djkevincr/followers","following_url":"https://api.github.com/users/djkevincr/following{/other_user}","gists_url":"https://api.github.com/users/djkevincr/gists{/gist_id}","starred_url":"https://api.github.com/users/djkevincr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djkevincr/subscriptions","organizations_url":"https://api.github.com/users/djkevincr/orgs","repos_url":"https://api.github.com/users/djkevincr/repos","events_url":"https://api.github.com/users/djkevincr/events{/privacy}","received_events_url":"https://api.github.com/users/djkevincr/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/djkevincr/ballerina","description":"Ballerina is a new programming language for integration built on a sequence diagram metaphor.","fork":true,"url":"https://api.github.com/repos/djkevincr/ballerina","forks_url":"https://api.github.com/repos/djkevincr/ballerina/forks","keys_url":"https://api.github.com/repos/djkevincr/ballerina/keys{/key_id}","collaborators_url":"https://api.github.com/repos/djkevincr/ballerina/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/djkevincr/ballerina/teams","hooks_url":"https://api.github.com/repos/djkevincr/ballerina/hooks","issue_events_url":"https://api.github.com/repos/djkevincr/ballerina/issues/events{/number}","events_url":"https://api.github.com/repos/djkevincr/ballerina/events","assignees_url":"https://api.github.com/repos/djkevincr/ballerina/assignees{/user}","branches_url":"https://api.github.com/repos/djkevincr/ballerina/branches{/branch}","tags_url":"https://api.github.com/repos/djkevincr/ballerina/tags","blobs_url":"https://api.github.com/repos/djkevincr/ballerina/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/djkevincr/ballerina/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/djkevincr/ballerina/git/refs{/sha}","trees_url":"https://api.github.com/repos/djkevincr/ballerina/git/trees{/sha}","statuses_url":"https://api.github.com/repos/djkevincr/ballerina/statuses/{sha}","languages_url":"https://api.github.com/repos/djkevincr/ballerina/languages","stargazers_url":"https://api.github.com/repos/djkevincr/ballerina/stargazers","contributors_url":"https://api.github.com/repos/djkevincr/ballerina/contributors","subscribers_url":"https://api.github.com/repos/djkevincr/ballerina/subscribers","subscription_url":"https://api.github.com/repos/djkevincr/ballerina/subscription","commits_url":"https://api.github.com/repos/djkevincr/ballerina/commits{/sha}","git_commits_url":"https://api.github.com/repos/djkevincr/ballerina/git/commits{/sha}","comments_url":"https://api.github.com/repos/djkevincr/ballerina/comments{/number}","issue_comment_url":"https://api.github.com/repos/djkevincr/ballerina/issues/comments{/number}","contents_url":"https://api.github.com/repos/djkevincr/ballerina/contents/{+path}","compare_url":"https://api.github.com/repos/djkevincr/ballerina/compare/{base}...{head}","merges_url":"https://api.github.com/repos/djkevincr/ballerina/merges","archive_url":"https://api.github.com/repos/djkevincr/ballerina/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/djkevincr/ballerina/downloads","issues_url":"https://api.github.com/repos/djkevincr/ballerina/issues{/number}","pulls_url":"https://api.github.com/repos/djkevincr/ballerina/pulls{/number}","milestones_url":"https://api.github.com/repos/djkevincr/ballerina/milestones{/number}","notifications_url":"https://api.github.com/repos/djkevincr/ballerina/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/djkevincr/ballerina/labels{/name}","releases_url":"https://api.github.com/repos/djkevincr/ballerina/releases{/id}","deployments_url":"https://api.github.com/repos/djkevincr/ballerina/deployments","created_at":"2017-03-06T05:10:44Z","updated_at":"2017-03-06T05:10:48Z","pushed_at":"2018-02-14T02:57:06Z","git_url":"git://github.com/djkevincr/ballerina.git","ssh_url":"git@github.com:djkevincr/ballerina.git","clone_url":"https://github.com/djkevincr/ballerina.git","svn_url":"https://github.com/djkevincr/ballerina","homepage":"","size":153783,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ballerina-lang:master","ref":"master","sha":"7a2723b6d0b5e0695e55555c0f16fefe099af963","user":{"login":"ballerina-lang","id":24777199,"avatar_url":"https://avatars1.githubusercontent.com/u/24777199?v=4","gravatar_id":"","url":"https://api.github.com/users/ballerina-lang","html_url":"https://github.com/ballerina-lang","followers_url":"https://api.github.com/users/ballerina-lang/followers","following_url":"https://api.github.com/users/ballerina-lang/following{/other_user}","gists_url":"https://api.github.com/users/ballerina-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/ballerina-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ballerina-lang/subscriptions","organizations_url":"https://api.github.com/users/ballerina-lang/orgs","repos_url":"https://api.github.com/users/ballerina-lang/repos","events_url":"https://api.github.com/users/ballerina-lang/events{/privacy}","received_events_url":"https://api.github.com/users/ballerina-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":73930305,"name":"ballerina","full_name":"ballerina-lang/ballerina","owner":{"login":"ballerina-lang","id":24777199,"avatar_url":"https://avatars1.githubusercontent.com/u/24777199?v=4","gravatar_id":"","url":"https://api.github.com/users/ballerina-lang","html_url":"https://github.com/ballerina-lang","followers_url":"https://api.github.com/users/ballerina-lang/followers","following_url":"https://api.github.com/users/ballerina-lang/following{/other_user}","gists_url":"https://api.github.com/users/ballerina-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/ballerina-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ballerina-lang/subscriptions","organizations_url":"https://api.github.com/users/ballerina-lang/orgs","repos_url":"https://api.github.com/users/ballerina-lang/repos","events_url":"https://api.github.com/users/ballerina-lang/events{/privacy}","received_events_url":"https://api.github.com/users/ballerina-lang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ballerina-lang/ballerina","description":"Ballerina is a new programming language for integration built on a sequence diagram metaphor.","fork":false,"url":"https://api.github.com/repos/ballerina-lang/ballerina","forks_url":"https://api.github.com/repos/ballerina-lang/ballerina/forks","keys_url":"https://api.github.com/repos/ballerina-lang/ballerina/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ballerina-lang/ballerina/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ballerina-lang/ballerina/teams","hooks_url":"https://api.github.com/repos/ballerina-lang/ballerina/hooks","issue_events_url":"https://api.github.com/repos/ballerina-lang/ballerina/issues/events{/number}","events_url":"https://api.github.com/repos/ballerina-lang/ballerina/events","assignees_url":"https://api.github.com/repos/ballerina-lang/ballerina/assignees{/user}","branches_url":"https://api.github.com/repos/ballerina-lang/ballerina/branches{/branch}","tags_url":"https://api.github.com/repos/ballerina-lang/ballerina/tags","blobs_url":"https://api.github.com/repos/ballerina-lang/ballerina/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ballerina-lang/ballerina/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ballerina-lang/ballerina/git/refs{/sha}","trees_url":"https://api.github.com/repos/ballerina-lang/ballerina/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ballerina-lang/ballerina/statuses/{sha}","languages_url":"https://api.github.com/repos/ballerina-lang/ballerina/languages","stargazers_url":"https://api.github.com/repos/ballerina-lang/ballerina/stargazers","contributors_url":"https://api.github.com/repos/ballerina-lang/ballerina/contributors","subscribers_url":"https://api.github.com/repos/ballerina-lang/ballerina/subscribers","subscription_url":"https://api.github.com/repos/ballerina-lang/ballerina/subscription","commits_url":"https://api.github.com/repos/ballerina-lang/ballerina/commits{/sha}","git_commits_url":"https://api.github.com/repos/ballerina-lang/ballerina/git/commits{/sha}","comments_url":"https://api.github.com/repos/ballerina-lang/ballerina/comments{/number}","issue_comment_url":"https://api.github.com/repos/ballerina-lang/ballerina/issues/comments{/number}","contents_url":"https://api.github.com/repos/ballerina-lang/ballerina/contents/{+path}","compare_url":"https://api.github.com/repos/ballerina-lang/ballerina/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ballerina-lang/ballerina/merges","archive_url":"https://api.github.com/repos/ballerina-lang/ballerina/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ballerina-lang/ballerina/downloads","issues_url":"https://api.github.com/repos/ballerina-lang/ballerina/issues{/number}","pulls_url":"https://api.github.com/repos/ballerina-lang/ballerina/pulls{/number}","milestones_url":"https://api.github.com/repos/ballerina-lang/ballerina/milestones{/number}","notifications_url":"https://api.github.com/repos/ballerina-lang/ballerina/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ballerina-lang/ballerina/labels{/name}","releases_url":"https://api.github.com/repos/ballerina-lang/ballerina/releases{/id}","deployments_url":"https://api.github.com/repos/ballerina-lang/ballerina/deployments","created_at":"2016-11-16T14:58:44Z","updated_at":"2018-02-14T04:06:06Z","pushed_at":"2018-02-14T05:37:44Z","git_url":"git://github.com/ballerina-lang/ballerina.git","ssh_url":"git@github.com:ballerina-lang/ballerina.git","clone_url":"https://github.com/ballerina-lang/ballerina.git","svn_url":"https://github.com/ballerina-lang/ballerina","homepage":"","size":152790,"stargazers_count":231,"watchers_count":231,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":218,"mirror_url":null,"archived":false,"open_issues_count":422,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":218,"open_issues":422,"watchers":231,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/4661"},"html":{"href":"https://github.com/ballerina-lang/ballerina/pull/4661"},"issue":{"href":"https://api.github.com/repos/ballerina-lang/ballerina/issues/4661"},"comments":{"href":"https://api.github.com/repos/ballerina-lang/ballerina/issues/4661/comments"},"review_comments":{"href":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/4661/comments"},"review_comment":{"href":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ballerina-lang/ballerina/pulls/4661/commits"},"statuses":{"href":"https://api.github.com/repos/ballerina-lang/ballerina/statuses/5e9d2cd7e18d0496beb93b3dac623800e8710b92"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"hasithaa"}}