完全可行,速度很快,智能提示、代码格式化、查找Symbol等等都不比VS+Visual AssistX 差。

准备

  1. 打开编辑器的Editor Preferences>Source Code,选择VSCode
  2. 在工程的uproject文件上右键>Generate Visual Studio Project,就会生成一个workspace文件,双击即可打开visual studio code. 同时生成的还有一个.vscode文件夹。

配置VSCode

  1. VSCode需要的插件网上众说纷纭,实际证明,只需要这三个就够了:

什么clang-format之类的完全不需要,因为c/c++里面自带了clang-format.

打开设置(Ctrl+,或者File>Preferences>Settings)

选择Extensions>C/C++

  1. C_Cpp:Autocomplete Default
  2. C_Cpp:Clang_format_fallback Style Visual Studio(这里是防止Clang_format_style填写的是file,而系统找不到.clang-format文件时候的情况)
  3. C_Cpp:Clang_format_path 不需要填写(默认配置好了)
  4. C_Cpp:Clang_format_style Visual Studio(或者LLVM)
  5. C_Cpp>Default: Cpp Standard c++11
  6. C_Cpp:Workspace Symbols All

最后这条最重要,否则查找Symbol时候就无法识别到UE源码中的代码了。

注意上面的两个format 可以取值Visual Studio, LLVM, Google, WebKit等。推荐使用WebKit

如果追求完美,可以这样设置

官方C/C++插件自带的clang-format版本是6.0,所以设置相关选项时要注意参考的文档版本。

可以自行下载最新的clang-format文件,目前最新版本是7.0。

下载位置:下载

选择编译好的win64版本。

安装好以后只需要找到里面的clang-format.exe 拷贝到别处(例如C:/),其余部分就可以卸载了。

然后将C_Cpp:Clang_format_path设置为刚下载的clang-format.exe路径:

"C_Cpp.clang_format_path": "C:\\clang-format.exe",

C_Cpp:Clang_format_style设置为file,表示从工作目录或上级文件夹中寻找.clang-format配置文件。

在工作目录中创建一个名称为.clang-format的文件

windows系统中无法创建名字以.开头的文件,可以这样创建:打开cmd,输入echo >.clang-format ,回车即可创建。

内容用下方内容粘贴

