refractor
Version:
Lightweight, robust, elegant virtual syntax highlighting using Prism
39 lines (37 loc) • 950 B
JavaScript
module.exports = smalltalk;
smalltalk.displayName = 'smalltalk';
smalltalk.aliases = [];
function smalltalk(Prism) {
Prism.languages.smalltalk = {
comment: /"(?:""|[^"])+"/,
string: /'(?:''|[^'])+'/,
symbol: /#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,
'block-arguments': {
pattern: /(\[\s*):[^\[|]*\|/,
lookbehind: true,
inside: {
variable: /:[\da-z]+/i,
punctuation: /\|/
}
},
'temporary-variables': {
pattern: /\|[^|]+\|/,
inside: {
variable: /[\da-z]+/i,
punctuation: /\|/
}
},
keyword: /\b(?:nil|true|false|self|super|new)\b/,
character: {
pattern: /\$./,
alias: 'string'
},
number: [
/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,
/(?:\B-|\b)\d+(?:\.\d+)?(?:e-?\d+)?/
],
operator: /[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,
punctuation: /[.;:?\[\](){}]/
};
}
;