From 35798cb3437ba88a2cafde753a52bc87d724edbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 26 Jul 2022 16:55:13 +0800 Subject: [PATCH 01/25] Java: added support for variables, witch read from the `window.PrismConfig` --- components/prism-java.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/prism-java.js b/components/prism-java.js index 9d10f2fe62..5f93a1b933 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -120,4 +120,12 @@ } } }); + + // variable from config + var prismConfig = window.PrismConfig; + if (prismConfig && prismConfig.languages && prismConfig.languages.java && prismConfig.languages.java.variable) { + Prism.languages.insertBefore('java', 'string', { + 'variable': prismConfig.languages.java.variable + }); + } }(Prism)); From 7fd1d02883d3fbf067f8a72b5507796cff235a56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 26 Jul 2022 17:05:47 +0800 Subject: [PATCH 02/25] fix test --- components/prism-java.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/components/prism-java.js b/components/prism-java.js index 5f93a1b933..051b763f72 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -122,10 +122,12 @@ }); // variable from config - var prismConfig = window.PrismConfig; - if (prismConfig && prismConfig.languages && prismConfig.languages.java && prismConfig.languages.java.variable) { - Prism.languages.insertBefore('java', 'string', { - 'variable': prismConfig.languages.java.variable - }); + if (typeof window !== 'undefined') { + var prismConfig = window.PrismConfig; + if (prismConfig && prismConfig.languages && prismConfig.languages.java && prismConfig.languages.java.variable) { + Prism.languages.insertBefore('java', 'string', { + 'variable': prismConfig.languages.java.variable + }); + } } }(Prism)); From 556395bcc1bb9f6979c76f8ff2a928394b4d19b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 26 Jul 2022 17:07:32 +0800 Subject: [PATCH 03/25] update prism-java.min.js --- components/prism-java.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/prism-java.min.js b/components/prism-java.min.js index d240e5076e..0e6da1fa07 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); \ No newline at end of file +!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var t=window.PrismConfig;t&&t.languages&&t.languages.java&&t.languages.java.variable&&e.languages.insertBefore("java","string",{variable:t.languages.java.variable})}}(Prism); \ No newline at end of file From 6572034090d18821e238ef016d3ea67f4950e342 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 26 Jul 2022 17:44:04 +0800 Subject: [PATCH 04/25] update prism-java.min.js --- components/prism-java.js | 8 ++++++++ components/prism-java.min.js | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/components/prism-java.js b/components/prism-java.js index 051b763f72..366fe95b8c 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -130,4 +130,12 @@ }); } } + // default variable + if (!Prism.languages.java.variable) { + Prism.languages.insertBefore('java', 'string', { + 'variable': { + pattern: /\b(arg[s12]|log(ger)?|[A-Z]+)\b/ + } + }); + } }(Prism)); diff --git a/components/prism-java.min.js b/components/prism-java.min.js index 0e6da1fa07..5b95146073 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var t=window.PrismConfig;t&&t.languages&&t.languages.java&&t.languages.java.variable&&e.languages.insertBefore("java","string",{variable:t.languages.java.variable})}}(Prism); \ No newline at end of file +!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var t=window.PrismConfig;t&&t.languages&&t.languages.java&&t.languages.java.variable&&e.languages.insertBefore("java","string",{variable:t.languages.java.variable})}e.languages.java.variable||e.languages.insertBefore("java","string",{variable:{pattern:/\b(arg[s12]|log(ger)?|[A-Z]+)\b/}})}(Prism); \ No newline at end of file From 71137ccbaf76b811c980d6eb5ff4434877cd8938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 26 Jul 2022 19:50:22 +0800 Subject: [PATCH 05/25] Java: Added support for constants and variables --- components/prism-java.js | 22 +--- components/prism-java.min.js | 2 +- components/prism-scala.js | 2 + components/prism-scala.min.js | 2 +- tests/languages/java/annotation_feature.test | 10 +- tests/languages/java/class-name_feature.test | 14 +-- tests/languages/java/function_featrue.test | 6 +- tests/languages/java/generics_feature.test | 24 ++--- tests/languages/java/issue3345.test | 12 +-- tests/languages/java/string_feature.test | 4 +- tests/languages/java/variable_feature.test | 103 +++++++++++++++++++ tests/languages/javadoc/code_feature.test | 52 +++++----- tests/languages/stata/java_inclusion.test | 6 +- 13 files changed, 175 insertions(+), 84 deletions(-) create mode 100644 tests/languages/java/variable_feature.test diff --git a/components/prism-java.js b/components/prism-java.js index 366fe95b8c..32cb14e88e 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -55,7 +55,9 @@ 'operator': { pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m, lookbehind: true - } + }, + 'constant': /\b[A-Z][A-Z_\d]{2,}\b/, + 'variable': /\b[a-z]\w*\b/ }); Prism.languages.insertBefore('java', 'string', { @@ -120,22 +122,4 @@ } } }); - - // variable from config - if (typeof window !== 'undefined') { - var prismConfig = window.PrismConfig; - if (prismConfig && prismConfig.languages && prismConfig.languages.java && prismConfig.languages.java.variable) { - Prism.languages.insertBefore('java', 'string', { - 'variable': prismConfig.languages.java.variable - }); - } - } - // default variable - if (!Prism.languages.java.variable) { - Prism.languages.insertBefore('java', 'string', { - 'variable': { - pattern: /\b(arg[s12]|log(ger)?|[A-Z]+)\b/ - } - }); - } }(Prism)); diff --git a/components/prism-java.min.js b/components/prism-java.min.js index 5b95146073..238d002720 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var t=window.PrismConfig;t&&t.languages&&t.languages.java&&t.languages.java.variable&&e.languages.insertBefore("java","string",{variable:t.languages.java.variable})}e.languages.java.variable||e.languages.insertBefore("java","string",{variable:{pattern:/\b(arg[s12]|log(ger)?|[A-Z]+)\b/}})}(Prism); \ No newline at end of file +!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",a={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[a,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:a.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:a.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]{2,}\b/,variable:/\b[a-z]\w*\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":a,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:a.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:a.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); \ No newline at end of file diff --git a/components/prism-scala.js b/components/prism-scala.js index 40b96fa15c..644f68f888 100644 --- a/components/prism-scala.js +++ b/components/prism-scala.js @@ -47,3 +47,5 @@ Prism.languages.insertBefore('scala', 'triple-quoted-string', { delete Prism.languages.scala['class-name']; delete Prism.languages.scala['function']; +delete Prism.languages.scala['constant']; +delete Prism.languages.scala['variable']; diff --git a/components/prism-scala.min.js b/components/prism-scala.min.js index 1f3db0b8bd..db69cb9b61 100644 --- a/components/prism-scala.min.js +++ b/components/prism-scala.min.js @@ -1 +1 @@ -Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function; \ No newline at end of file +Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant,delete Prism.languages.scala.variable; \ No newline at end of file diff --git a/tests/languages/java/annotation_feature.test b/tests/languages/java/annotation_feature.test index 3c645542c8..38092c4e92 100644 --- a/tests/languages/java/annotation_feature.test +++ b/tests/languages/java/annotation_feature.test @@ -14,19 +14,19 @@ ["annotation", "@Retention"], ["punctuation", "("], - "value", + ["variable", "value"], ["operator", "="], - "SOURCE", + ["constant", "SOURCE"], ["punctuation", ")"], ["annotation", "@Target"], ["punctuation", "("], - "value", + ["variable", "value"], ["operator", "="], ["punctuation", "{"], - "PACKAGE", + ["constant", "PACKAGE"], ["punctuation", ","], - "TYPE", + ["constant", "TYPE"], ["punctuation", "}"], ["punctuation", ")"] ] diff --git a/tests/languages/java/class-name_feature.test b/tests/languages/java/class-name_feature.test index b9c3c1a675..cbda92bae3 100644 --- a/tests/languages/java/class-name_feature.test +++ b/tests/languages/java/class-name_feature.test @@ -68,7 +68,7 @@ String.valueOf(5); ]], "Baz" ]], - " bat", + ["variable", "bat"], ["punctuation", ")"], ["keyword", "throws"], ["class-name", [ @@ -83,7 +83,7 @@ String.valueOf(5); ["punctuation", "{"], ["keyword", "var"], - " foo ", + ["variable", "foo"], ["operator", "="], ["keyword", "new"], ["class-name", [ @@ -101,13 +101,13 @@ String.valueOf(5); ["punctuation", ";"], ["class-name", ["Exception"]], - " e ", + ["variable", "e"], ["operator", "="], - " foo", + ["variable", "foo"], ["punctuation", ";"], ["keyword", "throw"], - " e", + ["variable", "e"], ["punctuation", ";"], ["punctuation", "}"], @@ -127,7 +127,7 @@ String.valueOf(5); ["punctuation", ";"], ["class-name", ["ID"]], - " id ", + ["variable", "id"], ["operator", "="], ["keyword", "new"], ["class-name", ["ID"]], @@ -140,7 +140,7 @@ String.valueOf(5); ["punctuation", "."], "Nested" ]], - " id", + ["variable", "id"], ["punctuation", ";"], ["class-name", ["ID"]], diff --git a/tests/languages/java/function_featrue.test b/tests/languages/java/function_featrue.test index d54e5941ec..c3b337a942 100644 --- a/tests/languages/java/function_featrue.test +++ b/tests/languages/java/function_featrue.test @@ -9,7 +9,7 @@ Bar::foo; ["function", "foo"], ["punctuation", "("], ["keyword", "int"], - " a", + ["variable", "a"], ["punctuation", ")"], ["punctuation", "{"], ["punctuation", "}"], @@ -20,9 +20,7 @@ Bar::foo; ["punctuation", ")"], ["punctuation", ";"], - ["class-name", [ - "Bar" - ]], + ["class-name", ["Bar"]], ["operator", "::"], ["function", "foo"], ["punctuation", ";"] diff --git a/tests/languages/java/generics_feature.test b/tests/languages/java/generics_feature.test index 989187b949..09e6105def 100644 --- a/tests/languages/java/generics_feature.test +++ b/tests/languages/java/generics_feature.test @@ -49,7 +49,7 @@ if (a<6&&b>6){} ["class-name", ["Integer"]], ["punctuation", ">"] ]], - " val ", + ["variable", "val"], ["operator", "="], ["keyword", "new"], ["class-name", ["Solo"]], @@ -69,7 +69,7 @@ if (a<6&&b>6){} ["class-name", ["Character"]], ["punctuation", ">"] ]], - " dual ", + ["variable", "dual"], ["operator", "="], ["keyword", "new"], ["class-name", ["Duo"]], @@ -93,7 +93,7 @@ if (a<6&&b>6){} ["operator", "?"], ["punctuation", ">"] ]], - " list\r\n", + ["variable", "list"], ["class-name", ["List"]], ["generics", [ @@ -103,9 +103,9 @@ if (a<6&&b>6){} ["class-name", ["Number"]], ["punctuation", ">"] ]], - " nums ", + ["variable", "nums"], ["operator", "="], - " ints", + ["variable", "ints"], ["punctuation", ";"], ["class-name", ["List"]], @@ -116,7 +116,7 @@ if (a<6&&b>6){} ["class-name", ["Integer"]], ["punctuation", ">"] ]], - " list\r\n", + ["variable", "list"], ["class-name", ["Entry"]], ["generics", [ @@ -126,7 +126,7 @@ if (a<6&&b>6){} ["class-name", ["String"]], ["punctuation", ">"] ]], - " pair ", + ["variable", "pair"], ["operator", "="], ["class-name", ["Entry"]], ["punctuation", "."], @@ -182,10 +182,10 @@ if (a<6&&b>6){} ["function", "throwMeConditional"], ["punctuation", "("], ["keyword", "boolean"], - " conditional", + ["variable", "conditional"], ["punctuation", ","], ["class-name", ["T"]], - " exception", + ["variable", "exception"], ["punctuation", ")"], ["keyword", "throws"], ["class-name", ["T"]], @@ -206,7 +206,7 @@ if (a<6&&b>6){} ["class-name", ["T"]], ["punctuation", ">"] ]], - " arg", + ["variable", "arg"], ["punctuation", ")"], ["punctuation", "{"], ["punctuation", "}"], @@ -215,11 +215,11 @@ if (a<6&&b>6){} ["keyword", "if"], ["punctuation", "("], - "a", + ["variable", "a"], ["operator", "<"], ["number", "6"], ["operator", "&&"], - "b", + ["variable", "b"], ["operator", ">"], ["number", "6"], ["punctuation", ")"], diff --git a/tests/languages/java/issue3345.test b/tests/languages/java/issue3345.test index 8c7ae25348..91e038821e 100644 --- a/tests/languages/java/issue3345.test +++ b/tests/languages/java/issue3345.test @@ -10,7 +10,7 @@ public class Main { public static record A() { } // it cannot be used as class name in java syntax - public static class record { + public static class Record { } } @@ -32,17 +32,17 @@ public class Main { ["class-name", ["String"]], ["punctuation", "["], ["punctuation", "]"], - " record", + ["variable", "record"], ["punctuation", ")"], ["punctuation", "{"], ["class-name", ["System"]], ["punctuation", "."], - "out", + ["variable", "out"], ["punctuation", "."], ["function", "println"], ["punctuation", "("], - "record", + ["variable", "record"], ["punctuation", ")"], ["punctuation", ";"], @@ -55,7 +55,7 @@ public class Main { ["function", "record"], ["punctuation", "("], ["class-name", ["String"]], - " aaa", + ["variable", "aaa"], ["punctuation", ")"], ["punctuation", "{"], @@ -78,7 +78,7 @@ public class Main { ["keyword", "public"], ["keyword", "static"], ["keyword", "class"], - " record ", + ["class-name", ["Record"]], ["punctuation", "{"], ["punctuation", "}"], diff --git a/tests/languages/java/string_feature.test b/tests/languages/java/string_feature.test index 1734f1a190..82b8c86e13 100644 --- a/tests/languages/java/string_feature.test +++ b/tests/languages/java/string_feature.test @@ -28,7 +28,7 @@ String empty = """ ["triple-quoted-string", "\"\"\"\r\nfoo\r\n\"\"\""], ["keyword", "var"], - " a ", + ["variable", "a"], ["operator", "="], ["triple-quoted-string", "\"\"\"\r\n\\\"\"\"\r\nfoo\"\"\""], ["punctuation", ";"], @@ -40,7 +40,7 @@ String empty = """ ["triple-quoted-string", "\"\"\"\r\njumps over the lazy dog\r\n\"\"\""], ["class-name", ["String"]], - " empty ", + ["variable", "empty"], ["operator", "="], ["triple-quoted-string", "\"\"\"\r\n\"\"\""], ["punctuation", ";"] diff --git a/tests/languages/java/variable_feature.test b/tests/languages/java/variable_feature.test new file mode 100644 index 0000000000..1348d34f45 --- /dev/null +++ b/tests/languages/java/variable_feature.test @@ -0,0 +1,103 @@ +@Test(value = Xxxx.TYPE) +public class Test { + private static final Logger LOGGER = LoggerFactory.getLogger(Test.class); + + private String str = "1"; + private String arg = "2"; + private String var1 = "3"; + + public static void main(String[] args) { + LOGGER.info("test LOGGER: {}, {}, {}", + str, arg, var1); + } +} + +---------------------------------------------------- + +[ + ["annotation", "@Test"], + ["punctuation", "("], + ["variable", "value"], + ["operator", "="], + ["class-name", ["Xxxx"]], + ["punctuation", "."], + ["constant", "TYPE"], + ["punctuation", ")"], + + ["keyword", "public"], + ["keyword", "class"], + ["class-name", ["Test"]], + ["punctuation", "{"], + + ["keyword", "private"], + ["keyword", "static"], + ["keyword", "final"], + ["class-name", ["Logger"]], + ["constant", "LOGGER"], + ["operator", "="], + ["class-name", ["LoggerFactory"]], + ["punctuation", "."], + ["function", "getLogger"], + ["punctuation", "("], + ["class-name", ["Test"]], + ["punctuation", "."], + ["keyword", "class"], + ["punctuation", ")"], + ["punctuation", ";"], + + ["keyword", "private"], + ["class-name", ["String"]], + ["variable", "str"], + ["operator", "="], + ["string", "\"1\""], + ["punctuation", ";"], + + ["keyword", "private"], + ["class-name", ["String"]], + ["variable", "arg"], + ["operator", "="], + ["string", "\"2\""], + ["punctuation", ";"], + + ["keyword", "private"], + ["class-name", ["String"]], + ["variable", "var1"], + ["operator", "="], + ["string", "\"3\""], + ["punctuation", ";"], + + ["keyword", "public"], + ["keyword", "static"], + ["keyword", "void"], + ["function", "main"], + ["punctuation", "("], + ["class-name", ["String"]], + ["punctuation", "["], + ["punctuation", "]"], + ["variable", "args"], + ["punctuation", ")"], + ["punctuation", "{"], + + ["constant", "LOGGER"], + ["punctuation", "."], + ["function", "info"], + ["punctuation", "("], + ["string", "\"test LOGGER: {}, {}, {}\""], + ["punctuation", ","], + + ["variable", "str"], + ["punctuation", ","], + ["variable", "arg"], + ["punctuation", ","], + ["variable", "var1"], + ["punctuation", ")"], + ["punctuation", ";"], + + ["punctuation", "}"], + + ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for all keywords. diff --git a/tests/languages/javadoc/code_feature.test b/tests/languages/javadoc/code_feature.test index c7b8206caa..24e4886e39 100644 --- a/tests/languages/javadoc/code_feature.test +++ b/tests/languages/javadoc/code_feature.test @@ -53,7 +53,7 @@ ["code", [ ["keyword", "this"], ["punctuation", "."], - "foo" + ["variable", "foo"] ]] ]], ["punctuation", "}"], @@ -140,17 +140,17 @@ ["keyword", "for"], ["punctuation", "("], ["keyword", "int"], - " i ", + ["variable", "i"], ["operator", "="], ["number", "0"], ["punctuation", ";"], - " i ", + ["variable", "i"], ["operator", "<"], - " array", + ["variable", "array"], ["punctuation", "."], - "length", + ["variable", "length"], ["punctuation", ";"], - " i", + ["variable", "i"], ["operator", "++"], ["punctuation", ")"], ["punctuation", "{"] @@ -160,9 +160,9 @@ "\r\n * ", ["line", [ ["code", [ - "array", + ["variable", "array"], ["punctuation", "["], - "i", + ["variable", "i"], ["punctuation", "]"], ["operator", "+="], ["number", "1"], @@ -181,7 +181,7 @@ ["line", [ ["code", [ ["keyword", "return"], - " array", + ["variable", "array"], ["punctuation", ";"] ]] ]], @@ -218,7 +218,7 @@ "* ", ["code", [ ["class-name", ["String"]], - " message ", + ["variable", "message"], ["operator", "="], ["class-name", ["String"]], ["punctuation", "."], @@ -264,12 +264,12 @@ "* ", ["line", [ ["code", [ - "dstBegin ", + ["variable", "dstBegin"], ["operator", "+"], ["punctuation", "("], - "srcEnd", + ["variable", "srcEnd"], ["operator", "-"], - "srcBegin", + ["variable", "srcBegin"], ["punctuation", ")"], ["operator", "-"], ["number", "1"] @@ -312,7 +312,9 @@ ]], ["punctuation", ">"] ]], - ["code", ["c"]], + ["code", [ + ["variable", "c"] + ]], ["tag", [ ["tag", [ ["punctuation", ""] ]], - ["code", ["b"]], + ["code", [ + ["variable", "b"] + ]], ["tag", [ ["tag", [ ["punctuation", ""] ]], - " future" + ["variable", "future"] ]], "\r\n * ", ["code", [ ["operator", "="], - " executor", + ["variable", "executor"], ["punctuation", "."], ["function", "submit"], ["punctuation", "("], @@ -500,11 +504,11 @@ "\r\n * ", ["code", [ ["keyword", "return"], - " searcher", + ["variable", "searcher"], ["punctuation", "."], ["function", "search"], ["punctuation", "("], - "target", + ["variable", "target"], ["punctuation", ")"], ["punctuation", ";"] ]], @@ -536,7 +540,7 @@ ["code", [ ["function", "displayText"], ["punctuation", "("], - "future", + ["variable", "future"], ["punctuation", "."], ["function", "get"], ["punctuation", "("], @@ -552,7 +556,7 @@ ["keyword", "catch"], ["punctuation", "("], ["class-name", ["ExecutionException"]], - " ex", + ["variable", "ex"], ["punctuation", ")"], ["punctuation", "{"], ["function", "cleanup"], diff --git a/tests/languages/stata/java_inclusion.test b/tests/languages/stata/java_inclusion.test index f68244947a..bddee0cd34 100644 --- a/tests/languages/stata/java_inclusion.test +++ b/tests/languages/stata/java_inclusion.test @@ -32,7 +32,7 @@ end ["punctuation", ":"], ["java", [ ["keyword", "int"], - " x ", + ["variable", "x"], ["operator", "="], ["number", "123"], ["punctuation", ";"], @@ -45,13 +45,13 @@ end ["class-name", ["System"]], ["punctuation", "."], - "out", + ["variable", "out"], ["punctuation", "."], ["function", "println"], ["punctuation", "("], ["string", "\"x: \""], ["operator", "+"], - " x", + ["variable", "x"], ["punctuation", ")"], ["punctuation", ";"], From 43a4b1f96a89f5e6bd8c7d5ebf5a4e46f3675aab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 02:28:36 +0800 Subject: [PATCH 06/25] remove variable --- components/prism-java.js | 3 +- components/prism-java.min.js | 2 +- components/prism-scala.js | 1 - components/prism-scala.min.js | 2 +- tests/languages/java/annotation_feature.test | 4 +- tests/languages/java/class-name_feature.test | 14 +++--- tests/languages/java/function_featrue.test | 2 +- tests/languages/java/generics_feature.test | 24 ++++----- tests/languages/java/issue3345.test | 8 +-- tests/languages/java/string_feature.test | 4 +- tests/languages/java/variable_feature.test | 25 ++++++---- tests/languages/javadoc/code_feature.test | 52 +++++++++----------- tests/languages/stata/java_inclusion.test | 6 +-- 13 files changed, 74 insertions(+), 73 deletions(-) diff --git a/components/prism-java.js b/components/prism-java.js index 32cb14e88e..873154cfed 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -56,8 +56,7 @@ pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m, lookbehind: true }, - 'constant': /\b[A-Z][A-Z_\d]{2,}\b/, - 'variable': /\b[a-z]\w*\b/ + 'constant': /\b[A-Z][A-Z_\d]+\b/ }); Prism.languages.insertBefore('java', 'string', { diff --git a/components/prism-java.min.js b/components/prism-java.min.js index 238d002720..9b90cf3cc3 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",a={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[a,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:a.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:a.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]{2,}\b/,variable:/\b[a-z]\w*\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":a,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:a.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:a.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); \ No newline at end of file +!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); \ No newline at end of file diff --git a/components/prism-scala.js b/components/prism-scala.js index 644f68f888..12cb3f8dcf 100644 --- a/components/prism-scala.js +++ b/components/prism-scala.js @@ -48,4 +48,3 @@ Prism.languages.insertBefore('scala', 'triple-quoted-string', { delete Prism.languages.scala['class-name']; delete Prism.languages.scala['function']; delete Prism.languages.scala['constant']; -delete Prism.languages.scala['variable']; diff --git a/components/prism-scala.min.js b/components/prism-scala.min.js index db69cb9b61..35df019074 100644 --- a/components/prism-scala.min.js +++ b/components/prism-scala.min.js @@ -1 +1 @@ -Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant,delete Prism.languages.scala.variable; \ No newline at end of file +Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant; \ No newline at end of file diff --git a/tests/languages/java/annotation_feature.test b/tests/languages/java/annotation_feature.test index 38092c4e92..cc8a6a4ca1 100644 --- a/tests/languages/java/annotation_feature.test +++ b/tests/languages/java/annotation_feature.test @@ -14,14 +14,14 @@ ["annotation", "@Retention"], ["punctuation", "("], - ["variable", "value"], + "value", ["operator", "="], ["constant", "SOURCE"], ["punctuation", ")"], ["annotation", "@Target"], ["punctuation", "("], - ["variable", "value"], + "value", ["operator", "="], ["punctuation", "{"], ["constant", "PACKAGE"], diff --git a/tests/languages/java/class-name_feature.test b/tests/languages/java/class-name_feature.test index cbda92bae3..b9c3c1a675 100644 --- a/tests/languages/java/class-name_feature.test +++ b/tests/languages/java/class-name_feature.test @@ -68,7 +68,7 @@ String.valueOf(5); ]], "Baz" ]], - ["variable", "bat"], + " bat", ["punctuation", ")"], ["keyword", "throws"], ["class-name", [ @@ -83,7 +83,7 @@ String.valueOf(5); ["punctuation", "{"], ["keyword", "var"], - ["variable", "foo"], + " foo ", ["operator", "="], ["keyword", "new"], ["class-name", [ @@ -101,13 +101,13 @@ String.valueOf(5); ["punctuation", ";"], ["class-name", ["Exception"]], - ["variable", "e"], + " e ", ["operator", "="], - ["variable", "foo"], + " foo", ["punctuation", ";"], ["keyword", "throw"], - ["variable", "e"], + " e", ["punctuation", ";"], ["punctuation", "}"], @@ -127,7 +127,7 @@ String.valueOf(5); ["punctuation", ";"], ["class-name", ["ID"]], - ["variable", "id"], + " id ", ["operator", "="], ["keyword", "new"], ["class-name", ["ID"]], @@ -140,7 +140,7 @@ String.valueOf(5); ["punctuation", "."], "Nested" ]], - ["variable", "id"], + " id", ["punctuation", ";"], ["class-name", ["ID"]], diff --git a/tests/languages/java/function_featrue.test b/tests/languages/java/function_featrue.test index c3b337a942..ed720cc485 100644 --- a/tests/languages/java/function_featrue.test +++ b/tests/languages/java/function_featrue.test @@ -9,7 +9,7 @@ Bar::foo; ["function", "foo"], ["punctuation", "("], ["keyword", "int"], - ["variable", "a"], + " a", ["punctuation", ")"], ["punctuation", "{"], ["punctuation", "}"], diff --git a/tests/languages/java/generics_feature.test b/tests/languages/java/generics_feature.test index 09e6105def..989187b949 100644 --- a/tests/languages/java/generics_feature.test +++ b/tests/languages/java/generics_feature.test @@ -49,7 +49,7 @@ if (a<6&&b>6){} ["class-name", ["Integer"]], ["punctuation", ">"] ]], - ["variable", "val"], + " val ", ["operator", "="], ["keyword", "new"], ["class-name", ["Solo"]], @@ -69,7 +69,7 @@ if (a<6&&b>6){} ["class-name", ["Character"]], ["punctuation", ">"] ]], - ["variable", "dual"], + " dual ", ["operator", "="], ["keyword", "new"], ["class-name", ["Duo"]], @@ -93,7 +93,7 @@ if (a<6&&b>6){} ["operator", "?"], ["punctuation", ">"] ]], - ["variable", "list"], + " list\r\n", ["class-name", ["List"]], ["generics", [ @@ -103,9 +103,9 @@ if (a<6&&b>6){} ["class-name", ["Number"]], ["punctuation", ">"] ]], - ["variable", "nums"], + " nums ", ["operator", "="], - ["variable", "ints"], + " ints", ["punctuation", ";"], ["class-name", ["List"]], @@ -116,7 +116,7 @@ if (a<6&&b>6){} ["class-name", ["Integer"]], ["punctuation", ">"] ]], - ["variable", "list"], + " list\r\n", ["class-name", ["Entry"]], ["generics", [ @@ -126,7 +126,7 @@ if (a<6&&b>6){} ["class-name", ["String"]], ["punctuation", ">"] ]], - ["variable", "pair"], + " pair ", ["operator", "="], ["class-name", ["Entry"]], ["punctuation", "."], @@ -182,10 +182,10 @@ if (a<6&&b>6){} ["function", "throwMeConditional"], ["punctuation", "("], ["keyword", "boolean"], - ["variable", "conditional"], + " conditional", ["punctuation", ","], ["class-name", ["T"]], - ["variable", "exception"], + " exception", ["punctuation", ")"], ["keyword", "throws"], ["class-name", ["T"]], @@ -206,7 +206,7 @@ if (a<6&&b>6){} ["class-name", ["T"]], ["punctuation", ">"] ]], - ["variable", "arg"], + " arg", ["punctuation", ")"], ["punctuation", "{"], ["punctuation", "}"], @@ -215,11 +215,11 @@ if (a<6&&b>6){} ["keyword", "if"], ["punctuation", "("], - ["variable", "a"], + "a", ["operator", "<"], ["number", "6"], ["operator", "&&"], - ["variable", "b"], + "b", ["operator", ">"], ["number", "6"], ["punctuation", ")"], diff --git a/tests/languages/java/issue3345.test b/tests/languages/java/issue3345.test index 91e038821e..2cf217d6e2 100644 --- a/tests/languages/java/issue3345.test +++ b/tests/languages/java/issue3345.test @@ -32,17 +32,17 @@ public class Main { ["class-name", ["String"]], ["punctuation", "["], ["punctuation", "]"], - ["variable", "record"], + " record", ["punctuation", ")"], ["punctuation", "{"], ["class-name", ["System"]], ["punctuation", "."], - ["variable", "out"], + "out", ["punctuation", "."], ["function", "println"], ["punctuation", "("], - ["variable", "record"], + "record", ["punctuation", ")"], ["punctuation", ";"], @@ -55,7 +55,7 @@ public class Main { ["function", "record"], ["punctuation", "("], ["class-name", ["String"]], - ["variable", "aaa"], + " aaa", ["punctuation", ")"], ["punctuation", "{"], diff --git a/tests/languages/java/string_feature.test b/tests/languages/java/string_feature.test index 82b8c86e13..1734f1a190 100644 --- a/tests/languages/java/string_feature.test +++ b/tests/languages/java/string_feature.test @@ -28,7 +28,7 @@ String empty = """ ["triple-quoted-string", "\"\"\"\r\nfoo\r\n\"\"\""], ["keyword", "var"], - ["variable", "a"], + " a ", ["operator", "="], ["triple-quoted-string", "\"\"\"\r\n\\\"\"\"\r\nfoo\"\"\""], ["punctuation", ";"], @@ -40,7 +40,7 @@ String empty = """ ["triple-quoted-string", "\"\"\"\r\njumps over the lazy dog\r\n\"\"\""], ["class-name", ["String"]], - ["variable", "empty"], + " empty ", ["operator", "="], ["triple-quoted-string", "\"\"\"\r\n\"\"\""], ["punctuation", ";"] diff --git a/tests/languages/java/variable_feature.test b/tests/languages/java/variable_feature.test index 1348d34f45..04fddb64e7 100644 --- a/tests/languages/java/variable_feature.test +++ b/tests/languages/java/variable_feature.test @@ -1,5 +1,5 @@ @Test(value = Xxxx.TYPE) -public class Test { +public class Test { private static final Logger LOGGER = LoggerFactory.getLogger(Test.class); private String str = "1"; @@ -17,7 +17,7 @@ public class Test { [ ["annotation", "@Test"], ["punctuation", "("], - ["variable", "value"], + "value ", ["operator", "="], ["class-name", ["Xxxx"]], ["punctuation", "."], @@ -27,6 +27,13 @@ public class Test { ["keyword", "public"], ["keyword", "class"], ["class-name", ["Test"]], + ["generics", [ + ["punctuation", "<"], + ["class-name", ["A"]], + ["punctuation", ","], + " BB", + ["punctuation", ">"] + ]], ["punctuation", "{"], ["keyword", "private"], @@ -47,21 +54,21 @@ public class Test { ["keyword", "private"], ["class-name", ["String"]], - ["variable", "str"], + " str ", ["operator", "="], ["string", "\"1\""], ["punctuation", ";"], ["keyword", "private"], ["class-name", ["String"]], - ["variable", "arg"], + " arg ", ["operator", "="], ["string", "\"2\""], ["punctuation", ";"], ["keyword", "private"], ["class-name", ["String"]], - ["variable", "var1"], + " var1 ", ["operator", "="], ["string", "\"3\""], ["punctuation", ";"], @@ -74,7 +81,7 @@ public class Test { ["class-name", ["String"]], ["punctuation", "["], ["punctuation", "]"], - ["variable", "args"], + " args", ["punctuation", ")"], ["punctuation", "{"], @@ -85,11 +92,11 @@ public class Test { ["string", "\"test LOGGER: {}, {}, {}\""], ["punctuation", ","], - ["variable", "str"], + "\r\n str", ["punctuation", ","], - ["variable", "arg"], + " arg", ["punctuation", ","], - ["variable", "var1"], + " var1", ["punctuation", ")"], ["punctuation", ";"], diff --git a/tests/languages/javadoc/code_feature.test b/tests/languages/javadoc/code_feature.test index 24e4886e39..c7b8206caa 100644 --- a/tests/languages/javadoc/code_feature.test +++ b/tests/languages/javadoc/code_feature.test @@ -53,7 +53,7 @@ ["code", [ ["keyword", "this"], ["punctuation", "."], - ["variable", "foo"] + "foo" ]] ]], ["punctuation", "}"], @@ -140,17 +140,17 @@ ["keyword", "for"], ["punctuation", "("], ["keyword", "int"], - ["variable", "i"], + " i ", ["operator", "="], ["number", "0"], ["punctuation", ";"], - ["variable", "i"], + " i ", ["operator", "<"], - ["variable", "array"], + " array", ["punctuation", "."], - ["variable", "length"], + "length", ["punctuation", ";"], - ["variable", "i"], + " i", ["operator", "++"], ["punctuation", ")"], ["punctuation", "{"] @@ -160,9 +160,9 @@ "\r\n * ", ["line", [ ["code", [ - ["variable", "array"], + "array", ["punctuation", "["], - ["variable", "i"], + "i", ["punctuation", "]"], ["operator", "+="], ["number", "1"], @@ -181,7 +181,7 @@ ["line", [ ["code", [ ["keyword", "return"], - ["variable", "array"], + " array", ["punctuation", ";"] ]] ]], @@ -218,7 +218,7 @@ "* ", ["code", [ ["class-name", ["String"]], - ["variable", "message"], + " message ", ["operator", "="], ["class-name", ["String"]], ["punctuation", "."], @@ -264,12 +264,12 @@ "* ", ["line", [ ["code", [ - ["variable", "dstBegin"], + "dstBegin ", ["operator", "+"], ["punctuation", "("], - ["variable", "srcEnd"], + "srcEnd", ["operator", "-"], - ["variable", "srcBegin"], + "srcBegin", ["punctuation", ")"], ["operator", "-"], ["number", "1"] @@ -312,9 +312,7 @@ ]], ["punctuation", ">"] ]], - ["code", [ - ["variable", "c"] - ]], + ["code", ["c"]], ["tag", [ ["tag", [ ["punctuation", ""] ]], - ["code", [ - ["variable", "b"] - ]], + ["code", ["b"]], ["tag", [ ["tag", [ ["punctuation", ""] ]], - ["variable", "future"] + " future" ]], "\r\n * ", ["code", [ ["operator", "="], - ["variable", "executor"], + " executor", ["punctuation", "."], ["function", "submit"], ["punctuation", "("], @@ -504,11 +500,11 @@ "\r\n * ", ["code", [ ["keyword", "return"], - ["variable", "searcher"], + " searcher", ["punctuation", "."], ["function", "search"], ["punctuation", "("], - ["variable", "target"], + "target", ["punctuation", ")"], ["punctuation", ";"] ]], @@ -540,7 +536,7 @@ ["code", [ ["function", "displayText"], ["punctuation", "("], - ["variable", "future"], + "future", ["punctuation", "."], ["function", "get"], ["punctuation", "("], @@ -556,7 +552,7 @@ ["keyword", "catch"], ["punctuation", "("], ["class-name", ["ExecutionException"]], - ["variable", "ex"], + " ex", ["punctuation", ")"], ["punctuation", "{"], ["function", "cleanup"], diff --git a/tests/languages/stata/java_inclusion.test b/tests/languages/stata/java_inclusion.test index bddee0cd34..f68244947a 100644 --- a/tests/languages/stata/java_inclusion.test +++ b/tests/languages/stata/java_inclusion.test @@ -32,7 +32,7 @@ end ["punctuation", ":"], ["java", [ ["keyword", "int"], - ["variable", "x"], + " x ", ["operator", "="], ["number", "123"], ["punctuation", ";"], @@ -45,13 +45,13 @@ end ["class-name", ["System"]], ["punctuation", "."], - ["variable", "out"], + "out", ["punctuation", "."], ["function", "println"], ["punctuation", "("], ["string", "\"x: \""], ["operator", "+"], - ["variable", "x"], + " x", ["punctuation", ")"], ["punctuation", ";"], From 4637998a64a2726a15b41dab49ddc7a929c8b46c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 02:33:45 +0800 Subject: [PATCH 07/25] update prism-scala.min.js --- components/prism-scala.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/prism-scala.min.js b/components/prism-scala.min.js index 6d7220d64f..560000f43a 100644 --- a/components/prism-scala.min.js +++ b/components/prism-scala.min.js @@ -1 +1 @@ -Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function; \ No newline at end of file +Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant; \ No newline at end of file From b4a69f866123739f202691f7368b0751ff00302f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 09:37:56 +0800 Subject: [PATCH 08/25] revert issue3345.test --- tests/languages/java/issue3345.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/languages/java/issue3345.test b/tests/languages/java/issue3345.test index 2cf217d6e2..8c7ae25348 100644 --- a/tests/languages/java/issue3345.test +++ b/tests/languages/java/issue3345.test @@ -10,7 +10,7 @@ public class Main { public static record A() { } // it cannot be used as class name in java syntax - public static class Record { + public static class record { } } @@ -78,7 +78,7 @@ public class Main { ["keyword", "public"], ["keyword", "static"], ["keyword", "class"], - ["class-name", ["Record"]], + " record ", ["punctuation", "{"], ["punctuation", "}"], From d4e704c61ed836974bddcab15fa604f5f04cfea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 10:31:36 +0800 Subject: [PATCH 09/25] add variable --- components/prism-java.js | 22 +++++++++++++++++++++- components/prism-java.min.js | 2 +- components/prism-scala.js | 1 + components/prism-scala.min.js | 2 +- tests/languages/java/function_featrue.test | 4 +++- tests/languages/java/variable_feature.test | 4 ++-- 6 files changed, 29 insertions(+), 6 deletions(-) diff --git a/components/prism-java.js b/components/prism-java.js index 873154cfed..29faf51f2a 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -56,7 +56,12 @@ pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m, lookbehind: true }, - 'constant': /\b[A-Z][A-Z_\d]+\b/ + 'constant': /\b[A-Z][A-Z_\d]+\b/, + 'variable': [ + { + pattern: /\b(args)\b/ + } + ] }); Prism.languages.insertBefore('java', 'string', { @@ -121,4 +126,19 @@ } } }); + + // variable from window.PrismConfig + if (typeof window !== 'undefined') { + var prismConfig = window.PrismConfig; + if (prismConfig && prismConfig.languages && prismConfig.languages.java && prismConfig.languages.java.variable) { + var variableConfig = prismConfig.languages.java.variable; + if (variableConfig instanceof Array) { + if (variableConfig.length > 0) { + Prism.languages.java.variable = Prism.languages.java.variable.concat(variableConfig); + } + } else if (typeof variableConfig === 'object') { + Prism.languages.java.variable[Prism.languages.java.variable.length] = variableConfig; + } + } + } }(Prism)); diff --git a/components/prism-java.min.js b/components/prism-java.min.js index 9b90cf3cc3..34b853e2ba 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); \ No newline at end of file +!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(args)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file diff --git a/components/prism-scala.js b/components/prism-scala.js index b12f2e6bbf..75134b465c 100644 --- a/components/prism-scala.js +++ b/components/prism-scala.js @@ -48,3 +48,4 @@ Prism.languages.insertBefore('scala', 'triple-quoted-string', { delete Prism.languages.scala['class-name']; delete Prism.languages.scala['function']; delete Prism.languages.scala['constant']; +delete Prism.languages.scala['variable']; diff --git a/components/prism-scala.min.js b/components/prism-scala.min.js index 560000f43a..e4c8b99241 100644 --- a/components/prism-scala.min.js +++ b/components/prism-scala.min.js @@ -1 +1 @@ -Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant; \ No newline at end of file +Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant,delete Prism.languages.scala.variable; \ No newline at end of file diff --git a/tests/languages/java/function_featrue.test b/tests/languages/java/function_featrue.test index ed720cc485..d54e5941ec 100644 --- a/tests/languages/java/function_featrue.test +++ b/tests/languages/java/function_featrue.test @@ -20,7 +20,9 @@ Bar::foo; ["punctuation", ")"], ["punctuation", ";"], - ["class-name", ["Bar"]], + ["class-name", [ + "Bar" + ]], ["operator", "::"], ["function", "foo"], ["punctuation", ";"] diff --git a/tests/languages/java/variable_feature.test b/tests/languages/java/variable_feature.test index 04fddb64e7..545c929f37 100644 --- a/tests/languages/java/variable_feature.test +++ b/tests/languages/java/variable_feature.test @@ -8,7 +8,7 @@ public class Test { public static void main(String[] args) { LOGGER.info("test LOGGER: {}, {}, {}", - str, arg, var1); + str, arg, var1); } } @@ -81,7 +81,7 @@ public class Test { ["class-name", ["String"]], ["punctuation", "["], ["punctuation", "]"], - " args", + ["variable", "args"], ["punctuation", ")"], ["punctuation", "{"], From e77352625c6bc365be66e4b22a0a2a5121fa77f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 10:34:18 +0800 Subject: [PATCH 10/25] fix --- tests/languages/java/variable_feature.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/languages/java/variable_feature.test b/tests/languages/java/variable_feature.test index 545c929f37..1c8a21ae3a 100644 --- a/tests/languages/java/variable_feature.test +++ b/tests/languages/java/variable_feature.test @@ -8,7 +8,7 @@ public class Test { public static void main(String[] args) { LOGGER.info("test LOGGER: {}, {}, {}", - str, arg, var1); + str, arg, var1); } } From 30334a28bac46d773fd44f01809753a8ce8e5a42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 10:41:38 +0800 Subject: [PATCH 11/25] fix --- components/prism-java.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/prism-java.js b/components/prism-java.js index 29faf51f2a..5728d0bb6c 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -59,7 +59,7 @@ 'constant': /\b[A-Z][A-Z_\d]+\b/, 'variable': [ { - pattern: /\b(args)\b/ + pattern: /\b(?:args)\b/ } ] }); From d37707fb0dc57b3018e28e232eb11e91dba925f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 10:42:17 +0800 Subject: [PATCH 12/25] update prism-java.min.js --- components/prism-java.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/prism-java.min.js b/components/prism-java.min.js index 34b853e2ba..bf5fdfb219 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(args)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file +!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file From 4f7bfcbe2e2d65f40fa06bc039b40d51f2b1433d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 10:54:18 +0800 Subject: [PATCH 13/25] update prism-java.min.js --- components/prism-java.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/prism-java.min.js b/components/prism-java.min.js index bf5fdfb219..5ffbfdd474 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file +!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file From 6e2ef874df9fc37397d2f0d283ae9d868c68a30d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 11:01:47 +0800 Subject: [PATCH 14/25] update prism-java.min.js --- components/prism-java.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/prism-java.min.js b/components/prism-java.min.js index 5ffbfdd474..bf5fdfb219 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file +!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file From f4511dfdfeadefe93e02a5b3d3f55b4413108d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 11:31:24 +0800 Subject: [PATCH 15/25] update variable pattern --- components/prism-java.js | 2 +- components/prism-java.min.js | 2 +- tests/languages/java/annotation_feature.test | 4 ++-- tests/languages/java/variable_feature.test | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/components/prism-java.js b/components/prism-java.js index 5728d0bb6c..3d7a642831 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -59,7 +59,7 @@ 'constant': /\b[A-Z][A-Z_\d]+\b/, 'variable': [ { - pattern: /\b(?:args)\b/ + pattern: /\b(?:args|log(ger)?|value)\b/ } ] }); diff --git a/components/prism-java.min.js b/components/prism-java.min.js index bf5fdfb219..5075cbed45 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file +!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args|log(ger)?|value)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file diff --git a/tests/languages/java/annotation_feature.test b/tests/languages/java/annotation_feature.test index cc8a6a4ca1..38092c4e92 100644 --- a/tests/languages/java/annotation_feature.test +++ b/tests/languages/java/annotation_feature.test @@ -14,14 +14,14 @@ ["annotation", "@Retention"], ["punctuation", "("], - "value", + ["variable", "value"], ["operator", "="], ["constant", "SOURCE"], ["punctuation", ")"], ["annotation", "@Target"], ["punctuation", "("], - "value", + ["variable", "value"], ["operator", "="], ["punctuation", "{"], ["constant", "PACKAGE"], diff --git a/tests/languages/java/variable_feature.test b/tests/languages/java/variable_feature.test index 1c8a21ae3a..cf0065c5a3 100644 --- a/tests/languages/java/variable_feature.test +++ b/tests/languages/java/variable_feature.test @@ -17,7 +17,7 @@ public class Test { [ ["annotation", "@Test"], ["punctuation", "("], - "value ", + ["variable", "value"], ["operator", "="], ["class-name", ["Xxxx"]], ["punctuation", "."], From de8ad325b4ae03176eaca5bfe2d96037ab34e8a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 11:34:40 +0800 Subject: [PATCH 16/25] update variable pattern --- components/prism-java.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/prism-java.js b/components/prism-java.js index 3d7a642831..5c9650e9fe 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -59,7 +59,7 @@ 'constant': /\b[A-Z][A-Z_\d]+\b/, 'variable': [ { - pattern: /\b(?:args|log(ger)?|value)\b/ + pattern: /\b(?:args|log(?:ger)?|value)\b/ } ] }); From 8df98e8ce2ae5f6b460f5a1bfd3f13b429e13ddd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 11:37:04 +0800 Subject: [PATCH 17/25] update prism-java.min.js --- components/prism-java.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/prism-java.min.js b/components/prism-java.min.js index 5075cbed45..1654074271 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args|log(ger)?|value)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file +!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args|log(?:ger)?|value)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file From b41a2bf980a7a914b3452db8a438d0695e88e5db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 27 Jul 2022 18:09:19 +0800 Subject: [PATCH 18/25] Added support for `generic-parameter` --- components/prism-java.js | 1 + components/prism-java.min.js | 2 +- tests/languages/java/generics_feature.test | 16 ++++++++-------- tests/languages/java/variable_feature.test | 4 ++-- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/components/prism-java.js b/components/prism-java.js index 5c9650e9fe..41316b8a78 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -86,6 +86,7 @@ 'generics': { pattern: /<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/, inside: { + 'generic-parameter': /\b[A-Z]+\b/, 'class-name': className, 'keyword': keywords, 'punctuation': /[<>(),.:]/, diff --git a/components/prism-java.min.js b/components/prism-java.min.js index 1654074271..740c974daa 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args|log(?:ger)?|value)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file +!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args|log(?:ger)?|value)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"generic-parameter":/\b[A-Z]+\b/,"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file diff --git a/tests/languages/java/generics_feature.test b/tests/languages/java/generics_feature.test index 989187b949..1702a87a39 100644 --- a/tests/languages/java/generics_feature.test +++ b/tests/languages/java/generics_feature.test @@ -25,7 +25,7 @@ if (a<6&&b>6){} ["class-name", ["Solo"]], ["generics", [ ["punctuation", "<"], - ["class-name", ["T"]], + ["generic-parameter", "T"], ["keyword", "extends"], ["class-name", [ ["namespace", [ @@ -158,13 +158,13 @@ if (a<6&&b>6){} ["class-name", ["D"]], ["generics", [ ["punctuation", "<"], - ["class-name", ["T"]], + ["generic-parameter", "T"], ["keyword", "extends"], - ["class-name", ["A"]], + ["generic-parameter", "A"], ["operator", "&"], - ["class-name", ["B"]], + ["generic-parameter", "B"], ["operator", "&"], - ["class-name", ["C"]], + ["generic-parameter", "C"], ["punctuation", ">"] ]], ["punctuation", "{"], @@ -173,7 +173,7 @@ if (a<6&&b>6){} ["keyword", "public"], ["generics", [ ["punctuation", "<"], - ["class-name", ["T"]], + ["generic-parameter", "T"], ["keyword", "extends"], ["class-name", ["Throwable"]], ["punctuation", ">"] @@ -194,7 +194,7 @@ if (a<6&&b>6){} ["generics", [ ["punctuation", "<"], - ["class-name", ["T"]], + ["generic-parameter", "T"], ["punctuation", ">"] ]], ["class-name", ["T"]], @@ -203,7 +203,7 @@ if (a<6&&b>6){} ["class-name", ["List"]], ["generics", [ ["punctuation", "<"], - ["class-name", ["T"]], + ["generic-parameter", "T"], ["punctuation", ">"] ]], " arg", diff --git a/tests/languages/java/variable_feature.test b/tests/languages/java/variable_feature.test index cf0065c5a3..91cf8ffae4 100644 --- a/tests/languages/java/variable_feature.test +++ b/tests/languages/java/variable_feature.test @@ -29,9 +29,9 @@ public class Test { ["class-name", ["Test"]], ["generics", [ ["punctuation", "<"], - ["class-name", ["A"]], + ["generic-parameter", "A"], ["punctuation", ","], - " BB", + ["generic-parameter", "BB"], ["punctuation", ">"] ]], ["punctuation", "{"], From 4a719fe5c386071e74c9574b36483f401ce0eba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 28 Jul 2022 10:03:09 +0800 Subject: [PATCH 19/25] remove variable --- components/prism-java.js | 22 +------------------- components/prism-java.min.js | 2 +- components/prism-scala.js | 1 - components/prism-scala.min.js | 2 +- tests/languages/java/annotation_feature.test | 4 ++-- tests/languages/java/variable_feature.test | 4 ++-- 6 files changed, 7 insertions(+), 28 deletions(-) diff --git a/components/prism-java.js b/components/prism-java.js index 41316b8a78..993a74a092 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -56,12 +56,7 @@ pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m, lookbehind: true }, - 'constant': /\b[A-Z][A-Z_\d]+\b/, - 'variable': [ - { - pattern: /\b(?:args|log(?:ger)?|value)\b/ - } - ] + 'constant': /\b[A-Z][A-Z_\d]+\b/ }); Prism.languages.insertBefore('java', 'string', { @@ -127,19 +122,4 @@ } } }); - - // variable from window.PrismConfig - if (typeof window !== 'undefined') { - var prismConfig = window.PrismConfig; - if (prismConfig && prismConfig.languages && prismConfig.languages.java && prismConfig.languages.java.variable) { - var variableConfig = prismConfig.languages.java.variable; - if (variableConfig instanceof Array) { - if (variableConfig.length > 0) { - Prism.languages.java.variable = Prism.languages.java.variable.concat(variableConfig); - } - } else if (typeof variableConfig === 'object') { - Prism.languages.java.variable[Prism.languages.java.variable.length] = variableConfig; - } - } - } }(Prism)); diff --git a/components/prism-java.min.js b/components/prism-java.min.js index 740c974daa..71219486ff 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",t={pattern:RegExp("(^|[^\\w.])"+n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[t,{pattern:RegExp("(^|[^\\w.])"+n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:t.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+n+"[A-Z]\\w*\\b"),lookbehind:!0,inside:t.inside}],keyword:a,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/,variable:[{pattern:/\b(?:args|log(?:ger)?|value)\b/}]}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"generic-parameter":/\b[A-Z]+\b/,"class-name":t,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+n+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:t.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+n+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:t.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return a.source}))),lookbehind:!0,inside:{punctuation:/\./}}}),"undefined"!=typeof window){var s=window.PrismConfig;if(s&&s.languages&&s.languages.java&&s.languages.java.variable){var i=s.languages.java.variable;i instanceof Array?i.length>0&&(e.languages.java.variable=e.languages.java.variable.concat(i)):"object"==typeof i&&(e.languages.java.variable[e.languages.java.variable.length]=i)}}}(Prism); \ No newline at end of file +!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",a={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[a,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:a.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:a.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"generic-parameter":/\b[A-Z]+\b/,"class-name":a,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:a.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:a.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); \ No newline at end of file diff --git a/components/prism-scala.js b/components/prism-scala.js index 75134b465c..b12f2e6bbf 100644 --- a/components/prism-scala.js +++ b/components/prism-scala.js @@ -48,4 +48,3 @@ Prism.languages.insertBefore('scala', 'triple-quoted-string', { delete Prism.languages.scala['class-name']; delete Prism.languages.scala['function']; delete Prism.languages.scala['constant']; -delete Prism.languages.scala['variable']; diff --git a/components/prism-scala.min.js b/components/prism-scala.min.js index e4c8b99241..560000f43a 100644 --- a/components/prism-scala.min.js +++ b/components/prism-scala.min.js @@ -1 +1 @@ -Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant,delete Prism.languages.scala.variable; \ No newline at end of file +Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant; \ No newline at end of file diff --git a/tests/languages/java/annotation_feature.test b/tests/languages/java/annotation_feature.test index 38092c4e92..cc8a6a4ca1 100644 --- a/tests/languages/java/annotation_feature.test +++ b/tests/languages/java/annotation_feature.test @@ -14,14 +14,14 @@ ["annotation", "@Retention"], ["punctuation", "("], - ["variable", "value"], + "value", ["operator", "="], ["constant", "SOURCE"], ["punctuation", ")"], ["annotation", "@Target"], ["punctuation", "("], - ["variable", "value"], + "value", ["operator", "="], ["punctuation", "{"], ["constant", "PACKAGE"], diff --git a/tests/languages/java/variable_feature.test b/tests/languages/java/variable_feature.test index 91cf8ffae4..c9bf2a8978 100644 --- a/tests/languages/java/variable_feature.test +++ b/tests/languages/java/variable_feature.test @@ -17,7 +17,7 @@ public class Test { [ ["annotation", "@Test"], ["punctuation", "("], - ["variable", "value"], + "value ", ["operator", "="], ["class-name", ["Xxxx"]], ["punctuation", "."], @@ -81,7 +81,7 @@ public class Test { ["class-name", ["String"]], ["punctuation", "["], ["punctuation", "]"], - ["variable", "args"], + " args", ["punctuation", ")"], ["punctuation", "{"], From c90c6c24059b6b01a3b457c61aa6272b010dd090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 28 Jul 2022 10:08:03 +0800 Subject: [PATCH 20/25] update constant_feature.test --- tests/languages/java/constant_feature.test | 61 ++++++++++++ tests/languages/java/variable_feature.test | 110 --------------------- 2 files changed, 61 insertions(+), 110 deletions(-) create mode 100644 tests/languages/java/constant_feature.test delete mode 100644 tests/languages/java/variable_feature.test diff --git a/tests/languages/java/constant_feature.test b/tests/languages/java/constant_feature.test new file mode 100644 index 0000000000..ee56595c6b --- /dev/null +++ b/tests/languages/java/constant_feature.test @@ -0,0 +1,61 @@ +public class Test { + private static final String AAAA = "aaaaaa"; + + private String str = "1"; + + public static void main(String[] args) { + str += AAAA + "AAAA"; + } +} + +---------------------------------------------------- + +[ + ["keyword", "public"], + ["keyword", "class"], + ["class-name", ["Test"]], + ["punctuation", "{"], + + ["keyword", "private"], + ["keyword", "static"], + ["keyword", "final"], + ["class-name", ["String"]], + ["constant", "AAAA"], + ["operator", "="], + ["string", "\"aaaaaa\""], + ["punctuation", ";"], + + ["keyword", "private"], + ["class-name", ["String"]], + " str ", + ["operator", "="], + ["string", "\"1\""], + ["punctuation", ";"], + + ["keyword", "public"], + ["keyword", "static"], + ["keyword", "void"], + ["function", "main"], + ["punctuation", "("], + ["class-name", ["String"]], + ["punctuation", "["], + ["punctuation", "]"], + " args", + ["punctuation", ")"], + ["punctuation", "{"], + + "\r\n str ", + ["operator", "+="], + ["constant", "AAAA"], + ["operator", "+"], + ["string", "\"AAAA\""], + ["punctuation", ";"], + + ["punctuation", "}"], + + ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for all keywords. diff --git a/tests/languages/java/variable_feature.test b/tests/languages/java/variable_feature.test deleted file mode 100644 index c9bf2a8978..0000000000 --- a/tests/languages/java/variable_feature.test +++ /dev/null @@ -1,110 +0,0 @@ -@Test(value = Xxxx.TYPE) -public class Test { - private static final Logger LOGGER = LoggerFactory.getLogger(Test.class); - - private String str = "1"; - private String arg = "2"; - private String var1 = "3"; - - public static void main(String[] args) { - LOGGER.info("test LOGGER: {}, {}, {}", - str, arg, var1); - } -} - ----------------------------------------------------- - -[ - ["annotation", "@Test"], - ["punctuation", "("], - "value ", - ["operator", "="], - ["class-name", ["Xxxx"]], - ["punctuation", "."], - ["constant", "TYPE"], - ["punctuation", ")"], - - ["keyword", "public"], - ["keyword", "class"], - ["class-name", ["Test"]], - ["generics", [ - ["punctuation", "<"], - ["generic-parameter", "A"], - ["punctuation", ","], - ["generic-parameter", "BB"], - ["punctuation", ">"] - ]], - ["punctuation", "{"], - - ["keyword", "private"], - ["keyword", "static"], - ["keyword", "final"], - ["class-name", ["Logger"]], - ["constant", "LOGGER"], - ["operator", "="], - ["class-name", ["LoggerFactory"]], - ["punctuation", "."], - ["function", "getLogger"], - ["punctuation", "("], - ["class-name", ["Test"]], - ["punctuation", "."], - ["keyword", "class"], - ["punctuation", ")"], - ["punctuation", ";"], - - ["keyword", "private"], - ["class-name", ["String"]], - " str ", - ["operator", "="], - ["string", "\"1\""], - ["punctuation", ";"], - - ["keyword", "private"], - ["class-name", ["String"]], - " arg ", - ["operator", "="], - ["string", "\"2\""], - ["punctuation", ";"], - - ["keyword", "private"], - ["class-name", ["String"]], - " var1 ", - ["operator", "="], - ["string", "\"3\""], - ["punctuation", ";"], - - ["keyword", "public"], - ["keyword", "static"], - ["keyword", "void"], - ["function", "main"], - ["punctuation", "("], - ["class-name", ["String"]], - ["punctuation", "["], - ["punctuation", "]"], - " args", - ["punctuation", ")"], - ["punctuation", "{"], - - ["constant", "LOGGER"], - ["punctuation", "."], - ["function", "info"], - ["punctuation", "("], - ["string", "\"test LOGGER: {}, {}, {}\""], - ["punctuation", ","], - - "\r\n str", - ["punctuation", ","], - " arg", - ["punctuation", ","], - " var1", - ["punctuation", ")"], - ["punctuation", ";"], - - ["punctuation", "}"], - - ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for all keywords. From e41d506bd9ed8d9678640ba82f639241253e3f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 28 Jul 2022 10:24:08 +0800 Subject: [PATCH 21/25] add generic-parameter_feature.test --- .../java/generic-parameter_feature.test | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tests/languages/java/generic-parameter_feature.test diff --git a/tests/languages/java/generic-parameter_feature.test b/tests/languages/java/generic-parameter_feature.test new file mode 100644 index 0000000000..6879f47551 --- /dev/null +++ b/tests/languages/java/generic-parameter_feature.test @@ -0,0 +1,47 @@ +public class MyClass { + + public RR f(T t, RR r) { + return r; + } + +} + +---------------------------------------------------- + +[ + ["keyword", "public"], + ["keyword", "class"], + ["class-name", ["MyClass"]], + ["generics", [ + ["punctuation", "<"], + ["generic-parameter", "T"], + ["punctuation", ","], + ["generic-parameter", "RR"], + ["punctuation", ">"] + ]], + ["punctuation", "{"], + + ["keyword", "public"], + ["class-name", ["RR"]], + ["function", "f"], + ["punctuation", "("], + ["class-name", ["T"]], + " t", + ["punctuation", ","], + ["class-name", ["RR"]], + " r", + ["punctuation", ")"], + ["punctuation", "{"], + + ["keyword", "return"], + " r", + ["punctuation", ";"], + + ["punctuation", "}"], + + ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for generics. From c183011975ac624fb7871e0320a5ab9f52ff9ef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 28 Jul 2022 10:24:59 +0800 Subject: [PATCH 22/25] update test --- tests/languages/java/constant_feature.test | 2 +- tests/languages/java/generic-parameter_feature.test | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/languages/java/constant_feature.test b/tests/languages/java/constant_feature.test index ee56595c6b..34fbdd6516 100644 --- a/tests/languages/java/constant_feature.test +++ b/tests/languages/java/constant_feature.test @@ -58,4 +58,4 @@ public class Test { ---------------------------------------------------- -Checks for all keywords. +Checks for all constants. diff --git a/tests/languages/java/generic-parameter_feature.test b/tests/languages/java/generic-parameter_feature.test index 6879f47551..7a446ed6bb 100644 --- a/tests/languages/java/generic-parameter_feature.test +++ b/tests/languages/java/generic-parameter_feature.test @@ -44,4 +44,4 @@ public class MyClass { ---------------------------------------------------- -Checks for generics. +Checks for generic-parameter. From d7aa1ea9476342ff66604d21e146d82f557aea56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 28 Jul 2022 10:33:12 +0800 Subject: [PATCH 23/25] update test --- tests/languages/java/generic-parameter_feature.test | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/languages/java/generic-parameter_feature.test b/tests/languages/java/generic-parameter_feature.test index 7a446ed6bb..cf14c1d1ca 100644 --- a/tests/languages/java/generic-parameter_feature.test +++ b/tests/languages/java/generic-parameter_feature.test @@ -1,7 +1,7 @@ public class MyClass { - public RR f(T t, RR r) { - return r; + public T f(T t, RR r) { + return t; } } @@ -22,7 +22,12 @@ public class MyClass { ["punctuation", "{"], ["keyword", "public"], - ["class-name", ["RR"]], + ["generics", [ + ["punctuation", "<"], + ["generic-parameter", "RR"], + ["punctuation", ">"] + ]], + ["class-name", ["T"]], ["function", "f"], ["punctuation", "("], ["class-name", ["T"]], @@ -34,7 +39,7 @@ public class MyClass { ["punctuation", "{"], ["keyword", "return"], - " r", + " t", ["punctuation", ";"], ["punctuation", "}"], From 98d619780da355a09104dfaa7ce54f3c63abbf66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Fri, 29 Jul 2022 10:41:25 +0800 Subject: [PATCH 24/25] update generic-parameter_feature.test --- .../java/generic-parameter_feature.test | 67 +++++++++++++++++-- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/tests/languages/java/generic-parameter_feature.test b/tests/languages/java/generic-parameter_feature.test index cf14c1d1ca..86077c0c5d 100644 --- a/tests/languages/java/generic-parameter_feature.test +++ b/tests/languages/java/generic-parameter_feature.test @@ -1,17 +1,26 @@ -public class MyClass { +public class MyGeneric { - public T f(T t, RR r) { + public T f(T t, RR r, KK k) { return t; } } +public class MyClass extends MyGeneric { + + @Override + public String f(String t, Object r, KK k) { + return t; + } + +} + ---------------------------------------------------- [ ["keyword", "public"], ["keyword", "class"], - ["class-name", ["MyClass"]], + ["class-name", ["MyGeneric"]], ["generics", [ ["punctuation", "<"], ["generic-parameter", "T"], @@ -24,7 +33,7 @@ public class MyClass { ["keyword", "public"], ["generics", [ ["punctuation", "<"], - ["generic-parameter", "RR"], + ["generic-parameter", "KK"], ["punctuation", ">"] ]], ["class-name", ["T"]], @@ -33,8 +42,54 @@ public class MyClass { ["class-name", ["T"]], " t", ["punctuation", ","], - ["class-name", ["RR"]], + ["constant", "RR"], + " r, ", + ["class-name", ["KK"]], + " k", + ["punctuation", ")"], + ["punctuation", "{"], + + ["keyword", "return"], + " t", + ["punctuation", ";"], + + ["punctuation", "}"], + + ["punctuation", "}"], + + ["keyword", "public"], + ["keyword", "class"], + ["class-name", ["MyClass"]], + ["keyword", "extends"], + ["class-name", ["MyGeneric"]], + ["generics", [ + ["punctuation", "<"], + ["class-name", ["String"]], + ["punctuation", ","], + ["class-name", ["Object"]], + ["punctuation", ">"] + ]], + ["punctuation", "{"], + + ["annotation", "@Override"], + + ["keyword", "public"], + ["generics", [ + ["punctuation", "<"], + ["generic-parameter", "KK"], + ["punctuation", ">"] + ]], + ["class-name", ["String"]], + ["function", "f"], + ["punctuation", "("], + ["class-name", ["String"]], + " t", + ["punctuation", ","], + ["class-name", ["Object"]], " r", + ["punctuation", ","], + ["class-name", ["KK"]], + " k", ["punctuation", ")"], ["punctuation", "{"], @@ -49,4 +104,4 @@ public class MyClass { ---------------------------------------------------- -Checks for generic-parameter. +Checks for generic-parameters. From 5b44cda9f5daa2488d2fede3fd2a1f77e79569ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Fri, 29 Jul 2022 17:59:18 +0800 Subject: [PATCH 25/25] remove generic-parameter --- components/prism-java.js | 1 - components/prism-java.min.js | 2 +- .../java/generic-parameter_feature.test | 107 ------------------ tests/languages/java/generics_feature.test | 16 +-- 4 files changed, 9 insertions(+), 117 deletions(-) delete mode 100644 tests/languages/java/generic-parameter_feature.test diff --git a/components/prism-java.js b/components/prism-java.js index 993a74a092..873154cfed 100644 --- a/components/prism-java.js +++ b/components/prism-java.js @@ -81,7 +81,6 @@ 'generics': { pattern: /<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/, inside: { - 'generic-parameter': /\b[A-Z]+\b/, 'class-name': className, 'keyword': keywords, 'punctuation': /[<>(),.:]/, diff --git a/components/prism-java.min.js b/components/prism-java.min.js index 71219486ff..9b90cf3cc3 100644 --- a/components/prism-java.min.js +++ b/components/prism-java.min.js @@ -1 +1 @@ -!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",a={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[a,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:a.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:a.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"generic-parameter":/\b[A-Z]+\b/,"class-name":a,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:a.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:a.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); \ No newline at end of file +!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); \ No newline at end of file diff --git a/tests/languages/java/generic-parameter_feature.test b/tests/languages/java/generic-parameter_feature.test deleted file mode 100644 index 86077c0c5d..0000000000 --- a/tests/languages/java/generic-parameter_feature.test +++ /dev/null @@ -1,107 +0,0 @@ -public class MyGeneric { - - public T f(T t, RR r, KK k) { - return t; - } - -} - -public class MyClass extends MyGeneric { - - @Override - public String f(String t, Object r, KK k) { - return t; - } - -} - ----------------------------------------------------- - -[ - ["keyword", "public"], - ["keyword", "class"], - ["class-name", ["MyGeneric"]], - ["generics", [ - ["punctuation", "<"], - ["generic-parameter", "T"], - ["punctuation", ","], - ["generic-parameter", "RR"], - ["punctuation", ">"] - ]], - ["punctuation", "{"], - - ["keyword", "public"], - ["generics", [ - ["punctuation", "<"], - ["generic-parameter", "KK"], - ["punctuation", ">"] - ]], - ["class-name", ["T"]], - ["function", "f"], - ["punctuation", "("], - ["class-name", ["T"]], - " t", - ["punctuation", ","], - ["constant", "RR"], - " r, ", - ["class-name", ["KK"]], - " k", - ["punctuation", ")"], - ["punctuation", "{"], - - ["keyword", "return"], - " t", - ["punctuation", ";"], - - ["punctuation", "}"], - - ["punctuation", "}"], - - ["keyword", "public"], - ["keyword", "class"], - ["class-name", ["MyClass"]], - ["keyword", "extends"], - ["class-name", ["MyGeneric"]], - ["generics", [ - ["punctuation", "<"], - ["class-name", ["String"]], - ["punctuation", ","], - ["class-name", ["Object"]], - ["punctuation", ">"] - ]], - ["punctuation", "{"], - - ["annotation", "@Override"], - - ["keyword", "public"], - ["generics", [ - ["punctuation", "<"], - ["generic-parameter", "KK"], - ["punctuation", ">"] - ]], - ["class-name", ["String"]], - ["function", "f"], - ["punctuation", "("], - ["class-name", ["String"]], - " t", - ["punctuation", ","], - ["class-name", ["Object"]], - " r", - ["punctuation", ","], - ["class-name", ["KK"]], - " k", - ["punctuation", ")"], - ["punctuation", "{"], - - ["keyword", "return"], - " t", - ["punctuation", ";"], - - ["punctuation", "}"], - - ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for generic-parameters. diff --git a/tests/languages/java/generics_feature.test b/tests/languages/java/generics_feature.test index 1702a87a39..989187b949 100644 --- a/tests/languages/java/generics_feature.test +++ b/tests/languages/java/generics_feature.test @@ -25,7 +25,7 @@ if (a<6&&b>6){} ["class-name", ["Solo"]], ["generics", [ ["punctuation", "<"], - ["generic-parameter", "T"], + ["class-name", ["T"]], ["keyword", "extends"], ["class-name", [ ["namespace", [ @@ -158,13 +158,13 @@ if (a<6&&b>6){} ["class-name", ["D"]], ["generics", [ ["punctuation", "<"], - ["generic-parameter", "T"], + ["class-name", ["T"]], ["keyword", "extends"], - ["generic-parameter", "A"], + ["class-name", ["A"]], ["operator", "&"], - ["generic-parameter", "B"], + ["class-name", ["B"]], ["operator", "&"], - ["generic-parameter", "C"], + ["class-name", ["C"]], ["punctuation", ">"] ]], ["punctuation", "{"], @@ -173,7 +173,7 @@ if (a<6&&b>6){} ["keyword", "public"], ["generics", [ ["punctuation", "<"], - ["generic-parameter", "T"], + ["class-name", ["T"]], ["keyword", "extends"], ["class-name", ["Throwable"]], ["punctuation", ">"] @@ -194,7 +194,7 @@ if (a<6&&b>6){} ["generics", [ ["punctuation", "<"], - ["generic-parameter", "T"], + ["class-name", ["T"]], ["punctuation", ">"] ]], ["class-name", ["T"]], @@ -203,7 +203,7 @@ if (a<6&&b>6){} ["class-name", ["List"]], ["generics", [ ["punctuation", "<"], - ["generic-parameter", "T"], + ["class-name", ["T"]], ["punctuation", ">"] ]], " arg",