From 0db39111aa2936044bf2a06799e7aaf7f5a7bd09 Mon Sep 17 00:00:00 2001 From: Mark Banner Date: Thu, 6 Apr 2023 15:19:39 +0000 Subject: [PATCH] Bug 1826548 - Add more entries to .prettierignore. r=Gijs DONTBUILD Unfortunately Prettier does not currently support multiple ignore files (see bug 1825508). Therefore we have to duplicate the entries from .eslintignore/Generated.txt/ThirdPartyPaths.txt for the time being. Differential Revision: https://phabricator.services.mozilla.com/D174762 --- .eslintignore | 3 + .prettierignore | 498 ++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 490 insertions(+), 11 deletions(-) diff --git a/.eslintignore b/.eslintignore index 883e6dae8654..ad665f4a546f 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,6 +1,9 @@ # Please DO NOT add more third party files to this file. # They should be added to tools/rewriting/ThirdPartyPaths.txt instead. +# If you update this file, please add to the .eslintignore setion in +# .prettierignore as well. + # This file should only be used for exclusions where we have: # - preprocessed files # - generated files that are for some reason checked into source diff --git a/.prettierignore b/.prettierignore index eb9249b28b3d..4bb46cb85f85 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,16 +1,18 @@ -# This list automatically picks up exclusions from .eslintignore +# Exclude everything by default, then include all the formats we support. +*.* +!*.js +!*.jsm +!*.mjs +!*.jsx +!*.sjs -# These files are disabled due to parsing errors when using Prettier. -# Bug 1560186 -*.html -*.xhtml -*.xul -*.xml +# Not currently enabled, but planning to soon. +# !*.html +# !*.xhtml +# !*.json -# CSS files have not been formatted and are not check by ./mach lint -# Disable prettier on CSS files to avoid unexpected formatting changes. -# Bug 1606785, Bug 1606787 -*.css +# Don't format README files. +README # Ignore default pref files which have a .js suffix but aren't parsed normally as JavaScript. browser/app/profile/channel-prefs.js @@ -54,9 +56,483 @@ devtools/client/webconsole/test/browser/test-mangled-function.* # This file is based on another and we want to keep the syntax the same. devtools/shared/plural-form.js +# Ignore JS engine files that are preprocessed. +js/src/builtin + +# Intentionally broken files +parser/htmlparser/tests/mochitest/broken_xml.xhtml +parser/htmlparser/tests/mochitest/test_bug563322.xhtml + # Ignore backgroundtasks preferences files. toolkit/components/backgroundtasks/defaults # A mainly-imported file, that we don't want to format, but want to keep an eye # on with the other imported files. toolkit/components/formautofill/CreditCardRuleset.jsm + +############################################################################## +# The list below is copied from .eslintignore. Prettier doesn't currently +# support multiple ignore files or dynamic ignore configurations. +# When this is implemented, we'll update the configuration below (bug 1825508) +############################################################################## + +# Always ignore crashtests - specially crafted files that originally caused a +# crash. +**/crashtests/ +# Also ignore reftest - specially crafted to produce expected output. +**/reftest/ +**/reftests/ + +# Exclude expected objdirs. +obj*/ + +# build/ third-party code +build/pgo/js-input/ + +# browser/ exclusions +browser/app/ +browser/branding/**/firefox-branding.js +# Gzipped test file. +browser/base/content/test/general/gZipOfflineChild.html +browser/base/content/test/urlbar/file_blank_but_not_blank.html +# Test files that are really json not js, and don't need to be linted. +browser/components/sessionstore/test/unit/data/sessionstore_valid.js +browser/components/sessionstore/test/unit/data/sessionstore_invalid.js +# This file is split into two in order to keep it as a valid json file +# for documentation purposes (policies.json) but to be accessed by the +# code as a .jsm (schema.jsm) +browser/components/enterprisepolicies/schemas/schema.jsm +# generated or library files in pocket +browser/components/pocket/content/panels/js/tmpl.js +browser/components/pocket/content/panels/js/vendor.bundle.js +browser/components/pocket/content/panels/js/main.bundle.js +# Include the Storybook config files. +!browser/components/storybook/.storybook/ +!browser/components/storybook/.storybook/*.js + +# Ignore newtab files +browser/components/newtab/aboutwelcome/content/aboutwelcome.bundle.js +browser/components/newtab/data/ +browser/components/newtab/logs/ + +# The only file in browser/locales/ is pre-processed. +browser/locales/ +# Generated data files +browser/extensions/formautofill/phonenumberutils/PhoneNumberMetaData.jsm + +# Ignore devtools debugger files which aren't intended for linting, and also +# aren't included in any .eslintignore or .prettierignore file. +# See https://github.com/firefox-devtools/debugger/blob/master/package.json#L24 +devtools/client/debugger/bin/ +devtools/client/debugger/configs/ +devtools/client/debugger/dist/ +devtools/client/debugger/images/ +devtools/client/debugger/packages/ +devtools/client/debugger/test/mochitest/examples/ +devtools/client/debugger/index.html +devtools/client/debugger/webpack.config.js + +# Ignore devtools preferences files +devtools/client/preferences/ + +# Ignore devtools generated code +devtools/shared/css/generated/properties-db.js +devtools/client/webconsole/test/node/fixtures/stubs/*.js +!devtools/client/webconsole/test/node/fixtures/stubs/index.js +devtools/client/shared/components/test/node/stubs/reps/*.js +devtools/client/shared/source-map-loader/test/browser/fixtures/*.js + +# Ignore devtools files testing sourcemaps / code style +devtools/client/framework/test/code_* +devtools/client/inspector/markup/test/events_bundle.js +devtools/client/netmonitor/test/xhr_bundle.js +devtools/client/webconsole/test/browser/code_bundle_nosource.js +devtools/client/webconsole/test/browser/code_bundle_invalidmap.js +devtools/client/webconsole/test/browser/test-autocomplete-mapped.js +devtools/client/webconsole/test/browser/test-autocomplete-mapped.src.js +devtools/client/inspector/markup/test/shadowdom_open_debugger.min.js +devtools/client/webconsole/test/browser/test-click-function-to-source*.js +devtools/client/webconsole/test/browser/test-external-script-errors.js +devtools/client/webconsole/test/browser/test-message-categories-canvas-css.js +devtools/client/webconsole/test/browser/test-message-categories-empty-getelementbyid.js +devtools/client/webconsole/test/browser/test-sourcemap*.js +devtools/server/tests/xpcshell/setBreakpoint* +devtools/server/tests/xpcshell/sourcemapped.js + +# Ignore generated code from wasm-bindgen +devtools/client/performance-new/shared/profiler_get_symbols.js + +# Testing syntax error +devtools/client/webconsole/test/browser/test-syntaxerror-worklet.js + +# devtools specific format test file +devtools/server/tests/xpcshell/xpcshell_debugging_script.js + +# Generated +dom/canvas/test/webgl-conf/generated/ + +# Intentionally invalid/not parsable +dom/html/test/test_bug677658.html +dom/svg/test/test_nonAnimStrings.xhtml +dom/svg/test/test_SVG_namespace_ids.html + +# Strange encodings +dom/base/test/file_bug687859-16.js +dom/encoding/test/test_utf16_files.html +dom/encoding/test/file_utf16_be_bom.js +dom/encoding/test/file_utf16_le_bom.js + +# Service workers fixtures which require specific resource caching. +dom/base/test/file_js_cache.js +dom/serviceworkers/test/file_js_cache.js + +# Intentional broken files +dom/base/test/file_js_cache_syntax_error.js +dom/base/test/jsmodules/test_syntaxError.html +dom/base/test/jsmodules/test_syntaxErrorAsync.html +dom/base/test/jsmodules/module_badSyntax.js +dom/base/test/jsmodules/test_syntaxErrorInline.html +dom/base/test/jsmodules/test_syntaxErrorInlineAsync.html +dom/base/test/test_bug687859.html +dom/media/webrtc/tests/mochitests/identity/idp-bad.js +dom/serviceworkers/test/file_js_cache_syntax_error.js +dom/serviceworkers/test/parse_error_worker.js +dom/tests/mochitest/bugs/test_bug531176.html +dom/webauthn/tests/cbor.js +dom/workers/test/importScripts_worker_imported3.js +dom/workers/test/invalid.js +dom/workers/test/threadErrors_worker1.js + +# Bug 1527075: This directory is linted in github repository +intl/l10n/ + +# Exclude everything but self-hosted JS +js/examples/ +js/public/ +js/src/devtools/ +js/src/jit-test/ +js/src/tests/ +js/src/Y.js + +# Changes to XPConnect tests must be carefully audited. +js/xpconnect/tests/mochitest/ +js/xpconnect/tests/unit/ + +# Fuzzing code for testing only, targeting the JS shell +js/src/fuzz-tests/ + +# Uses `#filter substitution` +mobile/android/app/mobile.js +mobile/android/app/geckoview-prefs.js + +# Not much JS to lint and non-standard at that +mobile/android/installer/ +mobile/android/locales/ + +# Pre-processed/pref files +modules/libpref/greprefs.js +modules/libpref/init/all.js +modules/libpref/test/unit/*data/ + +# Only contains non-standard test files. +python/ + +# These are (mainly) imported code that we don't want to lint to make imports easier. +remote/cdp/Protocol.sys.mjs +remote/cdp/test/browser/chrome-remote-interface.js +remote/marionette/atom.sys.mjs + +# This file explicitly has a syntax error and cannot be parsed by eslint. +remote/shared/messagehandler/test/browser/resources/modules/root/invalid.sys.mjs + +# services/ exclusions + +# Third party services +services/common/kinto-http-client.js +services/common/kinto-offline-client.js + +# Webpack-bundled library +services/fxaccounts/FxAccountsPairingChannel.sys.mjs + +# Servo is imported. +servo/ + +# Test files that we don't want to lint (preprocessed, minified etc) +testing/condprofile/condprof/tests/profile +testing/mozbase/mozprofile/tests/files/prefs_with_comments.js +testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js +testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js +testing/talos/talos/tests/devtools/addon/content/pages/ +# Runing Talos may extract data here, see bug 1435677. +testing/talos/talos/tests/tp5n/ +testing/talos/talos/fis/tp5n/ + +# Mainly third-party related code, that shouldn't be linted. +testing/web-platform/ + +# toolkit/ exclusions + +# Intentionally invalid JS +toolkit/components/workerloader/tests/moduleF-syntax-error.js + +# Built files +toolkit/components/pdfjs/content/build +toolkit/components/pdfjs/content/web + +# External code: +toolkit/components/reader/Readability.js +toolkit/components/reader/Readability-readerable.js +toolkit/components/reader/JSDOMParser.js + +# Uses preprocessing +toolkit/components/reader/Readerable.sys.mjs + +# Generated & special files in cld2 +toolkit/components/translation/cld2/ + +# Uses preprocessing +toolkit/mozapps/update/tests/data/xpcshellConstantsPP.js +toolkit/modules/AppConstants.sys.mjs + +# Tests of ESLint command. +tools/lint/test/files + +# Uses special template formatting. +tools/tryselect/selectors/chooser/templates/chooser.html + +# Ignore preprocessed *(P)refs.js files in update-packaging. +tools/update-packaging/**/*refs.js + +# Ignore backgroundtasks preferences files. +toolkit/components/backgroundtasks/defaults + +# Ignore pre-generated webpack and typescript transpiled files for translations +browser/extensions/translations/extension/ + +# "scaffolding" used by uniffi which isn't valid JS in its original form. +toolkit/components/uniffi-bindgen-gecko-js/src/templates/js/ +toolkit/components/uniffi-bindgen-gecko-js/components/generated/* + +############################################################################## +# The list below is copied from ThirdPartyPaths.txt. Prettier doesn't currently +# support multiple ignore files or dynamic ignore configurations. +# When this is implemented, we'll update the configuration below (bug 1825508) +############################################################################## + +browser/components/newtab/vendor/ +browser/components/pocket/content/panels/js/vendor/ +browser/components/storybook/node_modules/ +browser/extensions/formautofill/content/third-party/ +browser/extensions/formautofill/test/fixtures/third_party/ +browser/extensions/screenshots/build/raven.js +devtools/client/inspector/markup/test/lib_* +devtools/client/jsonview/lib/require.js +devtools/client/shared/build/babel.js +devtools/client/shared/source-map/ +devtools/client/shared/sourceeditor/codemirror/ +devtools/client/shared/sourceeditor/test/cm_mode_ruby.js +devtools/client/shared/sourceeditor/test/codemirror/ +devtools/client/shared/vendor/ +devtools/client/inspector/markup/test/helper_diff.js +devtools/shared/acorn/ +devtools/shared/heapsnapshot/CoreDump.pb.cc +devtools/shared/heapsnapshot/CoreDump.pb.h +devtools/shared/jsbeautify/ +devtools/shared/node-properties/ +devtools/shared/qrcode/decoder/ +devtools/shared/qrcode/encoder/ +devtools/shared/sprintfjs/ +devtools/shared/storage/vendor/ +dom/canvas/test/webgl-conf/checkout/ +dom/imptests/ +dom/media/gmp/rlz/ +dom/media/gmp/widevine-adapter/content_decryption_module_export.h +dom/media/gmp/widevine-adapter/content_decryption_module_ext.h +dom/media/gmp/widevine-adapter/content_decryption_module.h +dom/media/gmp/widevine-adapter/content_decryption_module_proxy.h +dom/media/platforms/ffmpeg/ffmpeg57/ +dom/media/platforms/ffmpeg/ffmpeg58/ +dom/media/platforms/ffmpeg/ffmpeg59/ +dom/media/platforms/ffmpeg/ffmpeg60/ +dom/media/platforms/ffmpeg/libav53/ +dom/media/platforms/ffmpeg/libav54/ +dom/media/platforms/ffmpeg/libav55/ +dom/media/webaudio/test/blink/ +dom/media/webrtc/tests/mochitests/helpers_from_wpt/sdp.js +dom/media/webrtc/transport/third_party/ +dom/media/webspeech/recognition/endpointer.cc +dom/media/webspeech/recognition/endpointer.h +dom/media/webspeech/recognition/energy_endpointer.cc +dom/media/webspeech/recognition/energy_endpointer.h +dom/media/webspeech/recognition/energy_endpointer_params.cc +dom/media/webspeech/recognition/energy_endpointer_params.h +dom/media/webvtt/vtt.jsm +dom/tests/mochitest/ajax/ +dom/tests/mochitest/dom-level1-core/ +dom/tests/mochitest/dom-level2-core/ +dom/tests/mochitest/dom-level2-html/ +dom/u2f/tests/pkijs/ +dom/webauthn/cbor-cpp/ +dom/webauthn/tests/pkijs/ +dom/webgpu/tests/cts/checkout/ +editor/libeditor/tests/browserscope/lib/richtext/ +editor/libeditor/tests/browserscope/lib/richtext2/ +extensions/spellcheck/hunspell/src/ +function2/ +gfx/angle/checkout/ +gfx/cairo/ +gfx/graphite2/ +gfx/harfbuzz/ +gfx/ots/ +gfx/qcms/ +gfx/sfntly/ +gfx/skia/ +gfx/vr/service/openvr/ +gfx/vr/service/openvr/headers/openvr.h +gfx/vr/service/openvr/src/README +gfx/vr/service/openvr/src/dirtools_public.cpp +gfx/vr/service/openvr/src/dirtools_public.h +gfx/vr/service/openvr/src/envvartools_public.cpp +gfx/vr/service/openvr/src/envvartools_public.h +gfx/vr/service/openvr/src/hmderrors_public.cpp +gfx/vr/service/openvr/src/hmderrors_public.h +gfx/vr/service/openvr/src/ivrclientcore.h +gfx/vr/service/openvr/src/openvr_api_public.cpp +gfx/vr/service/openvr/src/pathtools_public.cpp +gfx/vr/service/openvr/src/pathtools_public.h +gfx/vr/service/openvr/src/sharedlibtools_public.cpp +gfx/vr/service/openvr/src/sharedlibtools_public.h +gfx/vr/service/openvr/src/strtools_public.cpp +gfx/vr/service/openvr/src/strtools_public.h +gfx/vr/service/openvr/src/vrpathregistry_public.cpp +gfx/vr/service/openvr/src/vrpathregistry_public.h +gfx/wr/ +gfx/ycbcr/ +intl/icu/ +ipc/chromium/src/third_party/ +js/src/ctypes/libffi/ +js/src/dtoa.c +js/src/editline/ +js/src/jit/arm64/vixl/ +js/src/octane/ +js/src/vtune/disable_warnings.h +js/src/vtune/ittnotify_config.h +js/src/vtune/ittnotify.h +js/src/vtune/ittnotify_static.c +js/src/vtune/ittnotify_static.h +js/src/vtune/ittnotify_types.h +js/src/vtune/jitprofiling.c +js/src/vtune/jitprofiling.h +js/src/vtune/legacy/ +js/src/zydis/ +layout/docs/css-gap-decorations/ +media/ffvpx/ +media/kiss_fft/ +media/libaom/ +media/libcubeb/ +media/libdav1d/ +media/libjpeg/ +media/libmkv/ +media/libnestegg/ +media/libogg/ +media/libopus/ +media/libpng/ +media/libsoundtouch/ +media/libspeex_resampler/ +media/libtheora/ +media/libtremor/ +media/libvorbis/ +media/libvpx/ +media/libwebp/ +media/libyuv/ +media/mozva/va +media/mp4parse-rust/ +media/openmax_dl/ +media/openmax_il/ +media/webrtc/signaling/gtest/MockCall.h +mfbt/double-conversion/double-conversion/ +mfbt/lz4/.* +mobile/android/exoplayer2/ +modules/brotli/ +modules/fdlibm/ +modules/freetype2/ +modules/woff2/ +modules/xz-embedded/ +modules/zlib/ +mozglue/misc/decimal/ +mozglue/tests/glibc_printf_tests/ +netwerk/dns/nsIDNKitInterface.h +netwerk/sctp/src/ +netwerk/srtp/src/ +nsprpub/ +other-licenses/ +parser/expat/ +remote/cdp/test/browser/chrome-remote-interface.js +remote/test/puppeteer/ +security/nss/ +security/sandbox/chromium/ +security/sandbox/chromium-shim/ +testing/gtest/gmock/ +testing/gtest/gtest/ +testing/mochitest/MochiKit/ +testing/mochitest/pywebsocket3/ +testing/mochitest/tests/MochiKit-1.4.2/ +testing/modules/sinon-7.2.7.js +testing/mozbase/mozproxy/mozproxy/backends/mitm/scripts/catapult/ +testing/talos/talos/tests/dromaeo/ +testing/talos/talos/tests/kraken/ +testing/talos/talos/tests/v8_7/ +testing/web-platform/tests/resources/webidl2/ +testing/web-platform/tests/tools/third_party/ +testing/web-platform/mozilla/tests/webgpu/ +testing/xpcshell/dns-packet/ +testing/xpcshell/node_ip/ +testing/xpcshell/node-http2/ +testing/xpcshell/node-ws/ +testing/xpcshell/odoh-wasm/ +third_party/ +toolkit/components/certviewer/content/vendor/ +toolkit/components/jsoncpp/ +toolkit/components/normandy/vendor/ +toolkit/components/passwordmgr/PasswordRulesParser.jsm +toolkit/components/protobuf/ +toolkit/components/translation/cld2/ +toolkit/components/translations/bergamot-translator +toolkit/components/translations/fasttext/fasttext.js +toolkit/components/translations/fasttext/fasttext_wasm.js +toolkit/components/url-classifier/chromium/ +toolkit/components/utils/mozjexl.js +toolkit/components/viaduct/fetch_msg_types.pb.cc +toolkit/components/viaduct/fetch_msg_types.pb.h +toolkit/content/widgets/vendor/lit.all.mjs +toolkit/crashreporter/breakpad-client/ +toolkit/crashreporter/google-breakpad/ +tools/fuzzing/libfuzzer/ +tools/profiler/core/vtune/ +xpcom/build/mach_override.c +xpcom/build/mach_override.h +xpcom/io/crc32c.c + +############################################################################## +# The list below is copied from Generated.txt. Prettier doesn't currently +# support multiple ignore files or dynamic ignore configurations. +# When this is implemented, we'll update the configuration below (bug 1825508) +############################################################################## + +browser/components/newtab/logs/ +browser/components/newtab/node_modules/ +browser/components/storybook/storybook-static/ +devtools/client/aboutdebugging/test/jest/node_modules/ +devtools/client/application/test/components/node_modules/ +devtools/client/debugger/node_modules/ +dom/tests/ajax/jquery/ +dom/tests/ajax/mochikit/ +node_modules/ +intl/components/src/UnicodeScriptCodes.h +intl/unicharutil/util/nsSpecialCasingData.cpp +intl/unicharutil/util/nsUnicodePropertyData.cpp +testing/talos/talos/tests/devtools/addon/content/pages/custom/debugger/static/js/minified.js +toolkit/components/pdfjs/content/PdfJsDefaultPreferences.sys.mjs +toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp +toolkit/components/uniffi-js/UniFFIFixtureScaffolding.cpp +toolkit/components/uniffi-bindgen-gecko-js/fixtures/generated