Neovim as Source Code Editor

Hello there I’ve created plugin for Unreal Engine 5. And it’s allows you to edit your code through the neovim. Here is short demo of work. It’s just tested for Linux platform. Support for other platforms will be added soon. Here is pool request

5 Likes

Hello, I also have a plugin, but mine is for neovim. It’s a plugin+configuration, and gets syntax highlighting working for unreal engine, along with some familiar hotkeys

I absolutely love the idea, sorry to hear your PR was rejected. I think the reviewers don’t know what neovim is. don’t let it discourage you <3

1 Like

Man I’m trying very hard to integrate neovim on unreal engine, I put your changes manually and it fails. I’ll love to hear if you still use that code for your own plugin configuration.

@chuckie.meister

The OP’s plugin is a SourceCodeAcessor, it only allows for opening files by clicking at them inside of Unreal Editor, but nothing else - it won’t provide code competition, LSP navigation or syntax highlight, it does NOT serve any other purpose than opening files. Do you actually need this functionality?

Also, you don’t need to apply those patches into Engine source tree. You can find a standalone plugin on OP’s github (link below), but have in mind that code is unlicensed and abandoned.

1 Like

XD, one day. I’ll return for that plugin! XD Its not abandoned! :upside_down_face:

It has only one commit :v

Thank you very much for your reply, in that case I don’t need it. Still trying to find a way to have autocompletion without any weird errors like the following:

Do you have a proper compile_commands.json database? @chuckie.meister
clangd needs it in order to diagnose your code correctly.
You can check how it’s done here:

I get the compile_commands.json file from the Build.sh:

ue(){
    project_folder=$(basename "$(pwd)")

    /bin/bash ~/Unreal_Engine/Engine/Build/BatchFiles/Linux/Build.sh \
        ~/Games/Unreal\ Projects/$project_folder/$project_folder.uproject \
        -game \
        -engine $project_folder\Editor Linux Development

    /bin/bash ~/Unreal_Engine/Engine/Build/BatchFiles/Linux/Build.sh \
        -mode=GenerateClangDatabase \
        -project=/home/chm/Games/Unreal\ Projects/$project_folder/$project_folder.uproject \
        -game \
        -engine $project_folder\Editor Linux Development

    mv ~/Unreal_Engine/compile_commands.json ~/Games/Unreal\ Projects/$project_folder/ 
}

but this only get my LSP auto-completion working, but it will throws too many errors on the editor. I put the compile_commands.json in my project root directory (where the .uproject file is place).

@chuckie.meister This is most likely what’s breaking it:

mv ~/Unreal_Engine/compile_commands.json ~/Games/Unreal\ Projects/$project_folder/

You need the same compile_commands.json in BOTH: your project’s root directory AND engine’s root directory.

In your case, you’re moving said file so it’s missing from the engine’s root directory.
Instead of mv (move), try using either: ln -sf (symbolic link) OR cp -f (copy).

Also make sure to reset clangd and delete its indexing so it can be regenerated.


If you’re wondering why said file must be located in two places the answer is here:
“We [clangd] first check for a compilation database in the directory containing the source file, and then walk up into parent directories until we find one.”

Having an issue with this with NeovimSourceCodeAccess enabled that

Same error while generating clang database

I really wished generating project files for clangd was much simpler :frowning: They just bound themselves for no reason with the C++ vscode extension by microsoft when clearly clangd is used everywhere including vscode.

Update: Fixed this by copy pasta the NeovimSourceCode Access in the project plugins.