c++ - vim clang Complete 看不到 opengl 的一些功能

标签 c++ vim autocomplete clang

我安装了 vimclang_complete,但由于某种原因,当我尝试自动完成时,它看不到一些 OpenGL 的功能,例如 glBindBufferglEnableVertexAttribArray。我按 CTRL + XCTRL + U 强制自动完成,它显示函数名称和参数,但它只是缺少一些功能。

即使使用glfw,我也尝试自动完成GLFW_KEY_ESC,但它不存在,我不知道为什么,它只是说用户定义的完成(^U ^N^P) 未找到模式

有人能解决这个问题吗?这很烦人,因为我经常使用这些功能并且需要自动完成。

谢谢。

编辑:我的包含头文件也是这样:

#include <iostream>
#include <string>
#include <GL/glew.h>
#include <GL/glfw.h>
#include <glm/glm.hpp>

顺便说一下,我使用的是 Arch Linux x64

最佳答案

好吧,我找到了答案。因为 clang_complete 无法完成 GLEW 创建的参数(因为函数被定义为 #define FOO somefunction,而不是定义为: #define FOO(arg1, arg2, arg3) someFunction(arg1, arg2, arg3))

要解决此问题,您必须将此选项添加到 ~/.vimrc 文件中。

let g:clang_complete_macros = 1

现在,您将获得函数完成,但仍然没有参数完成。因此,您必须将 GLEW(不幸的是)替换为

#define GL_GLEXT_PROTOTYPES
#include <GL/gl.h>
#include <GL/glext.h>

这将最终完成论证,不过,如果有解决此问题的替代方法,我想听听。

关于c++ - vim clang Complete 看不到 opengl 的一些功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15260891/

相关文章:

c++ - gcc 还支持 sjlj 吗?

c++ - 是否可以检测 lambda 在捕获组中是否具有 “this”?

php - 使用 DOJO 自动完成文本框

java - IntelliJ IDEA 在 Debug模式下不拦截 JLine 代码补全

ajax - PF 自动完成完成方法未被触发

c++ - 以编程方式确保随机调色板充满活力并且与背景截然不同

c++ - 关于 reinterpret_cast 的问题

vim - 在光标前插入空格,然后将光标移动到 Vim 中新添加的空格之前

javascript - vim 使用 tidy 和 Jsbeautifull 自动格式化 html 文件和 &lt;script&gt; 标签

regex - 在vim中我想找到一个字符串并在字符串的每个字符之间插入空格