protected void OnDisable()
 {
     // ReSharper disable once DelegateSubtraction
     Selection.selectionChanged -= SelectionChanged;
     m_Store.Dispose();
     s_Instance = null;
 }
        protected void OnEnable()
        {
            m_Store = new Store(new CodeViewerState());
            Reducers.Register(m_Store);

            titleContent        = new GUIContent("Code Viewer");
            m_CodeViewContainer = new DocumentContainer(m_Store);

            rootVisualElement.Clear();
            rootVisualElement.style.overflow      = Overflow.Hidden;
            rootVisualElement.pickingMode         = PickingMode.Ignore;
            rootVisualElement.style.flexDirection = FlexDirection.Row;
            rootVisualElement.Add(m_CodeViewContainer);

            m_Store.StateChanged       += StoreOnStateChanged;
            Selection.selectionChanged += SelectionChanged;
            m_LockTracker.lockStateChanged.AddListener(OnLockStateChanged);

            OnLockStateChanged(m_LockTracker.IsLocked);

            s_Instance = this;
        }