2023-12-04 08:40:57 -05:00
---
title: 'Development environment'
license: 'Apache-2.0'
origin_url: 'https://github.com/go-gitea/gitea/blob/ec1feedbf582b05b6a5e8c59fb2457f25d053ba2/docs/content/development/hacking-on-gitea.en-us.md'
---
This page lists a few options to set up a productive development environment for working on Forgejo.
2024-02-03 09:16:09 -05:00
## VSCodium
2023-12-04 08:40:57 -05:00
2024-02-03 09:16:09 -05:00
[VSCodium ](https://vscodium.com/ ) is an open source version of the Visual Studio Code IDE.
2023-12-04 08:40:57 -05:00
The [Go integration for Visual Studio Code ](https://code.visualstudio.com/docs/languages/go ) works
2024-02-03 09:16:09 -05:00
with VSCodium and is a viable tool to work on Forgejo.
2023-12-04 08:40:57 -05:00
2024-02-03 09:16:09 -05:00
First, run `cp -r contrib/ide/vscode .vscode` to create new directory `.vscode` with the contents of folder [contrib/ide/vscode ](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/contrib/ide/vscode ) at the root of the repository. Then, open the project directory in VSCodium.
2023-12-04 08:40:57 -05:00
You can now use `Ctrl` +`Shift`+`B` to build the gitea executable and `F5` to run it in debug mode.
Tests can be run by clicking on the `run test` or `debug test` button above their declaration.
Go code is formatted automatically when saved.
## Emacs
2023-12-08 15:54:50 -05:00
Emacs has [a Go mode ](https://github.com/golang/tools/blob/master/gopls/doc/emacs.md ) that can likely be used to work on Forgejo's code base.
2023-12-04 08:40:57 -05:00
Do you know how to configure it properly? Why not document that here?
## Vim
Vim has [a Go plugin ](https://github.com/fatih/vim-go ) that can likely be used to work on Forgejo's code base.
Do you know how to configure it properly? Why not document that here?