C/C++ code generation for VS Code: Generate Definitions, Getters, Setters, and much more.
C-mantic provides code generation and refactorings for C/C++. Relevant code-actions are suggested via the light-bulb menu 💡, and can be accessed directly by selecting Refactor...
or Source Actions...
in the editor context menu. Code-actions are also available from the command palette or by keyboard shortcut.
Full Documentation: https://bigbahss.github.io/vscode-cmantic/
Requires a C/C++ language server extension (IntelliSense) for full functionality, such as Microsoft's C/C++ extension. See Language Server below for more details.
If you find a bug or would like to request a new feature, please open an Issue on Github. Also, consider leaving the extension a rating.
C-mantic is designed to work with any C/C++ language server, and is primarily tested with C/C++ (ms-vscode.cpptools
) and clangd (llvm-vs-code-extensions.vscode-clangd
), but will also work on ccls (ccls-project.ccls
). If you use a different language server, C-mantic may still work, but is untested. If you find a bug that you suspect might be related to your language server, please open an Issue and state what language server you are using.
If you find that features of C-mantic aren't working, first make sure that your language server (IntelliSense) is working correctly. To do this, check out the Outline View, usually found in the Explorer
side-bar. The Outline View should show all source code symbols for the current file. Also, make sure Go to Definition
and Go to Declaration
are working. If C-mantic still isn't working correctly, open an Issue on GitHub and describe the problem along with any relevant information.
Add Definition
code-actions until the language server updates. To mitigate this, you can change how often the language server updates in response to code changes:
C/C++
(ms-vscode.cpptools), you can lower the C_Cpp: Intelli Sense Update Delay
setting (default 2000ms).ccls
(ccls-project.ccls), you can lower the Status Update Interval
setting (default 2000ms).The list of planned features can be found here. Requests for new features/functionalities are welcome, just open an Issue on Github. If you'd like to contribute, feel free to open a pull-request.
This software is released under the MIT License