这里有一个专门为UE4配置好的.clang-format文件内容:

  1. ---
  2. Language: Cpp
  3. AccessModifierOffset: -4
  4. AlignAfterOpenBracket: Align
  5. AlignConsecutiveAssignments: false
  6. AlignConsecutiveDeclarations: false
  7. AlignEscapedNewlines: Left
  8. AlignOperands: true
  9. AlignTrailingComments: true
  10. AllowAllParametersOfDeclarationOnNextLine: true
  11. AllowShortBlocksOnASingleLine: true
  12. AllowShortCaseLabelsOnASingleLine: true
  13. AllowShortFunctionsOnASingleLine: None
  14. AllowShortIfStatementsOnASingleLine: false
  15. AllowShortLoopsOnASingleLine: false
  16. AlwaysBreakAfterReturnType: None
  17. AlwaysBreakBeforeMultilineStrings: false
  18. AlwaysBreakTemplateDeclarations: Yes
  19. BinPackArguments: false
  20. BinPackParameters: false
  21. BreakBeforeBinaryOperators: None
  22. BreakBeforeBraces: Allman
  23. BreakBeforeInheritanceComma: false
  24. BreakInheritanceList: AfterColon
  25. BreakBeforeTernaryOperators: true
  26. BreakConstructorInitializersBeforeComma: false
  27. BreakConstructorInitializers: AfterColon
  28. BreakAfterJavaFieldAnnotations: false
  29. BreakStringLiterals: true
  30. ColumnLimit: 0
  31. CommentPragmas: '^ IWYU pragma:'
  32. CompactNamespaces: true
  33. ConstructorInitializerAllOnOneLineOrOnePerLine: true
  34. ConstructorInitializerIndentWidth: 4
  35. ContinuationIndentWidth: 0
  36. Cpp11BracedListStyle: true
  37. DerivePointerAlignment: true
  38. DisableFormat: false
  39. FixNamespaceComments: true
  40. ForEachMacros:
  41. - for
  42. IncludeBlocks: Regroup
  43. IncludeCategories:
  44. - Regex: '.*\.generated\.h'
  45. Priority: 100
  46. - Regex: '.*(PCH).*'
  47. Priority: -1
  48. - Regex: '".*"'
  49. Priority: 1
  50. - Regex: '^<.*\.(h)>'
  51. Priority: 3
  52. - Regex: '^<.*>'
  53. Priority: 4
  54. IncludeIsMainRegex: '([-_](test|unittest))?$'
  55. IndentCaseLabels: true
  56. IndentPPDirectives: None
  57. IndentWidth: 4
  58. IndentWrappedFunctionNames: false
  59. JavaScriptQuotes: Leave
  60. JavaScriptWrapImports: true
  61. KeepEmptyLinesAtTheStartOfBlocks: false
  62. MacroBlockBegin: ''
  63. MacroBlockEnd: ''
  64. MaxEmptyLinesToKeep: 2
  65. NamespaceIndentation: None
  66. ObjCBinPackProtocolList: Never
  67. ObjCBlockIndentWidth: 2
  68. ObjCSpaceAfterProperty: false
  69. ObjCSpaceBeforeProtocolList: true
  70. PenaltyBreakAssignment: 2
  71. PenaltyBreakBeforeFirstCallParameter: 1
  72. PenaltyBreakComment: 300
  73. PenaltyBreakFirstLessLess: 120
  74. PenaltyBreakString: 1000
  75. PenaltyBreakTemplateDeclaration: 10
  76. PenaltyExcessCharacter: 1000000
  77. PenaltyReturnTypeOnItsOwnLine: 200
  78. PointerAlignment: Left
  79. RawStringFormats:
  80. - Language: Cpp
  81. Delimiters:
  82. - cc
  83. - CC
  84. - cpp
  85. - Cpp
  86. - CPP
  87. - 'c++'
  88. - 'C++'
  89. CanonicalDelimiter: ''
  90. BasedOnStyle: google
  91. - Language: TextProto
  92. Delimiters:
  93. - pb
  94. - PB
  95. - proto
  96. - PROTO
  97. EnclosingFunctions:
  98. - EqualsProto
  99. - EquivToProto
  100. - PARSE_PARTIAL_TEXT_PROTO
  101. - PARSE_TEST_PROTO
  102. - PARSE_TEXT_PROTO
  103. - ParseTextOrDie
  104. - ParseTextProtoOrDie
  105. CanonicalDelimiter: ''
  106. ReflowComments: true
  107. SortIncludes: true
  108. SortUsingDeclarations: true
  109. SpaceAfterCStyleCast: true
  110. SpaceAfterTemplateKeyword: true
  111. SpaceBeforeAssignmentOperators: true
  112. SpaceBeforeCpp11BracedList: false
  113. SpaceBeforeCtorInitializerColon: true
  114. SpaceBeforeInheritanceColon: true
  115. SpaceBeforeParens: ControlStatements
  116. SpaceBeforeRangeBasedForLoopColon: true
  117. SpaceInEmptyParentheses: false
  118. SpacesBeforeTrailingComments: 4
  119. SpacesInAngles: false
  120. SpacesInContainerLiterals: true
  121. SpacesInCStyleCastParentheses: false
  122. SpacesInParentheses: false
  123. SpacesInSquareBrackets: false
  124. Standard: Auto
  125. TabWidth: 4
  126. UseTab: Always
  127. ...

自动格式化

Text Editor> Formatting

Format On Save和Format On Type都打勾。

常用快捷操作

打开Symbol: 按Ctrl键并鼠标左键点击Symbol

查找Symbol: 选择Symbol并Ctrl+T (VAssist中的Alt+Shift+S)

转到定义: F12

转到声明: Ctrl+F12

重命名: Ctrl+F2

切换头/源文件: Alt+O (VAssist快捷键一样)

快速打开文件: Ctrl+P (VAssist中的Alt+Shift+O)

