1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-23 13:50:05 +08:00

Merge branch 'lang#c' into dev

This commit is contained in:
wsdjeg 2017-12-04 09:53:47 +08:00
commit cae4fd9c00
2 changed files with 79 additions and 1 deletions

View File

@ -40,10 +40,16 @@
let s:use_libclang = 0
function! SpaceVim#layers#lang#c#plugins() abort
let plugins = []
if has('nvim')
if s:use_libclang
call add(plugins, ['zchee/deoplete-clang'])
else
call add(plugins, ['tweekmonster/deoplete-clang2'])
endif
else
call add(plugins, ['Rip-Rip/clang_complete'])
endif
@ -56,6 +62,18 @@ function! SpaceVim#layers#lang#c#config() abort
call SpaceVim#mapping#space#regesit_lang_mappings('c', funcref('s:language_specified_mappings'))
endfunction
function! SpaceVim#layers#lang#c#set_variable(var) abort
" use clang or libclang
let s:use_libclang = get(a:var,
\ 'use_libclang',
\ 'clang')
if has_key(a:var, 'clang_executable')
let g:completor_clang_binary = a:var.clang_executable
let g:deoplete#sources#clang#executable = a:var.clang_executable
endif
endfunction
function! s:language_specified_mappings() abort
call SpaceVim#mapping#space#langSPC('nmap', ['l','r'],

60
docs/layers/lang/c.md Normal file
View File

@ -0,0 +1,60 @@
---
title: "SpaceVim lang#c layer"
description: "This layer is for c/c++/object-c development"
---
# [Layers](https://spacevim.org/layers) > lang#c
<!-- vim-markdown-toc GFM -->
- [Description](#description)
- [Layer Installation](#layer-installation)
- [Configuration](#configuration)
<!-- vim-markdown-toc -->
## Description
This layer is for c/c++/object-c development.
## Layer Installation
To use this configuration layer, add `SPLayer 'lang#c'` to your custom configuration file or load layer with custom options.
```vim
call SpaceVim#layers#load('lang#c',
\ {
\ 'enable_libclang' : 1,
\ }
\ )
```
## Configuration
- `clang_executable` (string)
set the path to the clang executable
- `enable_libclang` (boolean)
use libclang instead of `clang -cc1`, by default it is 0.
- `libclang_path` (string)
The libclang shared object (dynamic library) file path. by default it is empty.
- `clang_std` (dict)
```json
{
"c": "c11",
"cpp": "c++1z",
"objc": "c11",
"objcpp": "c++1z",
}
```
- `clang_flag`
Create a `.clang` file at your project root. You should be able to just paste most of your compile flags in there. You can also use a list ['-Iwhatever', ...] when loadding this layer.