PyCharm 2023.3 Help

Language Injection Settings dialog: XML Attribute Injection

Item

Description

Name

The name of the injection.

Language

The language to be injected.

  • ID. The language ID or name.

  • Prefix. A sequence of characters to be added before the corresponding string value.

  • Suffix. A sequence of characters to be added after the corresponding string value.

The prefix and suffix are optional.

XML Tag

In this area, specify the XML tags in which the attributes are impacted by the defined configuration.

  • Local name: specify the tag name without a namespace prefix. Use regular expressions to specify multiple tag names name1|name2, case-insensitive names ((?i)tagname matches tagname as well as TagName), and so on.

  • Namespace - in this field, specify the namespace URI of the XML tag.

Both fields are optional. However, if the Local name field is empty the configuration will apply to any attribute that matches the configured name, regardless of its containing XML tag.

XML Attribute

In this area, define the XML tag attribute which indicates that the text enclosed in a tag with such attribute should be treated as the selected language.

  • Local name: specify the attribute name without a namespace prefix. Use regular expressions: For example, to match HTML event handler attributes, type on.* in the field.

    The field is optional, unless the Local name field in the XML Tag area is empty. If the attribute local name is not specified, the configuration applies to all attributes of the enclosing tag.

  • Namespace - in this field, specify the namespace URI of the attribute.

Advanced

In this area, specify additional settings to enable more fine-grained control over the injection process.

  • Value pattern: type a regular expression that determines the part of the attribute's value to inject the language into. By using the first capturing group of the patterns as the target for injection, you can configure the procedure to have the language injected only into values that match a certain pattern or into multiple parts that match the pattern.

    • Single file: If the option is off, the fragments that match the value pattern are treated separately, as different "files" - for example from the fragment editor's viewpoint.

      If the option is on, the corresponding fragments are all merged together to form a single unit, or "file".

      Given the value pattern

      xxx (.+) yyy (.+) zzz

      and the fragment

      xxx select * yyy from family zzz,

      select * and from family are treated as two independent fragments (or "files") if the option is off. If the option is on, select * from family is treated as a single unit or "file".

  • XPath condition: in this field, specify an XPath expression to address the injection-target more precisely. The context in which the expression is evaluated is the attribute itself.

    For the field to be active, the XPathView + XSLT Support plugin must be enabled.

Last modified: 07 March 2024