使用VSCODE开发UE4的更多相关文章

  1. .Net Core Linux centos7行—vscode开发,linux部署运行

    前面搭建好啦linux运行环境,下面搭建windows下的开发环境.并完成调试 参考地址:https://www.microsoft.com/net/core#windows. 按照步骤来就好.安装. ...

  2. vscode 开发.net core 从安装到部署 教程详解

    一:环境准备: windows系统需要 win7 sp1 / windows 8  / windows 2008 r2 sp1 / windows10: 其他版本的windows系统在安装.NET C ...

  3. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)

    最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...

  4. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(3)

    第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 第二部分: http://www.cnblogs.com/cgzl/p/8481825.html 由于 ...

  5. 使用vscode开发调试.net core应用程序并部署到Linux跨平台

    使用VS Code开发 调试.NET Core RC2应用程序,由于.NET Core 目前还处于预览版. 本文使用微软提供的示例进行开发及调试. https://github.com/aspnet/ ...

  6. vsCode 开发微信小程序插件

    用 vsCode 开发微信小程序可以配置以下插件,让开发更美好: 1. vscode weapp api 2. vscode wxml 3. vscode-wechat 4. Easy WXLESS ...

  7. 用vscode开发vue应用[转]

    https://segmentfault.com/a/1190000019055976 现在用VSCode开发Vue.js应用几乎已经是前端的标配了,但很多时候我们看到的代码混乱不堪,作为一个前端工程 ...

  8. 【.NET Core项目实战-统一认证平台】基于jackcao博客使用VSCode开发及感悟One搭建开发环境

    原博客系列文章链接:https://www.cnblogs.com/jackcao/ 金焰的世界 感谢博主无私的奉献,感谢博主幼儿班的教学 基于jackcao博客使用VsCode开发及感悟One搭建开 ...

  9. 用vscode开发vue应用

    阅读 3237 收藏 205 2019-05-02 原文链接:segmentfault.com 云服务器 1 核 2G , 9元/月 ,买十送二,99/年!!!快来上车!developer.huawe ...

随机推荐

  1. c++练习之模板类的练习

    编写一维数组模板.可以无限扩展,任意数据类型,可以进行插入,删除,查找,排序等操作 #include<iostream> using std::cout; using std::cin; ...

  2. 【NOIP2017】跳房子

    这题我0分. 比赛时,我一眼出正解,哈哈,太水了! 这题不就是一个二分+DP+单调队列吗? 然而,细节决定成败. 我错了许多细节,就挂了. 我只考了0分... 首先,这题满足一个条件: 保证g变大后, ...

  3. Linux就该这么学——安装配置VM虚拟机

    Vm虚拟机下载地址 : https://cloud.189.cn/t/zAfaQvJZRziu (访问码:6717) rehl镜像下载地址 :  https://cloud.189.cn/t/67BJ ...

  4. 基于Hadoop伪分布式集群搭建Spark

    一.前置安装 1)JDK 2)Hadoop伪分布式集群 二.Scala安装 1)解压Scala安装包 2)环境变量 SCALA_HOME = C:\ProgramData\scala-2.10.6 P ...

  5. nginx相关知识点

    1.nginx -V 可以查看nginx的安装目录等目录信息 2.nginx -v 查看版本 3.路径 /usr/local/etc/nginx/nginx.conf (配置文件路径) /usr/lo ...

  6. IDEA打开光标是粗黑色,backspace键、insert键点击无效的解决办法

    问题描述:打开IDEA的编译器之后,界面显示的光标变粗,点击backspace键和insert键盘之后无效 解决方法:打开File——Settings——Plugins,在右侧的搜索栏中搜索IdeaV ...

  7. linux下测试web访问及网络相关的命令

    curl命令 curl是linux系统命令行下用来简单测试web访问的工具. curl -xip:port www.baidu.com    -x可以指定ip和端口,省略写hosts,方便实用 -I  ...

  8. Linux 文件恢复(XFS & EXT4)

    在Linux中,删除rm命令使用需谨慎,有时候可能由于误操作,导致重要文件删除了,这时不要太紧张,操作得当的话,还是可以恢复的. EXT 类型文件恢复 删除一个文件,实际上并不清除inode节点和bl ...

  9. docker_Ubuntu16.04下安装cuda

    经过一上午的研究,终于配置好docker环境,并成功安装cuda9.0. (1)下载安装文件.首先去英伟达官网下载cuda安装包:https://developer.nvidia.com/cuda-t ...

  10. (转) Apache Shiro 使用手册(三)Shiro 授权

    解惑之处: 使用冒号分隔的权限表达式是org.apache.shiro.authz.permission.WildcardPermission 默认支持的实现方式. 这里分别代表了 资源类型:操作:资 ...