Skip to content

Commit 4676717

Browse files
committed
refactor(devins-lang): introduce DevInFileStub class for improved PSI file handling and stub serialization.
1 parent 5826e52 commit 4676717

File tree

2 files changed

+31
-25
lines changed

2 files changed

+31
-25
lines changed

exts/devins-lang/src/main/kotlin/cc/unitmesh/devti/language/psi/DevInFile.kt

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import com.intellij.openapi.fileTypes.FileType
77
import com.intellij.openapi.project.Project
88
import com.intellij.openapi.vfs.VirtualFileManager
99
import com.intellij.psi.*
10-
import com.intellij.psi.stubs.*
11-
import com.intellij.psi.tree.IStubFileElementType
1210
import java.util.*
1311

1412
class DevInFile(viewProvider: FileViewProvider) : PsiFileBase(viewProvider, DevInLanguage.INSTANCE) {
@@ -40,26 +38,3 @@ class DevInFile(viewProvider: FileViewProvider) : PsiFileBase(viewProvider, DevI
4038
}
4139
}
4240

43-
class DevInFileStub(file: DevInFile?, private val flags: Int) : PsiFileStubImpl<DevInFile>(file) {
44-
override fun getType() = Type
45-
46-
object Type : IStubFileElementType<DevInFileStub>(DevInLanguage) {
47-
override fun getStubVersion(): Int = 1
48-
49-
override fun getExternalId(): String = "devin.file"
50-
51-
override fun serialize(stub: DevInFileStub, dataStream: StubOutputStream) {
52-
dataStream.writeByte(stub.flags)
53-
}
54-
55-
override fun deserialize(dataStream: StubInputStream, parentStub: StubElement<*>?): DevInFileStub {
56-
return DevInFileStub(null, dataStream.readUnsignedByte())
57-
}
58-
59-
override fun getBuilder(): StubBuilder = object : DefaultStubBuilder() {
60-
override fun createStubForFile(file: PsiFile): StubElement<*> {
61-
return DevInFileStub(file as DevInFile, 0)
62-
}
63-
}
64-
}
65-
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package cc.unitmesh.devti.language.psi
2+
3+
import cc.unitmesh.devti.language.DevInLanguage
4+
import com.intellij.psi.PsiFile
5+
import com.intellij.psi.StubBuilder
6+
import com.intellij.psi.stubs.*
7+
import com.intellij.psi.tree.IStubFileElementType
8+
9+
class DevInFileStub(file: DevInFile?, private val flags: Int) : PsiFileStubImpl<DevInFile>(file) {
10+
override fun getType() = Type
11+
12+
object Type : IStubFileElementType<DevInFileStub>(DevInLanguage) {
13+
override fun getStubVersion(): Int = 1
14+
15+
override fun getExternalId(): String = "devin.file"
16+
17+
override fun serialize(stub: DevInFileStub, dataStream: StubOutputStream) {
18+
dataStream.writeByte(stub.flags)
19+
}
20+
21+
override fun deserialize(dataStream: StubInputStream, parentStub: StubElement<*>?): DevInFileStub {
22+
return DevInFileStub(null, dataStream.readUnsignedByte())
23+
}
24+
25+
override fun getBuilder(): StubBuilder = object : DefaultStubBuilder() {
26+
override fun createStubForFile(file: PsiFile): StubElement<*> {
27+
return DevInFileStub(file as DevInFile, 0)
28+
}
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)