Skip to content

riazanovskiy/CppYCM

 
 

Repository files navigation

C++YouCompleteMe

This is a Sublime Text 3 plugin aims at providing C/C++ IDE features such as semantic code completion, error highligting, goto definition and more. YCMD is used as the backend server.

ONLY TESTED ON UBUNTU

Features

  • Semantic code completion
    • Provide semantic completion proposals on ., -> and ::, done
    • Variable type indicator, not yet
  • Error highligting
    • Show error hints in code, done
    • Show errors in panel, done
    • Jump to corresponding error in source when clicking problems panel, not yet. It seems ST3 wouldn't call on_selection_modified for output panel, so this feature can't be implemented. Maybe a detour will apply.
  • Goto definition, done

demo

Installation

Set up YCMD

YCMD is partially written in C/C++, so you must compile YCMD on your platform yourself or get a pre-compiled version. Then you need to set ycmd_path and python_path in settings.

In your ycmd_path directory, following files are necessary:

ycmd/
third_party/
libclang.so
ycm_client_support.so
ycm_core.so

Windows x64 Install Guild provides an approach for Windows users to get compiled ycmd.

Ubuntu amd64 users can find compiled ycmd here. https://github.com/glymehrvrd/CppYCM/tree/compiled-ycmd.

Set Sublime Config

To enable prompt on ., -> and ::, you need to add the following configure to your sublime setting. Or create a file named C++.sublime-settings in Packages/User with following as its content.

"auto_complete_triggers":
[
    {
        "characters": ".:>",
        "selector": "source.c++ - string - comment - constant.numeric"
    }
]

Make your own .ycm_extra_conf.py

Ycmd uses .ycm_extra_conf.py to get compilation flags and other information. See c-family-semantic-completion-engine-usage for details. C++YouCompleteMe will try to load .ycm_extra_conf.py from the directory holding the opened file and all directories above it. If .ycm_extra_conf.py is not found, all functions will NOT work.

License

Copyright 2015 Glyme Water. Licensed under the MIT License.

About

A Sublime C++ completion plugin, use ycmd as its backend.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 87.0%
  • JavaScript 13.0%