GoLand 2024.3 Help

Projects

In GoLand, projects help you to organize your source code, tests, packages, build instructions, and your personal settings in a single unit.

GoLand project overview

Switch between projects

If you have several opened projects at the same time, you can switch between them using the following options:

  • Switch to the next project window: Ctrl+Alt+] (Window | Next Project Window)

  • Switch to the previous project window: Ctrl+Alt+[ (Window | Previous Project Window)

Alternatively, open the Window menu and select the project to which you want to switch.

Project formats

In GoLand, there are two types of formats in which a project's configuration can be stored — the file-based format and the directory-based format.

File-based format

The file-based format was the only one available in older versions of GoLand; now it is outdated. Projects in this format contain several files: the .ipr, .iws, and .iml files. Generally, we don't recommend using this format unless you need to open projects in different file managers by clicking the .ipr file, or unless you need to store multiple projects in one directory.

A simple file-based project shown in Finder

Directory-based format

For the directory-based format, the IDE creates the .iml file and the .idea directory that keeps project settings. It's the default format for projects in GoLand at this moment.

This format was introduced after the file-based format. Its main advantage is that it's adjusted to store project files in Version Control Systems: the project data is split over multiple files, and merge conflicts are less likely. For more information about sharing projects in different formats, refer to How to manage projects under Version Control Systems

A simple directory-based project shown in Finder

Change the project format to directory-based

  1. Open the project using the .ipr file: go to File | Open in the main menu and select the .ipr in the folder with the project that you want to convert.

  2. When the project has opened, in the main menu, go to File | Manage IDE Settings | Save as Directory-Based Format.

Change project location

Move a project to another location

  1. In the Project tool window Alt+1, right-click the root directory of your project and select Refactor | Move directory (F6).

  2. In the dialog that opens, specify a new location for the project and click Refactor.

    Moving a project to another location

Change the default location for projects

  1. In the Settings dialog (Ctrl+Alt+S) , select Appearance & Behavior | System Settings.

  2. In the Default directory field, specify the path to the folder in which you want to store your projects.

  3. Apply the changes and close the dialog.

    Changing the default location for projects

Share project settings through VCS

Project settings are stored in the project directory as a set of XML files under the .idea folder. This folder contains both user-specific settings that shouldn't be placed under version control and project settings that are normally shared among developers working in a team, for example, the code style configuration.

When you enable version control in your project, GoLand automatically moves the workspace.xml file with your personal settings to the .gitignore list to avoid conflicts with other developers' settings.

Configuration files are processed according to your choice. Once you modify the project settings, and a new configuration file is created, the IDE shows a notification at the bottom of the screen prompting you to select how you want to treat configuration files in this project:

  • View files: view the list of created configuration files and select, which of them you want to place under version control. After that, the selected files will be scheduled for addition to VCS.

  • Always Add: silently schedule all configuration files created in the .idea directory for addition to VCS (applies only to the current project).

  • Don't Ask Again: never schedule configuration files for addition to VCS; they will have the unversioned status until you manually add them to VCS (applies only to the current project).

If you close the notification without selecting any option, it will appear again after a new configuration file is created. The new file will also go to the list that will be there until you select one of the options even if you restart the IDE.

Notification prompting to select how to treat configuration files

List of non-shareable configuration files

GoLand identifies configuration files and adds them to the list of ignored files automatically. However, if you are sharing your project manually, we recommend that you avoid placing these files and folders under version control:

  • .idea/workspace.xml

  • .idea/usage.statistics.xml

  • .idea/dictionaries folder

  • .idea/shelf folder

For the full list of files, refer to How to manage projects under Version Control Systems and JetBrains.gitignore.

Copy global settings to the project level

Global (IDE) settings are stored separately from projects. That is why these settings are not shared through version control together with the project.

Some settings, however, can be copied to the project level. For example, you can create a copy of your , inspection profiles, the list of classes and packages excluded from code completion and auto-import. If you do so, the IDE creates the corresponding configuration files in the .idea directory that you can share together with the project through VCS.

GoLand also provides several ways of sharing settings between different IDE instances. For more information, refer to Share IDE settings.

In this section:

Invalidate caches

GoLand caches a great number of files, therefore the system cache may become overloaded. Sometimes the caches will never be needed again, for example, if you work with frequent short-term projects.

When you invalidate the cache, GoLand rebuilds all projects ever run in the current version of the IDE.

Clear the system cache

  1. In the main menu, go to File | Invalidate Caches/Restart.

  2. In the Invalidate Caches dialog, select an action. You can invalidate the caches and restart the IDE, invalidate the caches without restarting the IDE, or just restart the IDE.

Last modified: 08 November 2024