private CompletableXMLTag RegisterMetaTag(string name, string description)
        {
            var tag = new CompletableXMLTag(name, description);

            tag.RegisterAttribute(new CompletableXMLAttribute("name", "The field's name (required)"));
            tag.RegisterAttribute(new CompletableXMLAttribute("offset", "The field's offset (required)"));

            var visible = new CompletableXMLAttribute("visible", "Whether or not the field is always visible (required)");

            visible.RegisterValue(new CompletableXMLValue("true", "Field is always visible"));
            visible.RegisterValue(new CompletableXMLValue("false", "Field is only visible when invisibles are shown"));

            tag.RegisterAttribute(visible);
            _completer.RegisterTag(tag);
            return(tag);
        }
Exemplo n.º 2
0
        private void LoadCodeCompletion()
        {
            RegisterMetaTag("uint8", "Unsigned 8-bit integer");
            RegisterMetaTag("int8", "Signed 8-bit integer");
            RegisterMetaTag("uint16", "Unsigned 16-bit integer");
            RegisterMetaTag("int16", "Signed 16-bit integer");
            RegisterMetaTag("uint32", "Unsigned 32-bit integer");
            RegisterMetaTag("int32", "Signed 32-bit integer");
            RegisterMetaTag("float32", "32-bit floating-point value");
            RegisterMetaTag("stringId", "32-bit string ID");
            RegisterMetaTag("flags8", "8-bit flags value");
            RegisterMetaTag("flags16", "16-bit flags value");
            RegisterMetaTag("flags32", "32-bit flags value");
            RegisterMetaTag("flags64", "64-bit flags value");
            RegisterMetaTag("enum8", "8-bit enumeration value");
            RegisterMetaTag("enum16", "8-bit enumeration value");
            RegisterMetaTag("enum32", "8-bit enumeration value");
            RegisterMetaTag("range16", "Range of two 16-bit values");
            RegisterMetaTag("rangeF", "Range of two 32-bit floating point values");
            RegisterMetaTag("rangeD", "Range of two radian values converted to/from degrees");

            RegisterMetaTag("point2", "2D point of 32-bit floating point values (x,y)");
            RegisterMetaTag("point3", "3D point of 32-bit floating point values (x,y,z)");

            RegisterMetaTag("vector2", "2D vector of 32-bit floating point values (i,j)");
            RegisterMetaTag("vector3", "3D vector of 32-bit floating point values (i,j,k)");
            RegisterMetaTag("vector4", "Quaternion of 32-bit floating point values (i,j,k,w)");

            RegisterMetaTag("degree", "Radian value that should be converted to/from degrees");
            RegisterMetaTag("degree2", "2D radian angles that should be converted to/from degrees (y,p)");
            RegisterMetaTag("degree3", "3D radian angles that should be converted to/from degrees (y,p,r)");

            RegisterMetaTag("plane2", "2D plane of 3 32-bit floating point values (i,j,d)");
            RegisterMetaTag("plane3", "3D plane of 4 of 32-bit floating point values (i,j,k,d)");

            RegisterMetaTag("rect16", "4 16-bit values representing the sides of a rectangle (top, left, bottom, right)");

            RegisterMetaTag("datum", "32-bit datum value");

            CompletableXMLTag color  = RegisterMetaTag("color32", "Integer color value");
            CompletableXMLTag colorf = RegisterMetaTag("colorf", "Floating-point color value");
            var colorAlpha           = new CompletableXMLAttribute("alpha",
                                                                   "Whether or not the color includes the alpha channel (required)");

            colorAlpha.RegisterValue(new CompletableXMLValue("true", "The color includes an alpha channel"));
            colorAlpha.RegisterValue(new CompletableXMLValue("false", "The color does not include an alpha channel"));
            color.RegisterAttribute(colorAlpha);
            colorf.RegisterAttribute(colorAlpha);

            var colorBasic = new CompletableXMLAttribute("basic",
                                                         "Whether or not the color should be limited to 32bits (not required, default depends on engine)");

            colorBasic.RegisterValue(new CompletableXMLValue("true", "The color is limited to 32bits (default for engines prior to thirdgen)"));
            colorBasic.RegisterValue(new CompletableXMLValue("false", "The color is scRGB (default for thirdgen engines)"));
            colorf.RegisterAttribute(colorBasic);

            CompletableXMLTag tagRef = RegisterMetaTag("tagRef", "Tag reference");
            var withGroup            = new CompletableXMLAttribute("withGroup",
                                                                   "Whether or not the reference includes a group ID (optional, default=true)");

            withGroup.RegisterValue(new CompletableXMLValue("true", "The reference includes a group ID (default)"));
            withGroup.RegisterValue(new CompletableXMLValue("false", "The reference only includes a 4-byte datum index"));
            tagRef.RegisterAttribute(withGroup);

            CompletableXMLTag dataRef = RegisterMetaTag("dataRef", "Data reference");
            var format = new CompletableXMLAttribute("format", "The format of the data in the dataref (optional, default=bytes)");

            format.RegisterValue(new CompletableXMLValue("bytes", "Raw byte data (default)"));
            format.RegisterValue(new CompletableXMLValue("asciiz", "Null-terminated ASCII string"));
            dataRef.RegisterAttribute(format);

            CompletableXMLTag tagblock = RegisterMetaTag("tagblock", "Tagblock pointer");

            tagblock.RegisterAttribute(new CompletableXMLAttribute("elementSize",
                                                                   "The size of each element in the tag block (required)"));

            CompletableXMLTag ascii = RegisterMetaTag("ascii", "ASCII string");
            CompletableXMLTag utf16 = RegisterMetaTag("utf16", "UTF-16 string");
            var strLength           = new CompletableXMLAttribute("length",
                                                                  "The size of the string, including the null terminator (required)");

            ascii.RegisterAttribute(strLength);
            utf16.RegisterAttribute(strLength);

            CompletableXMLTag raw = RegisterMetaTag("raw", "Raw data viewer");

            raw.RegisterAttribute(new CompletableXMLAttribute("size", "The size of the raw data (required)"));

            var comment = new CompletableXMLTag("comment", "Displays a message");

            comment.RegisterAttribute(new CompletableXMLAttribute("title", "The title of the comment (optional)"));
            _completer.RegisterTag(comment);

            CompletableXMLTag shader = RegisterMetaTag("shader", "Shader reference");
            var shaderType           = new CompletableXMLAttribute("type", "The type of the shader (required)");

            shaderType.RegisterValue(new CompletableXMLValue("pixel", "Pixel shader"));
            shaderType.RegisterValue(new CompletableXMLValue("vertex", "Vertex shader"));
            shader.RegisterAttribute(shaderType);

            RegisterMetaTag("undefined", "Value of an unknown type");

            _completer.TagCompletionAvailable       += TagCompletionAvailable;
            _completer.AttributeCompletionAvailable += AttributeCompletionAvailable;
            _completer.ValueCompletionAvailable     += ValueCompletionAvailable;
        }
        private void LoadCodeCompletion()
        {
            RegisterMetaTag("uint8", "Unsigned 8-bit integer");
            RegisterMetaTag("int8", "Signed 8-bit integer");
            RegisterMetaTag("uint16", "Unsigned 16-bit integer");
            RegisterMetaTag("int16", "Signed 16-bit integer");
            RegisterMetaTag("uint32", "Unsigned 32-bit integer");
            RegisterMetaTag("int32", "Signed 32-bit integer");
            RegisterMetaTag("float32", "32-bit floating-point value");
            RegisterMetaTag("stringId", "32-bit string ID");
            RegisterMetaTag("bitfield8", "8-bit bitfield");
            RegisterMetaTag("bitfield16", "16-bit bitfield");
            RegisterMetaTag("bitfield32", "32-bit bitfield");
            RegisterMetaTag("enum8", "8-bit enumeration value");
            RegisterMetaTag("enum16", "8-bit enumeration value");
            RegisterMetaTag("enum32", "8-bit enumeration value");
            RegisterMetaTag("vector3", "3D vector of 32-bit floating point values");
            RegisterMetaTag("degree", "Radian value that should be converted to/from degrees");
            RegisterMetaTag("packedint8", "8-bit bitfield struct");
            RegisterMetaTag("packedint16", "16-bit bitfield struct");
            RegisterMetaTag("packedint32", "32-bit bitfield struct");

            CompletableXMLTag color  = RegisterMetaTag("color", "Integer color value");
            CompletableXMLTag colorf = RegisterMetaTag("colorf", "Floating-point color value");
            var colorFormat          = new CompletableXMLAttribute("format",
                                                                   "A string containing the characters 'a', 'r', 'g', and 'b' which describes the format of the color (required)");

            color.RegisterAttribute(colorFormat);
            colorf.RegisterAttribute(colorFormat);

            RegisterMetaTag("color24", "32-bit RGB color");
            RegisterMetaTag("color32", "32-bit ARGB color");

            CompletableXMLTag tagRef = RegisterMetaTag("tagRef", "Tag reference");
            var withClass            = new CompletableXMLAttribute("withClass",
                                                                   "Whether or not the reference includes a class ID (optional, default=true)");

            withClass.RegisterValue(new CompletableXMLValue("true", "The reference includes a 12-byte class ID (default)"));
            withClass.RegisterValue(new CompletableXMLValue("false", "The reference only includes a 4-byte datum index"));
            tagRef.RegisterAttribute(withClass);

            CompletableXMLTag dataRef = RegisterMetaTag("dataRef", "Data reference");
            var format = new CompletableXMLAttribute("format", "The format of the data in the dataref (optional, default=bytes)");

            format.RegisterValue(new CompletableXMLValue("bytes", "Raw byte data (default)"));
            format.RegisterValue(new CompletableXMLValue("asciiz", "Null-terminated ASCII string"));
            format.RegisterValue(new CompletableXMLValue("unicode", "Null-terminated unicode string"));
            dataRef.RegisterAttribute(format);

            CompletableXMLTag reflexive = RegisterMetaTag("reflexive", "Reflexive pointer");

            reflexive.RegisterAttribute(new CompletableXMLAttribute("entrySize",
                                                                    "The size of each entry in the reflexive (required)"));

            CompletableXMLTag ascii = RegisterMetaTag("ascii", "ASCII string");
            CompletableXMLTag utf16 = RegisterMetaTag("utf16", "UTF-16 string");
            var strLength           = new CompletableXMLAttribute("length",
                                                                  "The size of the string, including the null terminator (required)");

            ascii.RegisterAttribute(strLength);
            utf16.RegisterAttribute(strLength);

            CompletableXMLTag raw = RegisterMetaTag("raw", "Raw data viewer");

            raw.RegisterAttribute(new CompletableXMLAttribute("size", "The size of the raw data (required)"));

            var comment = new CompletableXMLTag("comment", "Displays a message");

            comment.RegisterAttribute(new CompletableXMLAttribute("title", "The title of the comment (optional)"));
            _completer.RegisterTag(comment);

            CompletableXMLTag shader = RegisterMetaTag("shader", "Shader reference");
            var shaderType           = new CompletableXMLAttribute("type", "The type of the shader (required)");

            shaderType.RegisterValue(new CompletableXMLValue("pixel", "Pixel shader"));
            shaderType.RegisterValue(new CompletableXMLValue("vertex", "Vertex shader"));
            shader.RegisterAttribute(shaderType);

            RegisterMetaTag("undefined", "Value of an unknown type");

            _completer.TagCompletionAvailable       += TagCompletionAvailable;
            _completer.AttributeCompletionAvailable += AttributeCompletionAvailable;
            _completer.ValueCompletionAvailable     += ValueCompletionAvailable;
        }