完全可行,速度很快,智能提示、代码格式化、查找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. 概率DP(放棋子)Domination

    题意:https://zoj.pintia.cn/problem-sets/91827364500/problems/91827369874 给你n*m的棋盘,我们定义放满棋盘是:任意一行一列至少有一 ...

  2. Dedesql数据库类详解(二次开发必备教程)

    其实数据库类织梦之前就有一个介绍,http://help.dedecms.com/v53/archives/functions/db/,这篇文章讲解了数据库类的一些常见的使用方法,不过没有结合例子去介 ...

  3. MyBatis的foreach查询(List、Array、Map)

    mybatis 中 foreach collection的三种用法 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index ...

  4. shiro配置学习

    一.shiro的配置 1.shiro的web过滤 实例化ShiroFilterFactoryBean 设置securityManager.loginUrl.unauthorizedUrl.sucess ...

  5. Oracle Help 类

    public static string ConnString = @"Data Source=xxx;USER ID=xxx;PASSWORD=xxx"; /// <sum ...

  6. VS Code 配置碰到的问题

    VS Code 呈现缩进参考线以及语法高亮改变 找到 首选项——>设置→搜索renderIntentGuides→将此选项改为true(默认为false),就可以了.

  7. Git复习(一)之简介、安装、集中式和分布式

    简介 Git是分布式版本控制系统,使用C语言开发的,CVS.SVN是集中式的版本控制系统,集中式的版本控制系统不但速度慢,而且必须联网才能使用. Git是分布式版本控制系统,同一个Git仓库,可以 分 ...

  8. 冒泡排序(java可直接跑,算法思想等小儿科不多说直接上代码)

    import java.util.Arrays; /** *冒泡排序:时间复杂度O(N^2),空间复杂度O(1),稳定的排序 * 每趟确定一个元素的位置,所以需要arr.length趟排序, */pu ...

  9. DES加密解密 MD5加密解密

    #region MD5 加密 /// <summary> /// MD5加密静态方法 /// </summary> /// <param name="Encry ...

  10. 超详细思路讲解SQL语句的查询实现,及数据的创建。

    最近一直在看数据库方面的问题,总结了一下SQL语句,这是部分详细的SQL问题,思路讲解: 第一步:创建数据库表,及插入数据信息 --Student(S#,Sname,Sage,Ssex) 学生表 CR ...