簡體   English   中英

在遠程 Docker 容器中開發時使用本地 Clang 格式

[英]Using local Clang-format when developing in a remote Docker container

我正在使用連接到 Docker 容器的 VS Code:項目文件和編譯工具位於那里。 主機系統為 macOS Big Sur。

我正在使用Clang-Format擴展,但是 Docker 鏡像中可用的clang-format非常過時並且無法升級(由於外部原因),所以我無法使用項目的.clang-format文件(其中包含更新的指令) .

我在主機上本地安裝了最新版本的clang-format 有什么方法可以將 VS Code 配置為使用該版本的clang-format而不是 Docker 映像中的那個版本?

無法使用本地副本,因為 VS Code 將在 Docker 中運行它並且二進制文件不兼容。

我發現這樣做的最好方法是在主機中下載 Linux 的clang-format ,與容器共享並告訴 VS Code 使用它:

  1. 下載(或編譯)與容器的 Linux 版本兼容的clang-format 在我的例子中,容器基於 Ubuntu 20.04,所以官方項目 repo 中已經有一個 clang+LLVM 的預編譯版本。

  2. 將其解壓到可以綁定到容器的目錄中(您可以在 Docker Desktop 中的設置 > 資源 > 文件共享下進行)。 就我而言,我為此准備了一個: ~/shared ,所以我將它解壓縮到~/shared/clang+llvm-13.0.0

  3. docker-compose.yml文件中掛載clang-format所在的本地目錄(使用最適合您的遠程目錄):

services:
    volumes:
      - ~/shared/clang+llvm-13.0.0:/home/user/clang+llvm-13.0.0:ro
  1. 最后,在用戶的settings.json可執行文件的路徑:
{
  "clang-format.executable": "/home/user/clang+llvm-13.0.0/bin/clang-format"
}

這種方法的唯一缺點是clang-format.executable設置是用戶范圍的,沒有工作區級別的設置,因此更改普遍適用。 就我而言,這不是什么大問題,因為一切都是在容器中完成的,但我知道這可能不是混合設置的最佳選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM