apache / apache/grails-intellij-plugin

Can not edit Javascript in GSP file

Open
#306 0 comments 0 reactions 0 assignees View on GitHub
bug imported-from-youtrack
Dominant language
Java
Stars
17
Forks
4
Avg merge
5d 15h
Merged PRs (30d)
4

Description

I am no longer able to press tab or return in the head section of a GSP file that contains an asset:javascript tag. I get the following error in the log:

Language: JavaScript;
Host file: Groovy Server Pages file in '/Users/<hidden-personal-data>/Repositories/live-visualisations/grails-app/views/browse/search/show.gsp'
Context element (23,156): 'HtmlTag:head'; Ranges: [Shred (29,34): XmlText In host range: (29,34); PSI range: (0,5), Shred (71,76): XmlText In host range: (71,76); PSI range: (5,10), Shred (107,149): XmlText In host range: (107,148); PSI range: (10,22)]
java.lang.AssertionError: After patch: doc:
'

<asset:script>

</asset:script>'
—PSI:
'

<asset:script>

</asset:script'
—chars:
'

'.
Language: JavaScript;
Host file: Groovy Server Pages file in '/Users/<hidden-personal-data>/Repositories/live-visualisations/grails-app/views/browse/search/show.gsp'
Context element (23,156): 'HtmlTag:head'; Ranges: [Shred (29,34): XmlText In host range: (29,34); PSI range: (0,5), Shred (71,76): XmlText In host range: (71,76); PSI range: (5,10), Shred (107,149): XmlText In host range: (107,148); PSI range: (10,22)]

**at** com.intellij.psi.impl.source.tree.injected.MultiHostRegistrarImpl.doneInjecting(MultiHostRegistrarImpl.java:256)

```
at org.intellij.plugins.intelliLang.inject.InjectorUtils.registerInjection(InjectorUtils.java:135)
at org.intellij.plugins.intelliLang.inject.xml.XmlLanguageInjector.lambda$getLanguagesToInject$0(XmlLanguageInjector.java:91)
at org.intellij.plugins.intelliLang.inject.xml.XmlLanguageInjector.getInjectedLanguage(XmlLanguageInjector.java:144)
at org.intellij.plugins.intelliLang.inject.xml.XmlLanguageInjector.getLanguagesToInject(XmlLanguageInjector.java:81)
at com.intellij.psi.impl.source.tree.injected.InjectedPsiCachedValueProvider$MyInjProcessor.process(InjectedPsiCachedValueProvider.java:82)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.processInPlaceInjectorsFor(InjectedLanguageManagerImpl.java:458)
at com.intellij.psi.impl.source.tree.injected.InjectedPsiCachedValueProvider.doCompute(InjectedPsiCachedValueProvider.java:62)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.probeElementsUp(InjectedLanguageUtil.java:313)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.enumerate(InjectedLanguageUtil.java:145)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:238)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:200)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.a(LineMarkersPass.java:111)
at com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot(Divider.java:96)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectInformation(LineMarkersPass.java:106)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.c(PassExecutorService.java:433)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1061)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:426)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:568)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:519)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:425)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:405)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:155)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
```

I will attach the source file causing the problem. I have tried removing the cache, and also uninstalling all custom plugins.

---

*Imported from [IDEA-174232](https://youtrack.jetbrains.com/issue/IDEA-174232) · Type: Bug · Votes: 2*
*Comments, attachments, dates and reporter are not part of the export — follow the link above for the full history.*

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the failure in grails-app/views/browse/search/show.gsp by placing an asset:javascript tag in the head and pressing Tab or Return. Start with the IntelliJ injected-language path shown in the stack trace, especially XmlLanguageInjector and MultiHostRegistrarImpl.doneInjecting. Done means editing the GSP no longer triggers the AssertionError.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, javascript
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.