1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="JSON Schemas Update" default="ALL">
<property name="idea.project.home" value="${basedir}/../../../../"/>
<macrodef name="get_schema">
<attribute name="fromUrl" />
<attribute name="toFile" />
<sequential>
<get src="@{fromUrl}"
dest="@{toFile}" />
<local name="baseUrl"/>
<fixcrlf file="@{toFile}"/>
<property name="baseUrl" value="@{fromUrl}" />
<script language="javascript"><![CDATA[
var url = new java.net.URL(project.getProperty("baseUrl"));
var connection = url.openConnection();
var etag = connection.getHeaderField("ETag");
project.setProperty("etag", etag);
]]></script>
<echo message="${etag}" file="@{toFile}.ETAG" />
</sequential>
</macrodef>
<target name="prettier">
<get_schema fromUrl="http://json.schemastore.org/prettierrc"
toFile="${idea.project.home}/contrib/prettierJS/resources/prettierrc-schema.json" />
<!-- Add schema ID manually -->
<replaceregexp file="${idea.project.home}/contrib/prettierJS/resources/prettierrc-schema.json"
match=""definitions"" replace=""id": "http://json.schemastore.org/prettierrc",${line.separator} "definitions"" />
</target>
<target name="tslint">
<get_schema fromUrl="http://json.schemastore.org/tslint"
toFile="${idea.project.home}/contrib/tslint/resources/tslintJsonSchema/tslint-schema.json" />
</target>
<target name="webpack4">
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/WebpackOptions.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpack-schema4.json" />
</target>
<target name="webpack4plugins">
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/BannerPlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/BannerPlugin.json" />
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/DllPlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/DllPlugin.json" />
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/DllReferencePlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/DllReferencePlugin.json" />
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/HashedModuleIdsPlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/HashedModuleIdsPlugin.json" />
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/LoaderOptionsPlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/LoaderOptionsPlugin.json" />
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/SourceMapDevToolPlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/SourceMapDevToolPlugin.json" />
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/WatchIgnorePlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/WatchIgnorePlugin.json" />
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/debug/ProfilingPlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/debug/ProfilingPlugin.json" />
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/optimize/AggressiveSplittingPlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/optimize/AggressiveSplittingPlugin.json" />
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/optimize/LimitChunkCountPlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/optimize/LimitChunkCountPlugin.json" />
<get_schema fromUrl="https://raw.githubusercontent.com/webpack/webpack/master/schemas/plugins/optimize/MinChunkSizePlugin.json"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/webpackPlugins/optimize/MinChunkSizePlugin.json" />
</target>
<target name="nodejs">
<get_schema fromUrl="http://json.schemastore.org/package"
toFile="${idea.project.home}/plugins/NodeJS/src/com/jetbrains/nodejs/packageJson/packageJsonSchema.json" />
<!-- add custom properties for eslint, prettier, styleling, jest, jshint, hscs -->
<replaceregexp file="${idea.project.home}/plugins/NodeJS/src/com/jetbrains/nodejs/packageJson/packageJsonSchema.json"
match=""publishConfig""
replace=""eslintConfig" : {"$ref": "http://json.schemastore.org/eslintrc#"},${line.separator} "publishConfig"" />
<replaceregexp file="${idea.project.home}/plugins/NodeJS/src/com/jetbrains/nodejs/packageJson/packageJsonSchema.json"
match=""publishConfig""
replace=""prettier" : {"$ref": "http://json.schemastore.org/prettierrc#"},${line.separator} "publishConfig"" />
<replaceregexp file="${idea.project.home}/plugins/NodeJS/src/com/jetbrains/nodejs/packageJson/packageJsonSchema.json"
match=""publishConfig""
replace=""stylelint" : {"$ref": "http://json.schemastore.org/stylelintrc#"},${line.separator} "publishConfig"" />
<replaceregexp file="${idea.project.home}/plugins/NodeJS/src/com/jetbrains/nodejs/packageJson/packageJsonSchema.json"
match=""publishConfig""
replace=""jest" : {"type": "object", "$ref": "https://facebook.github.io/jest/docs/configuration.html!#"},${line.separator} "publishConfig"" />
<replaceregexp file="${idea.project.home}/plugins/NodeJS/src/com/jetbrains/nodejs/packageJson/packageJsonSchema.json"
match=""publishConfig""
replace=""jshintConfig" : {"$ref": "http://json.schemastore.org/jshintrc#"},${line.separator} "publishConfig"" />
<replaceregexp file="${idea.project.home}/plugins/NodeJS/src/com/jetbrains/nodejs/packageJson/packageJsonSchema.json"
match=""publishConfig""
replace=""jscsConfig" : {"$ref": "http://json.schemastore.org/jscsrc#"},${line.separator} "publishConfig"" />
</target>
<target name="js_schemas">
<get_schema fromUrl="http://json.schemastore.org/babelrc"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/.babelrc-schema.json" />
<get_schema fromUrl="http://json.schemastore.org/stylelintrc"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/.stylelintrc-schema.json" />
<replaceregexp file="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/.stylelintrc-schema.json"
match=""definitions"" replace=""id": "http://json.schemastore.org/stylelintrc",${line.separator}	"definitions"" />
<get_schema fromUrl="http://json.schemastore.org/jsconfig"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/jsconfig-schema.json" />
<get_schema fromUrl="http://json.schemastore.org/tsconfig"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/tsconfig-schema.json" />
<get_schema fromUrl="http://json.schemastore.org/tsd"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/tsd-schema.json" />
<get_schema fromUrl="http://json.schemastore.org/typings"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/typings-schema.json" />
<get_schema fromUrl="http://json.schemastore.org/eslintrc"
toFile="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/.eslintrc-schema.json" />
<replaceregexp file="${idea.project.home}/plugins/JavaScriptLanguage/src/jsonSchemas/.eslintrc-schema.json"
match=""definitions"" replace=""id": "http://json.schemastore.org/eslintrc",${line.separator} "definitions"" />
</target>
<target name="ALL">
<antcall target="js_schemas" />
<antcall target="prettier" />
<antcall target="tslint" />
<antcall target="nodejs" />
<antcall target="webpack4" />
<antcall target="webpack4plugins" />
</target>
</project>
|