Skip to content

Code blocks in triple slash Doxygen comments are formatted incorrectly #14567

Description

@joelspadin-garmin

Environment

  • OS and Version: Windows 11 Enterprise version 10.0.26200
  • VS Code Version: 1.127.0
  • C/C++ Extension Version: 1.32.2
  • If using SSH remote, specify OS of remote machine: N/A

Bug Summary and Steps to Reproduce

Bug Summary:

If you place a Markdown code block inside inside a Doxygen comment that uses /// at the start of each line, and that comment contains any Doxygen tag, and you hover over a symbol to view its documentation, then indentation and // at the start of lines inside the code block is stripped.

The same comment switched to use //! formats correctly.

Steps to reproduce:

Write a function with documentation such as the following:

/// Test function
///
/// Example:
/// ```
/// // This program does the thing.
/// int main() {
///   DoThing();
///   return 0;
/// }
/// ```
/// \param x Test parameter
void DoThing(int x);

Expected behavior:

When hovering over the symbol, the documentation should be rendered as

Test function

Example:

// This program does the thing
int main() {
  DoThing(1);
  return 0;
}

Parameters:
x - Test parameter

Actual behavior:

The documentation renders like this instead

Test function

Example:

 This program does the thing
int main() {
DoThing(1);
return 0;
}

Parameters:
x - Test parameter

Removing the \param line or changing the comment style to //! results in the expected rendering.

Configuration and Logs

Occurs in a workspace that only contains a single .cpp file and no c_cpp_properties.json.

Other Extensions

No response

Additional context

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Feature: Doc commentsAn issue related to code comments shown in hover, completion, and signature help.Language ServicebugverifiedBug has been reproduced

    Type

    Fields

    No fields configured for Bug.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions