casteng / i-pascal

A free Object Pascal language plugin for IntelliJ IDEA
111 stars 34 forks source link

Error parsing PPU with string which contains line break #25

Closed megahertz closed 5 years ago

megahertz commented 6 years ago

constunit.pas

unit constunit;
interface
{$mode delphi}
const
  ProblemConst  = 'Line1' + #13#10 +'Line2';
implementation
end.

ppudump:

<?xml version="1.0" encoding="utf-8"?>
<unit>
  <name>constunit</name>
  <version>173</version>
  <targetcpu>x86_64</targetcpu>
  <targetos>Linux-x86-64</targetos>
  <crc>250E1931</crc>
  <interfacecrc>71829538</interfacecrc>
  <uses>
    <unit>
      <name>System</name>
      <crc>4C377C4F</crc>
      <interfacecrc>46624366</interfacecrc>
    </unit>
    <unit>
      <name>objpas</name>
      <crc>F2084D63</crc>
      <interfacecrc>1FF9DA31</interfacecrc>
    </unit>
  </uses>
  <units>
    <value>system</value>
  </units>
  <files>
    <file>
      <name>constunit.pas</name>
      <time>2018-05-01 12:17:14</time>
    </file>
  </files>
  <interface>
    <array>
      <id>0</id>
      <eltype>
        <unit>0</unit>
        <id>21</id>
      </eltype>
      <rangetype>
        <unit>0</unit>
        <id>10</id>
      </rangetype>
      <low>0</low>
      <high>4</high>
    </array>
    <array>
      <id>1</id>
      <eltype>
        <unit>0</unit>
        <id>21</id>
      </eltype>
      <rangetype>
        <unit>0</unit>
        <id>10</id>
      </rangetype>
      <low>0</low>
      <high>1</high>
    </array>
    <array>
      <id>2</id>
      <eltype>
        <unit>0</unit>
        <id>21</id>
      </eltype>
      <rangetype>
        <unit>0</unit>
        <id>10</id>
      </rangetype>
      <low>0</low>
      <high>4</high>
    </array>
    <array>
      <id>3</id>
      <eltype>
        <unit>0</unit>
        <id>21</id>
      </eltype>
      <rangetype>
        <unit>0</unit>
        <id>10</id>
      </rangetype>
      <low>0</low>
      <high>6</high>
    </array>
    <array>
      <id>4</id>
      <eltype>
        <unit>0</unit>
        <id>21</id>
      </eltype>
      <rangetype>
        <unit>0</unit>
        <id>10</id>
      </rangetype>
      <low>0</low>
      <high>11</high>
    </array>
    <array>
      <id>5</id>
      <eltype>
        <unit>0</unit>
        <id>21</id>
      </eltype>
      <rangetype>
        <unit>0</unit>
        <id>12</id>
      </rangetype>
      <low>0</low>
      <high>11</high>
    </array>
    <const>
      <name>ProblemConst</name>
      <symid>6</symid>
      <pos>
        <line>8</line>
        <col>3</col>
      </pos>
      <valtype>string</valtype>
      <value>Line1&#x000D;&#x000A;Line2</value>
      <typeref>
        <id>5</id>
      </typeref>
    </const>
  </interface>
</unit>

Log:

2018-05-01 12:18:23,201 [   7811]  ERROR - i.fileEditor.impl.LoadTextUtil - Wrong line separators: '...t = 'Line1\r'#13#10'L...' at offset 319 
java.lang.AssertionError: Wrong line separators: '...t = 'Line1\r'#13#10'L...' at offset 319
    at com.intellij.openapi.util.text.StringUtil.assertValidSeparators(StringUtil.java:2688)
    at com.intellij.openapi.fileEditor.impl.LoadTextUtil.loadText(LoadTextUtil.java:507)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.getDocument(FileDocumentManagerImpl.java:193)
    at com.intellij.psi.AbstractFileViewProvider.getDocument(AbstractFileViewProvider.java:159)
    at com.intellij.psi.AbstractFileViewProvider$VirtualFileContent.getText(AbstractFileViewProvider.java:432)
    at com.intellij.psi.AbstractFileViewProvider.getContents(AbstractFileViewProvider.java:139)
    at com.intellij.psi.impl.source.PsiFileImpl.loadTreeElement(PsiFileImpl.java:191)
    at com.intellij.psi.impl.source.PsiFileImpl.calcTreeElement(PsiFileImpl.java:803)
    at com.intellij.psi.impl.source.PsiFileImpl.calcStubTree(PsiFileImpl.java:1032)
    at com.siberika.idea.pascal.lang.compiled.PascalCompiledStubBuilder.buildFileStub(PascalCompiledStubBuilder.java:30)
    at com.intellij.psi.impl.compiled.ClassFileStubBuilder.buildStubTree(ClassFileStubBuilder.java:45)
    at com.intellij.psi.impl.compiled.ClassFileStubBuilder.buildStubTree(ClassFileStubBuilder.java:25)
    at com.intellij.psi.stubs.StubTreeBuilder.buildStubTree(StubTreeBuilder.java:61)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.lambda$map$0(StubUpdatingIndex.java:232)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:897)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.map(StubUpdatingIndex.java:214)
    at com.intellij.psi.stubs.StubUpdatingIndex$3.map(StubUpdatingIndex.java:197)
    at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:273)
    at com.intellij.util.indexing.VfsAwareMapReduceIndex.calculateUpdateData(VfsAwareMapReduceIndex.java:98)
    at com.intellij.util.indexing.impl.MapReduceIndex.update(MapReduceIndex.java:213)
    at com.intellij.util.indexing.FileBasedIndexImpl.updateSingleIndex(FileBasedIndexImpl.java:1656)
    at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$21(FileBasedIndexImpl.java:1584)
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:523)
    at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1543)
    at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1531)
    at com.intellij.util.indexing.UnindexedFilesUpdater.lambda$indexFiles$0(UnindexedFilesUpdater.java:110)
    at com.intellij.openapi.project.CacheUpdateRunner$MyRunnable.lambda$run$0(CacheUpdateRunner.java:230)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1134)
    at com.intellij.openapi.project.CacheUpdateRunner$MyRunnable.lambda$run$1(CacheUpdateRunner.java:246)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
    at com.intellij.openapi.project.CacheUpdateRunner$MyRunnable.run(CacheUpdateRunner.java:243)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:305)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
2018-05-01 12:18:23,202 [   7812]  ERROR - i.fileEditor.impl.LoadTextUtil - IntelliJ IDEA 2018.1.1  Build #IC-181.4445.78 
2018-05-01 12:18:23,202 [   7812]  ERROR - i.fileEditor.impl.LoadTextUtil - JDK: 1.8.0_172 
2018-05-01 12:18:23,202 [   7812]  ERROR - i.fileEditor.impl.LoadTextUtil - VM: OpenJDK 64-Bit Server VM 
2018-05-01 12:18:23,202 [   7812]  ERROR - i.fileEditor.impl.LoadTextUtil - Vendor: Oracle Corporation 
2018-05-01 12:18:23,202 [   7812]  ERROR - i.fileEditor.impl.LoadTextUtil - OS: Linux 
2018-05-01 12:18:23,202 [   7812]  ERROR - i.fileEditor.impl.LoadTextUtil - Last Action:  
2018-05-01 12:18:23,202 [   7812]  ERROR - i.fileEditor.impl.LoadTextUtil - Current Command: Undefined 
2018-05-01 12:18:23,202 [   7812]  ERROR - napi.project.CacheUpdateRunner - Error while indexing /www/pas-test/ppu/constunit.ppu
To reindex this file IDEA has to be restarted 

constunit.ppu.zip

casteng commented 6 years ago

Thanks, will be fixed in next release.

megahertz commented 5 years ago

Fixed, thank you!