grailsgspsts-springsourcetoolsuitecode-assist

Groovy/Grails Tools Suite (GGTS) code-assist in GSP pages for model objects


I am a newbie in Grails, and still learning.

I have the following code for the model:

class Book {

    static constraints = {

    }

    String title
    String author
}

and controller:

class KillController {

    def index() { render "kill world"  }

    def view() {
        def book = new Book( author: "Mike", title: "nuff sed")
        [ model: book ]
    }
}

And for view.gsp, I have the following:

<html>
    <body>
        Author: ${ model.author }<br />
        Title : ${ model.title }
    </body>
</html>

Everything is working, and the correct output is produced. However, in the GSP editor, when I type ${ model. }, I don't get any proposals from code-assist. Pressing ctrl+space after typing the dot does not help.

Pressing Ctrl+space inside ${ } works though, and it correctly recognizes model as a Book object.

Is code assist for models not yet supported in the GSP editor? Thanks! :D


Solution

  • This is a bug. It should be working and it does in many other situations. When I try it, I do see that an exception is being thrown:

    org.eclipse.core.runtime.OperationCanceledException
    at org.codehaus.groovy.eclipse.codeassist.processors.GroovyProposalTypeSearchRequestor.checkCancel(GroovyProposalTypeSearchRequestor.java:356)
    at org.codehaus.groovy.eclipse.codeassist.processors.GroovyProposalTypeSearchRequestor.processAcceptedPackages(GroovyProposalTypeSearchRequestor.java:618)
    at org.codehaus.groovy.eclipse.codeassist.processors.PackageCompletionProcessor.generateProposals(PackageCompletionProcessor.java:56)
    at org.codehaus.groovy.eclipse.codeassist.requestor.GroovyCompletionProposalComputer.computeCompletionProposals(GroovyCompletionProposalComputer.java:162)
    at org.grails.ide.eclipse.editor.gsp.adapter.CodeCompletionDelegate.codeComplete(CodeCompletionDelegate.java:71)
    at org.codehaus.jdt.groovy.model.GroovyCompilationUnit.codeComplete(GroovyCompilationUnit.java:598)
    at org.eclipse.jdt.internal.core.CompilationUnit.codeComplete(CompilationUnit.java:359)
    at org.eclipse.jst.jsp.ui.internal.contentassist.JSPJavaCompletionProposalComputer.computeJavaCompletionProposals(JSPJavaCompletionProposalComputer.java:237)
    at org.eclipse.jst.jsp.ui.internal.contentassist.JSPJavaCompletionProposalComputer.computeCompletionProposals(JSPJavaCompletionProposalComputer.java:114)
    at org.eclipse.wst.sse.ui.internal.contentassist.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:284)
    at org.eclipse.wst.sse.ui.internal.contentassist.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:290)
    at org.eclipse.wst.sse.ui.contentassist.StructuredContentAssistProcessor.collectProposals(StructuredContentAssistProcessor.java:475)
    at org.eclipse.wst.sse.ui.contentassist.StructuredContentAssistProcessor.computeCompletionProposals(StructuredContentAssistProcessor.java:254)
    at org.eclipse.wst.sse.ui.internal.contentassist.CompoundContentAssistProcessor.computeCompletionProposals(CompoundContentAssistProcessor.java:127)
    at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1839)
    at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:566)
    at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:563)
    at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:498)
    ...
    

    I'll have to see what is going on here.


    UPDATE:

    Raised this issue: https://issuetracker.springsource.com/browse/STS-3337

    Found the problem and pushed a fix. Will be available in next snapshot build.