BT

Groovy-Eclipse 2.5: Integração com Groovy 1.8 e expansão no suporte a DSLs

por Serge Rehem em 18 Mai 2011 |

A SpringSource anunciou recentemente o lançamento da versão 2.5.0 do Groovy-Eclipse, o plug-in que possibilita o uso do IDE Eclipse para o desenvolvimento com a linguagem Groovy. A principal novidade é o suporte aos novos Descritores de DSLs (DSLDs), que estendem o suporte a DSLs (linguagens específicas ao domínio). O editor também evoluiu, com uma melhor assistência para criação de código e inferência de tipos. O Groovy 1.7.10 é suportado por padrão, mas a recém-lançada versão 1.8 pode ser utilizada através de um add-on. 

Para ilustrar o funcionamento dos DSLDs, usamos como exemplo uma DSL para cálculo de distância, definida na documentação do Groovy-Eclipse:

Sublinhados

Mesmo sem entrar em detalhes sobre a implementação dessa DSL, podemos notar sua utilidade. Com uma notação simples, o código na imagem acima faz o cálculo de distância envolvendo quatro unidades diferentes: metros, jardas, milhas e quilômetros. Observe na imagem que m, yd, ml e km estão sublinhados. Isso significa que o editor de código Groovy do Eclipse inicialmente não reconhece a nova “linguagem”. 

É neste ponto que entram os descritores de DSLs. Ao adicionar arquivos do tipo Groovy DSL Descriptor (extensão .dsld) ao projeto Eclipse, é habilitado o suporte às linguagens especificas ao domínio no editor de código. Um exemplo de DLSD:

currentType( subType( Number ) ).accept {
  [ m: "Meter",  yd: "Yard",  cm: "Centimeter",  mi: "Mile",  km: "Kilometer"].each 
  {
    // Considerando que url foi definida anteriormente
    property name:it.key, type:"Distance",
    doc: """A <code>${it.value}</code> from <a href="$url">$url</a>"""
  }
}

(Este exemplo e as imagens foram extraídos deste post no blog da Spring Source, que mostra mais detalhes sobre a definição e suporte a DSLs no Eclipse.) 

Analisando o exemplo acima, pode-se observar que a própria descrição da DSL obedece a uma sintaxe própria e aceita comandos Groovy. Em outras palavras, a linguagem utilizada pelos DSLDs também é uma DSL, e por isso possui o seu próprio meta-descritor. Como resultado da presença do .dsld no projeto, o editor já será capaz de exibir informações sobre a nova linguagem para cálculo de distâncias, conforme a figura a seguir:

Sublinhados

Mesmo desenvolvedores que ainda não tiveram necessidade de criar suas DSLs serão beneficiados – através de DSLDs criados por terceiros. A tendência é que rapidamente surjam DSLDs de uso comum, suportando por exemplo as diferentes peças do ecossistema do Groovy (como Grails, Gaelyk, e Griffon).

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.