⁠
kyle wood: Re-work some NBT handling for better performance, and handle big files
This commit includes some default NBT formatting settings which result
in smaller files, and re-implements NbtVirtualFile to be a
LightVirtualFile. Part of that re-implementation is to make NBT files
only write to disk when saved manually, which is the behavior I
originally wanted anyways. This feels much safer and more stable than
whatever was happening originally.
By being a LightVirtualFile it seems the size limits / requirements on
Psi files are relaxed, but I don't fully understand the details. It
seems to handle larger NBT files better now.
Relevant issues: #1894 , #1893
This commit includes some default NBT formatting settings which result
in smaller files, and re-implements NbtVirtualFile to be a
LightVirtualFile. Part of that re-implementation is to make NBT files
only write to disk when saved manually, which is the behavior I
originally wanted anyways. This feels much safer and more stable than
whatever was happening originally.
By being a LightVirtualFile it seems the size limits / requirements on
Psi files are relaxed, but I don't fully understand the details. It
seems to handle larger NBT files better now.
Relevant issues: #1894 , #1893
- /*
- * Minecraft Dev for IntelliJ
- *
- * https://minecraftdev.org
- *
- * Copyright (c) 2022 minecraft-dev
- *
- * MIT License
- */
- package com.demonwav.mcdev.translations.lang
- import com.demonwav.mcdev.asset.PlatformAssets
- import com.intellij.openapi.fileTypes.LanguageFileType
- object LangFileType : LanguageFileType(MCLangLanguage) {
- const val FILE_EXTENSION = "lang"
- override fun getIcon() = PlatformAssets.MINECRAFT_ICON
- override fun getName() = "MCLang"
- override fun getDefaultExtension() = FILE_EXTENSION
- override fun getDescription() = "Minecraft localization"
- }
- /*
- * Minecraft Dev for IntelliJ
- *
- * https://minecraftdev.org
- *
- * Copyright (c) 2022 minecraft-dev
- *
- * MIT License
- */
- package com.demonwav.mcdev.translations.lang
- import com.demonwav.mcdev.asset.PlatformAssets
- import com.intellij.openapi.fileTypes.LanguageFileType
- object LangFileType : LanguageFileType(MCLangLanguage) {
- private const val FILE_EXTENSION = "lang"
- override fun getIcon() = PlatformAssets.MINECRAFT_ICON
- override fun getName() = "MCLang"
- override fun getDefaultExtension() = FILE_EXTENSION
- override fun getDescription() = "Minecraft localization"
- }