介绍:
C/C++ GNU Global:Intellisense开发工具
C/C++ GNU Global是一款基于GNU Global(≥6.5)的扩展工具,为C/C++开发者提供Intellisense功能,提升开发效率。该扩展是从C/C++ Intellisense分叉/重写的,目前仍处于初步阶段。如遇到问题,请访问Github Issues进行问题报告和功能请求。
使用方法:
需要GNU Global(≥6.5),可从官方网站下载二进制文件。Ubuntu 18.04及以上用户可通过apt安装:
sudo apt install global
将global可执行文件的文件夹添加到PATH环境变量中,或指定gnuGlobal.globalExecutable和gnuGlobal.gtagsExecutable配置。对于Windows用户,建议使用WSL:
{
"gnuGlobal.globalExecutable": "C:\\global\\global.exe",
"gnuGlobal.gtagsExecutable": "C:\\global\\gtags.exe"
}
GNU Global是一个标记系统,没有后台运行的语言服务。需要按F1并执行“Global: Rebuild Gtags Database”来生成标记文件,才能使用其他功能。
如果使用非UTF8的Windows,需指定输出编码。支持的编码可参考https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings。例如,传统中文Windows使用Big5:
{
"gnuGlobal.encoding": "Big5"
}
C用户注意事项:
命令:
Global: Rebuild Gtags Database:通过运行'gtags'生成标记文件。保存代码后,该扩展会尝试通过运行'global -u'增量更新标记文件。如果自动更新效果不佳,可手动运行此命令重建所有标记文件。建议将GTAGS、GRTAGS和GPATH添加到全局gitignore设置中。
Global: Show GNU Global Version:通过运行'global --version'显示global版本。
转到定义(F12)、查找所有引用(Shift F12)、转到文件中的符号(Ctrl Shift O)
配置:
gnuGlobal.encoding:指定命令行输出的编码。支持的编码请参考https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings。
gnuGlobal.autoUpdate:控制是否在文件保存后自动更新标记。可选项为Enabled、Disabled和Default。默认情况下,如果GTAGS数据库大小超过50MB,则禁用自动更新。对于大型项目,建议禁用此功能。
gnuGlobal.completion:启用/禁用自动完成功能。默认启用。
gnuGlobal.gtagsForceCpp:在GNU Global 6.6.6中已弃用。如果使用插件解析器,请勿设置此变量。启用此选项时,后缀为".h"的文件将被视为C源文件。更改此配置后需重建标记。默认禁用。
gnuGlobal.libraryPath:用于搜索库函数的路径。如果在项目中未找到指定的标记,该扩展还会在此路径中搜索。必须为绝对路径。'Rebuild Gtags Database'不会为这些库重建标记文件,需要单独为它们构建标记。文件夹/工作区设置将覆盖用户设置。
gnuGlobal.globalExecutable:指定global的路径。默认值为'global'。
gnuGlobal.gtagsExecutable:指定gtags的路径。默认值为'gtags'。
gnuGlobal.objDirPrefix:如果设置了objDirPrefix且objDirPrefix目录存在,gtags会在objDirPrefix/project_dir目录中创建并生成标记文件。Global也会尝试在该目录中搜索标记文件。此选项适用于不想在项目目录中创建标记文件的情况。只支持UNIX风格文件系统,Windows不支持。
gnuGlobal.gtagSkipSymlink:构建标记文件时跳过符号链接。对于包含大量符号链接的大型项目很有用。可选项为None、File、Directory或All。默认值为None。需要GNU Global 6.6.3。
gnuGlobal.debugMode:记录更多信息以调试此扩展。默认禁用。如果扩展表现不佳,请尝试启用此配置。可以在开发者工具(帮助 > 切换开发者工具)中找到错误日志。
限制:
GNU Global不进行AST解析,因此自动完成功能无法理解类成员等。
资源:
享受开发乐趣!
本站所有资源都是由网友投稿发布,或转载各大下载站, 请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则 产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:study_golang@163.com