From d1845471b61d93ff474e98ce3480fdeb7df6f9ae Mon Sep 17 00:00:00 2001 From: Joe Gibson Date: Mon, 17 Aug 2015 14:59:31 -0400 Subject: [PATCH 1/4] Added 'self' as keyword and added 'class-name' matching --- components/prism-python.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/components/prism-python.js b/components/prism-python.js index 7ebc42a747..bdbce33965 100644 --- a/components/prism-python.js +++ b/components/prism-python.js @@ -8,9 +8,16 @@ Prism.languages.python= { pattern: /((^|\s)def[ \t]+)([a-zA-Z_][a-zA-Z0-9_]*(?=\())/g, lookbehind: true }, - 'keyword' : /\b(as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/, + 'keyword' : /\b(as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|self|try|while|with|yield)\b/, 'boolean' : /\b(True|False)\b/, 'number' : /\b-?(0[bo])?(?:(\d|0x[a-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i, 'operator' : /[-+]|<=?|>=?|!|={1,2}|&{1,2}|\|?\||\?|\*|\/|@|~|\^|%|\b(or|and|not)\b/, 'punctuation' : /[{}[\];(),.:]/ }; + +Prism.languages.insertBefore('python', 'keyword', { + 'class-name': { + pattern: /(class\s+)[a-z0-9_]+/i, + lookbehind: true + } +}); From 9ccb6cb6e1959c4edfe01dc68a55f1ef32fb2c67 Mon Sep 17 00:00:00 2001 From: Joe Gibson Date: Mon, 17 Aug 2015 17:28:11 -0400 Subject: [PATCH 2/4] , it appears, is not actually a keyword in Python --- components/prism-python.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/prism-python.js b/components/prism-python.js index bdbce33965..a3171d7cb6 100644 --- a/components/prism-python.js +++ b/components/prism-python.js @@ -8,7 +8,7 @@ Prism.languages.python= { pattern: /((^|\s)def[ \t]+)([a-zA-Z_][a-zA-Z0-9_]*(?=\())/g, lookbehind: true }, - 'keyword' : /\b(as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|self|try|while|with|yield)\b/, + 'keyword' : /\b(as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/, 'boolean' : /\b(True|False)\b/, 'number' : /\b-?(0[bo])?(?:(\d|0x[a-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i, 'operator' : /[-+]|<=?|>=?|!|={1,2}|&{1,2}|\|?\||\?|\*|\/|@|~|\^|%|\b(or|and|not)\b/, From 8f8eb62691865067cf284fa1647678d8db80036b Mon Sep 17 00:00:00 2001 From: Joe Gibson Date: Mon, 17 Aug 2015 17:30:43 -0400 Subject: [PATCH 3/4] Update to minified python --- components/prism-python.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/prism-python.min.js b/components/prism-python.min.js index 087ad0dd41..19ca5c55b5 100644 --- a/components/prism-python.min.js +++ b/components/prism-python.min.js @@ -1 +1 @@ -Prism.languages.python={comment:{pattern:/(^|[^\\])#.*?(\r?\n|$)/,lookbehind:!0},string:/"""[\s\S]+?"""|'''[\s\S]+?'''|("|')(\\?.)*?\1/,"function":{pattern:/((^|\s)def[ \t]+)([a-zA-Z_][a-zA-Z0-9_]*(?=\())/g,lookbehind:!0},keyword:/\b(as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/,"boolean":/\b(True|False)\b/,number:/\b-?(0[bo])?(?:(\d|0x[a-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+]|<=?|>=?|!|={1,2}|&{1,2}|\|?\||\?|\*|\/|@|~|\^|%|\b(or|and|not)\b/,punctuation:/[{}[\];(),.:]/}; \ No newline at end of file +Prism.languages.python={comment:{pattern:/(^|[^\\])#.*?(\r?\n|$)/,lookbehind:!0},string:/"""[\s\S]+?"""|'''[\s\S]+?'''|("|')(\\?.)*?\1/,"function":{pattern:/((^|\s)def[ \t]+)([a-zA-Z_][a-zA-Z0-9_]*(?=\())/g,lookbehind:!0},keyword:/\b(as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/,"boolean":/\b(True|False)\b/,number:/\b-?(0[bo])?(?:(\d|0x[a-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+]|<=?|>=?|!|={1,2}|&{1,2}|\|?\||\?|\*|\/|@|~|\^|%|\b(or|and|not)\b/,punctuation:/[{}[\];(),.:]/};Prism.languages.insertBefore("python","keyword",{"class-name":{pattern:/(class\s+)[a-z0-9_]+/i,lookbehind:!0}}); From a288368eb51bd9692ae8e49071c88fe9c46863cc Mon Sep 17 00:00:00 2001 From: Joe Gibson Date: Wed, 19 Aug 2015 13:58:35 -0400 Subject: [PATCH 4/4] Just adding 'class-name' to list, not using insert method --- components/prism-python.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/components/prism-python.js b/components/prism-python.js index a3171d7cb6..187a60c7fc 100644 --- a/components/prism-python.js +++ b/components/prism-python.js @@ -8,16 +8,13 @@ Prism.languages.python= { pattern: /((^|\s)def[ \t]+)([a-zA-Z_][a-zA-Z0-9_]*(?=\())/g, lookbehind: true }, + 'class-name': { + pattern: /(class\s+)[a-z0-9_]+/i, + lookbehind: true + }, 'keyword' : /\b(as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/, 'boolean' : /\b(True|False)\b/, 'number' : /\b-?(0[bo])?(?:(\d|0x[a-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i, 'operator' : /[-+]|<=?|>=?|!|={1,2}|&{1,2}|\|?\||\?|\*|\/|@|~|\^|%|\b(or|and|not)\b/, 'punctuation' : /[{}[\];(),.:]/ }; - -Prism.languages.insertBefore('python', 'keyword', { - 'class-name': { - pattern: /(class\s+)[a-z0-9_]+/i, - lookbehind: true - } -});