Skip to content

Commit

Permalink
Apply tips & add some test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
edukisto committed Mar 2, 2021
1 parent 93fd55f commit ec4a160
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 28 deletions.
12 changes: 7 additions & 5 deletions components/prism-ini.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
Prism.languages.ini= {

// Mimics the behavior of Win32 API.
// Comparison: https://github.com/PrismJS/prism/issues/2775#issuecomment-787477723

'comment': {
pattern: /(^[ \f\t\v]*)[#;][^\n\r]*/m,
lookbehind: true
Expand All @@ -8,13 +12,11 @@ Prism.languages.ini= {
lookbehind: true,
inside: {
'section-name': {
pattern: /(\[[ \f\t\v]*)[^ \f\n\r\t\v\]]+(?:[ \f\t\v]+[^ \f\n\r\t\v\]]+)*/,
pattern: /(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,
lookbehind: true,
alias: 'selector'
},
rest: {
'punctuation': /\[|\]/
}
'punctuation': /\[|\]/
}
},
'key': {
Expand All @@ -28,7 +30,7 @@ Prism.languages.ini= {
alias: 'attr-value',
inside: {
'inner-value': {
pattern: /("|').+(?=\1)/,
pattern: /^("|').+(?=\1$)/,
lookbehind: true
}
}
Expand Down
2 changes: 1 addition & 1 deletion components/prism-ini.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 34 additions & 22 deletions tests/languages/ini/key_value_feature.test
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,23 @@
= 'baz11'
= baz12
=" baz13 "
="baz14"
=' baz15 '
='baz16'
=baz17
bar18
bar19 baz19=qux19
bar20=
bar21==baz21
bar22=baz22
bar23=baz23 qux23
bar24=baz24=qux24
="b14"a14"z14"
="baz15"
="baz16
=' baz17 '
='baz18'
=b19"a19"z19
=b20"az20
=ba21"z21
=baz22
=baz23"
bar24
bar25 baz25=qux25
bar26=
bar27==baz27
bar28=baz28
bar29=baz29 qux29
bar30=baz30=qux30

----------------------------------------------------

Expand All @@ -39,17 +45,23 @@ bar24=baz24=qux24
["punctuation", "="], ["value", ["'", ["inner-value", "baz11"], "'"]],
["punctuation", "="], ["value", ["baz12"]],
["punctuation", "="], ["value", ["\"", ["inner-value", " baz13 "], "\""]],
["punctuation", "="], ["value", ["\"", ["inner-value", "baz14"], "\""]],
["punctuation", "="], ["value", ["'", ["inner-value", " baz15 "], "'"]],
["punctuation", "="], ["value", ["'", ["inner-value", "baz16"], "'"]],
["punctuation", "="], ["value", ["baz17"]],
"\nbar18\n",
["key", "bar19 baz19"], ["punctuation", "="], ["value", ["qux19"]],
["key", "bar20"], ["punctuation", "="],
["key", "bar21"], ["punctuation", "="], ["value", ["=baz21"]],
["key", "bar22"], ["punctuation", "="], ["value", ["baz22"]],
["key", "bar23"], ["punctuation", "="], ["value", ["baz23 qux23"]],
["key", "bar24"], ["punctuation", "="], ["value", ["baz24=qux24"]]
["punctuation", "="], ["value", ["\"", ["inner-value", "b14\"a14\"z14"], "\""]],
["punctuation", "="], ["value", ["\"", ["inner-value", "baz15"], "\""]],
["punctuation", "="], ["value", ["\"baz16"]],
["punctuation", "="], ["value", ["'", ["inner-value", " baz17 "], "'"]],
["punctuation", "="], ["value", ["'", ["inner-value", "baz18"], "'"]],
["punctuation", "="], ["value", ["b19\"a19\"z19"]],
["punctuation", "="], ["value", ["b20\"az20"]],
["punctuation", "="], ["value", ["ba21\"z21"]],
["punctuation", "="], ["value", ["baz22"]],
["punctuation", "="], ["value", ["baz23\""]],
"\nbar24\n",
["key", "bar25 baz25"], ["punctuation", "="], ["value", ["qux25"]],
["key", "bar26"], ["punctuation", "="],
["key", "bar27"], ["punctuation", "="], ["value", ["=baz27"]],
["key", "bar28"], ["punctuation", "="], ["value", ["baz28"]],
["key", "bar29"], ["punctuation", "="], ["value", ["baz29 qux29"]],
["key", "bar30"], ["punctuation", "="], ["value", ["baz30=qux30"]]
]

----------------------------------------------------
Expand Down

0 comments on commit ec4a160

Please sign in to comment.