fun updateFromIDEA()

in src/main/kotlin/org/arend/module/config/ArendModuleConfigService.kt [192:263]


    fun updateFromIDEA(config: ArendModuleConfiguration) {
        val newLibrariesRoot = config.librariesRoot
        val reload = librariesRoot != newLibrariesRoot
        var updateYAML = false

        val newDependencies = config.dependencies
        if (dependencies != newDependencies) {
            updateDependencies(newDependencies, !reload) {}
            updateYAML = true
        }

        val newSourcesDir = config.sourcesDir
        if (sourcesDir != newSourcesDir) {
            sourcesDir = newSourcesDir
            updateYAML = true
        }

        val newBinariesDir = config.flaggedBinariesDir
        if (flaggedBinariesDir != newBinariesDir) {
            updateYAML = true
        }
        withBinaries = config.withBinaries
        binariesDirectory = config.binariesDirectory

        val newTestsDir = config.testsDir
        if (testsDir != newTestsDir) {
            testsDir = newTestsDir
            updateYAML = true
        }

        val newExtensionsDir = config.flaggedExtensionsDir
        if (flaggedExtensionsDir != newExtensionsDir) {
            updateYAML = true
        }

        val newExtensionMainClass = config.flaggedExtensionMainClass
        if (flaggedExtensionMainClass != newExtensionMainClass) {
            updateYAML = true
        }
        withExtensions = config.withExtensions
        extensionsDirectory = config.extensionsDirectory
        extensionMainClassData = config.extensionMainClassData

        val newVersion = config.versionString
        if (versionString != newVersion) {
            versionString = newVersion
            updateYAML = true
        }

        val newLangVersion = config.langVersionString
        if (langVersionString != newLangVersion) {
            langVersionString = newLangVersion
            updateYAML = true
        }

        if (updateYAML) yamlFile?.write {
            langVersion = newLangVersion
            version = newVersion
            sourcesDir = newSourcesDir
            binariesDir = newBinariesDir
            testsDir = newTestsDir
            extensionsDir = newExtensionsDir
            extensionMainClass = newExtensionMainClass
            dependencies = newDependencies
        }

        if (reload) {
            synchronized = false
            librariesRoot = newLibrariesRoot
            ModuleSynchronizer.synchronizeModule(this, true)
        }
    }