{"id":4891,"date":"2012-09-25T00:43:21","date_gmt":"2012-09-24T19:13:21","guid":{"rendered":"https:\/\/2thenew.xyz\/blog\/?p=4891"},"modified":"2016-12-19T14:43:58","modified_gmt":"2016-12-19T09:13:58","slug":"gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea","status":"publish","type":"post","link":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/","title":{"rendered":"GDSL Awesomeness &#8211; Introduction to GDSL in IntelliJ Idea"},"content":{"rendered":"<p>One of the disadvantage of using meta-programming and DSL is that we don&#8217;t get auto-completes in Our IDE.<\/p>\n<p>Hence IntelliJ provided us with an awesome and intelligent toolkit to handle dynamic properties and methods when <a title=\"groovy developers\" href=\"https:\/\/2thenew.xyz\/grails-application-development\">writing code in groovy<\/a>.<\/p>\n<p>In IntelliJ IDEA we can write GDSL Files in order to give us the auto-completes(code Completion) on the injected Methods\/properties and closures.<\/p>\n<h1>Advantages of GDSL files<\/h1>\n<ol>\n<li>We can push these files with the code and all <a title=\"Grails Developers Team\" href=\"https:\/\/2thenew.xyz\/grails-application-development\">the developers in the team<\/a> will start getting auto-completes for the dynamic code.<\/li>\n<li>Simple to write and understand as they use the groovy DSL format.<\/li>\n<li>These files can be packaged in a jar and all projects using that jar will start getting auto-completes and syntax hinting for the dynamic code.<\/li>\n<\/ol>\n<h1>Illustration<\/h1>\n<p>Image illustrating the auto-completes for the injected code. You can see that there is no property &#8220;log&#8221; defined in the project, but IDEA is showing syntax-hint for this property.<\/p>\n<p>&nbsp;<\/p>\n<h1>Where to write GDSL Scripts<\/h1>\n<p>We can create a file with an extension <strong>&#8220;.gdsl&#8221;<\/strong> anywhere in the classpath.<br \/>\nFor an example go to any package in your project <strong>src<\/strong>, and right click on it from within the IDE and select new&gt;Groovy Script.<br \/>\nNow a dialog will appear and then select &#8220;GroovyDSL Script&#8221; in the &#8220;kind&#8221; parameter.<\/p>\n<p>Now you have the script file and you can start coding GDSL in here.<\/p>\n<p>&nbsp;<\/p>\n<h1>Read Further in the &#8220;GDSL AWESOMENESS&#8221; Series<\/h1>\n<ol>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\">GDSL Awesomeness &#8211; Introduction to GDSL in IntelliJ Idea<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-understanding-context-and-contributors-in-detail\">GDSL Awesomeness &#8211; Understanding Context And Contributors in Detail<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-defining-dynamic-properties-in-a-class\">GDSL Awesomeness &#8211; Defining dynamic property in a class<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-defining-dynamic-method-in-a-class\">GDSL Awesomeness &#8211; Defining dynamic method in a class<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-adding-hinting-for-missingmethod-implementation\">GDSL Awesomeness &#8211; Adding Hinting for missingMethod implementation<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-setting-a-global-context\">GDSL Awesomeness &#8211; Setting a global context<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-delegating-closure-calls\">GDSL Awesomeness &#8211; Delegating Closure Calls<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-defining-methods-in-a-closure-passed-to-method-of-particular-name\">GDSL Awesomeness &#8211; Defining methods in a closure passed to method of particular name<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-defining-properties-in-a-closure-passed-to-method-of-particular-name\">GDSL Awesomeness &#8211; Defining Properties in a closure passed to method of particular name<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-contributing-to-classes-which-match-a-pathname-pattern\">GDSL Awesomeness &#8211; Contributing to classes which match a path\/name pattern<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-contributing-methods-with-current-class-return-types-or-parameters\">GDSL Awesomeness &#8211; contributing methods with current class return types or parameters<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-autocomplete-script-for-grails-mail-plugin-sendmail-closure\">GDSL Awesomeness &#8211; AutoComplete Script for grails-Mail-Plugin &#8220;sendMail&#8221; closure<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-getting-code-of-a-method-or-field-in-gdsl-script\">GDSL Awesomeness &#8211; Getting Code of a method or Field in GDSL Script<\/a><\/li>\n<li><a href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-advanced-example-showing-domain-properties-implementation\">GDSL Awesomeness &#8211; Advanced Example showing domain properties implementation<\/a><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Hope It Helped.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the disadvantage of using meta-programming and DSL is that we don&#8217;t get auto-completes in Our IDE. Hence IntelliJ provided us with an awesome and intelligent toolkit to handle dynamic properties and methods when writing code in groovy. In IntelliJ IDEA we can write GDSL Files in order to give us the auto-completes(code Completion) [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":534,"footnotes":""},"categories":[7],"tags":[1057,4840,9,692,691,1059,1060,1058],"class_list":["post-4891","post","type-post","status-publish","format-standard","hentry","category-grails","tag-gdsl","tag-grails","tag-groovy","tag-intellij","tag-intellij-idea","tag-program-syntax-interface","tag-psi","tag-syntax-highlighting"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"One of the disadvantage of using meta-programming and DSL is that we don&#039;t get auto-completes in Our IDE. Hence IntelliJ provided us with an awesome and intelligent toolkit to handle dynamic properties and methods when writing code in groovy. In IntelliJ IDEA we can write GDSL Files in order to give us the auto-completes(code Completion)\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Kushal Likhi\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"GDSL Awesomeness \u2013 Introduction to GDSL in IntelliJ Idea | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"One of the disadvantage of using meta-programming and DSL is that we don&#039;t get auto-completes in Our IDE. Hence IntelliJ provided us with an awesome and intelligent toolkit to handle dynamic properties and methods when writing code in groovy. In IntelliJ IDEA we can write GDSL Files in order to give us the auto-completes(code Completion)\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"article:tag\" content=\"grails\" \/>\n\t\t<meta property=\"article:tag\" content=\"gdsl\" \/>\n\t\t<meta property=\"article:tag\" content=\"groovy\" \/>\n\t\t<meta property=\"article:tag\" content=\"intellij\" \/>\n\t\t<meta property=\"article:tag\" content=\"intellij idea\" \/>\n\t\t<meta property=\"article:tag\" content=\"program syntax interface\" \/>\n\t\t<meta property=\"article:tag\" content=\"psi\" \/>\n\t\t<meta property=\"article:tag\" content=\"syntax-highlighting\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2012-09-24T19:13:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2016-12-19T09:13:58+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"GDSL Awesomeness \u2013 Introduction to GDSL in IntelliJ Idea | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"One of the disadvantage of using meta-programming and DSL is that we don&#039;t get auto-completes in Our IDE. Hence IntelliJ provided us with an awesome and intelligent toolkit to handle dynamic properties and methods when writing code in groovy. In IntelliJ IDEA we can write GDSL Files in order to give us the auto-completes(code Completion)\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\\\/#article\",\"name\":\"GDSL Awesomeness \\u2013 Introduction to GDSL in IntelliJ Idea | TO THE NEW Blog\",\"headline\":\"GDSL Awesomeness &#8211; Introduction to GDSL in IntelliJ Idea\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2012-09-25T00:43:21+05:30\",\"dateModified\":\"2016-12-19T14:43:58+05:30\",\"inLanguage\":\"en-US\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\\\/#webpage\"},\"articleSection\":\"Grails, GDSL, Grails, Groovy, Intellij, Intellij Idea, Program syntax Interface, PSI, syntax-highlighting\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"position\":2,\"name\":\"Grails\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\\\/#listItem\",\"name\":\"GDSL Awesomeness &#8211; Introduction to GDSL in IntelliJ Idea\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\\\/#listItem\",\"position\":3,\"name\":\"GDSL Awesomeness &#8211; Introduction to GDSL in IntelliJ Idea\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/\",\"name\":\"Kushal Likhi\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9311812a092d64f47eb30d7ad28378cfae924a0cac140ffbb686fcd8a565a57e?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Kushal Likhi\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\\\/\",\"name\":\"GDSL Awesomeness \\u2013 Introduction to GDSL in IntelliJ Idea | TO THE NEW Blog\",\"description\":\"One of the disadvantage of using meta-programming and DSL is that we don't get auto-completes in Our IDE. Hence IntelliJ provided us with an awesome and intelligent toolkit to handle dynamic properties and methods when writing code in groovy. In IntelliJ IDEA we can write GDSL Files in order to give us the auto-completes(code Completion)\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/kushal\\\/#author\"},\"datePublished\":\"2012-09-25T00:43:21+05:30\",\"dateModified\":\"2016-12-19T14:43:58+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"GDSL Awesomeness \u2013 Introduction to GDSL in IntelliJ Idea | TO THE NEW Blog","description":"One of the disadvantage of using meta-programming and DSL is that we don't get auto-completes in Our IDE. Hence IntelliJ provided us with an awesome and intelligent toolkit to handle dynamic properties and methods when writing code in groovy. In IntelliJ IDEA we can write GDSL Files in order to give us the auto-completes(code Completion)","canonical_url":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/#article","name":"GDSL Awesomeness \u2013 Introduction to GDSL in IntelliJ Idea | TO THE NEW Blog","headline":"GDSL Awesomeness &#8211; Introduction to GDSL in IntelliJ Idea","author":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/kushal\/#author"},"publisher":{"@id":"https:\/\/2thenew.xyz\/blog\/#organization"},"datePublished":"2012-09-25T00:43:21+05:30","dateModified":"2016-12-19T14:43:58+05:30","inLanguage":"en-US","commentCount":1,"mainEntityOfPage":{"@id":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/#webpage"},"isPartOf":{"@id":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/#webpage"},"articleSection":"Grails, GDSL, Grails, Groovy, Intellij, Intellij Idea, Program syntax Interface, PSI, syntax-highlighting"},{"@type":"BreadcrumbList","@id":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog#listItem","position":1,"name":"Home","item":"https:\/\/2thenew.xyz\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/grails\/#listItem","name":"Grails"}},{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/grails\/#listItem","position":2,"name":"Grails","item":"https:\/\/2thenew.xyz\/blog\/category\/grails\/","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/#listItem","name":"GDSL Awesomeness &#8211; Introduction to GDSL in IntelliJ Idea"},"previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/#listItem","position":3,"name":"GDSL Awesomeness &#8211; Introduction to GDSL in IntelliJ Idea","previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/grails\/#listItem","name":"Grails"}}]},{"@type":"Organization","@id":"https:\/\/2thenew.xyz\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/2thenew.xyz\/blog\/"},{"@type":"Person","@id":"https:\/\/2thenew.xyz\/blog\/author\/kushal\/#author","url":"https:\/\/2thenew.xyz\/blog\/author\/kushal\/","name":"Kushal Likhi","image":{"@type":"ImageObject","@id":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/9311812a092d64f47eb30d7ad28378cfae924a0cac140ffbb686fcd8a565a57e?s=96&d=mm&r=g","width":96,"height":96,"caption":"Kushal Likhi"}},{"@type":"WebPage","@id":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/#webpage","url":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/","name":"GDSL Awesomeness \u2013 Introduction to GDSL in IntelliJ Idea | TO THE NEW Blog","description":"One of the disadvantage of using meta-programming and DSL is that we don't get auto-completes in Our IDE. Hence IntelliJ provided us with an awesome and intelligent toolkit to handle dynamic properties and methods when writing code in groovy. In IntelliJ IDEA we can write GDSL Files in order to give us the auto-completes(code Completion)","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/2thenew.xyz\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/#breadcrumblist"},"author":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/kushal\/#author"},"creator":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/kushal\/#author"},"datePublished":"2012-09-25T00:43:21+05:30","dateModified":"2016-12-19T14:43:58+05:30"},{"@type":"WebSite","@id":"https:\/\/2thenew.xyz\/blog\/#website","url":"https:\/\/2thenew.xyz\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/2thenew.xyz\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"article","og:title":"GDSL Awesomeness \u2013 Introduction to GDSL in IntelliJ Idea | TO THE NEW Blog","og:description":"One of the disadvantage of using meta-programming and DSL is that we don't get auto-completes in Our IDE. Hence IntelliJ provided us with an awesome and intelligent toolkit to handle dynamic properties and methods when writing code in groovy. In IntelliJ IDEA we can write GDSL Files in order to give us the auto-completes(code Completion)","og:url":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/","og:image":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","article:tag":{"0":"grails","1":"gdsl","3":"groovy","4":"intellij","5":"intellij idea","6":"program syntax interface","7":"psi","8":"syntax-highlighting"},"article:published_time":"2012-09-24T19:13:21+00:00","article:modified_time":"2016-12-19T09:13:58+00:00","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"GDSL Awesomeness \u2013 Introduction to GDSL in IntelliJ Idea | TO THE NEW Blog","twitter:description":"One of the disadvantage of using meta-programming and DSL is that we don't get auto-completes in Our IDE. Hence IntelliJ provided us with an awesome and intelligent toolkit to handle dynamic properties and methods when writing code in groovy. In IntelliJ IDEA we can write GDSL Files in order to give us the auto-completes(code Completion)","twitter:image":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"4891","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":"","og_description":"","og_object_type":"article","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":"","og_article_tags":"","twitter_use_og":false,"twitter_card":"summary","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2021-04-29 13:57:51","updated":"2024-02-29 09:01:45","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.xyz\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.xyz\/blog\/category\/grails\/\" title=\"Grails\">Grails<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tGDSL Awesomeness \u2013 Introduction to GDSL in IntelliJ Idea\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/2thenew.xyz\/blog"},{"label":"Grails","link":"https:\/\/2thenew.xyz\/blog\/category\/grails\/"},{"label":"GDSL Awesomeness &#8211; Introduction to GDSL in IntelliJ Idea","link":"https:\/\/2thenew.xyz\/blog\/gdsl-awesomeness-introduction-to-gdsl-in-intellij-idea\/"}],"_links":{"self":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/4891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/comments?post=4891"}],"version-history":[{"count":0,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/4891\/revisions"}],"wp:attachment":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/media?parent=4891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/categories?post=4891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/tags?post=4891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}