Skip to content

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

Description

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

Labels

Feature: Doc commentsAn issue related to code comments shown in hover, completion, and signature help.Language ServicebugfixedCheck the Milestone for the release in which the fix is or will be available.verifiedBug has been reproduced

Type

Projects

Status
In progress

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions