Code Editors
CLI
Most development will be done in an IDE. However a CLI editor is still sometimes needed and can be more convenient to use in some situations than a full-fledged IDE. For instance, consider the scenario where you have to SSH into a remote server and need to edit a configuration file. In such cases a CLI editor is the most convenient tool to edit the configuration file.
For beginners GNU nano is a good option. It is easy to use and comes pre-installed on most Linux distributions. However the capabilities of nano are a bit limited so in the long-term it might be worth learning how to use a more powerful CLI editor.
The CLI editor recommended in this guide is Neovim. It is a fork of Vim.
Warning
Vi, Vim and Neovim are not intuitive to use for beginners. They have a bit of a learning curve. One starting point for learning could be the Neovim documentation.
Tip
If you ever get stuck in Vi, Vim or Neovim and don't know how to exit then press the "Esc" keyboard key. This should ensure you are in the "Normal mode" and not some other mode. Once you are in normal mode type a colon (":") to enter the command mode. Once you are in command mode type "q" to quit. Then press the "Enter" key and you should exit the editor and be back on the command-line.
Installation
To install neovim run the below command in a terminal:
sudo dnf install neovim
After the installation is complete you can launch Neovim by running "nvim". Optionally you can provide a file path as a parameter to open a file at a particular location:
nvim <optional file path>
Configuration
To configure Neovim we will use a pre-made configuration called NvChad. With this configuration Neovim becomes more like an IDE than a text editor. To install NvChad run the following command:
git clone https://github.com/NvChad/starter ~/.config/nvim && nvim
Now you should be in Neovim. Once the plugins have finised downloading run the following command in the Neovim command mode:
:MasonInstallAll
Once that is complete the installation is complete. You can delete the NvChad .git folder created in the Neovim configuration location:
rm -R -f ~/.config/nvim/.git
For further instructions regarding installation, updating or uninstallation of NvChad please refer to the NvChad installation instructions.
Neovim with the NvChad configuration looks like this:
IDE
IDE stands for Integrated Development Environment. Generally speaking, IDEs are text editors with additional features useful for developers already built-in. This can include debuggers, support for version control software and build automation tools.
The recommended IDE when following this guide is Visual Studio Code. It is beginner-friendly and relatively lightweight.
Installation
Visual Studio Code is not included with the default Fedora package repository. To install it we need to first add the Microsoft repository to our package manager:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo > /dev/null
Next update the package cache:
sudo dnf check-update
Now we can install Visual Studio Code:
sudo dnf install code
A session in Visual Studio Code looks like this:
AI Copilot
An AI copilot can help with code completion, answer your questions through chat, generate tests and more. In my experience an AI copilot is particularly useful when you are unfamiliar with the technologies being used in the project.
The AI copilot recommended in this guide is GitHub Copilot. Please see the GitHub Copilot Pricing page for more details about the cost of using it. The plan recommended by this guide is "Business" for $19 per month if your budget allows it. The "Business" plan is the cheapest plan where your interactions with the AI are not used for training purposes. Despite Epic Fantasy Forge being open source software I am still a bit worried about using the "Free" or "Pro" plans of GitHub pilot.
Whilst having the project open source already requires some caution and attention that some secret is not accidentally made publicly available, such as API keys or passwords, using an AI that uses your interactions for training purposes would require even more caution and attention.
Warning
AI tends to sometimes make incorrect statements or produce error-prone code. However despite these drawbacks, in my opinion AI is still overall useful as long as you are aware of the limitations of the current state of AI.
Warning
As AI is trained on historical data and historical data is more abundant than current data, it sometimes has a tendency to use deprecated or out of date code.
Additionally the performance of AI tends to be better with more widely used technologies such as React or Python than more recent or less widely used technologies such as the Phoenix framework.
Installation
GitHub Copilot integrates directly into Visual Studio Code. To use it, simply sign up for one of the plans on the GitHub Copilot Pricing page. Then follow the Set up Visual Studio Code with Copilot instructions to use GitHub Copilot in Visual Studio Code.