Skip to content

✨ Highlight Matching Tags #274

Open
@Lachiave

Description

@Lachiave

Description

We want to enhance tag-matching behavior in markup languages such as HTML, XML, and JSX by highlighting matching tags based on cursor position. This feature is inspired by bracket matching in Xcode, where matching brackets are highlighted based on cursor placement.

When the cursor is placed within a tag, the corresponding opening or closing tag should be highlighted. Additionally, if any tag name is modified in either the beginning or end tag, the matching tag should update to reflect the change.

Behavior Examples

In the following examples, | represents the cursor position, and underlined text represents the highlighted matching tags:

  • <|div class="wrapper">Hello world!</div>
  • <div| class="wrapper">Hello world!</div>
  • <div class="wrapper">|Hello world!</div>
  • <div class="wrapper">Hello world!<|/div>
  • <div class="wrapper">Hello world!</div|>
  • <div class="wrapper">Hello world!</div>|

Requirements

  1. Cursor-Based Tag Matching:

    • When the cursor is within a tag name, either at the opening or closing tag, the corresponding tag should be highlighted.
  2. Tag Synchronization:

    • When a tag name is edited, the matching tag should update to reflect the change in real-time, ensuring that both tags are always in sync.
  3. Highlight Behavior:

    • Highlighting should clearly indicate the matching tag, using a distinct visual style (e.g., underline or color change) for both the opening and closing tags to enhance visibility.

This feature will improve the editing experience by making it easier to identify matching tags, reducing errors in nested or complex structures.

Original Issue Description

Is it possible to highlight the opening and closing tags? Example: <div> </div>

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    📋 Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions