使用VSCODE開發UE4


完全可行,速度很快,智能提示、代碼格式化、查找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++

C_Cpp:Autocomplete    Default
C_Cpp:Clang_format_fallback Style   Visual Studio(這里是防止Clang_format_style填寫的是file,而系統找不到.clang-format文件時候的情況)
C_Cpp:Clang_format_path          不需要填寫(默認配置好了)
C_Cpp:Clang_format_style          Visual Studio(或者LLVM)
C_Cpp>Default: Cpp Standard        c++11
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文件內容:

---
Language:        Cpp
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands:   true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Allman
BreakBeforeInheritanceComma: false
BreakInheritanceList: AfterColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: AfterColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit:     0
CommentPragmas:  '^ IWYU pragma:'
CompactNamespaces: true
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 0
Cpp11BracedListStyle: true
DerivePointerAlignment: true
DisableFormat:   false
FixNamespaceComments: true
ForEachMacros:   
  - for
IncludeBlocks:   Regroup
IncludeCategories: 
  - Regex:           '.*\.generated\.h'
    Priority:        100
  - Regex:           '.*(PCH).*'
    Priority:        -1
  - Regex:           '".*"'
    Priority:        1
  - Regex:           '^<.*\.(h)>'
    Priority:        3
  - Regex:           '^<.*>'
    Priority:        4
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentCaseLabels: true
IndentPPDirectives: None
IndentWidth:     4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 2
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
RawStringFormats: 
  - Language:        Cpp
    Delimiters:      
      - cc
      - CC
      - cpp
      - Cpp
      - CPP
      - 'c++'
      - 'C++'
    CanonicalDelimiter: ''
    BasedOnStyle:    google
  - Language:        TextProto
    Delimiters:      
      - pb
      - PB
      - proto
      - PROTO
    EnclosingFunctions: 
      - EqualsProto
      - EquivToProto
      - PARSE_PARTIAL_TEXT_PROTO
      - PARSE_TEST_PROTO
      - PARSE_TEXT_PROTO
      - ParseTextOrDie
      - ParseTextProtoOrDie
    CanonicalDelimiter: ''
ReflowComments:  true
SortIncludes:    true
SortUsingDeclarations: true
SpaceAfterCStyleCast: true
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 4
SpacesInAngles:  false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard:        Auto
TabWidth:        4
UseTab:          Always
...

##自動格式化 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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM