` tag.\n\nInspection ID: XmlWrongRootElement"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "XmlWrongRootElement",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CheckValidXmlInScriptTagBody",
+ "shortDescription": {
+ "text": "Malformed content of 'script' tag"
+ },
+ "fullDescription": {
+ "text": "Reports contents of 'script' tags that are invalid XML. Example: '' After the quick-fix is applied: '' Inspection ID: CheckValidXmlInScriptTagBody",
+ "markdown": "Reports contents of `script` tags that are invalid XML. \n\n**Example:**\n\n\n \n\nAfter the quick-fix is applied:\n\n\n \n\nInspection ID: CheckValidXmlInScriptTagBody"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CheckValidXmlInScriptTagBody",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpSuspiciousBackref",
+ "shortDescription": {
+ "text": "Suspicious back reference"
+ },
+ "fullDescription": {
+ "text": "Reports back references that will not be resolvable at runtime. This means that the back reference can never match anything. A back reference will not be resolvable when the group is defined after the back reference, or if the group is defined in a different branch of an alternation. Example of a group defined after its back reference: '\\1(abc)' Example of a group and a back reference in different branches: 'a(b)c|(xy)\\1z' New in 2022.1 Inspection ID: RegExpSuspiciousBackref",
+ "markdown": "Reports back references that will not be resolvable at runtime. This means that the back reference can never match anything. A back reference will not be resolvable when the group is defined after the back reference, or if the group is defined in a different branch of an alternation.\n\n**Example of a group defined after its back reference:**\n\n\n \\1(abc)\n\n**Example of a group and a back reference in different branches:**\n\n\n a(b)c|(xy)\\1z\n\nNew in 2022.1\n\nInspection ID: RegExpSuspiciousBackref"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpSuspiciousBackref",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpSingleCharAlternation",
+ "shortDescription": {
+ "text": "Single character alternation"
+ },
+ "fullDescription": {
+ "text": "Reports single char alternation in a RegExp. It is simpler to use a character class instead. This may also provide better matching performance. Example: 'a|b|c|d' After the quick-fix is applied: '[abcd]' New in 2017.1 Inspection ID: RegExpSingleCharAlternation",
+ "markdown": "Reports single char alternation in a RegExp. It is simpler to use a character class instead. This may also provide better matching performance.\n\n**Example:**\n\n\n a|b|c|d\n\nAfter the quick-fix is applied:\n\n\n [abcd]\n\n\nNew in 2017.1\n\nInspection ID: RegExpSingleCharAlternation"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpSingleCharAlternation",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlUnknownAttribute",
+ "shortDescription": {
+ "text": "Unknown attribute"
+ },
+ "fullDescription": {
+ "text": "Reports an unknown HTML attribute. Suggests configuring attributes that should not be reported. Inspection ID: HtmlUnknownAttribute",
+ "markdown": "Reports an unknown HTML attribute. Suggests configuring attributes that should not be reported.\n\nInspection ID: HtmlUnknownAttribute"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlUnknownAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CheckTagEmptyBody",
+ "shortDescription": {
+ "text": "Empty element content"
+ },
+ "fullDescription": {
+ "text": "Reports XML elements without contents. Example: '\n \n ' After the quick-fix is applied: '\n \n ' Inspection ID: CheckTagEmptyBody",
+ "markdown": "Reports XML elements without contents.\n\n**Example:**\n\n\n \n \n \n\nAfter the quick-fix is applied:\n\n\n \n \n \n\nInspection ID: CheckTagEmptyBody"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CheckTagEmptyBody",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpRedundantEscape",
+ "shortDescription": {
+ "text": "Redundant character escape"
+ },
+ "fullDescription": {
+ "text": "Reports redundant character escape sequences that can be replaced with unescaped characters preserving the meaning. Many escape sequences that are necessary outside of a character class are redundant inside square brackets '[]' of a character class. Although unescaped opening curly braces '{' outside of character classes are allowed in some dialects (JavaScript, Python, and so on), it can cause confusion and make the pattern less portable, because there are dialects that require escaping curly braces as characters. For this reason the inspection does not report escaped opening curly braces. Example: '\\-\\;[\\.]' After the quick-fix is applied: '-;[.]' The Ignore escaped closing brackets '}' and ']' option specifies whether to report '\\}' and '\\]' outside of a character class when they are allowed to be unescaped by the RegExp dialect. New in 2017.3 Inspection ID: RegExpRedundantEscape",
+ "markdown": "Reports redundant character escape sequences that can be replaced with unescaped characters preserving the meaning. Many escape sequences that are necessary outside of a character class are redundant inside square brackets `[]` of a character class.\n\n\nAlthough unescaped opening curly braces `{` outside of character classes are allowed in some dialects (JavaScript, Python, and so on),\nit can cause confusion and make the pattern less portable, because there are dialects that require escaping curly braces as characters.\nFor this reason the inspection does not report escaped opening curly braces.\n\n**Example:**\n\n\n \\-\\;[\\.]\n\nAfter the quick-fix is applied:\n\n\n -;[.]\n\n\nThe **Ignore escaped closing brackets '}' and '\\]'** option specifies whether to report `\\}` and `\\]` outside of a character class\nwhen they are allowed to be unescaped by the RegExp dialect.\n\nNew in 2017.3\n\nInspection ID: RegExpRedundantEscape"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpRedundantEscape",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnresolvedReference",
+ "shortDescription": {
+ "text": "Unresolved reference"
+ },
+ "fullDescription": {
+ "text": "Reports an unresolved reference to a named pattern ('define') in RELAX-NG files that use XML syntax. Suggests creating the referenced 'define' element. Inspection ID: UnresolvedReference",
+ "markdown": "Reports an unresolved reference to a named pattern (`define`) in RELAX-NG files that use XML syntax. Suggests creating the referenced `define` element.\n\nInspection ID: UnresolvedReference"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "UnresolvedReference",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RELAX NG",
+ "index": 61,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlMissingClosingTag",
+ "shortDescription": {
+ "text": "Missing closing tag"
+ },
+ "fullDescription": {
+ "text": "Reports an HTML element without a closing tag. Some coding styles require that HTML elements have closing tags even where this is optional. Example: '\n \n Behold!\n \n ' After the quick-fix is applied: '\n
\n Behold!
\n \n ' Inspection ID: HtmlMissingClosingTag",
+ "markdown": "Reports an HTML element without a closing tag. Some coding styles require that HTML elements have closing tags even where this is optional.\n\n**Example:**\n\n\n \n \n Behold!\n \n \n\nAfter the quick-fix is applied:\n\n\n \n
\n Behold!
\n \n \n\nInspection ID: HtmlMissingClosingTag"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "HtmlMissingClosingTag",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CustomRegExpInspection",
+ "shortDescription": {
+ "text": "Custom RegExp inspection"
+ },
+ "fullDescription": {
+ "text": "Custom Regex Inspection Inspection ID: CustomRegExpInspection",
+ "markdown": "Custom Regex Inspection\n\nInspection ID: CustomRegExpInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CustomRegExpInspection",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "IncorrectFormatting",
+ "shortDescription": {
+ "text": "Incorrect formatting"
+ },
+ "fullDescription": {
+ "text": "Reports formatting issues that appear if your code doesn't follow your project's code style settings. This inspection is not compatible with languages that require third-party formatters for code formatting, for example, Go or C with CLangFormat enabled. Inspection ID: IncorrectFormatting",
+ "markdown": "Reports formatting issues that appear if your code doesn't\nfollow your project's code style settings.\n\n\nThis inspection is not compatible with languages that require\nthird-party formatters for code formatting, for example, Go or\nC with CLangFormat enabled.\n\nInspection ID: IncorrectFormatting"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "IncorrectFormatting",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "General",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlExtraClosingTag",
+ "shortDescription": {
+ "text": "Redundant closing tag"
+ },
+ "fullDescription": {
+ "text": "Reports redundant closing tags on empty elements, for example, 'img' or 'br'. Example: '\n \n
\n \n ' After the quick-fix is applied: '\n \n
\n \n ' Inspection ID: HtmlExtraClosingTag",
+ "markdown": "Reports redundant closing tags on empty elements, for example, `img` or `br`.\n\n**Example:**\n\n\n \n \n
\n \n \n\nAfter the quick-fix is applied:\n\n\n \n \n
\n \n \n\nInspection ID: HtmlExtraClosingTag"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlExtraClosingTag",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlUnknownAnchorTarget",
+ "shortDescription": {
+ "text": "Unresolved fragment in a link"
+ },
+ "fullDescription": {
+ "text": "Reports an unresolved last part of an URL after the '#' sign. Inspection ID: HtmlUnknownAnchorTarget",
+ "markdown": "Reports an unresolved last part of an URL after the `#` sign.\n\nInspection ID: HtmlUnknownAnchorTarget"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlUnknownAnchorTarget",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpUnexpectedAnchor",
+ "shortDescription": {
+ "text": "Begin or end anchor in unexpected position"
+ },
+ "fullDescription": {
+ "text": "Reports '^' or '\\A' anchors not at the beginning of the pattern and '$', '\\Z' or '\\z' anchors not at the end of the pattern. In the wrong position these RegExp anchors prevent the pattern from matching anything. In case of the '^' and '$' anchors, most likely the literal character was meant and the escape forgotten. Example: '(Price $10)' New in 2018.1 Inspection ID: RegExpUnexpectedAnchor",
+ "markdown": "Reports `^` or `\\A` anchors not at the beginning of the pattern and `$`, `\\Z` or `\\z` anchors not at the end of the pattern. In the wrong position these RegExp anchors prevent the pattern from matching anything. In case of the `^` and `$` anchors, most likely the literal character was meant and the escape forgotten.\n\n**Example:**\n\n\n (Price $10)\n\n\nNew in 2018.1\n\nInspection ID: RegExpUnexpectedAnchor"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpUnexpectedAnchor",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "SpellCheckingInspection",
+ "shortDescription": {
+ "text": "Typo"
+ },
+ "fullDescription": {
+ "text": "Reports typos and misspellings in your code, comments, and literals and fixes them with one click. Inspection ID: SpellCheckingInspection",
+ "markdown": "Reports typos and misspellings in your code, comments, and literals and fixes them with one click.\n\nInspection ID: SpellCheckingInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "SpellCheckingInspection",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Proofreading",
+ "index": 70,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CheckXmlFileWithXercesValidator",
+ "shortDescription": {
+ "text": "Failed external validation"
+ },
+ "fullDescription": {
+ "text": "Reports a discrepancy in an XML file with the specified DTD or schema detected by the Xerces validator. Inspection ID: CheckXmlFileWithXercesValidator",
+ "markdown": "Reports a discrepancy in an XML file with the specified DTD or schema detected by the Xerces validator.\n\nInspection ID: CheckXmlFileWithXercesValidator"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CheckXmlFileWithXercesValidator",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlUnknownTag",
+ "shortDescription": {
+ "text": "Unknown tag"
+ },
+ "fullDescription": {
+ "text": "Reports an unknown HTML tag. Suggests configuring tags that should not be reported. Inspection ID: HtmlUnknownTag",
+ "markdown": "Reports an unknown HTML tag. Suggests configuring tags that should not be reported.\n\nInspection ID: HtmlUnknownTag"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlUnknownTag",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpEscapedMetaCharacter",
+ "shortDescription": {
+ "text": "Escaped meta character"
+ },
+ "fullDescription": {
+ "text": "Reports escaped meta characters. Some RegExp coding styles specify that meta characters should be placed inside a character class, to make the regular expression easier to understand. This inspection does not warn about the meta character '[', ']' and '^', because those would need additional escaping inside a character class. Example: '\\d+\\.\\d+' After the quick-fix is applied: '\\d+[.]\\d+' New in 2017.1 Inspection ID: RegExpEscapedMetaCharacter",
+ "markdown": "Reports escaped meta characters. Some RegExp coding styles specify that meta characters should be placed inside a character class, to make the regular expression easier to understand. This inspection does not warn about the meta character `[`, `]` and `^`, because those would need additional escaping inside a character class.\n\n**Example:**\n\n\n \\d+\\.\\d+\n\nAfter the quick-fix is applied:\n\n\n \\d+[.]\\d+\n\nNew in 2017.1\n\nInspection ID: RegExpEscapedMetaCharacter"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RegExpEscapedMetaCharacter",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XmlHighlighting",
+ "shortDescription": {
+ "text": "XML highlighting"
+ },
+ "fullDescription": {
+ "text": "Reports XML validation problems in the results of a batch code inspection. Inspection ID: XmlHighlighting",
+ "markdown": "Reports XML validation problems in the results of a batch code inspection.\n\nInspection ID: XmlHighlighting"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "XmlHighlighting",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XmlDuplicatedId",
+ "shortDescription": {
+ "text": "Duplicate 'id' attribute"
+ },
+ "fullDescription": {
+ "text": "Reports a duplicate values of the 'id' attribute in XML and HTML. Inspection ID: XmlDuplicatedId",
+ "markdown": "Reports a duplicate values of the `id` attribute in XML and HTML.\n\nInspection ID: XmlDuplicatedId"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "XmlDuplicatedId",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpDuplicateCharacterInClass",
+ "shortDescription": {
+ "text": "Duplicate character in character class"
+ },
+ "fullDescription": {
+ "text": "Reports duplicate characters inside a RegExp character class. Duplicate characters are unnecessary and can be removed without changing the semantics of the regex. Example: '[aabc]' After the quick-fix is applied: '[abc]' Inspection ID: RegExpDuplicateCharacterInClass",
+ "markdown": "Reports duplicate characters inside a RegExp character class. Duplicate characters are unnecessary and can be removed without changing the semantics of the regex.\n\n**Example:**\n\n\n [aabc]\n\nAfter the quick-fix is applied:\n\n\n [abc]\n\nInspection ID: RegExpDuplicateCharacterInClass"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpDuplicateCharacterInClass",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XmlInvalidId",
+ "shortDescription": {
+ "text": "Unresolved 'id' reference"
+ },
+ "fullDescription": {
+ "text": "Reports the use of the 'id' that is not defined anywhere in XML and HTML. Inspection ID: XmlInvalidId",
+ "markdown": "Reports the use of the `id` that is not defined anywhere in XML and HTML.\n\nInspection ID: XmlInvalidId"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "XmlInvalidId",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XmlUnboundNsPrefix",
+ "shortDescription": {
+ "text": "Unbound namespace prefix"
+ },
+ "fullDescription": {
+ "text": "Reports an unbound namespace prefix in XML. Inspection ID: XmlUnboundNsPrefix",
+ "markdown": "Reports an unbound namespace prefix in XML.\n\nInspection ID: XmlUnboundNsPrefix"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "XmlUnboundNsPrefix",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RequiredAttributes",
+ "shortDescription": {
+ "text": "Missing required attribute"
+ },
+ "fullDescription": {
+ "text": "Reports a missing mandatory attribute in an XML/HTML tag. Suggests configuring attributes that should not be reported. Inspection ID: RequiredAttributes",
+ "markdown": "Reports a missing mandatory attribute in an XML/HTML tag. Suggests configuring attributes that should not be reported.\n\nInspection ID: RequiredAttributes"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RequiredAttributes",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReassignedToPlainText",
+ "shortDescription": {
+ "text": "Reassigned to plain text"
+ },
+ "fullDescription": {
+ "text": "Reports files that were explicitly re-assigned to Plain Text File Type. This association is unnecessary because the platform auto-detects text files by content automatically. You can dismiss this warning by removing the file type association in Settings | Editor | File Types | Text. Inspection ID: ReassignedToPlainText",
+ "markdown": "Reports files that were explicitly re-assigned to Plain Text File Type. This association is unnecessary because the platform auto-detects text files by content automatically.\n\nYou can dismiss this warning by removing the file type association\nin **Settings \\| Editor \\| File Types \\| Text**.\n\nInspection ID: ReassignedToPlainText"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ReassignedToPlainText",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "General",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XmlUnusedNamespaceDeclaration",
+ "shortDescription": {
+ "text": "Unused schema declaration"
+ },
+ "fullDescription": {
+ "text": "Reports an unused namespace declaration or location hint in XML. Inspection ID: XmlUnusedNamespaceDeclaration",
+ "markdown": "Reports an unused namespace declaration or location hint in XML.\n\nInspection ID: XmlUnusedNamespaceDeclaration"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "XmlUnusedNamespaceDeclaration",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpRedundantClassElement",
+ "shortDescription": {
+ "text": "Redundant '\\d', '[:digit:]', or '\\D' class elements"
+ },
+ "fullDescription": {
+ "text": "Reports redundant '\\d' or '[:digit:]' that are used in one class with '\\w' or '[:word:]' ('\\D' with '\\W') and can be removed. Example: '[\\w\\d]' After the quick-fix is applied: '[\\w]' New in 2022.2 Inspection ID: RegExpRedundantClassElement",
+ "markdown": "Reports redundant `\\d` or `[:digit:]` that are used in one class with `\\w` or `[:word:]` (`\\D` with `\\W`) and can be removed.\n\n**Example:**\n\n\n [\\w\\d]\n\nAfter the quick-fix is applied:\n\n\n [\\w]\n\nNew in 2022.2\n\nInspection ID: RegExpRedundantClassElement"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RegExpRedundantClassElement",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpSimplifiable",
+ "shortDescription": {
+ "text": "Regular expression can be simplified"
+ },
+ "fullDescription": {
+ "text": "Reports regular expressions that can be simplified. Example: '[a] xx* [ah-hz]' After the quick-fix is applied: 'a x+ [ahz]' New in 2022.1 Inspection ID: RegExpSimplifiable",
+ "markdown": "Reports regular expressions that can be simplified.\n\n**Example:**\n\n\n [a] xx* [ah-hz]\n\nAfter the quick-fix is applied:\n\n\n a x+ [ahz]\n\nNew in 2022.1\n\nInspection ID: RegExpSimplifiable"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RegExpSimplifiable",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpEmptyAlternationBranch",
+ "shortDescription": {
+ "text": "Empty branch in alternation"
+ },
+ "fullDescription": {
+ "text": "Reports empty branches in a RegExp alternation. An empty branch will only match the empty string, and in most cases that is not what is desired. This inspection will not report a single empty branch at the start or the end of an alternation. Example: '(alpha||bravo)' After the quick-fix is applied: '(alpha|bravo)' New in 2017.2 Inspection ID: RegExpEmptyAlternationBranch",
+ "markdown": "Reports empty branches in a RegExp alternation. An empty branch will only match the empty string, and in most cases that is not what is desired. This inspection will not report a single empty branch at the start or the end of an alternation.\n\n**Example:**\n\n\n (alpha||bravo)\n\nAfter the quick-fix is applied:\n\n\n (alpha|bravo)\n\nNew in 2017.2\n\nInspection ID: RegExpEmptyAlternationBranch"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpEmptyAlternationBranch",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Annotator",
+ "shortDescription": {
+ "text": "Annotator"
+ },
+ "fullDescription": {
+ "text": "Reports issues essential to this file (e.g., syntax errors) in the result of a batch code inspection run. These issues are usually always highlighted in the editor and can't be configured, unlike inspections. These options control the scope of checks performed by this inspection: Option \"Report syntax errors\": report parser-related issues. Option \"Report issues from language-specific annotators\": report issues found by annotators configured for the relevant language. See Custom Language Support: Annotators for details. Option \"Report other highlighting problems\": report issues specific to the language of the current file (e.g., type mismatches or unreported exceptions). See Custom Language Support: Highlighting for details. Inspection ID: Annotator",
+ "markdown": "Reports issues essential to this file (e.g., syntax errors) in the result of a batch code inspection run. These issues are usually always highlighted in the editor and can't be configured, unlike inspections. These options control the scope of checks performed by this inspection:\n\n* Option \"**Report syntax errors**\": report parser-related issues.\n* Option \"**Report issues from language-specific annotators** \": report issues found by annotators configured for the relevant language. See [Custom Language Support: Annotators](https://plugins.jetbrains.com/docs/intellij/annotator.html) for details.\n* Option \"**Report other highlighting problems** \": report issues specific to the language of the current file (e.g., type mismatches or unreported exceptions). See [Custom Language Support: Highlighting](https://plugins.jetbrains.com/docs/intellij/syntax-highlighting-and-error-highlighting.html#semantic-highlighting) for details.\n\nInspection ID: Annotator"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "Annotator",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "General",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XmlPathReference",
+ "shortDescription": {
+ "text": "Unresolved file reference"
+ },
+ "fullDescription": {
+ "text": "Reports an unresolved file reference in XML. Inspection ID: XmlPathReference",
+ "markdown": "Reports an unresolved file reference in XML.\n\nInspection ID: XmlPathReference"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "XmlPathReference",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpUnnecessaryNonCapturingGroup",
+ "shortDescription": {
+ "text": "Unnecessary non-capturing group"
+ },
+ "fullDescription": {
+ "text": "Reports unnecessary non-capturing groups, which have no influence on the match result. Example: 'Everybody be cool, (?:this) is a robbery!' After the quick-fix is applied: 'Everybody be cool, this is a robbery!' New in 2021.1 Inspection ID: RegExpUnnecessaryNonCapturingGroup",
+ "markdown": "Reports unnecessary non-capturing groups, which have no influence on the match result.\n\n**Example:**\n\n\n Everybody be cool, (?:this) is a robbery!\n\nAfter the quick-fix is applied:\n\n\n Everybody be cool, this is a robbery!\n\nNew in 2021.1\n\nInspection ID: RegExpUnnecessaryNonCapturingGroup"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpUnnecessaryNonCapturingGroup",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "TodoComment",
+ "shortDescription": {
+ "text": "TODO comment"
+ },
+ "fullDescription": {
+ "text": "Reports TODO comments in your code. You can configure the format for TODO comments in Settings | Editor | TODO. Enable the Only warn on TODO comments without any details option to only warn on empty TODO comments, that don't provide any description on the task that should be done. Disable to report all TODO comments. Inspection ID: TodoComment",
+ "markdown": "Reports **TODO** comments in your code.\n\nYou can configure the format for **TODO** comments in [Settings \\| Editor \\| TODO](settings://preferences.toDoOptions).\n\nEnable the **Only warn on TODO comments without any details** option to only warn on empty TODO comments, that\ndon't provide any description on the task that should be done. Disable to report all TODO comments.\n\nInspection ID: TodoComment"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "TodoComment",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "General",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XmlDeprecatedElement",
+ "shortDescription": {
+ "text": "Deprecated symbol"
+ },
+ "fullDescription": {
+ "text": "Reports a deprecated XML element or attribute. Symbols can be marked by XML comment or documentation tag with text 'deprecated'. Inspection ID: XmlDeprecatedElement",
+ "markdown": "Reports a deprecated XML element or attribute.\n\nSymbols can be marked by XML comment or documentation tag with text 'deprecated'.\n\nInspection ID: XmlDeprecatedElement"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "XmlDeprecatedElement",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpRedundantNestedCharacterClass",
+ "shortDescription": {
+ "text": "Redundant nested character class"
+ },
+ "fullDescription": {
+ "text": "Reports unnecessary nested character classes. Example: '[a-c[x-z]]' After the quick-fix is applied: '[a-cx-z]' New in 2020.2 Inspection ID: RegExpRedundantNestedCharacterClass",
+ "markdown": "Reports unnecessary nested character classes.\n\n**Example:**\n\n\n [a-c[x-z]]\n\nAfter the quick-fix is applied:\n\n\n [a-cx-z]\n\nNew in 2020.2\n\nInspection ID: RegExpRedundantNestedCharacterClass"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpRedundantNestedCharacterClass",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlWrongAttributeValue",
+ "shortDescription": {
+ "text": "Wrong attribute value"
+ },
+ "fullDescription": {
+ "text": "Reports an incorrect HTML attribute value. Inspection ID: HtmlWrongAttributeValue",
+ "markdown": "Reports an incorrect HTML attribute value.\n\nInspection ID: HtmlWrongAttributeValue"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlWrongAttributeValue",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XmlDefaultAttributeValue",
+ "shortDescription": {
+ "text": "Redundant attribute with default value"
+ },
+ "fullDescription": {
+ "text": "Reports a redundant assignment of the default value to an XML attribute. Inspection ID: XmlDefaultAttributeValue",
+ "markdown": "Reports a redundant assignment of the default value to an XML attribute.\n\nInspection ID: XmlDefaultAttributeValue"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "XmlDefaultAttributeValue",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpOctalEscape",
+ "shortDescription": {
+ "text": "Octal escape"
+ },
+ "fullDescription": {
+ "text": "Reports octal escapes, which are easily confused with back references. Use hexadecimal escapes to avoid confusion. Example: '\\07' After the quick-fix is applied: '\\x07' New in 2017.1 Inspection ID: RegExpOctalEscape",
+ "markdown": "Reports octal escapes, which are easily confused with back references. Use hexadecimal escapes to avoid confusion.\n\n**Example:**\n\n\n \\07\n\nAfter the quick-fix is applied:\n\n\n \\x07\n\nNew in 2017.1\n\nInspection ID: RegExpOctalEscape"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RegExpOctalEscape",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnusedDefine",
+ "shortDescription": {
+ "text": "Unused define"
+ },
+ "fullDescription": {
+ "text": "Reports an unused named pattern ('define') in a RELAX-NG file (XML or Compact Syntax). 'define' elements that are used through an include in another file are ignored. Inspection ID: UnusedDefine",
+ "markdown": "Reports an unused named pattern (`define`) in a RELAX-NG file (XML or Compact Syntax). `define` elements that are used through an include in another file are ignored.\n\nInspection ID: UnusedDefine"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "UnusedDefine",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RELAX NG",
+ "index": 61,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "EmptyDirectory",
+ "shortDescription": {
+ "text": "Empty directory"
+ },
+ "fullDescription": {
+ "text": "Reports empty directories. Available only from Code | Inspect Code or Code | Analyze Code | Run Inspection by Name and isn't reported in the editor. Use the Only report empty directories located under a source folder option to have only directories under source roots reported. Inspection ID: EmptyDirectory",
+ "markdown": "Reports empty directories.\n\nAvailable only from **Code \\| Inspect Code** or\n**Code \\| Analyze Code \\| Run Inspection by Name** and isn't reported in the editor.\n\nUse the **Only report empty directories located under a source folder** option to have only directories under source\nroots reported.\n\n\nInspection ID: EmptyDirectory"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "EmptyDirectory",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "General",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpAnonymousGroup",
+ "shortDescription": {
+ "text": "Anonymous capturing group or numeric back reference"
+ },
+ "fullDescription": {
+ "text": "Reports anonymous capturing groups and numeric back references in a RegExp. These are only reported when the RegExp dialect supports named group and named group references. Named groups and named back references improve code readability and are recommended to use instead. When a capture is not needed, matching can be more performant and use less memory by using a non-capturing group, i.e. '(?:xxx)' instead of '(xxx)'. Example: '(\\d\\d\\d\\d)\\1' A better regex pattern could look like this: '(?\\d\\d\\d\\d)\\k' New in 2017.2 Inspection ID: RegExpAnonymousGroup",
+ "markdown": "Reports anonymous capturing groups and numeric back references in a RegExp. These are only reported when the RegExp dialect supports named group and named group references. Named groups and named back references improve code readability and are recommended to use instead. When a capture is not needed, matching can be more performant and use less memory by using a non-capturing group, i.e. `(?:xxx)` instead of `(xxx)`.\n\n**Example:**\n\n\n (\\d\\d\\d\\d)\\1\n\nA better regex pattern could look like this:\n\n\n (?\\d\\d\\d\\d)\\k\n\nNew in 2017.2\n\nInspection ID: RegExpAnonymousGroup"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpAnonymousGroup",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CheckDtdRefs",
+ "shortDescription": {
+ "text": "Unresolved DTD reference"
+ },
+ "fullDescription": {
+ "text": "Reports inconsistency in a DTD-specific reference, for example, in a reference to an XML entity or to a DTD element declaration. Works in DTD an XML files. Inspection ID: CheckDtdRefs",
+ "markdown": "Reports inconsistency in a DTD-specific reference, for example, in a reference to an XML entity or to a DTD element declaration. Works in DTD an XML files.\n\nInspection ID: CheckDtdRefs"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CheckDtdRefs",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NonAsciiCharacters",
+ "shortDescription": {
+ "text": "Non-ASCII characters"
+ },
+ "fullDescription": {
+ "text": "Reports code elements that use non-ASCII symbols in an unusual context. Example: Non-ASCII characters used in identifiers, strings, or comments. Identifiers written in different languages, such as 'myСollection' with the letter 'C' written in Cyrillic. Comments or strings containing Unicode symbols, such as long dashes and arrows. Inspection ID: NonAsciiCharacters",
+ "markdown": "Reports code elements that use non-ASCII symbols in an unusual context.\n\nExample:\n\n* Non-ASCII characters used in identifiers, strings, or comments.\n* Identifiers written in different languages, such as `my`**С**`ollection` with the letter **C** written in Cyrillic.\n* Comments or strings containing Unicode symbols, such as long dashes and arrows.\n\nInspection ID: NonAsciiCharacters"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NonAsciiCharacters",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Internationalization",
+ "index": 78,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XmlUnresolvedReference",
+ "shortDescription": {
+ "text": "Unresolved references"
+ },
+ "fullDescription": {
+ "text": "Reports an unresolved references in XML. Inspection ID: XmlUnresolvedReference",
+ "markdown": "Reports an unresolved references in XML.\n\nInspection ID: XmlUnresolvedReference"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "XmlUnresolvedReference",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 46,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "LossyEncoding",
+ "shortDescription": {
+ "text": "Lossy encoding"
+ },
+ "fullDescription": {
+ "text": "Reports characters that cannot be displayed because of the current document encoding. Examples: If you type international characters in a document with the US-ASCII charset, some characters will be lost on save. If you load a UTF-8-encoded file using the ISO-8859-1 one-byte charset, some characters will be displayed incorrectly. You can fix this by changing the file encoding either by specifying the encoding directly in the file, e.g. by editing 'encoding=' attribute in the XML prolog of XML file, or by changing the corresponding options in Settings | Editor | File Encodings. Inspection ID: LossyEncoding",
+ "markdown": "Reports characters that cannot be displayed because of the current document encoding.\n\nExamples:\n\n* If you type international characters in a document with the **US-ASCII** charset, some characters will be lost on save.\n* If you load a **UTF-8** -encoded file using the **ISO-8859-1** one-byte charset, some characters will be displayed incorrectly.\n\nYou can fix this by changing the file encoding\neither by specifying the encoding directly in the file, e.g. by editing `encoding=` attribute in the XML prolog of XML file,\nor by changing the corresponding options in **Settings \\| Editor \\| File Encodings**.\n\nInspection ID: LossyEncoding"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "LossyEncoding",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Internationalization",
+ "index": 78,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpRepeatedSpace",
+ "shortDescription": {
+ "text": "Consecutive spaces"
+ },
+ "fullDescription": {
+ "text": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier. Example: '( )' After the quick-fix is applied: '( {5})' New in 2017.1 Inspection ID: RegExpRepeatedSpace",
+ "markdown": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier.\n\n**Example:**\n\n\n ( )\n\nAfter the quick-fix is applied:\n\n\n ( {5})\n\n\nNew in 2017.1\n\nInspection ID: RegExpRepeatedSpace"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpRepeatedSpace",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpDuplicateAlternationBranch",
+ "shortDescription": {
+ "text": "Duplicate branch in alternation"
+ },
+ "fullDescription": {
+ "text": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression. Example: '(alpha|bravo|charlie|alpha)' After the quick-fix is applied: '(alpha|bravo|charlie)' New in 2017.1 Inspection ID: RegExpDuplicateAlternationBranch",
+ "markdown": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression.\n\n**Example:**\n\n\n (alpha|bravo|charlie|alpha)\n\nAfter the quick-fix is applied:\n\n\n (alpha|bravo|charlie)\n\nNew in 2017.1\n\nInspection ID: RegExpDuplicateAlternationBranch"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RegExpDuplicateAlternationBranch",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExp",
+ "index": 51,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "IgnoreFileDuplicateEntry",
+ "shortDescription": {
+ "text": "Ignore file duplicates"
+ },
+ "fullDescription": {
+ "text": "Reports duplicate entries (patterns) in the ignore file (e.g. .gitignore, .hgignore). Duplicate entries in these files are redundant and can be removed. Example: '# Output directories\n /out/\n /target/\n /out/' Inspection ID: IgnoreFileDuplicateEntry",
+ "markdown": "Reports duplicate entries (patterns) in the ignore file (e.g. .gitignore, .hgignore). Duplicate entries in these files are redundant and can be removed.\n\nExample:\n\n\n # Output directories\n /out/\n /target/\n /out/\n\nInspection ID: IgnoreFileDuplicateEntry"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "IgnoreFileDuplicateEntry",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Version control",
+ "index": 80,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CheckEmptyScriptTag",
+ "shortDescription": {
+ "text": "Empty tag"
+ },
+ "fullDescription": {
+ "text": "Reports empty tags that do not work in some browsers. Example: '\n \n ' After the quick-fix is applied: '\n \n ' Inspection ID: CheckEmptyScriptTag",
+ "markdown": "Reports empty tags that do not work in some browsers.\n\n**Example:**\n\n\n \n \n \n\nAfter the quick-fix is applied:\n\n\n \n \n \n\nInspection ID: CheckEmptyScriptTag"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CheckEmptyScriptTag",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ {
+ "name": "gherkin",
+ "version": "252.24448.0",
+ "rules": [
+ {
+ "id": "GherkinScenarioToScenarioOutline",
+ "shortDescription": {
+ "text": "Scenario with Examples section"
+ },
+ "fullDescription": {
+ "text": "Reports Gherkin scenarios that contain an 'Examples' section. Use the quick-fix to convert 'Scenario' to 'Scenario Outline'. Inspection ID: GherkinScenarioToScenarioOutline",
+ "markdown": "Reports Gherkin scenarios that contain an `Examples` section.\n\nUse the quick-fix to convert `Scenario` to `Scenario Outline`.\n\nInspection ID: GherkinScenarioToScenarioOutline"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "GherkinScenarioToScenarioOutline",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Cucumber",
+ "index": 20,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "GherkinMisplacedBackground",
+ "shortDescription": {
+ "text": "Misplaced background section"
+ },
+ "fullDescription": {
+ "text": "Reports 'Background' sections that are located incorrectly. The 'Background' section must be located before the 'Scenario' section. Inspection ID: GherkinMisplacedBackground",
+ "markdown": "Reports `Background` sections that are located incorrectly. The `Background` section must be located before the `Scenario` section.\n\nInspection ID: GherkinMisplacedBackground"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "GherkinMisplacedBackground",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Cucumber",
+ "index": 20,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CucumberMissedExamples",
+ "shortDescription": {
+ "text": "Missing examples section"
+ },
+ "fullDescription": {
+ "text": "Reports scenario outlines in Cucumber .feature files that do not have the 'Examples' section. Use the quick-fix to automatically create the 'Examples' section with a pre-filled table header. Inspection ID: CucumberMissedExamples",
+ "markdown": "Reports scenario outlines in Cucumber .feature files that do not have the `Examples` section.\n\nUse the quick-fix to automatically create the `Examples` section with a pre-filled table header.\n\nInspection ID: CucumberMissedExamples"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CucumberMissedExamples",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Cucumber",
+ "index": 20,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CucumberTableInspection",
+ "shortDescription": {
+ "text": "Unused or missing columns in Cucumber tables"
+ },
+ "fullDescription": {
+ "text": "Reports tables in 'Examples' sections in Cucumber .feature files with unused or missing columns. Inspection ID: CucumberTableInspection",
+ "markdown": "Reports tables in `Examples` sections in Cucumber .feature files with unused or missing columns.\n\nInspection ID: CucumberTableInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CucumberTableInspection",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Cucumber",
+ "index": 20,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CucumberUndefinedStep",
+ "shortDescription": {
+ "text": "Undefined step"
+ },
+ "fullDescription": {
+ "text": "Reports steps in Cucumber (or some other Gherkin) .feature files that do not have matching step definitions. Use the quick-fix to automatically create a new step definition. Inspection ID: CucumberUndefinedStep",
+ "markdown": "Reports steps in Cucumber (or some other Gherkin) .feature files that do not have matching step definitions.\n\nUse the quick-fix to automatically create a new step definition.\n\nInspection ID: CucumberUndefinedStep"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CucumberUndefinedStep",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Cucumber",
+ "index": 20,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "GherkinBrokenTableInspection",
+ "shortDescription": {
+ "text": "Gherkin table is broken"
+ },
+ "fullDescription": {
+ "text": "Reports a table if there is at least one row with the number of cells different from the number of cells in the table header. Inspection ID: GherkinBrokenTableInspection",
+ "markdown": "Reports a table if there is at least one row with the number of cells different from the number of cells in the table header.\n\nInspection ID: GherkinBrokenTableInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "GherkinBrokenTableInspection",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Cucumber",
+ "index": 20,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CucumberExamplesColon",
+ "shortDescription": {
+ "text": "Missing ':' after examples keyword"
+ },
+ "fullDescription": {
+ "text": "Reports 'Examples' sections in Cucumber .feature files if they do not have ':' after the 'Examples' keyword. Inspection ID: CucumberExamplesColon",
+ "markdown": "Reports `Examples` sections in Cucumber .feature files if they do not have ':' after the `Examples` keyword.\n\nInspection ID: CucumberExamplesColon"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CucumberExamplesColon",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Cucumber",
+ "index": 20,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ {
+ "name": "HtmlTools",
+ "version": "252.24448.0",
+ "rules": [
+ {
+ "id": "HtmlRequiredAltAttribute",
+ "shortDescription": {
+ "text": "Missing required 'alt' attribute"
+ },
+ "fullDescription": {
+ "text": "Reports a missing 'alt' attribute in a 'img' or 'applet' tag or in a 'area' element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: H24, H35, H36, H37. Inspection ID: HtmlRequiredAltAttribute",
+ "markdown": "Reports a missing `alt` attribute in a `img` or `applet` tag or in a `area` element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: [H24](https://www.w3.org/TR/WCAG20-TECHS/H24.html), [H35](https://www.w3.org/TR/WCAG20-TECHS/H35.html), [H36](https://www.w3.org/TR/WCAG20-TECHS/H36.html), [H37](https://www.w3.org/TR/WCAG20-TECHS/H37.html).\n\nInspection ID: HtmlRequiredAltAttribute"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlRequiredAltAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Accessibility",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlFormInputWithoutLabel",
+ "shortDescription": {
+ "text": "Missing associated label"
+ },
+ "fullDescription": {
+ "text": "Reports a form element ('input', 'textarea', or 'select') without an associated label. Suggests creating a new label. Based on WCAG 2.0: H44. Inspection ID: HtmlFormInputWithoutLabel",
+ "markdown": "Reports a form element (`input`, `textarea`, or `select`) without an associated label. Suggests creating a new label. Based on WCAG 2.0: [H44](https://www.w3.org/TR/WCAG20-TECHS/H44.html). \n\nInspection ID: HtmlFormInputWithoutLabel"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlFormInputWithoutLabel",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Accessibility",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlRequiredTitleAttribute",
+ "shortDescription": {
+ "text": "Missing required 'title' attribute"
+ },
+ "fullDescription": {
+ "text": "Reports a missing title attribute 'frame', 'iframe', 'dl', and 'a' tags. Suggests adding a title attribute. Based on WCAG 2.0: H33, H40, and H64. Inspection ID: HtmlRequiredTitleAttribute",
+ "markdown": "Reports a missing title attribute `frame`, `iframe`, `dl`, and `a` tags. Suggests adding a title attribute. Based on WCAG 2.0: [H33](https://www.w3.org/TR/WCAG20-TECHS/H33.html), [H40](https://www.w3.org/TR/WCAG20-TECHS/H40.html), and [H64](https://www.w3.org/TR/WCAG20-TECHS/H64.html).\n\nInspection ID: HtmlRequiredTitleAttribute"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "HtmlRequiredTitleAttribute",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Accessibility",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlDeprecatedTag",
+ "shortDescription": {
+ "text": "Obsolete tag"
+ },
+ "fullDescription": {
+ "text": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag. Inspection ID: HtmlDeprecatedTag",
+ "markdown": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag.\n\nInspection ID: HtmlDeprecatedTag"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlDeprecatedTag",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CheckImageSize",
+ "shortDescription": {
+ "text": "Mismatched image size"
+ },
+ "fullDescription": {
+ "text": "Reports a 'width' and 'height' attribute value of a 'img' tag that is different from the actual width and height of the referenced image. Inspection ID: CheckImageSize",
+ "markdown": "Reports a `width` and `height` attribute value of a `img` tag that is different from the actual width and height of the referenced image.\n\nInspection ID: CheckImageSize"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CheckImageSize",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Performance"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlRequiredSummaryAttribute",
+ "shortDescription": {
+ "text": "Missing required 'summary' attribute"
+ },
+ "fullDescription": {
+ "text": "Reports a missing 'summary' attribute in a 'table' tag. Suggests adding a'summary' attribute. Based on WCAG 2.0: H73. Inspection ID: HtmlRequiredSummaryAttribute",
+ "markdown": "Reports a missing `summary` attribute in a `table` tag. Suggests adding a`summary` attribute. Based on WCAG 2.0: [H73](https://www.w3.org/TR/WCAG20-TECHS/H73.html).\n\nInspection ID: HtmlRequiredSummaryAttribute"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "HtmlRequiredSummaryAttribute",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Accessibility",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlRequiredLangAttribute",
+ "shortDescription": {
+ "text": "Missing required 'lang' attribute"
+ },
+ "fullDescription": {
+ "text": "Reports a missing 'lang' (or 'xml:lang') attribute in a 'html' tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: H57. Inspection ID: HtmlRequiredLangAttribute",
+ "markdown": "Reports a missing `lang` (or `xml:lang`) attribute in a `html` tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: [H57](https://www.w3.org/TR/WCAG20-TECHS/H57.html).\n\nInspection ID: HtmlRequiredLangAttribute"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlRequiredLangAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Accessibility",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlNonExistentInternetResource",
+ "shortDescription": {
+ "text": "Unresolved web link"
+ },
+ "fullDescription": {
+ "text": "Reports an unresolved web link. Works by making network requests in the background. Inspection ID: HtmlNonExistentInternetResource",
+ "markdown": "Reports an unresolved web link. Works by making network requests in the background.\n\nInspection ID: HtmlNonExistentInternetResource"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlNonExistentInternetResource",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlRequiredTitleElement",
+ "shortDescription": {
+ "text": "Missing required 'title' element"
+ },
+ "fullDescription": {
+ "text": "Reports a missing 'title' element inside a 'head' section. Suggests adding a 'title' element. The title should describe the document. Based on WCAG 2.0: H25. Inspection ID: HtmlRequiredTitleElement",
+ "markdown": "Reports a missing `title` element inside a `head` section. Suggests adding a `title` element. The title should describe the document. Based on WCAG 2.0: [H25](https://www.w3.org/TR/WCAG20-TECHS/H25.html).\n\nInspection ID: HtmlRequiredTitleElement"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlRequiredTitleElement",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Accessibility",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlDeprecatedAttribute",
+ "shortDescription": {
+ "text": "Obsolete attribute"
+ },
+ "fullDescription": {
+ "text": "Reports an obsolete HTML5 attribute. Inspection ID: HtmlDeprecatedAttribute",
+ "markdown": "Reports an obsolete HTML5 attribute.\n\nInspection ID: HtmlDeprecatedAttribute"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlDeprecatedAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlPresentationalElement",
+ "shortDescription": {
+ "text": "Presentational tag"
+ },
+ "fullDescription": {
+ "text": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag. Inspection ID: HtmlPresentationalElement",
+ "markdown": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag.\n\nInspection ID: HtmlPresentationalElement"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "HtmlPresentationalElement",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ {
+ "name": "com.intellij.css",
+ "version": "252.24448.0",
+ "rules": [
+ {
+ "id": "CssInvalidHtmlTagReference",
+ "shortDescription": {
+ "text": "Invalid type selector"
+ },
+ "fullDescription": {
+ "text": "Reports a CSS type selector that matches an unknown HTML element. Inspection ID: CssInvalidHtmlTagReference",
+ "markdown": "Reports a CSS [type selector](https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors) that matches an unknown HTML element.\n\nInspection ID: CssInvalidHtmlTagReference"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssInvalidHtmlTagReference",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssInvalidCustomPropertyAtRuleDeclaration",
+ "shortDescription": {
+ "text": "Invalid @property declaration"
+ },
+ "fullDescription": {
+ "text": "Reports a missing required syntax, inherits, or initial-value property in a declaration of a custom property. Inspection ID: CssInvalidCustomPropertyAtRuleDeclaration",
+ "markdown": "Reports a missing required [syntax](https://developer.mozilla.org/en-US/docs/web/css/@property/syntax), [inherits](https://developer.mozilla.org/en-US/docs/web/css/@property/inherits), or [initial-value](https://developer.mozilla.org/en-US/docs/web/css/@property/initial-value) property in a declaration of a custom property.\n\nInspection ID: CssInvalidCustomPropertyAtRuleDeclaration"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssInvalidCustomPropertyAtRuleDeclaration",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssInvalidFunction",
+ "shortDescription": {
+ "text": "Invalid function"
+ },
+ "fullDescription": {
+ "text": "Reports an unknown CSS function or an incorrect function parameter. Inspection ID: CssInvalidFunction",
+ "markdown": "Reports an unknown [CSS function](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Functions) or an incorrect function parameter.\n\nInspection ID: CssInvalidFunction"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssInvalidFunction",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssMissingSemicolon",
+ "shortDescription": {
+ "text": "Missing semicolon"
+ },
+ "fullDescription": {
+ "text": "Reports a missing semicolon at the end of a declaration. Inspection ID: CssMissingSemicolon",
+ "markdown": "Reports a missing semicolon at the end of a declaration.\n\nInspection ID: CssMissingSemicolon"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssMissingSemicolon",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Code style issues",
+ "index": 49,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssRedundantUnit",
+ "shortDescription": {
+ "text": "Redundant measure unit"
+ },
+ "fullDescription": {
+ "text": "Reports a measure unit of a zero value where units are not required by the specification. Example: 'width: 0px' Inspection ID: CssRedundantUnit",
+ "markdown": "Reports a measure unit of a zero value where units are not required by the specification.\n\n**Example:**\n\n width: 0px\n\nInspection ID: CssRedundantUnit"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssRedundantUnit",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Code style issues",
+ "index": 49,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssMissingComma",
+ "shortDescription": {
+ "text": "Missing comma in selector list"
+ },
+ "fullDescription": {
+ "text": "Reports a multi-line selector. Most likely this means that several single-line selectors are actually intended but a comma is missing at the end of one or several lines. Example: 'input /* comma has probably been forgotten */\n.button {\n margin: 1px;\n}' Inspection ID: CssMissingComma",
+ "markdown": "Reports a multi-line selector. Most likely this means that several single-line selectors are actually intended but a comma is missing at the end of one or several lines.\n\n**Example:**\n\n\n input /* comma has probably been forgotten */\n .button {\n margin: 1px;\n }\n\nInspection ID: CssMissingComma"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssMissingComma",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Probable bugs",
+ "index": 63,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssInvalidPropertyValue",
+ "shortDescription": {
+ "text": "Invalid property value"
+ },
+ "fullDescription": {
+ "text": "Reports an incorrect CSS property value. Inspection ID: CssInvalidPropertyValue",
+ "markdown": "Reports an incorrect CSS property value.\n\nInspection ID: CssInvalidPropertyValue"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssInvalidPropertyValue",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssBrowserCompatibilityForProperties",
+ "shortDescription": {
+ "text": "Property is incompatible with selected browsers"
+ },
+ "fullDescription": {
+ "text": "Reports a CSS property that is not supported by the specified browsers. Based on the MDN Compatibility Data. Inspection ID: CssBrowserCompatibilityForProperties",
+ "markdown": "Reports a CSS property that is not supported by the specified browsers. Based on the [MDN Compatibility Data](https://github.com/mdn/browser-compat-data).\n\nInspection ID: CssBrowserCompatibilityForProperties"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssBrowserCompatibilityForProperties",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 37,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssInvalidCustomPropertyAtRuleName",
+ "shortDescription": {
+ "text": "Invalid @property name"
+ },
+ "fullDescription": {
+ "text": "Reports an invalid custom property name. Custom property name should be prefixed with two dashes. Example: '@property invalid-property-name {\n ...\n}\n\n@property --valid-property-name {\n ...\n}' Inspection ID: CssInvalidCustomPropertyAtRuleName",
+ "markdown": "Reports an invalid custom property name. Custom property name should be prefixed with two dashes.\n\n**Example:**\n\n\n @property invalid-property-name {\n ...\n }\n\n @property --valid-property-name {\n ...\n }\n\nInspection ID: CssInvalidCustomPropertyAtRuleName"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssInvalidCustomPropertyAtRuleName",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssConvertColorToHexInspection",
+ "shortDescription": {
+ "text": "Color could be replaced with #-hex"
+ },
+ "fullDescription": {
+ "text": "Reports an 'rgb()', 'hsl()', or other color function. Suggests replacing a color function with an equivalent hexadecimal notation. Example: 'rgb(12, 15, 255)' After the quick-fix is applied: '#0c0fff'. Inspection ID: CssConvertColorToHexInspection",
+ "markdown": "Reports an `rgb()`, `hsl()`, or other color function.\n\nSuggests replacing a color function with an equivalent hexadecimal notation.\n\n**Example:**\n\n rgb(12, 15, 255)\n\nAfter the quick-fix is applied:\n\n #0c0fff.\n\nInspection ID: CssConvertColorToHexInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssConvertColorToHexInspection",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 37,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssReplaceWithShorthandUnsafely",
+ "shortDescription": {
+ "text": "Properties may probably be replaced with a shorthand"
+ },
+ "fullDescription": {
+ "text": "Reports a set of longhand CSS properties and suggests replacing an incomplete set of longhand CSS properties with a shorthand form, which is however not 100% equivalent in this case. For example, 2 properties: 'outline-color' and 'outline-style' may be replaced with a single 'outline'. Such replacement is not 100% equivalent because shorthands reset all omitted sub-values to their initial states. In this example, switching to the 'outline' shorthand means that 'outline-width' is also set to its initial value, which is 'medium'. This inspection doesn't handle full sets of longhand properties (when switching to shorthand is 100% safe). For such cases see the 'Properties may be safely replaced with a shorthand' inspection instead. Inspection ID: CssReplaceWithShorthandUnsafely",
+ "markdown": "Reports a set of longhand CSS properties and suggests replacing an incomplete set of longhand CSS properties with a shorthand form, which is however not 100% equivalent in this case.\n\n\nFor example, 2 properties: `outline-color` and `outline-style` may be replaced with a single `outline`.\nSuch replacement is not 100% equivalent because shorthands reset all omitted sub-values to their initial states.\nIn this example, switching to the `outline` shorthand means that `outline-width` is also set to its initial value,\nwhich is `medium`.\n\n\nThis inspection doesn't handle full sets of longhand properties (when switching to shorthand is 100% safe).\nFor such cases see the 'Properties may be safely replaced with a shorthand' inspection instead.\n\nInspection ID: CssReplaceWithShorthandUnsafely"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CssReplaceWithShorthandUnsafely",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 37,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssUnknownUnit",
+ "shortDescription": {
+ "text": "Unknown unit"
+ },
+ "fullDescription": {
+ "text": "Reports an unknown unit. Inspection ID: CssUnknownUnit",
+ "markdown": "Reports an unknown unit.\n\nInspection ID: CssUnknownUnit"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssUnknownUnit",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssInvalidMediaFeature",
+ "shortDescription": {
+ "text": "Invalid media feature"
+ },
+ "fullDescription": {
+ "text": "Reports an unknown CSS media feature or an incorrect media feature value. Inspection ID: CssInvalidMediaFeature",
+ "markdown": "Reports an unknown [CSS media feature](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries) or an incorrect media feature value.\n\nInspection ID: CssInvalidMediaFeature"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssInvalidMediaFeature",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssConvertColorToRgbInspection",
+ "shortDescription": {
+ "text": "Color could be replaced with rgb()"
+ },
+ "fullDescription": {
+ "text": "Reports an 'hsl()' or 'hwb()' color function or a hexadecimal color notation. Suggests replacing such color value with an equivalent 'rgb()' or 'rgba()' color function. Example: '#0c0fff' After the quick-fix is applied: 'rgb(12, 15, 255)'. Inspection ID: CssConvertColorToRgbInspection",
+ "markdown": "Reports an `hsl()` or `hwb()` color function or a hexadecimal color notation.\n\nSuggests replacing such color value with an equivalent `rgb()` or `rgba()` color function.\n\n**Example:**\n\n #0c0fff\n\nAfter the quick-fix is applied:\n\n rgb(12, 15, 255).\n\nInspection ID: CssConvertColorToRgbInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssConvertColorToRgbInspection",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 37,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssUnusedSymbol",
+ "shortDescription": {
+ "text": "Unused selector"
+ },
+ "fullDescription": {
+ "text": "Reports a CSS class or an element IDs that appears in selectors but is not used in HTML. Note that complete inspection results are available only when running it via Code | Inspect Code or Code | Analyze Code | Run Inspection by Name. Due to performance reasons, style sheet files are not inspected on the fly. Inspection ID: CssUnusedSymbol",
+ "markdown": "Reports a CSS class or an element IDs that appears in selectors but is not used in HTML.\n\n\nNote that complete inspection results are available only when running it via **Code \\| Inspect Code** or\n**Code \\| Analyze Code \\| Run Inspection by Name**.\nDue to performance reasons, style sheet files are not inspected on the fly.\n\nInspection ID: CssUnusedSymbol"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssUnusedSymbol",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 37,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssDeprecatedValue",
+ "shortDescription": {
+ "text": "Deprecated value"
+ },
+ "fullDescription": {
+ "text": "Reports a deprecated CSS value. Suggests replacing the deprecated value with its valid equivalent. Inspection ID: CssDeprecatedValue",
+ "markdown": "Reports a deprecated CSS value. Suggests replacing the deprecated value with its valid equivalent.\n\nInspection ID: CssDeprecatedValue"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssDeprecatedValue",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 37,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssNonIntegerLengthInPixels",
+ "shortDescription": {
+ "text": "Non-integer length in pixels"
+ },
+ "fullDescription": {
+ "text": "Reports a non-integer length in pixels. Example: 'width: 3.14px' Inspection ID: CssNonIntegerLengthInPixels",
+ "markdown": "Reports a non-integer length in pixels.\n\n**Example:**\n\n width: 3.14px\n\nInspection ID: CssNonIntegerLengthInPixels"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CssNonIntegerLengthInPixels",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Probable bugs",
+ "index": 63,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssInvalidImport",
+ "shortDescription": {
+ "text": "Misplaced @import"
+ },
+ "fullDescription": {
+ "text": "Reports a misplaced '@import' statement. According to the specification, an '@import' rule must be defined at the top of the stylesheet, before any other at-rule (except '@charset' and '@layer') and style declarations, or it will be ignored. Inspection ID: CssInvalidImport",
+ "markdown": "Reports a misplaced `@import` statement.\n\n\nAccording to the [specification](https://developer.mozilla.org/en-US/docs/Web/CSS/@import),\nan `@import` rule must be defined at the top of the stylesheet, before any other at-rule\n(except `@charset` and `@layer`) and style declarations, or it will be ignored.\n\nInspection ID: CssInvalidImport"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssInvalidImport",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssInvalidAtRule",
+ "shortDescription": {
+ "text": "Unknown at-rule"
+ },
+ "fullDescription": {
+ "text": "Reports an unknown CSS at-rule. Inspection ID: CssInvalidAtRule",
+ "markdown": "Reports an unknown [CSS at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule).\n\nInspection ID: CssInvalidAtRule"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssInvalidAtRule",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssUnresolvedCustomProperty",
+ "shortDescription": {
+ "text": "Unresolved custom property"
+ },
+ "fullDescription": {
+ "text": "Reports an unresolved reference to a custom property among the arguments of the 'var()' function. Inspection ID: CssUnresolvedCustomProperty",
+ "markdown": "Reports an unresolved reference to a [custom property](https://developer.mozilla.org/en-US/docs/Web/CSS/--*) among the arguments of the `var()` function.\n\nInspection ID: CssUnresolvedCustomProperty"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssUnresolvedCustomProperty",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssOverwrittenProperties",
+ "shortDescription": {
+ "text": "Overwritten property"
+ },
+ "fullDescription": {
+ "text": "Reports a duplicated CSS property within a ruleset. Respects shorthand properties. Example: '.foo {\n margin-bottom: 1px;\n margin-bottom: 1px; /* duplicates margin-bottom */\n margin: 0; /* overrides margin-bottom */\n}' Inspection ID: CssOverwrittenProperties",
+ "markdown": "Reports a duplicated CSS property within a ruleset. Respects shorthand properties.\n\n**Example:**\n\n\n .foo {\n margin-bottom: 1px;\n margin-bottom: 1px; /* duplicates margin-bottom */\n margin: 0; /* overrides margin-bottom */\n }\n\nInspection ID: CssOverwrittenProperties"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssOverwrittenProperties",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 37,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssUnknownTarget",
+ "shortDescription": {
+ "text": "Unresolved file reference"
+ },
+ "fullDescription": {
+ "text": "Reports an unresolved file reference, for example, an incorrect path in an '@import' statement. Inspection ID: CssUnknownTarget",
+ "markdown": "Reports an unresolved file reference, for example, an incorrect path in an `@import` statement.\n\nInspection ID: CssUnknownTarget"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssUnknownTarget",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssNegativeValue",
+ "shortDescription": {
+ "text": "Negative property value"
+ },
+ "fullDescription": {
+ "text": "Reports a negative value of a CSS property that is not expected to be less than zero, for example, object width or height. Inspection ID: CssNegativeValue",
+ "markdown": "Reports a negative value of a CSS property that is not expected to be less than zero, for example, object width or height.\n\nInspection ID: CssNegativeValue"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssNegativeValue",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssNoGenericFontName",
+ "shortDescription": {
+ "text": "Missing generic font family name"
+ },
+ "fullDescription": {
+ "text": "Verifies that the 'font-family' property contains a generic font family name as a fallback alternative. Generic font family names are: 'serif', 'sans-serif', 'cursive', 'fantasy', and 'monospace'. Inspection ID: CssNoGenericFontName",
+ "markdown": "Verifies that the [font-family](https://developer.mozilla.org/en-US/docs/Web/CSS/font-family) property contains a generic font family name as a fallback alternative.\n\n\nGeneric font family names are: `serif`, `sans-serif`, `cursive`, `fantasy`,\nand `monospace`.\n\nInspection ID: CssNoGenericFontName"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssNoGenericFontName",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Probable bugs",
+ "index": 63,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssUnresolvedClassInComposesRule",
+ "shortDescription": {
+ "text": "Unresolved class in 'composes' rule"
+ },
+ "fullDescription": {
+ "text": "Reports a CSS class reference in the 'composes' rule that cannot be resolved to any valid target. Example: '.className {/* ... */}\n\n .otherClassName {\n composes: className;\n }' Inspection ID: CssUnresolvedClassInComposesRule",
+ "markdown": "Reports a CSS class reference in the ['composes'](https://github.com/css-modules/css-modules#composition) rule that cannot be resolved to any valid target.\n\n**Example:**\n\n\n .className {/* ... */}\n\n .otherClassName {\n composes: className;\n }\n\nInspection ID: CssUnresolvedClassInComposesRule"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssUnresolvedClassInComposesRule",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssInvalidCharsetRule",
+ "shortDescription": {
+ "text": "Misplaced or incorrect @charset"
+ },
+ "fullDescription": {
+ "text": "Reports a misplaced '@charset' at-rule or an incorrect charset value. Inspection ID: CssInvalidCharsetRule",
+ "markdown": "Reports a misplaced `@charset` at-rule or an incorrect charset value.\n\nInspection ID: CssInvalidCharsetRule"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssInvalidCharsetRule",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssReplaceWithShorthandSafely",
+ "shortDescription": {
+ "text": "Properties may be safely replaced with a shorthand"
+ },
+ "fullDescription": {
+ "text": "Reports a set of longhand properties. Suggests replacing a complete set of longhand CSS properties with an equivalent shorthand form. For example, 4 properties: 'padding-top', 'padding-right', 'padding-bottom', and 'padding-left' can be safely replaced with a single 'padding' property. Note that this inspection doesn't show up if the set of longhand properties is incomplete (e.g. only 3 'padding-xxx' properties in a ruleset) because switching to a shorthand may change the result. For such cases consider the 'Properties may probably be replaced with a shorthand' inspection. Inspection ID: CssReplaceWithShorthandSafely",
+ "markdown": "Reports a set of longhand properties. Suggests replacing a complete set of longhand CSS properties with an equivalent shorthand form.\n\n\nFor example, 4 properties: `padding-top`, `padding-right`, `padding-bottom`, and\n`padding-left`\ncan be safely replaced with a single `padding` property.\n\n\nNote that this inspection doesn't show up if the set of longhand properties is incomplete\n(e.g. only 3 `padding-xxx` properties in a ruleset)\nbecause switching to a shorthand may change the result.\nFor such cases consider the 'Properties may probably be replaced with a shorthand'\ninspection.\n\nInspection ID: CssReplaceWithShorthandSafely"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CssReplaceWithShorthandSafely",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 37,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssUnknownProperty",
+ "shortDescription": {
+ "text": "Unknown property"
+ },
+ "fullDescription": {
+ "text": "Reports an unknown CSS property or a property used in a wrong context. Add the unknown property to the 'Custom CSS properties' list to skip validation. Inspection ID: CssUnknownProperty",
+ "markdown": "Reports an unknown CSS property or a property used in a wrong context.\n\nAdd the unknown property to the 'Custom CSS properties' list to skip validation.\n\nInspection ID: CssUnknownProperty"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssUnknownProperty",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssInvalidPseudoSelector",
+ "shortDescription": {
+ "text": "Invalid pseudo-selector"
+ },
+ "fullDescription": {
+ "text": "Reports an incorrect CSS pseudo-class pseudo-element. Inspection ID: CssInvalidPseudoSelector",
+ "markdown": "Reports an incorrect CSS [pseudo-class](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes) [pseudo-element](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements).\n\nInspection ID: CssInvalidPseudoSelector"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CssInvalidPseudoSelector",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CssInvalidNestedSelector",
+ "shortDescription": {
+ "text": "Invalid nested selector"
+ },
+ "fullDescription": {
+ "text": "Reports a nested selector starting with an identifier or a functional notation. Inspection ID: CssInvalidNestedSelector",
+ "markdown": "Reports a nested selector starting with an identifier or a functional notation.\n\nInspection ID: CssInvalidNestedSelector"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CssInvalidNestedSelector",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS/Invalid elements",
+ "index": 38,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ {
+ "name": "org.jetbrains.plugins.yaml",
+ "version": "252.24448.0",
+ "rules": [
+ {
+ "id": "YAMLSchemaValidation",
+ "shortDescription": {
+ "text": "Validation by JSON Schema"
+ },
+ "fullDescription": {
+ "text": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified. Scheme example: '{\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeNumberProperty: hello world' Inspection ID: YAMLSchemaValidation",
+ "markdown": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified.\n\n**Scheme example:**\n\n\n {\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeNumberProperty: hello world\n\nInspection ID: YAMLSchemaValidation"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "YAMLSchemaValidation",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "YAML",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "YAMLIncompatibleTypes",
+ "shortDescription": {
+ "text": "Suspicious type mismatch"
+ },
+ "fullDescription": {
+ "text": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions. Example: 'myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings' Inspection ID: YAMLIncompatibleTypes",
+ "markdown": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions.\n\n**Example:**\n\n\n myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings\n\nInspection ID: YAMLIncompatibleTypes"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "YAMLIncompatibleTypes",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "YAML",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "YAMLUnresolvedAlias",
+ "shortDescription": {
+ "text": "Unresolved alias"
+ },
+ "fullDescription": {
+ "text": "Reports unresolved aliases in YAML files. Example: 'some_key: *unknown_alias' Inspection ID: YAMLUnresolvedAlias",
+ "markdown": "Reports unresolved aliases in YAML files.\n\n**Example:**\n\n\n some_key: *unknown_alias\n\nInspection ID: YAMLUnresolvedAlias"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "YAMLUnresolvedAlias",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "YAML",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "YAMLSchemaDeprecation",
+ "shortDescription": {
+ "text": "Deprecated YAML key"
+ },
+ "fullDescription": {
+ "text": "Reports deprecated keys in YAML files. Deprecation is checked only if there exists a JSON schema associated with the corresponding YAML file. Note that the deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard 'deprecationMessage' extension. Scheme deprecation example: '{\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeDeprecatedProperty: some value' Inspection ID: YAMLSchemaDeprecation",
+ "markdown": "Reports deprecated keys in YAML files.\n\nDeprecation is checked only if there exists a JSON schema associated with the corresponding YAML file.\n\nNote that the deprecation mechanism is not defined in the JSON Schema specification yet,\nand this inspection uses a non-standard `deprecationMessage` extension.\n\n**Scheme deprecation example:**\n\n\n {\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeDeprecatedProperty: some value\n\nInspection ID: YAMLSchemaDeprecation"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "YAMLSchemaDeprecation",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "YAML",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "YAMLRecursiveAlias",
+ "shortDescription": {
+ "text": "Recursive alias"
+ },
+ "fullDescription": {
+ "text": "Reports recursion in YAML aliases. Alias can't be recursive and be used inside the data referenced by a corresponding anchor. Example: 'some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor' Inspection ID: YAMLRecursiveAlias",
+ "markdown": "Reports recursion in YAML aliases.\n\nAlias can't be recursive and be used inside the data referenced by a corresponding anchor.\n\n**Example:**\n\n\n some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor\n\nInspection ID: YAMLRecursiveAlias"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "YAMLRecursiveAlias",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "YAML",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "YAMLDuplicatedKeys",
+ "shortDescription": {
+ "text": "Duplicated YAML keys"
+ },
+ "fullDescription": {
+ "text": "Reports duplicated keys in YAML files. Example: 'same_key: some value\n same_key: another value' Inspection ID: YAMLDuplicatedKeys",
+ "markdown": "Reports duplicated keys in YAML files.\n\n**Example:**\n\n\n same_key: some value\n same_key: another value\n\nInspection ID: YAMLDuplicatedKeys"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "YAMLDuplicatedKeys",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "YAML",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "YAMLUnusedAnchor",
+ "shortDescription": {
+ "text": "Unused anchor"
+ },
+ "fullDescription": {
+ "text": "Reports unused anchors. Example: 'some_key: &some_anchor\n key1: value1' Inspection ID: YAMLUnusedAnchor",
+ "markdown": "Reports unused anchors.\n\n**Example:**\n\n\n some_key: &some_anchor\n key1: value1\n\nInspection ID: YAMLUnusedAnchor"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "YAMLUnusedAnchor",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "YAML",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ {
+ "name": "org.jetbrains.plugins.less",
+ "version": "252.24448.0",
+ "rules": [
+ {
+ "id": "LessUnresolvedMixin",
+ "shortDescription": {
+ "text": "Unresolved mixin"
+ },
+ "fullDescription": {
+ "text": "Reports a reference to a Less mixin that is not resolved. Example: '* {\n .unknown-mixin();\n}' Inspection ID: LessUnresolvedMixin",
+ "markdown": "Reports a reference to a [Less mixin](http://lesscss.org/features/#mixins-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n .unknown-mixin();\n }\n\nInspection ID: LessUnresolvedMixin"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "LessUnresolvedMixin",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Less",
+ "index": 50,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "LessUnresolvedVariable",
+ "shortDescription": {
+ "text": "Unresolved variable"
+ },
+ "fullDescription": {
+ "text": "Reports a reference to a Less variable that is not resolved. Example: '* {\n margin: @unknown-var;\n}' Inspection ID: LessUnresolvedVariable",
+ "markdown": "Reports a reference to a [Less variable](http://lesscss.org/features/#variables-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n margin: @unknown-var;\n }\n\nInspection ID: LessUnresolvedVariable"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "LessUnresolvedVariable",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Less",
+ "index": 50,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "LessResolvedByNameOnly",
+ "shortDescription": {
+ "text": "Missing import"
+ },
+ "fullDescription": {
+ "text": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly imported in the current file. Example: '* {\n margin: @var-in-other-file;\n}' Inspection ID: LessResolvedByNameOnly",
+ "markdown": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly [imported](http://lesscss.org/features/#import-atrules-feature) in the current file.\n\n**Example:**\n\n\n * {\n margin: @var-in-other-file;\n }\n\nInspection ID: LessResolvedByNameOnly"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "LessResolvedByNameOnly",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Less",
+ "index": 50,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ {
+ "name": "org.intellij.intelliLang",
+ "version": "252.24448.0",
+ "rules": [
+ {
+ "id": "InjectedReferences",
+ "shortDescription": {
+ "text": "Injected references"
+ },
+ "fullDescription": {
+ "text": "Reports unresolved references injected by Language Injections. Example: '@Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist' Inspection ID: InjectedReferences",
+ "markdown": "Reports unresolved references injected by [Language Injections](https://www.jetbrains.com/help/idea/using-language-injections.html).\n\nExample:\n\n\n @Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist\n\nInspection ID: InjectedReferences"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "InjectedReferences",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "General",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ {
+ "name": "org.jetbrains.plugins.vue",
+ "version": "252.24448.0",
+ "rules": [
+ {
+ "id": "VueDataFunction",
+ "shortDescription": {
+ "text": "Data function"
+ },
+ "fullDescription": {
+ "text": "Reports a Vue component data property that is not a function. Suggests wrapping an object literal with a function. When defining a component, 'data' must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for 'data', that very object will be shared by reference across all instances created! With a 'data' function, every time a new instance is created we can simply call it to return a fresh copy of the initial data. Inspection ID: VueDataFunction",
+ "markdown": "Reports a Vue component [data](https://vuejs.org/v2/api/#data) property that is not a function. Suggests wrapping an object literal with a function.\n\nWhen defining a component, `data` must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for `data`, that very object will be shared by reference across all instances created! With a `data` function, every time a new instance is created we can simply call it to return a fresh copy of the initial data.\n\nInspection ID: VueDataFunction"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "VueDataFunction",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Reliability"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Vue",
+ "index": 54,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VueUnrecognizedSlot",
+ "shortDescription": {
+ "text": "Unrecognized slot"
+ },
+ "fullDescription": {
+ "text": "Reports an unrecognized Vue slot. Inspection ID: VueUnrecognizedSlot",
+ "markdown": "Reports an unrecognized Vue slot.\n\nInspection ID: VueUnrecognizedSlot"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VueUnrecognizedSlot",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Vue",
+ "index": 54,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VueMissingComponentImportInspection",
+ "shortDescription": {
+ "text": "Missing component import"
+ },
+ "fullDescription": {
+ "text": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import. Inspection ID: VueMissingComponentImportInspection",
+ "markdown": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import.\n\nInspection ID: VueMissingComponentImportInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "VueMissingComponentImportInspection",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Vue",
+ "index": 54,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VueUnrecognizedDirective",
+ "shortDescription": {
+ "text": "Unrecognized directive"
+ },
+ "fullDescription": {
+ "text": "Reports an unrecognized Vue directive. Inspection ID: VueUnrecognizedDirective",
+ "markdown": "Reports an unrecognized Vue directive.\n\nInspection ID: VueUnrecognizedDirective"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "VueUnrecognizedDirective",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Vue",
+ "index": 54,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VueDuplicateTag",
+ "shortDescription": {
+ "text": "Duplicate template/script tag"
+ },
+ "fullDescription": {
+ "text": "Reports multiple usages of the 'template' or 'script' tag in a Vue file. Vue Component specification indicates that each '*.vue' file can contain at most one 'template' or 'script' block at a time. Inspection ID: VueDuplicateTag",
+ "markdown": "Reports multiple usages of the `template` or `script` tag in a Vue file.\n\n[Vue Component specification](https://vue-loader.vuejs.org/spec.html) indicates that each `*.vue` file can contain at most one `template` or `script` block at a time.\n\nInspection ID: VueDuplicateTag"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "VueDuplicateTag",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Vue",
+ "index": 54,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VueDeprecatedSymbol",
+ "shortDescription": {
+ "text": "Deprecated symbol"
+ },
+ "fullDescription": {
+ "text": "Reports a deprecated Vue symbol. Inspection ID: VueDeprecatedSymbol",
+ "markdown": "Reports a deprecated Vue symbol.\n\nInspection ID: VueDeprecatedSymbol"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "VueDeprecatedSymbol",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Vue",
+ "index": 54,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ {
+ "name": "org.intellij.qodana",
+ "version": "252.24448.0",
+ "rules": [
+ {
+ "id": "JsCoverageInspection",
+ "shortDescription": {
+ "text": "Check JavaScript and TypeScript source code coverage"
+ },
+ "fullDescription": {
+ "text": "Reports methods, classes and files whose coverage is below a certain threshold. Inspection ID: JsCoverageInspection",
+ "markdown": "Reports methods, classes and files whose coverage is below a certain threshold.\n\nInspection ID: JsCoverageInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "JsCoverageInspection",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Code Coverage",
+ "index": 69,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CyclomaticComplexityInspection",
+ "shortDescription": {
+ "text": "Code metrics"
+ },
+ "fullDescription": {
+ "text": "Calculates cyclomatic complexity. Inspection ID: CyclomaticComplexityInspection",
+ "markdown": "Calculates cyclomatic complexity.\n\nInspection ID: CyclomaticComplexityInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CyclomaticComplexityInspection",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Qodana",
+ "index": 71,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ {
+ "name": "intellij.webpack",
+ "version": "252.24448.0",
+ "rules": [
+ {
+ "id": "WebpackConfigHighlighting",
+ "shortDescription": {
+ "text": "Webpack config compliance with JSON Schema"
+ },
+ "fullDescription": {
+ "text": "Validates options in webpack config files (which name should start with `webpack`, e.g. `webpack.config.js`) against webpack options schema. Disable this inspection to turn off validation and code completion inside the configuration object. Inspection ID: WebpackConfigHighlighting",
+ "markdown": "Validates options in webpack config files (which name should start with \\`webpack\\`, e.g. \\`webpack.config.js\\`) against [webpack options schema](https://github.com/webpack/webpack/blob/master/schemas/WebpackOptions.json). \n\nDisable this inspection to turn off validation and code completion inside the configuration object.\n\nInspection ID: WebpackConfigHighlighting"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "WebpackConfigHighlighting",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Sanity"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript/General",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ {
+ "name": "tanvd.grazi",
+ "version": "252.24448.0",
+ "rules": [
+ {
+ "id": "LanguageDetectionInspection",
+ "shortDescription": {
+ "text": "Natural language detection"
+ },
+ "fullDescription": {
+ "text": "Detects natural languages and suggests enabling corresponding grammar and spelling checks. Inspection ID: LanguageDetectionInspection",
+ "markdown": "Detects natural languages and suggests enabling corresponding grammar and spelling checks.\n\nInspection ID: LanguageDetectionInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "LanguageDetectionInspection",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Proofreading",
+ "index": 70,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "GrazieInspection",
+ "shortDescription": {
+ "text": "Grammar"
+ },
+ "fullDescription": {
+ "text": "Reports grammar mistakes in your text. You can configure the inspection in Settings | Editor | Natural Languages | Grammar and Style. Inspection ID: GrazieInspection",
+ "markdown": "Reports grammar mistakes in your text. You can configure the inspection in [Settings \\| Editor \\| Natural Languages \\| Grammar and Style](settings://reference.settingsdialog.project.grazie).\n\nInspection ID: GrazieInspection"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "GrazieInspection",
+ "ideaSeverity": "GRAMMAR_ERROR",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Code Style"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Proofreading",
+ "index": 70,
+ "toolComponent": {
+ "name": "QDRUBY"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ }
+ ]
+ },
+ "invocations": [
+ {
+ "startTimeUtc": "2025-07-22T08:25:47.488174654Z",
+ "exitCode": 0,
+ "executionSuccessful": true
+ }
+ ],
+ "language": "en-US",
+ "versionControlProvenance": [
+ {
+ "repositoryUri": "https://github.com/zitadel/client-ruby.git",
+ "revisionId": "a0f260ba89a7fe8f0971b21f5aed124fbf98f475",
+ "branch": "feat/implement-eap-qodana",
+ "properties": {
+ "repoUrl": "https://github.com/zitadel/client-ruby.git",
+ "lastAuthorName": "Mridang Agarwalla",
+ "vcsType": "Git",
+ "lastAuthorEmail": "mridang.agarwalla@gmail.com"
+ }
+ }
+ ],
+ "results": [
+ {
+ "ruleId": "RbsMissingTypeSignature",
+ "kind": "fail",
+ "level": "note",
+ "message": {
+ "text": "Missing type signature for 'output_path'",
+ "markdown": "Missing type signature for 'output_path'"
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "artifactLocation": {
+ "uri": "spec/spec_helper.rb",
+ "uriBaseId": "SRCROOT"
+ },
+ "region": {
+ "startLine": 18,
+ "startColumn": 11,
+ "charOffset": 426,
+ "charLength": 11,
+ "snippet": {
+ "text": "output_path"
+ },
+ "sourceLanguage": "ruby"
+ },
+ "contextRegion": {
+ "startLine": 16,
+ "startColumn": 1,
+ "charOffset": 344,
+ "charLength": 154,
+ "snippet": {
+ "text": " # rubocop:disable Style/Documentation\n module HTMLFormatterPatch\n def output_path\n File.join(SimpleCov.coverage_path, 'html')\n end"
+ },
+ "sourceLanguage": "ruby"
+ }
+ },
+ "logicalLocations": [
+ {
+ "fullyQualifiedName": "project",
+ "kind": "module"
+ }
+ ]
+ }
+ ],
+ "partialFingerprints": {
+ "equalIndicator/v2": "14fe501713fea3d2",
+ "equalIndicator/v1": "15ea438c3953c1a4ca6620569886fae6da7425d127a1bd40e4efa8250bcac3bd"
+ },
+ "properties": {
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "problemType": "REGULAR",
+ "tags": [
+ "ruby"
+ ]
+ }
+ },
+ {
+ "ruleId": "RbsMissingTypeSignature",
+ "kind": "fail",
+ "level": "note",
+ "message": {
+ "text": "Missing type signature for 'output_path'",
+ "markdown": "Missing type signature for 'output_path'"
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "artifactLocation": {
+ "uri": "test/test_helper.rb",
+ "uriBaseId": "SRCROOT"
+ },
+ "region": {
+ "startLine": 17,
+ "startColumn": 11,
+ "charOffset": 425,
+ "charLength": 11,
+ "snippet": {
+ "text": "output_path"
+ },
+ "sourceLanguage": "ruby"
+ },
+ "contextRegion": {
+ "startLine": 15,
+ "startColumn": 1,
+ "charOffset": 343,
+ "charLength": 154,
+ "snippet": {
+ "text": " # rubocop:disable Style/Documentation\n module HTMLFormatterPatch\n def output_path\n File.join(SimpleCov.coverage_path, 'html')\n end"
+ },
+ "sourceLanguage": "ruby"
+ }
+ },
+ "logicalLocations": [
+ {
+ "fullyQualifiedName": "project",
+ "kind": "module"
+ }
+ ]
+ }
+ ],
+ "partialFingerprints": {
+ "equalIndicator/v2": "a2e97fd41fa61ff1",
+ "equalIndicator/v1": "7d15eef27108e005c285aa9af0f9af2c99fc6dc4ff9c0b33b6698204f9142c62"
+ },
+ "properties": {
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "problemType": "REGULAR",
+ "tags": [
+ "ruby"
+ ]
+ }
+ },
+ {
+ "ruleId": "RbsMissingTypeSignature",
+ "kind": "fail",
+ "level": "note",
+ "message": {
+ "text": "Missing type signature for 'parse_xml_for'",
+ "markdown": "Missing type signature for 'parse_xml_for'"
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "artifactLocation": {
+ "uri": "spec/spec_helper.rb",
+ "uriBaseId": "SRCROOT"
+ },
+ "region": {
+ "startLine": 56,
+ "startColumn": 13,
+ "charOffset": 1250,
+ "charLength": 13,
+ "snippet": {
+ "text": "parse_xml_for"
+ },
+ "sourceLanguage": "ruby"
+ },
+ "contextRegion": {
+ "startLine": 54,
+ "startColumn": 1,
+ "charOffset": 1221,
+ "charLength": 160,
+ "snippet": {
+ "text": " private\n\n def parse_xml_for(xml, suite, tests)\n suite_result = analyze_suite(tests)\n file_path = get_relative_path(tests.first)"
+ },
+ "sourceLanguage": "ruby"
+ }
+ },
+ "logicalLocations": [
+ {
+ "fullyQualifiedName": "project",
+ "kind": "module"
+ }
+ ]
+ }
+ ],
+ "partialFingerprints": {
+ "equalIndicator/v2": "3a845f928046266a",
+ "equalIndicator/v1": "ab477965d209e4bc815295ba9cf53dfc744ca9ff68aa71be1f11d2f320b4995f"
+ },
+ "properties": {
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "problemType": "REGULAR",
+ "tags": [
+ "ruby"
+ ]
+ }
+ },
+ {
+ "ruleId": "RbsMissingTypeSignature",
+ "kind": "fail",
+ "level": "note",
+ "message": {
+ "text": "Missing type signature for 'parse_xml_for'",
+ "markdown": "Missing type signature for 'parse_xml_for'"
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "artifactLocation": {
+ "uri": "test/test_helper.rb",
+ "uriBaseId": "SRCROOT"
+ },
+ "region": {
+ "startLine": 56,
+ "startColumn": 13,
+ "charOffset": 1299,
+ "charLength": 13,
+ "snippet": {
+ "text": "parse_xml_for"
+ },
+ "sourceLanguage": "ruby"
+ },
+ "contextRegion": {
+ "startLine": 54,
+ "startColumn": 1,
+ "charOffset": 1270,
+ "charLength": 160,
+ "snippet": {
+ "text": " private\n\n def parse_xml_for(xml, suite, tests)\n suite_result = analyze_suite(tests)\n file_path = get_relative_path(tests.first)"
+ },
+ "sourceLanguage": "ruby"
+ }
+ },
+ "logicalLocations": [
+ {
+ "fullyQualifiedName": "project",
+ "kind": "module"
+ }
+ ]
+ }
+ ],
+ "partialFingerprints": {
+ "equalIndicator/v2": "cb2587990ca1a066",
+ "equalIndicator/v1": "e65510b4cac4eb4a1d01bfd264b07a84d8780bb38278ccdca53151413920826d"
+ },
+ "properties": {
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "problemType": "REGULAR",
+ "tags": [
+ "ruby"
+ ]
+ }
+ },
+ {
+ "ruleId": "RubyMismatchedVariableType",
+ "kind": "fail",
+ "level": "warning",
+ "message": {
+ "text": "Expected a non-nilable type, got nilable instead",
+ "markdown": "Expected a non-nilable type, got nilable instead"
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "artifactLocation": {
+ "uri": "lib/zitadel/client/auth/o_auth_authenticator.rb",
+ "uriBaseId": "SRCROOT"
+ },
+ "region": {
+ "startLine": 33,
+ "startColumn": 20,
+ "charOffset": 976,
+ "charLength": 3,
+ "snippet": {
+ "text": "nil"
+ },
+ "sourceLanguage": "ruby"
+ },
+ "contextRegion": {
+ "startLine": 31,
+ "startColumn": 1,
+ "charOffset": 889,
+ "charLength": 181,
+ "snippet": {
+ "text": " super(open_id.host_endpoint)\n @open_id = open_id\n @token = nil\n @auth_session = auth_session\n @auth_scopes = auth_scopes.to_a.join(' ')"
+ },
+ "sourceLanguage": "ruby"
+ }
+ },
+ "logicalLocations": [
+ {
+ "fullyQualifiedName": "project",
+ "kind": "module"
+ }
+ ]
+ }
+ ],
+ "partialFingerprints": {
+ "equalIndicator/v2": "3c7730934362992e",
+ "equalIndicator/v1": "4bbe22b839b4af64a38edc4f79a1779d72970461ce5aee28fedd948068267b41"
+ },
+ "properties": {
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "problemType": "REGULAR",
+ "tags": [
+ "ruby"
+ ]
+ }
+ },
+ {
+ "ruleId": "RubyResolve",
+ "kind": "fail",
+ "level": "warning",
+ "message": {
+ "text": "No such file to load",
+ "markdown": "No such file to load"
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "artifactLocation": {
+ "uri": "test/test_helper.rb",
+ "uriBaseId": "SRCROOT"
+ },
+ "region": {
+ "startLine": 10,
+ "startColumn": 13,
+ "charOffset": 213,
+ "charLength": 6,
+ "snippet": {
+ "text": "'.env'"
+ },
+ "sourceLanguage": "ruby"
+ },
+ "contextRegion": {
+ "startLine": 8,
+ "startColumn": 1,
+ "charOffset": 157,
+ "charLength": 149,
+ "snippet": {
+ "text": "\nWarning.ignore(:method_redefined, __dir__)\nDotenv.load('.env')\n\n# Override the HTMLFormatter so that it writes its report inside build/coverage/html"
+ },
+ "sourceLanguage": "ruby"
+ }
+ },
+ "logicalLocations": [
+ {
+ "fullyQualifiedName": "project",
+ "kind": "module"
+ }
+ ]
+ }
+ ],
+ "partialFingerprints": {
+ "equalIndicator/v2": "0ef4deefc33ff254",
+ "equalIndicator/v1": "07ce0311216675d157b2165e8dcacdde1268ddd5daac82b6b76a6d9dd774c260"
+ },
+ "properties": {
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "problemType": "REGULAR",
+ "tags": [
+ "ruby"
+ ]
+ }
+ },
+ {
+ "ruleId": "RubyResolve",
+ "kind": "fail",
+ "level": "warning",
+ "message": {
+ "text": "No such file to load",
+ "markdown": "No such file to load"
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "artifactLocation": {
+ "uri": "spec/spec_helper.rb",
+ "uriBaseId": "SRCROOT"
+ },
+ "region": {
+ "startLine": 11,
+ "startColumn": 13,
+ "charOffset": 214,
+ "charLength": 6,
+ "snippet": {
+ "text": "'.env'"
+ },
+ "sourceLanguage": "ruby"
+ },
+ "contextRegion": {
+ "startLine": 9,
+ "startColumn": 1,
+ "charOffset": 158,
+ "charLength": 149,
+ "snippet": {
+ "text": "\nWarning.ignore(:method_redefined, __dir__)\nDotenv.load('.env')\n\n# Override the HTMLFormatter so that it writes its report inside build/coverage/html"
+ },
+ "sourceLanguage": "ruby"
+ }
+ },
+ "logicalLocations": [
+ {
+ "fullyQualifiedName": "project",
+ "kind": "module"
+ }
+ ]
+ }
+ ],
+ "partialFingerprints": {
+ "equalIndicator/v2": "a2475af6ef7fc24d",
+ "equalIndicator/v1": "6cb0561d786703993112e168ea98dd5b51889a75f2059d7edec9faf21d52af54"
+ },
+ "properties": {
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "problemType": "REGULAR",
+ "tags": [
+ "ruby"
+ ]
+ }
+ }
+ ],
+ "automationDetails": {
+ "id": "project/qodana/2025-07-22",
+ "guid": "d16bddc0-be33-4e90-8e83-4103ce50446a",
+ "properties": {
+ "jobUrl": "https://github.com/zitadel/client-ruby/actions/runs/16438771871",
+ "analysisKind": "regular"
+ }
+ },
+ "newlineSequences": [
+ "\r\n",
+ "\n"
+ ],
+ "properties": {
+ "configProfile": "recommended",
+ "deviceId": "200820300000000-5b95-0593-0a0f-c6c6812d636f",
+ "qodanaNewResultSummary": {
+ "moderate": 47,
+ "high": 3,
+ "total": 50
+ }
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
deleted file mode 100644
index bdb0aaaa..00000000
--- a/Gemfile.lock
+++ /dev/null
@@ -1,194 +0,0 @@
-PATH
- remote: .
- specs:
- zitadel-client (1.10.0)
- oauth2 (~> 2.0)
- typhoeus (~> 1.0, >= 1.0.1)
- warning (~> 1.5.0)
- zeitwerk (~> 2.5)
-
-GEM
- remote: https://rubygems.org/
- specs:
- activesupport (7.1.5.1)
- base64
- benchmark (>= 0.3)
- bigdecimal
- concurrent-ruby (~> 1.0, >= 1.0.2)
- connection_pool (>= 2.2.5)
- drb
- i18n (>= 1.6, < 2)
- logger (>= 1.4.2)
- minitest (>= 5.1)
- mutex_m
- securerandom (>= 0.3)
- tzinfo (~> 2.0)
- ansi (1.5.0)
- ast (2.4.3)
- base64 (0.2.0)
- benchmark (0.4.0)
- bigdecimal (3.1.9)
- builder (3.3.0)
- concurrent-ruby (1.3.5)
- connection_pool (2.5.3)
- csv (3.3.4)
- docile (1.4.1)
- docker-api (2.4.0)
- excon (>= 0.64.0)
- multi_json
- dotenv (3.1.8)
- drb (2.2.1)
- ethon (0.16.0)
- ffi (>= 1.15.0)
- excon (1.2.5)
- logger
- faraday (2.13.1)
- faraday-net_http (>= 2.0, < 3.5)
- json
- logger
- faraday-net_http (3.4.0)
- net-http (>= 0.5.0)
- ffi (1.17.1)
- fileutils (1.7.3)
- hashie (5.0.0)
- i18n (1.14.7)
- concurrent-ruby (~> 1.0)
- json (2.11.3)
- jwt (2.10.1)
- base64
- language_server-protocol (3.17.0.4)
- lint_roller (1.1.0)
- listen (3.9.0)
- rb-fsevent (~> 0.10, >= 0.10.3)
- rb-inotify (~> 0.9, >= 0.9.10)
- logger (1.7.0)
- minitest (5.25.5)
- minitest-hooks (1.5.2)
- minitest (> 5.3)
- minitest-reporters (1.7.1)
- ansi
- builder
- minitest (>= 5.0)
- ruby-progressbar
- multi_json (1.15.0)
- multi_xml (0.6.0)
- mutex_m (0.3.0)
- net-http (0.6.0)
- uri
- oauth2 (2.0.12)
- faraday (>= 0.17.3, < 4.0)
- jwt (>= 1.0, < 4.0)
- logger (~> 1.2)
- multi_xml (~> 0.5)
- rack (>= 1.2, < 4)
- snaky_hash (~> 2.0, >= 2.0.3)
- version_gem (>= 1.1.8, < 3)
- parallel (1.27.0)
- parser (3.3.8.0)
- ast (~> 2.4.1)
- racc
- prism (1.4.0)
- racc (1.8.1)
- rack (3.1.16)
- rainbow (3.1.1)
- rake (13.2.1)
- rb-fsevent (0.11.2)
- rb-inotify (0.11.1)
- ffi (~> 1.0)
- rbs (3.6.1)
- logger
- regexp_parser (2.10.0)
- rexml (3.4.1)
- rubocop (1.75.5)
- json (~> 2.3)
- language_server-protocol (~> 3.17.0.2)
- lint_roller (~> 1.1.0)
- parallel (~> 1.10)
- parser (>= 3.3.0.2)
- rainbow (>= 2.2.2, < 4.0)
- regexp_parser (>= 2.9.3, < 3.0)
- rubocop-ast (>= 1.44.0, < 2.0)
- ruby-progressbar (~> 1.7)
- unicode-display_width (>= 2.4.0, < 4.0)
- rubocop-ast (1.44.1)
- parser (>= 3.3.7.2)
- prism (~> 1.4)
- rubocop-minitest (0.38.0)
- lint_roller (~> 1.1)
- rubocop (>= 1.75.0, < 2.0)
- rubocop-ast (>= 1.38.0, < 2.0)
- rubocop-rake (0.7.1)
- lint_roller (~> 1.1)
- rubocop (>= 1.72.1)
- ruby-progressbar (1.13.0)
- securerandom (0.3.2)
- simplecov (0.22.0)
- docile (~> 1.1)
- simplecov-html (~> 0.11)
- simplecov_json_formatter (~> 0.1)
- simplecov-cobertura (2.1.0)
- rexml
- simplecov (~> 0.19)
- simplecov-html (0.13.1)
- simplecov_json_formatter (0.1.4)
- snaky_hash (2.0.3)
- hashie (>= 0.1.0, < 6)
- version_gem (>= 1.1.8, < 3)
- steep (1.7.1)
- activesupport (>= 5.1)
- concurrent-ruby (>= 1.1.10)
- csv (>= 3.0.9)
- fileutils (>= 1.1.0)
- json (>= 2.1.0)
- language_server-protocol (>= 3.15, < 4.0)
- listen (~> 3.0)
- logger (>= 1.3.0)
- parser (>= 3.1)
- rainbow (>= 2.2.2, < 4.0)
- rbs (>= 3.5.0.pre)
- securerandom (>= 0.1)
- strscan (>= 1.0.0)
- terminal-table (>= 2, < 4)
- strscan (3.1.5)
- terminal-table (3.0.2)
- unicode-display_width (>= 1.1.1, < 3)
- testcontainers (0.2.0)
- testcontainers-core (= 0.2.0)
- testcontainers-core (0.2.0)
- docker-api (~> 2.2)
- typhoeus (1.4.1)
- ethon (>= 0.9.0)
- tzinfo (2.0.6)
- concurrent-ruby (~> 1.0)
- unicode-display_width (2.6.0)
- uri (1.0.3)
- version_gem (1.1.8)
- warning (1.5.0)
- zeitwerk (2.6.18)
-
-PLATFORMS
- arm64-darwin-23
- x86_64-linux
-
-DEPENDENCIES
- dotenv
- minitest
- minitest-hooks
- minitest-reporters
- oauth2 (>= 2.0.12)
- rake
- rbs
- rubocop
- rubocop-minitest
- rubocop-rake
- simplecov
- simplecov-cobertura
- steep (~> 1.7.0)
- testcontainers
- typhoeus
- warning
- zeitwerk
- zitadel-client!
-
-BUNDLED WITH
- 2.2.33
diff --git a/qodana.yaml b/qodana.yaml
index c18cd1ff..0e4f9108 100644
--- a/qodana.yaml
+++ b/qodana.yaml
@@ -8,5 +8,12 @@ exclude:
paths:
- lib/zitadel/client/api
- lib/zitadel/client/models
+ - name: RbsMissingTypeSignature
+ paths:
+ - test
+ - spec
+
+bootstrap: |
+ bundle install
-linter: jetbrains/qodana-php:2025.1
+linter: jetbrains/qodana-ruby:2025.2-eap-ruby3.4-privileged
diff --git a/test/zitadel/client/api_client_test.rb b/test/zitadel/client/api_client_test.rb
index 9d4fb4ac..e0c90c0c 100644
--- a/test/zitadel/client/api_client_test.rb
+++ b/test/zitadel/client/api_client_test.rb
@@ -60,9 +60,11 @@ def test_assert_headers_and_content_type
'Authorization' => {
equalTo: 'Bearer mm'
},
+ # rubocop:disable Layout/LineLength
'User-Agent' => {
- matches: '^zitadel-client/\\d\\.\\d\\.\\d \\(lang=ruby; lang_version=[^;]+; os=[^;]+; arch=[^;]+\\)$'
+ matches: '^zitadel-client/\\d+\\.\\d+\\.\\d+([.-][a-zA-Z0-9]+(\\.\\d+)?)? \\(lang=ruby; lang_version=[^;]+; os=[^;]+; arch=[^;]+\\)$'
}
+ # rubocop:enable Layout/LineLength
}
},
response: {