Templates with multiple files
Some programming patterns and frameworks require a set of related files, usually with a very specific structure. For example, you can create separate Go files: one for your application (main.go) and another one for tests (main_test.go).
In GoLand, you can create sets of related files by adding child templates to a file template. When you create a file from such a template, it will also create files from child templates.
Create a template with multiple files
In the Settings/Preferences dialog Ctrl+Alt+S , select .
-
Create the main file template.
On the Files tab, click
and specify the name, file extension, and body of the template.
-
Select the new template in the list and click
on the toolbar. Specify the name, file extension, and body of the child template.
Example: create application and test files
Open settings by pressing Ctrl+Alt+S and navigate to
.-
On the Files tab, click the Create Template button (
) and specify the following:
&Name:
App and test
&Extension:
go
File name:
${NAME}
Add the following code to the template body:
package ${NAME} func ${NAME}() { }The name of this package and function will match the name that you provide, for example:
simpleServer
. -
Create the test file template.
Select the App and test template in the list and click the Create Child Template File button (
) in the toolbar. Specify the following:
File name:
${NAME }_test
&Extension:
go
Add the following code to the template body:
package ${NAME} import "testing" func Test_${NAME}(t *testing.T) { tests := []struct { name string }{ } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { }) } }The name of this file will be a combination of the name that you provide and the
_test
postfix, for example:simpleServer_test
. Click &OK to apply the changes.
-
To use the new template, right-click a directory in the Project tool window or press Alt+Insert and select the App and test template. Specify a name for the package and main function and GoLand will create both files.