Unnamed repository; edit this file 'description' to name the repository.
prettier config
[Prettier][1] is an up-to date code formatter for JavaScript ecosystem. For settings we rely on [EditorConfig][2] for things like tab style and size (with added bonus that the code editor with an EditorConfig plugin does some automated code formatting on file save for you). Unfortunately, Prettier's Glob handling isn't great: 1. `*.{ts,js,json}` has no effect 2. Similarly, in a list of globs `*.ts,*.js,*.json` only the first glob has an effect, the rest are ignored. That's why the file looks the way it does. The only other setting we change is line width. [Lukas][3] suggested we use 100 instead of 80, because that's what Rustfmt is using. [1]: https://prettier.io [2]: https://editorconfig.org [3]: https://github.com/Veykril
Andrei Listochkin 2022-05-18
parent 7e95c14 · commit 4fcdb0f
-rw-r--r--.editorconfig19
-rw-r--r--editors/code/.eslintrc.js1
-rw-r--r--editors/code/.prettierignore3
-rw-r--r--editors/code/.prettierrc.js5
-rw-r--r--editors/code/package-lock.json42
-rw-r--r--editors/code/package.json2
6 files changed, 72 insertions, 0 deletions
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000000..314f79d3f9
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,19 @@
+# https://EditorConfig.org
+root = true
+
+[*]
+charset = utf-8
+trim_trailing_whitespace = true
+end_of_line = lf
+insert_final_newline = true
+indent_style = space
+
+[*.{rs,toml}]
+indent_size = 4
+
+[*.ts]
+indent_size = 4
+[*.js]
+indent_size = 4
+[*.json]
+indent_size = 4
diff --git a/editors/code/.eslintrc.js b/editors/code/.eslintrc.js
index 631d956da2..518c5d0755 100644
--- a/editors/code/.eslintrc.js
+++ b/editors/code/.eslintrc.js
@@ -3,6 +3,7 @@ module.exports = {
"es6": true,
"node": true
},
+ "extends": ["prettier"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "tsconfig.eslint.json",
diff --git a/editors/code/.prettierignore b/editors/code/.prettierignore
new file mode 100644
index 0000000000..13baf68d7c
--- /dev/null
+++ b/editors/code/.prettierignore
@@ -0,0 +1,3 @@
+node_modules
+.vscode-test
+out
diff --git a/editors/code/.prettierrc.js b/editors/code/.prettierrc.js
new file mode 100644
index 0000000000..cafb12f0e6
--- /dev/null
+++ b/editors/code/.prettierrc.js
@@ -0,0 +1,5 @@
+module.exports = {
+ // use 100 because it's Rustfmt's default
+ // https://rust-lang.github.io/rustfmt/?version=v1.4.38&search=#max_width
+ printWidth: 100,
+};
diff --git a/editors/code/package-lock.json b/editors/code/package-lock.json
index 74cda037d8..d766f9f1c9 100644
--- a/editors/code/package-lock.json
+++ b/editors/code/package-lock.json
@@ -22,6 +22,8 @@
"cross-env": "^7.0.3",
"esbuild": "^0.14.27",
"eslint": "^8.11.0",
+ "eslint-config-prettier": "^8.5.0",
+ "prettier": "^2.6.2",
"tslib": "^2.3.0",
"typescript": "^4.6.3",
"typescript-formatter": "^7.2.2",
@@ -1988,6 +1990,18 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/eslint-config-prettier": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
+ "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
"node_modules/eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
@@ -3130,6 +3144,21 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/prettier": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
+ "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -5509,6 +5538,13 @@
}
}
},
+ "eslint-config-prettier": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
+ "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "dev": true,
+ "requires": {}
+ },
"eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
@@ -6386,6 +6422,12 @@
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true
},
+ "prettier": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
+ "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
+ "dev": true
+ },
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
diff --git a/editors/code/package.json b/editors/code/package.json
index 04006d7434..e2888a088d 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -48,6 +48,8 @@
"cross-env": "^7.0.3",
"esbuild": "^0.14.27",
"eslint": "^8.11.0",
+ "eslint-config-prettier": "^8.5.0",
+ "prettier": "^2.6.2",
"tslib": "^2.3.0",
"typescript": "^4.6.3",
"typescript-formatter": "^7.2.2",