Linter Requirements

To maintain optimal code quality, this project employs linters which require a specific IDE configuration for effective utilization.

Linter Requirements

This project uses a set of linters to ensure good code quality. In order to make proper use of those linters inside an IDE, the following configuration is required.

Golangci-lint

Further information can also be found in the golangci-lint documentation.

Visual Studio Code

In Visual Studio Code the Golang extension is required.

Adding the following lines to the Golang extension configuration file enables all linters used in this project.

"go.lintTool": {
 "type": "string",
 "default": "golangci-lint",
 "description": "GolangGCI Linter",
 "scope": "resource",
 "enum": [
  "golangci-lint",
 ]
},
"go.lintFlags": {
 "type": "array",
 "items": {
  "type": "string"
 }, 
 "default": ["--fast", "--fix"],
 "description": "Flags to pass to GCI Linter",
 "scope": "resource"
},

GoLand / IntelliJ requirements

  • Install either the GoLand or IntelliJ Integrated Development Environment (IDE) for the Go programming language, plus the Go Linter plugin.

  • The plugin can be installed via Settings » Plugins » Marketplace, search for Go Linter and install it. Once installed, make sure that the plugin is using the .golangci.yml file from the root directory.

  • The configuration of Go Linter can be found in the Tools section of the settings.

If you are on Windows, you need to install make for the above process to complete.

Note When using the make command on Windows, you may receive an unrecognized command error for a command that is installed. This usually indicates that PATH for the binary is not set correctly).

Markdownlint

We are using markdownlint to ensure consistent styling within our Markdown files. Specifically we are using markdownlint-cli.

We are using GNU MAKE to ensure the same functionality locally and within our CI builds. This should allow easier debugging and problem resolution.

Markdownlint execution

To verify that your markdown code conforms to the rules, run the following on your local branch:

make markdownlint

To use the auto-fix option, run:

make markdownlint-fix

Markdownlint Configuration

We use the default configuration values for markdownlint.

This means:

.markdownlint-cli2.yaml contains the rule configuration

We use the default values, so tools like markdownlint for VSCode can be used without additional configuration.