{
	"files.exclude": {
		"**/node_modules": true,
		"**/out": true
	},
	"search.exclude": {
		"**/images": true,
		"**/lib": true,
		"**/out": true
	},
	"editor.formatOnSave": true,
	"editor.insertSpaces": false,
	"editor.detectIndentation": false,
	"editor.codeActionsOnSave": {
		"source.organizeImports": "always"
	},
	"[css]": {
		// The CSS in this project uses (the lack of) newlines between rules for grouping, as well as inline comments.
		// VS Code's default formatter adds newlines between all rules, and forces comments to the next line, dissociating them.
		"editor.formatOnSave": false,
	},
	"[markdown]": {
		// Formatting markdown tables automatically is cool, but doesn't allow padding cells to avoid superflous git diffs.
		// Also, VS Code's markdown formatter doesn't handle emoji in tables as well as it could.
		"editor.formatOnSave": false,
	},
	// Note: this doesn't apply to "JSON with comments" files, such as this one. That's [jsonc].
	"[json]": {
		// npm respects different indent styles, but always adds a newline at the end of package.json/package-lock.json,
		// so this avoids ping-ponging changes in git.
		// This could be applied to all files for consistency, but it may introduce noise if all files aren't formatted at once.
		"files.insertFinalNewline": true,
		// Maintaining current indentation for now, but could remove this for consistency.
		"editor.detectIndentation": true
	},
	// Prevent accidental editing.
	// This can always be overridden with the command "File: Toggle Active Editor Read-only in Session"
	"files.readonlyInclude": {
		// Electron Forge output
		"out/**": true,
		// Node.js
		"node_modules/**": true,
		"package-lock.json": true,
	},
}