Added support for Gradle (#3443)

Co-authored-by: badido18 <hm_boudis@esi.dz>
This commit is contained in:
Abdelkhalek Zellat 2022-04-29 19:31:07 +02:00 committed by GitHub
parent ca8eaeeec4
commit 3211982327
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 522 additions and 2 deletions

File diff suppressed because one or more lines are too long

View File

@ -544,6 +544,11 @@
"alias": "go-mod",
"owner": "RunDevelopment"
},
"gradle": {
"title": "Gradle",
"require": "clike",
"owner": "zeabdelkhalek-badido18"
},
"graphql": {
"title": "GraphQL",
"optional": "markdown",

View File

@ -0,0 +1,63 @@
(function (Prism) {
var interpolation = {
pattern: /((?:^|[^\\$])(?:\\{2})*)\$(?:\w+|\{[^{}]*\})/,
lookbehind: true,
inside: {
'interpolation-punctuation': {
pattern: /^\$\{?|\}$/,
alias: 'punctuation',
},
'expression': {
pattern: /[\s\S]+/,
inside: null,
},
},
};
Prism.languages.gradle = Prism.languages.extend('clike', {
'string': {
pattern: /'''(?:[^\\]|\\[\s\S])*?'''|'(?:\\.|[^\\'\r\n])*'/,
greedy: true,
},
'keyword':
/\b(?:apply|def|dependencies|else|if|implementation|import|plugin|plugins|project|repositories|repository|sourceSets|tasks|val)\b/,
'number': /\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,
'operator': {
pattern:
/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,
lookbehind: true,
},
'punctuation': /\.+|[{}[\];(),:$]/,
});
Prism.languages.insertBefore('gradle', 'string', {
'shebang': {
pattern: /#!.+/,
alias: 'comment',
greedy: true,
},
'interpolation-string': {
pattern:
/"""(?:[^\\]|\\[\s\S])*?"""|(["/])(?:\\.|(?!\1)[^\\\r\n])*\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,
greedy: true,
inside: {
'interpolation': interpolation,
'string': /[\s\S]+/,
},
},
});
Prism.languages.insertBefore('gradle', 'punctuation', {
'spock-block': /\b(?:and|cleanup|expect|given|setup|then|when|where):/,
});
Prism.languages.insertBefore('gradle', 'function', {
'annotation': {
pattern: /(^|[^.])@\w+/,
lookbehind: true,
alias: 'punctuation',
},
});
interpolation.inside.expression.inside = Prism.languages.gradle;
}(Prism));

1
components/prism-gradle.min.js vendored Normal file
View File

@ -0,0 +1 @@
!function(e){var n={pattern:/((?:^|[^\\$])(?:\\{2})*)\$(?:\w+|\{[^{}]*\})/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}};e.languages.gradle=e.languages.extend("clike",{string:{pattern:/'''(?:[^\\]|\\[\s\S])*?'''|'(?:\\.|[^\\'\r\n])*'/,greedy:!0},keyword:/\b(?:apply|def|dependencies|else|if|implementation|import|plugin|plugins|project|repositories|repository|sourceSets|tasks|val)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("gradle","string",{shebang:{pattern:/#!.+/,alias:"comment",greedy:!0},"interpolation-string":{pattern:/"""(?:[^\\]|\\[\s\S])*?"""|(["/])(?:\\.|(?!\1)[^\\\r\n])*\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}}}),e.languages.insertBefore("gradle","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),e.languages.insertBefore("gradle","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),n.inside.expression.inside=e.languages.gradle}(Prism);

View File

@ -0,0 +1,54 @@
<h2>Full example</h2>
<pre><code>apply plugin: "java"
apply plugin: "eclipse"
apply plugin: "idea"
group = "com.mycompany.hadoopproject"
version = "1.0"
repositories {
// Standard Maven
mavenCentral()
maven {
url "https://repository.cloudera.com/artifactory/cloudera-repos/"
}
}
// Mimic Maven 'provided' configuration, as suggested in GRADLE-784
configurations {
provided
}
sourceSets {
main {
compileClasspath += configurations.provided
}
}
ext.hadoopVersion = "2.0.0-mr1-cdh4.0.1"
dependencies {
provided "org.apache.hadoop:hadoop-client:${hadoopVersion}"
// Example of adding a specific compile time dependency
compile "com.google.guava:guava:11.0.2"
testCompile "junit:junit:4.8.2"
}
// Java version selection
sourceCompatibility = 1.6
targetCompatibility = 1.6
eclipse {
classpath {
// Ensure Eclipse build output appears in build directory
defaultOutputDir = file("${buildDir}/eclipse-classes")
// Ensure the provided configuration jars are available in Eclipse
plusConfigurations += configurations.provided
}
}
// Emulate Maven shade plugin with a fat jar.
// http://docs.codehaus.org/display/GRADLE/Cookbook#Cookbook-Creatingafatjar
jar {
from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}</code></pre>

View File

@ -58,6 +58,7 @@
"gml": "clike",
"glsl": "c",
"go": "clike",
"gradle": "clike",
"groovy": "clike",
"haml": "ruby",
"handlebars": "markup-templating",

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,17 @@
@BaseScript MyBaseClass baseScript
@DelegatesTo(EmailSpec)
----------------------------------------------------
[
["annotation", "@BaseScript"],
" MyBaseClass baseScript\r\n",
["annotation", "@DelegatesTo"],
["punctuation", "("],
"EmailSpec",
["punctuation", ")"]
]
----------------------------------------------------
Checks for annotations.

View File

@ -0,0 +1,30 @@
implementation
val tasks dependencies project plugin plugins
repository repositories apply def sourceSets import
if else
----------------------------------------------------
[
["keyword", "implementation"],
["keyword", "val"],
["keyword", "tasks"],
["keyword", "dependencies"],
["keyword", "project"],
["keyword", "plugin"],
["keyword", "plugins"],
["keyword", "repository"],
["keyword", "repositories"],
["keyword", "apply"],
["keyword", "def"],
["keyword", "sourceSets"],
["keyword", "import"],
["keyword", "if"],
["keyword", "else"]
]
----------------------------------------------------
Checks for all keywords.

View File

@ -0,0 +1,43 @@
0b0110
0b0110_1111_0000
0b01G 0b01L 0b01I
0b01D 0b01F
0xBABE
0xBad_Face
0x1.8p1
0xa.fp-2
42_000
3.14_15_9
1.2e3
3E+1
4E-2
42g 42l 42i
42d 42f
----------------------------------------------------
[
["number", "0b0110"],
["number", "0b0110_1111_0000"],
["number", "0b01G"], ["number", "0b01L"], ["number", "0b01I"],
["number", "0b01D"], ["number", "0b01F"],
["number", "0xBABE"],
["number", "0xBad_Face"],
["number", "0x1.8p1"],
["number", "0xa.fp-2"],
["number", "42_000"],
["number", "3.14_15_9"],
["number", "1.2e3"],
["number", "3E+1"],
["number", "4E-2"],
["number", "42g"], ["number", "42l"], ["number", "42i"],
["number", "42d"], ["number", "42f"]
]
----------------------------------------------------
Checks for binary, hexadecimal and decimal numbers.

View File

@ -0,0 +1,45 @@
~
= == =~ ==~
? ?. ?:
* ** *. *= **=
.@ .&
5..8
5..<8
- -- -= ->
+ ++ +=
! !=
< << <<= <= <=>
> >> >>> >>= >>>= >=
& && &=
| || |=
/
/=
^ ^=
% %=
----------------------------------------------------
[
["operator", "~"],
["operator", "="], ["operator", "=="], ["operator", "=~"], ["operator", "==~"],
["operator", "?"], ["operator", "?."], ["operator", "?:"],
["operator", "*"], ["operator", "**"], ["operator", "*."], ["operator", "*="], ["operator", "**="],
["operator", ".@"], ["operator", ".&"],
["number", "5"], ["operator", ".."], ["number", "8"],
["number", "5"], ["operator", "..<"], ["number", "8"],
["operator", "-"], ["operator", "--"], ["operator", "-="], ["operator", "->"],
["operator", "+"], ["operator", "++"], ["operator", "+="],
["operator", "!"], ["operator", "!="],
["operator", "<"], ["operator", "<<"], ["operator", "<<="], ["operator", "<="], ["operator", "<=>"],
["operator", ">"], ["operator", ">>"], ["operator", ">>>"], ["operator", ">>="], ["operator", ">>>="], ["operator", ">="],
["operator", "&"], ["operator", "&&"], ["operator", "&="],
["operator", "|"], ["operator", "||"], ["operator", "|="],
["operator", "/"],
["operator", "/="],
["operator", "^"], ["operator", "^="],
["operator", "%"], ["operator", "%="]
]
----------------------------------------------------
Checks for all operators.

View File

@ -0,0 +1,13 @@
#!foobar
#!/usr/bin/env groovy
----------------------------------------------------
[
["shebang", "#!foobar"],
["shebang", "#!/usr/bin/env groovy"]
]
----------------------------------------------------
Check for shebang comments.

View File

@ -0,0 +1,25 @@
setup:
given:
when:
then:
and:
cleanup:
expect:
where:
----------------------------------------------------
[
["spock-block", "setup:"],
["spock-block", "given:"],
["spock-block", "when:"],
["spock-block", "then:"],
["spock-block", "and:"],
["spock-block", "cleanup:"],
["spock-block", "expect:"],
["spock-block", "where:"]
]
----------------------------------------------------
Checks for all spock blocks.

View File

@ -0,0 +1,129 @@
// Double quoted: interpolation
"$foo"
"${42}"
// Triple double quoted: interpolation
"""$foo"""
"""${42}"""
// Slashy string: interpolation
/$foo/
/${42}/
// Dollar slashy string: interpolation
$/$foo/$
$/${42}/$
// Double quoted: no interpolation (escaped)
"\$foo \${42}"
// Triple double quoted: no interpolation (escaped)
"""\$foo \${42}"""
// Slashy string: no interpolation (escaped)
/\$foo \${42}/
// Dollar slashy string: no interpolation (escaped)
$/$$foo $${42}/$
// Single quoted string: no interpolation
'$foo ${42}'
// Triple single quoted string: no interpolation
'''$foo ${42}'''
----------------------------------------------------
<span class="token comment">// Double quoted: interpolation</span>
<span class="token interpolation-string">
<span class="token string">"</span>
<span class="token interpolation">
<span class="token interpolation-punctuation punctuation">$</span>
<span class="token expression">foo</span>
</span>
<span class="token string">"</span>
</span>
<span class="token interpolation-string">
<span class="token string">"</span>
<span class="token interpolation">
<span class="token interpolation-punctuation punctuation">${</span>
<span class="token expression"><span class="token number">42</span></span>
<span class="token interpolation-punctuation punctuation">}</span>
</span>
<span class="token string">"</span>
</span>
<span class="token comment">// Triple double quoted: interpolation</span>
<span class="token interpolation-string">
<span class="token string">"""</span>
<span class="token interpolation">
<span class="token interpolation-punctuation punctuation">$</span>
<span class="token expression">foo</span>
</span>
<span class="token string">"""</span>
</span>
<span class="token interpolation-string">
<span class="token string">"""</span>
<span class="token interpolation">
<span class="token interpolation-punctuation punctuation">${</span>
<span class="token expression"><span class="token number">42</span></span>
<span class="token interpolation-punctuation punctuation">}</span>
</span>
<span class="token string">"""</span>
</span>
<span class="token comment">// Slashy string: interpolation</span>
<span class="token interpolation-string">
<span class="token string">/</span>
<span class="token interpolation">
<span class="token interpolation-punctuation punctuation">$</span>
<span class="token expression">foo</span>
</span>
<span class="token string">/</span>
</span>
<span class="token interpolation-string">
<span class="token string">/</span>
<span class="token interpolation">
<span class="token interpolation-punctuation punctuation">${</span>
<span class="token expression"><span class="token number">42</span></span>
<span class="token interpolation-punctuation punctuation">}</span>
</span>
<span class="token string">/</span>
</span>
<span class="token comment">// Dollar slashy string: interpolation</span>
<span class="token interpolation-string">
<span class="token string">$/</span>
<span class="token interpolation">
<span class="token interpolation-punctuation punctuation">$</span>
<span class="token expression">foo</span>
</span>
<span class="token string">/$</span>
</span>
<span class="token interpolation-string">
<span class="token string">$/</span>
<span class="token interpolation">
<span class="token interpolation-punctuation punctuation">${</span>
<span class="token expression"><span class="token number">42</span></span>
<span class="token interpolation-punctuation punctuation">}</span>
</span>
<span class="token string">/$</span>
</span>
<span class="token comment">// Double quoted: no interpolation (escaped)</span>
<span class="token interpolation-string"><span class="token string">"\$foo \${42}"</span></span>
<span class="token comment">// Triple double quoted: no interpolation (escaped)</span>
<span class="token interpolation-string"><span class="token string">"""\$foo \${42}"""</span></span>
<span class="token comment">// Slashy string: no interpolation (escaped)</span>
<span class="token interpolation-string"><span class="token string">/\$foo \${42}/</span></span>
<span class="token comment">// Dollar slashy string: no interpolation (escaped)</span>
<span class="token interpolation-string"><span class="token string">$/$$foo $${42}/$</span></span>
<span class="token comment">// Single quoted string: no interpolation</span>
<span class="token string">'$foo ${42}'</span>
<span class="token comment">// Triple single quoted string: no interpolation</span>
<span class="token string">'''$foo ${42}'''</span>

View File

@ -0,0 +1,94 @@
""""""
"""foo"""
"""foo
bar"""
''''''
'''foo'''
'''foo
bar'''
""
"fo\"o"
''
'fo\'o'
/foo/
/fo\/o/
$/fo$/$o/$
$/foo
bar/$
"foo /* comment */ bar"
'foo // bar'
'''foo
/* comment */
bar'''
'''hell\'''o'''
"""foo
// comment
bar"""
"""hell\"""o"""
----------------------------------------------------
[
["interpolation-string", [
["string", "\"\"\"\"\"\""]
]],
["interpolation-string", [
["string", "\"\"\"foo\"\"\""]
]],
["interpolation-string", [
["string", "\"\"\"foo\r\nbar\"\"\""]
]],
["string", "''''''"],
["string", "'''foo'''"],
["string", "'''foo\r\nbar'''"],
["interpolation-string", [
["string", "\"\""]
]],
["interpolation-string", [
["string", "\"fo\\\"o\""]
]],
["string", "''"],
["string", "'fo\\'o'"],
["interpolation-string", [
["string", "/foo/"]
]],
["interpolation-string", [
["string", "/fo\\/o/"]
]],
["interpolation-string", [
["string", "$/fo$/"],
["interpolation", [
["interpolation-punctuation", "$"],
["expression", ["o"]]
]],
["string", "/$"]
]],
["interpolation-string", [
["string", "$/foo\r\nbar/$"]
]],
["interpolation-string", [
["string", "\"foo /* comment */ bar\""]
]],
["string", "'foo // bar'"],
["string", "'''foo\r\n/* comment */\r\nbar'''"],
["string", "'''hell\\'''o'''"],
["interpolation-string", [
["string", "\"\"\"foo\r\n// comment\r\nbar\"\"\""]
]],
["interpolation-string", [
["string", "\"\"\"hell\\\"\"\"o\"\"\""]
]]
]
----------------------------------------------------
Checks for single quoted, triple single quoted, double quoted,
triple double quoted, slashy and dollar slashy strings.