diff options
Diffstat (limited to 'contrib/YouCompleteMe')
-rw-r--r-- | contrib/YouCompleteMe/README.md | 31 | ||||
-rw-r--r-- | contrib/YouCompleteMe/ycm_extra_conf.py | 65 |
2 files changed, 0 insertions, 96 deletions
diff --git a/contrib/YouCompleteMe/README.md b/contrib/YouCompleteMe/README.md deleted file mode 100644 index 345a9d8d12..0000000000 --- a/contrib/YouCompleteMe/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# YouCompleteMe Integration - -## What is this? - -This provides the code necessary to configure vim's YCM plugin to provide C -semantic support (completion, go-to-definition, etc) for developers working on -the Neovim project. - -## Installation - -### Step 1 - -Install [YouCompleteMe](https://github.com/Valloric/YouCompleteMe). - -### Step 2 - -```bash -cp contrib/YouCompleteMe/ycm_extra_conf.py .ycm_extra_conf.py -echo .ycm_extra_conf.py >> .git/info/exclude -make -``` - -Tip: to improve source code navigation, add something like this to your nvim -configuration: - -```vim -au FileType c,cpp nnoremap <buffer> <c-]> :YcmCompleter GoTo<CR> -``` - -And use `ctrl+]` when the cursor is positioned in a symbol to quickly jump to a -definition or declaration. diff --git a/contrib/YouCompleteMe/ycm_extra_conf.py b/contrib/YouCompleteMe/ycm_extra_conf.py deleted file mode 100644 index e436609ce2..0000000000 --- a/contrib/YouCompleteMe/ycm_extra_conf.py +++ /dev/null @@ -1,65 +0,0 @@ -# .ycm_extra_conf.py for nvim source code. -import os -import ycm_core - - -def DirectoryOfThisScript(): - return os.path.dirname(os.path.abspath(__file__)) - - -def GetDatabase(): - compilation_database_folder = os.path.join(DirectoryOfThisScript(), - 'build') - if os.path.exists(compilation_database_folder): - return ycm_core.CompilationDatabase(compilation_database_folder) - return None - - -def GetCompilationInfoForFile(filename): - database = GetDatabase() - if not database: - return None - return database.GetCompilationInfoForFile(filename) - - -# It seems YCM does not resolve directories correctly. This function will -# adjust paths in the compiler flags to be absolute -def FixDirectories(args, compiler_working_dir): - def adjust_path(path): - return os.path.abspath(os.path.join(compiler_working_dir, path)) - - adjust_next_arg = False - new_args = [] - for arg in args: - if adjust_next_arg: - arg = adjust_path(arg) - adjust_next_arg = False - else: - for dir_flag in ['-I', '-isystem', '-o', '-c']: - if arg.startswith(dir_flag): - if arg != dir_flag: - # flag and path are concatenated in same arg - path = arg[len(dir_flag):] - new_path = adjust_path(path) - arg = '{0}{1}'.format(dir_flag, new_path) - else: - # path is specified in next argument - adjust_next_arg = True - new_args.append(arg) - return new_args - - -def FlagsForFile(filename): - compilation_info = GetCompilationInfoForFile(filename) - if not compilation_info: - return None - # Add flags not needed for clang-the-binary, - # but needed for libclang-the-library (YCM uses this last one). - flags = FixDirectories((list(compilation_info.compiler_flags_) - if compilation_info.compiler_flags_ - else []), compilation_info.compiler_working_dir_) - extra_flags = ['-Wno-newline-eof'] - return { - 'flags': flags + extra_flags, - 'do_cache': True - } |