diff --git a/src/languages/c.js b/src/languages/c.js index 4c502d91c6..114339b831 100644 --- a/src/languages/c.js +++ b/src/languages/c.js @@ -234,7 +234,7 @@ export default function(hljs) { }; const FUNCTION_DECLARATION = { - begin: '(' + FUNCTION_TYPE_RE + '[\\*&\\s]+)+' + FUNCTION_TITLE, + begin: '(' + FUNCTION_TYPE_RE + '\\s*[\\*&]+\\s*)*(?:' + FUNCTION_TYPE_RE + '\\s*[\\*&]*\\s*)?' + FUNCTION_TITLE, returnBegin: true, end: /[{;=]/, excludeEnd: true, diff --git a/src/languages/cpp.js b/src/languages/cpp.js index 1b3e337784..9f75808d5a 100644 --- a/src/languages/cpp.js +++ b/src/languages/cpp.js @@ -473,7 +473,7 @@ export default function(hljs) { const FUNCTION_DECLARATION = { className: 'function', - begin: '(' + FUNCTION_TYPE_RE + '[\\*&\\s]+)+' + FUNCTION_TITLE, + begin: '(' + FUNCTION_TYPE_RE + '\\s*[\\*&]+\\s*)*(?:' + FUNCTION_TYPE_RE + '\\s*[\\*&]*\\s*)?' + FUNCTION_TITLE, returnBegin: true, end: /[{;=]/, excludeEnd: true, diff --git a/src/languages/javascript.js b/src/languages/javascript.js index 65b60779a4..cb6cba3b88 100644 --- a/src/languages/javascript.js +++ b/src/languages/javascript.js @@ -47,7 +47,10 @@ export default function(hljs) { nextChar === "<" || // the , gives away that this is not HTML // `` - nextChar === "," + nextChar === "," || + // the [ gives away that this is a type assertion, not HTML + // `` in TypeScript type assertions + nextChar === "[" ) { response.ignoreMatch(); return;