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).

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 menssagens dessa discussão
Comentários da comunidade

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

Receber menssagens dessa discussão

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

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT