Skip to content

Commit

Permalink
chore(Guide): Fix grammatical errors; Improve guide
Browse files Browse the repository at this point in the history
  • Loading branch information
walcht committed Sep 7, 2023
1 parent 9ad23fb commit 95bfea8
Showing 1 changed file with 40 additions and 46 deletions.
86 changes: 40 additions & 46 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# About

Ready-to-use Neovim configuration with the Unity engine. This intends to be
Ready-to-use Neovim configuration with the Unity engine. This project aims to be
both, a ready-to-use Neovim package and a guide on how to get Neovim
working with Unity.

Expand All @@ -15,17 +15,16 @@ do that.
This Installation guide targets __Linux distributions__. A guide on how to
properly set this for Windows(and MacOS) is yet to be provided.

This project has been tested with __Unity2020.3.XXXX LTS__. Everything seems
to be working perfectly fine. Any tests on other Unity versions are extremely
appreciated!
This project has been tested with __Unity2020.3.XXXX LTS__. Any tests on other
Unity versions are extremely appreciated!

### Installing Dependencies

First of all make sure that you have installed __Neovim >= 0.8.0__. You can do
that by following this [guide][neovim_installation].

The below dependencies should be properly installed, please take a look at
respective links for up-to-date installation instructions.
respective links for an up-to-date installation instructions.

1. __[nvr][nvr_repo]__: Remotely control Neovim processes. Install using:

Expand Down Expand Up @@ -62,15 +61,17 @@ If you want to use this configuration, make sure to do a backup:

#### Installing Plugin Dependencies

Some plugins require external tools to be installed. The following table
associates each plugin with its dependencies.
Some plugins require external tools to be installed.

You can install these dependencies one-by-one or you can execute
the ```./scripts/plugin_dependencies.sh``` script.
For a start, make sure the latest versions of these are installed:

| Plugin | Dependencies(s) |
|-------------------|-----------------------------------|
|||
1. Git
1. npm

Type ```:checkhealth``` in a Neovim instance to check for missing dependencies.
Plugins with missing dependencies should be clearly identified and a simple
internet search with the dependency's name will yield the official installation
guide.

#### Configuring Unity Editor

Expand All @@ -84,53 +85,48 @@ the ```./scripts/plugin_dependencies.sh``` script.
```

<details><summary>Why?</summary><br>
Usually when clicking on a an error message in Unity console, it directs
you towards the <b>file</b> and the <b>position</b> of the cause of that error.
To do that, Unity has to instantiate an editor server instance, provide it
with file name, line and column. Now when opening another file, the same
Usually when clicking on an error message in Unity's console, it directs
you towards the __file__ and the __position__ of the cause of that error.
To do that, Unity has to instantiate an editor server instance and provide it
with the file name, line and column. Now when opening another file, the same
editor server instance is used and the newly opened file will just appear
as a tab in the perviously instantiated editor server instance.
</details>

#### Is Everything Working Fine?

Make sure to run ```:checkhealth``` to check if plugins are working properly.
If any issues are encountered then it most probably is related to some plugin
dependencies that are not\not properly installed.
Make sure to run ```:checkhealth``` to check if installed plugins are working properly.
If any issues are encountered then it is, most probably, related to some plugin
dependencies that are not (or not properly) installed.

## TODO

1. Add debugger support (CRUCIAL!)
1. Add omnisharp-roslyn language server restart keymap (CRUCIAL!)
1. Provide a set of default keymaps as a PDF 'cheat sheet' (IMPORTANT)
1. Windows support (IMPORTANT)
1. MacOS support (IMPORTANT)
1. Improve this README file (IMPORTANT)
1. Add XML comments highlighting (OPTIONAL)
1. Add GitHub pages support (OPTIONAL)
1. [] Add debugger support for C# (CRUCIAL)
1. [] Add omnisharp-roslyn language server restart keymap (CRUCIAL)
1. [] Windows support (CRUCIAL)
1. [] Provide a set of default keymaps as a PDF 'cheat sheet' (IMPORTANT)
1. [] MacOS support (IMPORTANT)
1. [] Add XML comments highlighting (OPTIONAL)
1. [] Add GitHub pages support (OPTIONAL)
1. [] Add support for other programming languages

## (Known) Limitations

+ Omnisharp language server may take a while to start. Thus a bit of patience
opening a file for the first time is needed.
+ Development environment won't be as rich as on Visual Studio (in terms of
features provided). But you get a much more consistent development environment
if you do a lot of programming outside gamedev.
+ When opening a file for the first, Omnisharp language server may take a while
to start thus a bit of patience is needed.

## FAQ

+ Q. Why not use csharp-ls?
+ A. I have tried. I have really tried, but the amount of problems that I got
was simply not worth it (failures to detect .NET framework 4.7.X assemblies,
metadata warnings, etc...).
+ A. Serious problems on Ubuntu 22.04 (failures to detect .NET framework 4.7.X
assemblies, metadata warnings, etc...).

---

+ Q. Why the headache? Why not just use Visual Studio?
+ A. I do a lot of programming outside Unity and I'm used to using Neovim
for all my programming tasks. Thus it is much easier for me to stick to Neovim.
And you get to learn tons of new stuff when no one is holding your hand like a
baby ;)
+ A. Some people find a great joy in using Neovim. Some other people use it for
all their programming tasks thus it would be inefficient for them to transition
to Visual Studio or VSCode just for Unity programming.

---

Expand All @@ -141,14 +137,14 @@ spaces__.
---

+ Q. Syntax highlighting doesn't seem to work. What should I do?
+ A. When Neovim for the first time, for some reason Treesitter does
+ A. When opening Neovim for the first time, for some reason Treesitter does
not work (will be fixed). Just open another script and it should work.

---

+ Q. Why does LSP take so long to provided completion at the start of Neovim?
+ Q. Why does LSP take so long to provide completion at the start of Neovim?
+ A. That's Omnisharp reading your whole project for proper LSP setup. A little
bit of patience is needed.
bit of patience at the start is needed.

---

Expand All @@ -158,11 +154,9 @@ will be added)

## Feedback

This project was done by an inexperienced Neovim user. If anything can be
enhanced then please open a PR (I really do appreciate it)!
I really enjoy using Neovim and I find it a bit sad that there are no
properly updated guides on how to set it up with Unity development
environment.
properly updated guides on how to set it up with Unity for a proper, fast
and efficient development environment.

## License

Expand Down

0 comments on commit 95bfea8

Please sign in to comment.