public override void OnInspectorGUI()
        {
            editor.Repaint();
            serializedObject.Update();
            if (inkFile == null)
            {
                EditorGUILayout.HelpBox("Ink File is not in library.", MessageType.Warning);
                if (GUILayout.Button("Rebuild Library"))
                {
                    InkLibrary.Rebuild();
                    Rebuild();
                }
                return;
            }

            if (InkCompiler.GetCompilationStackItem(inkFile) != null)
            {
                EditorGUILayout.HelpBox("File is compiling...", MessageType.Info);
                return;
            }

            if (inkFile.isMaster)
            {
                DrawMasterFileHeader();
                DrawEditAndCompileDates(inkFile);
                if (inkFile.hasUnhandledCompileErrors)
                {
                    EditorGUILayout.HelpBox("Last compiled failed", MessageType.Error);
                }
                if (inkFile.hasErrors)
                {
                    EditorGUILayout.HelpBox("Last compiled had errors", MessageType.Error);
                }
                else if (inkFile.hasWarnings)
                {
                    EditorGUILayout.HelpBox("Last compile had warnings", MessageType.Warning);
                }
                else if (inkFile.jsonAsset == null)
                {
                    EditorGUILayout.HelpBox("Ink file has not been compiled", MessageType.Warning);
                }
                if (inkFile.requiresCompile && GUILayout.Button("Compile"))
                {
                    InkCompiler.CompileInk(inkFile);
                }
                DrawIncludedFiles();

                DrawCompileErrors();
                DrawErrors();
                DrawWarnings();
                DrawTODOList();
            }
            else
            {
                DrawSubFileHeader();
            }

            DrawFileContents();


            serializedObject.ApplyModifiedProperties();
        }