refractor
Version:
Lightweight, robust, elegant virtual syntax highlighting using Prism
25 lines (23 loc) • 762 B
JavaScript
// @ts-nocheck
/**
* @import {Refractor} from '../lib/core.js'
*/
matlab.displayName = 'matlab'
matlab.aliases = []
/** @param {Refractor} Prism */
export default function matlab(Prism) {
Prism.languages.matlab = {
comment: [/%\{[\s\S]*?\}%/, /%.+/],
string: {
pattern: /\B'(?:''|[^'\r\n])*'/,
greedy: true
},
// FIXME We could handle imaginary numbers as a whole
number: /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,
keyword:
/\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\b/,
function: /\b(?!\d)\w+(?=\s*\()/,
operator: /\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,
punctuation: /\.{3}|[.,;\[\](){}!]/
}
}