pick

Fangrui Song 2018-10-30 12:26:49 -07:00
parent a89e0ce17a
commit c3a872290c
2 changed files with 21 additions and 1 deletions

@ -81,6 +81,19 @@ For VSCodeVim users, here's how to set arguments in User Settings (`settings.jso
```
So you could hit `<space>-t` to see callees up to 3rd level if you set `<leader>` to `<space>`
### Using vscode-ccls along side vscode-cpptools extension for debugger support
The `vscode-ccls` extension doesn't provide any debugger integration. One popular option is to use the [vscode-cpptools](https://github.com/Microsoft/vscode-cpptools) extension for this aspect. By default however, `vscode-cpptools` provides editor features that overlap with CQuery, which yields duplicate results in things like autocomplete. The following settings may be applied to disable the editor support of `vscode-cpptools` to prevent this from happening, while still retaining the debugger features.
```json
{
"C_Cpp.autocomplete": "Disabled",
"C_Cpp.formatting": "Disabled",
"C_Cpp.errorSquiggles": "Disabled",
"C_Cpp.intelliSenseEngine": "Disabled",
}
```
### Semantic Navigation
The command is `ccls.navigate`, which need an argument `direction`. ("D" => first child declaration "L" => previous declaration "R" => next declaration "U" => parent declaration)
@ -92,4 +105,4 @@ The command is `ccls.navigate`, which need an argument `direction`. ("D" => firs
{"before":["<leader>","h"],"commands":[{"command":"ccls.navigate","args":{"direction":"U"}}]},
{"before":["<leader>","l"],"commands":[{"command":"ccls.navigate","args":{"direction":"D"}}]}
]
```
```

@ -53,6 +53,13 @@ def configure(conf):
ln -s build/compile_commands.json
```
## [buck](https://buckbuild.com/)
```sh
buck build :helloworld#compilation-database
ln -s $(buck targets --show-output :helloworld#compilation-database | cut -d ' ' -f 2)
```
### stdout of an external command
You may use the initialization option `"compilationDatabaseCommand"` to provide the JSON compilation database. ccls will read its stdout rather than read `compile_commands.json`. This may be useful when ccls cannot parse the `compile_commands.json` correctly (e.g. MSVC cl.exe, Intel C++ Compiler options)