<commit_before>package com.elpassion.intelijidea.task

import com.elpassion.intelijidea.common.MFToolConfigurationImpl
import com.elpassion.intelijidea.task.ui.MFBeforeTaskDefaultSettingsPanel
import com.intellij.openapi.Disposable
import com.intellij.openapi.options.Configurable
import com.intellij.openapi.options.SearchableConfigurable
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Disposer
import javax.swing.JComponent

class MFBeforeTaskDefaultOptionsConfigurable(private val project: Project) : SearchableConfigurable, Configurable.NoScroll, Disposable {

    var mfSettingsPanel: MFBeforeTaskDefaultSettingsPanel? = null

    override fun isModified(): Boolean {
        return mfSettingsPanel?.isModified ?: false
    }

    override fun getId() = ID

    override fun getDisplayName() = DISPLAY_NAME

    override fun apply() {
        mfSettingsPanel?.apply()
    }

    override fun reset() {
        mfSettingsPanel?.reset()
    }

    override fun createComponent(): JComponent {
        mfSettingsPanel = MFBeforeTaskDefaultSettingsPanel(project, MFBeforeTaskDefaultSettingsProvider.getInstance(project), MFToolConfigurationImpl(project.basePath))
        return mfSettingsPanel!!.panel
    }

    override fun getHelpTopic(): String? = null

    override fun dispose() {
        mfSettingsPanel = null
    }

    override fun disposeUIResources() {
        Disposer.dispose(this)
    }

    companion object {
        val ID = "mainframer"
        val DISPLAY_NAME = "Mainframer"
    }
}<commit_msg>#120 Fix for Android Studio 2.3 It crashes even though overridden method is marked as it returns nullable<commit_after>package com.elpassion.intelijidea.task

import com.elpassion.intelijidea.common.MFToolConfigurationImpl
import com.elpassion.intelijidea.task.ui.MFBeforeTaskDefaultSettingsPanel
import com.intellij.openapi.Disposable
import com.intellij.openapi.options.Configurable
import com.intellij.openapi.options.SearchableConfigurable
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Disposer
import javax.swing.JComponent

class MFBeforeTaskDefaultOptionsConfigurable(private val project: Project) : SearchableConfigurable, Configurable.NoScroll, Disposable {

    var mfSettingsPanel: MFBeforeTaskDefaultSettingsPanel? = null

    override fun isModified(): Boolean {
        return mfSettingsPanel?.isModified ?: false
    }

    override fun getId() = ID

    override fun getDisplayName() = DISPLAY_NAME

    override fun apply() {
        mfSettingsPanel?.apply()
    }

    override fun reset() {
        mfSettingsPanel?.reset()
    }

    override fun createComponent(): JComponent {
        mfSettingsPanel = MFBeforeTaskDefaultSettingsPanel(project, MFBeforeTaskDefaultSettingsProvider.getInstance(project), MFToolConfigurationImpl(project.basePath))
        return mfSettingsPanel!!.panel
    }

    override fun getHelpTopic(): String? = null

    override fun dispose() {
        mfSettingsPanel = null
    }

    override fun disposeUIResources() {
        Disposer.dispose(this)
    }

    //Android Studio 2.3 crash when this method return null
    override fun enableSearch(option: String?) = Runnable { }

    companion object {
        val ID = "mainframer"
        val DISPLAY_NAME = "Mainframer"
    }
}
{'fraction_non_alphanumeric': 0.07796917497733455, 'fraction_numerical': 0.0021154427319431852, 'mean_word_length': 3.9849397590361444, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5016589', 'n_tokens_mistral': 947, 'n_tokens_neox': 893, 'n_words': 201}