Please stop using this extension and Microsoft's C++ extension for Unreal code completion.
The VSCode extension clangd
has blazing fast code completion in comparison. I've made a VSCode extension for it:
https://github.com/boocs/unreal-clangd
You will use clangd for code completion(Intellisense) and use Microsoft's C++ extension for Building/Debugging
There's also a free for non-commercial use editor made for Unreal called Rider if you want to try it:
https://www.jetbrains.com/lp/rider-unreal/
VSCode Extension supports Unreal Engine v4.25 / v4.26.1+ / and v5.0.0+
-
Download the
vsix
file from this github. It's in theReleases
section on the right hand side of this page (You might have to scroll up). -
Install the extension with the vsix file (see below)
-
The extension's
fixes
are now automaticallyenabled by default
. (Most users won't have to mess with settings) -
If you do change this extension's settings make sure to use the Workspace
Folder
setting. You'll get a warning if you don'tReason
: When you refresh your project, to add new project files to Intellisense, the *.code-workspace file is also refreshed which will delete any new settings added to it. -
Warning
: Your compiler path is saved in your project's .vscode/settings.json file. If you want to upgrade your C++ compiler make sure to delete this setting. After you install the new compiler do a project 'Refresh'.
WARNING: 3.1.0+ changes the way this extension's 'enableOptionalFixes' optimization setting works. Enabling UE optimization disables red squiggle compiling for the Unreal Engine source code. This does not affect your project's source code (it still can have red squiggles). Navigation is unaffected. You can disable this in this extension's settings.
- File Changed: Unreal Source's .vscode/settings.json
- Warn if user sets project specific extension setting in Workspace. Most settings should go in Workspace 'Folder'.
- Fixed eslint settings
- Prevent compiler path fix from saving if compiler paths are equal
- Check if compile command setting is a string, in c_cpp_properties.json, and give error if not and tell user to Refresh project.
- Fixed eslint errors
- Most settings have been switched so you they can only be set in Workspace(bad) or Workspace Folder(good)
- Removed setting where you have to enable fixes. Fixes will run if you have the extension enabled. You can still disable optional fixes.
- Optional fixes are on by default. You can still disable them.
- Removed setting where you could choose compiler path to be global(user) or project specific
- Fixed glob, that detected new source files, so that it only detects source files in the immediate Source directory.
- Now says to user to soft reset project which is proper way to add new source files intellisense.
- Now uses esbuild to bundles extension (smaller download size and faster start)
- Cpp standard fix now supports UE 5.3+ and c++20
- Check for 5.3+ to bypass launch.json fix
- Only force show logs when there's an error
- More gentle log message if not Unreal project
- Fixed errant return, in intellisense fix, that caused intellisenseMode to only set after VSCode restart
- Switched String replaceAll function with replace (caused exception by not being supported by all systems with this config)
- Extension's intellisenseMode can now be set on a per project basis in Workspace settings
- Extension's Mac M1/M2 default intellisenseMode is now auto set in Workspace setting
- Changed reading/writing files
- Added more launch fix logs
- Since it now works correctly changed Mac M1/M2 intellisenseMode default to "macos-clang-arm64" (can be changed in this extension's settings)
- Fixed async/await in wrong intellisenseMode fix which fixes it
- Fixed async/await in file watchers
- Fixed Promise function not having await in launch.json fix
- Support for UE 5.1: They changed how they use compile commands(arguments instead of command)
- Will ask to overwrite compiler setting if compiler path is different in compile commands
- Compiler path setting can now be either local(project) or global (can't have both)
- Added new setting that turns on/off local(project) compiler path functionality
- Updated package-lock.json
- With 5.1, Epic includes hundreds of include directories that don't exists. We only give a warning about how many and don't attempt to fix.
- Changed Extension's path setting. Will now pull from compile command's path if not set. If set will set both compile command compiler path and compilerPath setting(c_cpp_properties.json).
- Removed strict setting
- Added comment about extension's compiler.path setting for Mac users. Probably needs to be set to /usr/bin/clang++ for Intellisense to work.
- When not using strict setting will auto copy Unreal's compiler choice to the path setting.
- Stop recommending to use the extension's strict setting(it's now an error but can stil be used). Users using the strict setting should uncheck the setting and reset their project(Generate Project Files)
- Changed default intellisenseMode for Mac M1 users to clang-x64
- Added editable intellisenseMode extension setting (For Mac M1 users it will be auto set to clang-x64)
- Changed default Mac M1 compiler setting to clang++ instead of clang
- Added warning for Mac users for setting UEIntellisenseFixes.compiler.path
- Fixed response file path regex to support dashes
- Better error message for response file regex being unable to read path
- Retrying Mac M1 generated.h regex path tester (Not sure if it's M1 only fix or a general Mac fix)
- Fixed Mac M1 generated.h regex path tester (Not sure if it's M1 only fix or a general Mac fix)
- Added c++20 option for future or experimental projects
- Added error messages when creating compile command objects
- Added fix for non-quoted response file paths yggie (Thanks!)
- Added some error messages for invalid projects
- Fixed the wording for the optional optimization fix
- Simpler way for the extension's 'enableOptionalFixes' optimization setting. Now just uses Tag Parser for UE source. SEE WARNING ABOVE
- Added error if *.generated.h files aren't Built yet
- Added error if *.generated.h path isn't in rsp files
- Add error if using UE5 and using the wrong cppStandard
- Added info message about default cppStandard for UE4/UE5
- Better warning if UE path isn't in *.code-workspace file
- Show total # of errors/warnings messages at end of log
- Warn if using the extension's path setting without strict enabled
- Warning if project is using Source/(ProjectName)/(Public/Private) directory structure
- Launch json fix refactor.
- Launch json fix of this extension's previous launch json fix version to match console setting of UE5 to UE4
- Response file path regex for linux (and probably Mac)
-
Changed to a different way of checking for UE's Version.h
-
Changed all findFiles to fast-glob. findFiles(api function) was failing sometimes for unknown reasons.
Thanks to @heptaspirit for helping test this!
-
Converted from node read/write file to vscode api read/write file.
-
Removed convoluted progress bar code (The info bar already has a 'extension is done' indicator)
-
Changed reset detection - Now just warns to restart VSCode.
-
Fixed isValid project code so file watchers will now run
- Fix for UE5 Preview 1's malformed json in launch.json
- Mac M1 fix will auto set compiler path in c_cpp_properties (Can also change the path in new extension settings)
- New compiler.path setting to force compiler path in c_cpp_properties.
- New compiler.strictPath setting to force compiler.path setting in compile commands file.
- 4.26 now uses 4.27 code path. It shouldn't matter... and adds some of the new functionality to 4.26.
- Updated dependencies (security)
- Changed VSCode version compatibility version to 1.63.1+ (security)
- Fix for startup bug not finding *.uproject file thus not starting the extension
- Fix for Mac M1 users to change Intellisense Mode automatically (untested)
- Removed options for c++ standard not supported by UE
- (4.27+/5.0+) Changed the way compiler path was getting fixed in compile command files.
- (4.27+/5.0+) Added clang-cl.exe intellisense support to Windows. Add clang-cl.exe path to the cpptools extension User's compilerPath setting to use.
- Fixed an error message not getting logged
- UE 5.0+ now uses compiler path fix that 4.27 uses
- Allow cancelling all response file choices of missing compile commands by seesemichaelj
Thanks!