Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(588)

Unified Diff: lib/src/prism/components/prism-nim.js

Issue 1418513006: update elements and fix some bugs (Closed) Base URL: git@github.com:dart-lang/polymer_elements.git@master
Patch Set: code review updates Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/prism/components/prism-nginx.min.js ('k') | lib/src/prism/components/prism-nim.min.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/prism/components/prism-nim.js
diff --git a/lib/src/prism/components/prism-nim.js b/lib/src/prism/components/prism-nim.js
new file mode 100644
index 0000000000000000000000000000000000000000..8592bc3a4b3f14075ae17969037cdbb46c268a2d
--- /dev/null
+++ b/lib/src/prism/components/prism-nim.js
@@ -0,0 +1,30 @@
+Prism.languages.nim = {
+ 'comment': /#.*/,
+ // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)
+ // Character literals are handled specifically to prevent issues with numeric type suffixes
+ 'string': /(?:(?:\b(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")|'(?:\\(?:\d+|x[\da-fA-F]{2}|.)|[^'])')/,
+ // The negative look ahead prevents wrong highlighting of the .. operator
+ 'number': /\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,
+ 'keyword': /\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,
+ 'function': {
+ pattern: /(?:(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,
+ inside: {
+ 'operator': /\*$/
+ }
+ },
+ // We don't want to highlight operators inside backticks
+ 'ignore': {
+ pattern: /`[^`\r\n]+`/,
+ inside: {
+ 'punctuation': /`/
+ }
+ },
+ 'operator': {
+ // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)
+ // but allow the slice operator .. to take precedence over them
+ // One can define his own operators in Nim so all combination of operators might be an operator.
+ pattern: /(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\b)/m,
+ lookbehind: true
+ },
+ 'punctuation': /[({\[]\.|\.[)}\]]|[`(){}\[\],:]/
+};
« no previous file with comments | « lib/src/prism/components/prism-nginx.min.js ('k') | lib/src/prism/components/prism-nim.min.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698