Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/build/filters.ts
5245 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { readFileSync } from 'fs';
7
import { join } from 'path';
8
9
/**
10
* Hygiene works by creating cascading subsets of all our files and
11
* passing them through a sequence of checks. Here are the current subsets,
12
* named according to the checks performed on them. Each subset contains
13
* the following one, as described in mathematical notation:
14
*
15
* all ⊃ eol ⊇ indentation ⊃ copyright ⊃ typescript
16
*/
17
18
export const all = Object.freeze<string[]>([
19
'*',
20
'build/**/*',
21
'extensions/**/*',
22
'scripts/**/*',
23
'src/**/*',
24
'test/**/*',
25
'!cli/**/*',
26
'!out*/**',
27
'!extensions/**/out*/**',
28
'!test/**/out/**',
29
'!**/node_modules/**',
30
'!**/*.js.map',
31
]);
32
33
export const unicodeFilter = Object.freeze<string[]>([
34
'**',
35
36
'!**/ThirdPartyNotices.txt',
37
'!**/ThirdPartyNotices.cli.txt',
38
'!**/LICENSE.{txt,rtf}',
39
'!LICENSES.chromium.html',
40
'!**/LICENSE',
41
42
'!**/*.{dll,exe,png,bmp,jpg,scpt,cur,ttf,woff,eot,template,ico,icns,opus,wasm}',
43
'!**/test/**',
44
'!**/*.test.ts',
45
'!**/*.{d.ts,json,md}',
46
'!**/*.mp3',
47
'!**/*.tiff',
48
49
'!build/win32/**',
50
'!extensions/markdown-language-features/notebook-out/*.js',
51
'!extensions/markdown-math/notebook-out/**',
52
'!extensions/mermaid-chat-features/chat-webview-out/**',
53
'!extensions/ipynb/notebook-out/**',
54
'!extensions/notebook-renderers/renderer-out/**',
55
'!extensions/php-language-features/src/features/phpGlobalFunctions.ts',
56
'!extensions/terminal-suggest/src/completions/upstream/**',
57
'!extensions/typescript-language-features/test-workspace/**',
58
'!extensions/vscode-api-tests/testWorkspace/**',
59
'!extensions/vscode-api-tests/testWorkspace2/**',
60
'!extensions/**/dist/**',
61
'!extensions/**/out/**',
62
'!extensions/**/snippets/**',
63
'!extensions/**/colorize-fixtures/**',
64
'!extensions/terminal-suggest/src/shell/fishBuiltinsCache.ts',
65
66
'!src/vs/base/browser/dompurify/**',
67
'!src/vs/workbench/services/keybinding/browser/keyboardLayouts/**',
68
'!src/vs/workbench/contrib/terminal/common/scripts/psreadline/**',
69
]);
70
71
export const indentationFilter = Object.freeze<string[]>([
72
'**',
73
74
// except specific files
75
'!**/ThirdPartyNotices.txt',
76
'!**/ThirdPartyNotices.cli.txt',
77
'!**/LICENSE.{txt,rtf}',
78
'!LICENSES.chromium.html',
79
'!**/LICENSE',
80
'!**/*.mp3',
81
'!src/vs/base/browser/dompurify/*',
82
'!src/vs/base/common/marked/marked.js',
83
'!src/vs/base/common/semver/semver.js',
84
'!src/vs/base/node/terminateProcess.sh',
85
'!src/vs/base/node/cpuUsage.sh',
86
'!src/vs/editor/common/languages/highlights/*.scm',
87
'!src/vs/editor/common/languages/injections/*.scm',
88
'!test/unit/assert.js',
89
'!resources/linux/snap/electron-launch',
90
'!build/ext.js',
91
'!build/darwin/patch-dmg.py',
92
'!build/npm/gyp/patches/gyp_spectre_mitigation_support.patch',
93
'!product.overrides.json',
94
95
// except specific folders
96
'!test/automation/out/**',
97
'!test/monaco/out/**',
98
'!test/smoke/out/**',
99
'!extensions/terminal-suggest/src/shell/zshBuiltinsCache.ts',
100
'!extensions/terminal-suggest/src/shell/fishBuiltinsCache.ts',
101
'!extensions/terminal-suggest/src/completions/upstream/**',
102
'!extensions/typescript-language-features/test-workspace/**',
103
'!extensions/typescript-language-features/resources/walkthroughs/**',
104
'!extensions/typescript-language-features/package-manager/node-maintainer/**',
105
'!extensions/markdown-math/notebook-out/**',
106
'!extensions/ipynb/notebook-out/**',
107
'!extensions/vscode-api-tests/testWorkspace/**',
108
'!extensions/vscode-api-tests/testWorkspace2/**',
109
'!build/monaco/**',
110
'!build/win32/**',
111
'!build/checker/**',
112
'!src/vs/workbench/contrib/terminal/common/scripts/psreadline/**',
113
114
// except multiple specific files
115
'!**/package.json',
116
'!**/package-lock.json',
117
118
// except multiple specific folders
119
'!**/codicon/**',
120
'!**/fixtures/**',
121
'!**/lib/**',
122
'!extensions/**/dist/**',
123
'!extensions/**/out/**',
124
'!extensions/**/snippets/**',
125
'!extensions/**/syntaxes/**',
126
'!extensions/**/themes/**',
127
'!extensions/**/colorize-fixtures/**',
128
129
// except specific file types
130
'!src/vs/*/**/*.d.ts',
131
'!src/typings/**/*.d.ts',
132
'!extensions/**/*.d.ts',
133
'!**/*.{svg,exe,png,bmp,jpg,scpt,bat,cmd,cur,ttf,woff,eot,md,ps1,psm1,template,yaml,yml,d.ts.recipe,ico,icns,plist,opus,admx,adml,wasm}',
134
'!build/{lib,download,linux,darwin}/**/*.js',
135
'!build/**/*.sh',
136
'!build/azure-pipelines/**/*.js',
137
'!build/azure-pipelines/**/*.config',
138
'!build/npm/gyp/custom-headers/*.patch',
139
'!**/Dockerfile',
140
'!**/Dockerfile.*',
141
'!**/*.Dockerfile',
142
'!**/*.dockerfile',
143
'!**/*.tiff',
144
145
// except for built files
146
'!extensions/mermaid-chat-features/chat-webview-out/*.js',
147
'!extensions/markdown-language-features/media/*.js',
148
'!extensions/markdown-language-features/notebook-out/*.js',
149
'!extensions/markdown-math/notebook-out/*.js',
150
'!extensions/ipynb/notebook-out/**',
151
'!extensions/notebook-renderers/renderer-out/*.js',
152
'!extensions/simple-browser/media/*.js',
153
]);
154
155
export const copyrightFilter = Object.freeze<string[]>([
156
'**',
157
'!**/*.desktop',
158
'!**/*.json',
159
'!**/*.html',
160
'!**/*.template',
161
'!**/*.md',
162
'!**/*.bat',
163
'!**/*.cmd',
164
'!**/*.ico',
165
'!**/*.opus',
166
'!**/*.mp3',
167
'!**/*.icns',
168
'!**/*.xml',
169
'!**/*.sh',
170
'!**/*.zsh',
171
'!**/*.fish',
172
'!**/*.txt',
173
'!**/*.xpm',
174
'!**/*.opts',
175
'!**/*.disabled',
176
'!**/*.code-workspace',
177
'!**/*.js.map',
178
'!**/*.wasm',
179
'!**/*.tiff',
180
'!build/**/*.init',
181
'!build/darwin/patch-dmg.py',
182
'!build/linux/libcxx-fetcher.*',
183
'!build/npm/gyp/custom-headers/*.patch',
184
'!resources/linux/snap/snapcraft.yaml',
185
'!resources/win32/bin/code.js',
186
'!resources/completions/**',
187
'!extensions/configuration-editing/build/inline-allOf.ts',
188
'!extensions/markdown-language-features/media/highlight.css',
189
'!extensions/markdown-math/notebook-out/**',
190
'!extensions/ipynb/notebook-out/**',
191
'!extensions/simple-browser/media/codicon.css',
192
'!extensions/terminal-suggest/src/completions/upstream/**',
193
'!extensions/typescript-language-features/node-maintainer/**',
194
'!extensions/html-language-features/server/src/modes/typescript/*',
195
'!extensions/*/server/bin/*',
196
'!src/vs/workbench/contrib/terminal/common/scripts/psreadline/**',
197
]);
198
199
export const tsFormattingFilter = Object.freeze<string[]>([
200
'src/**/*.ts',
201
'test/**/*.ts',
202
'extensions/**/*.ts',
203
'!src/vs/*/**/*.d.ts',
204
'!src/typings/**/*.d.ts',
205
'!extensions/**/*.d.ts',
206
'!**/fixtures/**',
207
'!**/typings/**',
208
'!**/node_modules/**',
209
'!extensions/**/colorize-fixtures/**',
210
'!extensions/vscode-api-tests/testWorkspace/**',
211
'!extensions/vscode-api-tests/testWorkspace2/**',
212
'!extensions/**/*.test.ts',
213
'!extensions/html-language-features/server/lib/jquery.d.ts',
214
'!extensions/terminal-suggest/src/shell/zshBuiltinsCache.ts',
215
'!extensions/terminal-suggest/src/shell/fishBuiltinsCache.ts',
216
]);
217
218
export const eslintFilter = Object.freeze<string[]>([
219
'**/*.js',
220
'**/*.cjs',
221
'**/*.mjs',
222
'**/*.ts',
223
'.eslint-plugin-local/**/*.ts',
224
...readFileSync(join(import.meta.dirname, '..', '.eslint-ignore'))
225
.toString()
226
.split(/\r\n|\n/)
227
.filter(line => line && !line.startsWith('#'))
228
.map(line => line.startsWith('!') ? line.slice(1) : `!${line}`)
229
]);
230
231
export const stylelintFilter = Object.freeze<string[]>([
232
'src/**/*.css'
233
]);
234
235