{
	"folders": [
		{
			"name": "wp-parsely",
			"path": ".."
		}
	],
	"launch": {
		// Use IntelliSense to learn about possible attributes.
		// Hover to view descriptions of existing attributes.
		// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
		"version": "0.2.0",
		"configurations": [
			{
				"name": "Listen for Xdebug",
				"type": "php",
				"request": "launch",
				"port": 9003
			},
		]
	},
	"extensions": {
		"recommendations": [
			"dbaeumer.vscode-eslint",
			"usernamehw.errorlens",
			"xdebug.php-debug",
			"bmewburn.vscode-intelephense-client",
			"obliviousharmony.vscode-php-codesniffer",
			"persoderlind.vscode-phpcbf",
			"sanderronde.phpstan-vscode"
		]
	},
	"settings": {
		// VSCode Custom Settings
		"typescript.tsdk": "node_modules/typescript/lib",
		"search.exclude": {
			"build/": true
		},
		"[markdown]": {
			"files.trimTrailingWhitespace": false
		},
		// Error Lens
		"errorLens.exclude": [
			// Exclude type coverage errors to reduce noise. The errors are
			// still visible in all other parts of VSCode and will cause
			// pre-commit hooks to fail.
			" actually have it. Add more (return|param) types to get over "
		],
		// ESLint
		"eslint.format.enable": true,
		"eslint.validate": [
			"javascript",
			"typescript",
			"javascriptreact",
			"typescriptreact"
		],
		"[javascript][typescript][javascriptreact][typescriptreact]": {
			"editor.codeActionsOnSave": {
				"source.organizeImports": "explicit"
			},
			"editor.defaultFormatter": "dbaeumer.vscode-eslint",
		},
		// PHP Code Sniffer
		"phpCodeSniffer.autoExecutable": true,
		"phpCodeSniffer.standard": "Custom",
		"phpCodeSniffer.standardCustom": "WordPress-VIP-Go,WordPress-Docs",
		// PHP Code Beautifier
		"phpcbf.standard": "WordPress-VIP-Go,WordPress-Docs",
		"phpcbf.onsave": true,
		"[php]": {
			"editor.defaultFormatter": "obliviousharmony.vscode-php-codesniffer",
		},
		// PHPStan
		"phpstan.timeout": 30000,
		"phpstan.ignoreErrors": [
			".*The Xdebug PHP extension is active.*",
			".*slow down performance.*",
			".*breakpoints.*",
		],
		// PHP Intelephense
		"intelephense.format.enable": false,
		"intelephense.environment.phpVersion": "7.1",
		"intelephense.stubs": [
			// Defaults
			"apache",
			"bcmath",
			"bz2",
			"calendar",
			"com_dotnet",
			"Core",
			"ctype",
			"curl",
			"date",
			"dba",
			"dom",
			"enchant",
			"exif",
			"FFI",
			"fileinfo",
			"filter",
			"fpm",
			"ftp",
			"gd",
			"gettext",
			"gmp",
			"hash",
			"iconv",
			"imap",
			"intl",
			"json",
			"ldap",
			"libxml",
			"mbstring",
			"meta",
			"mysqli",
			"oci8",
			"odbc",
			"openssl",
			"pcntl",
			"pcre",
			"PDO",
			"pdo_ibm",
			"pdo_mysql",
			"pdo_pgsql",
			"pdo_sqlite",
			"pgsql",
			"Phar",
			"posix",
			"pspell",
			"readline",
			"Reflection",
			"session",
			"shmop",
			"SimpleXML",
			"snmp",
			"soap",
			"sockets",
			"sodium",
			"SPL",
			"sqlite3",
			"standard",
			"superglobals",
			"sysvmsg",
			"sysvsem",
			"sysvshm",
			"tidy",
			"tokenizer",
			"xml",
			"xmlreader",
			"xmlrpc",
			"xmlwriter",
			"xsl",
			"Zend OPcache",
			"zip",
			"zlib",
			"wordpress",
			// Custom
			"vendor/php-stubs/wordpress-tests-stubs/"
		],
	}
}
