microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Detection of clang-format version fails in SSH remote session when clang-format is a symlink

saierd opened this issue · comments

Environment

  • OS and Version: Ubuntu 22.04
  • VS Code Version: 1.88.0
  • C/C++ Extension Version: 1.20.5
  • If using SSH remote, specify OS of remote machine: Ubuntu 20.04

Bug Summary and Steps to Reproduce

Bug Summary:

This is a follow-up to #10102 (comment)

As described in the comment history there, detection of the clang-format version sometimes seems to fail and as a result an old version of clang-format gets passed --Wno-error=unknown, which it does not support.

I could find the following conditions for this to happen:

  • The specified C_Cpp.clang_format_path points to a symlink. Replacing this path with the real path to the clang-format binary fixes the problem.
  • VS Code is connected remotely via SSH. The same settings work when using VS Code directly on the same machine.

Configuration and Logs

C_Cpp.clang_format_path is set to clang-format-8. It resolves to /usr/bin/clang-format-8, which is a symlink to ../lib/llvm-8/bin/clang-format.

C/C++ Log on Debug Level:

Formatting document: file://<file>
Formatting Engine: clangFormat
Formatting failed:
clang-format-8 -style=file -fallback-style=LLVM --Wno-error=unknown -assume-filename=<file> <file>

I could not find any logging for where the version detection happens.

clang-format-8 --version prints

clang-format version 8.0.1-9 (tags/RELEASE_801/final)

Other Extensions

No response

Additional context

No response