clangd-lsp

TotalClaw 作者 totalclaw

C/C++ 语言服务器 (clangd) 为 .c、.h、.cpp、.cc、.cxx、.hpp、.hxx 文件提供代码智能、诊断和格式化。在处理需要自动完成、转到定义、查找引用、错误检测或重构支持的 C 或 C++ 代码时使用。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~bowen31337-clangd-lsp
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~bowen31337-clangd-lsp/file -o bowen31337-clangd-lsp.md
## 概述(中文)

C/C++ 语言服务器 (clangd) 为 .c、.h、.cpp、.cc、.cxx、.hpp、.hxx 文件提供代码智能、诊断和格式化。在处理需要自动完成、转到定义、查找引用、错误检测或重构支持的 C 或 C++ 代码时使用。

## 原文

# clangd LSP

C/C++ language server integration providing comprehensive code intelligence through clangd (part of LLVM).

## Capabilities

- **Code intelligence**: Autocomplete, go-to-definition, find references
- **Error detection**: Real-time diagnostics for compilation errors
- **Formatting**: Code formatting with clang-format
- **Refactoring**: Rename symbols, extract function
- **Supported extensions**: `.c`, `.h`, `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hxx`, `.C`, `.H`

## Installation

### Via Homebrew (macOS)
```bash
brew install llvm
# Add to PATH
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
```

### Via package manager (Linux)
```bash
# Ubuntu/Debian
sudo apt install clangd

# Fedora
sudo dnf install clang-tools-extra

# Arch Linux
sudo pacman -S clang
```

### Windows
```bash
winget install LLVM.LLVM
```

Or download from [LLVM releases](https://github.com/llvm/llvm-project/releases).

Verify installation:
```bash
clangd --version
```

## Usage

The language server runs automatically in LSP-compatible editors. For manual operations:

### Compile
```bash
gcc file.c -o output      # C
g++ file.cpp -o output    # C++
clang file.c -o output    # with clang
```

### Format code
```bash
clang-format -i file.cpp
```

### Static analysis
```bash
clang-tidy file.cpp -- -std=c++17
```

## Configuration

Create `.clangd` in project root:

```yaml
CompileFlags:
  Add: [-std=c++17, -Wall, -Wextra]
  Remove: [-W*]
Diagnostics:
  UnusedIncludes: Strict
  MissingIncludes: Strict
```

Or `compile_commands.json` for complex projects:
```bash
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
# or
bear -- make
```

## Integration Pattern

When editing C/C++ code:
1. clangd uses `compile_commands.json` for project understanding
2. Run `clang-format` to format code
3. Use `clang-tidy` for static analysis
4. Compile with warnings enabled (`-Wall -Wextra`)

## Common Flags

**Compile flags:**
- `-std=c++17` - C++17 standard
- `-Wall -Wextra` - Enable warnings
- `-O2` - Optimization level
- `-g` - Debug symbols
- `-I<path>` - Include path
- `-L<path>` - Library path

**clang-tidy checks:**
```bash
clang-tidy file.cpp --checks='*' --
clang-tidy file.cpp --fix --  # Auto-fix
```

## More Information

- [clangd Website](https://clangd.llvm.org/)
- [Getting Started Guide](https://clangd.llvm.org/installation)
- [LLVM Project](https://llvm.org/)