diff --git a/components/prism-elixir.js b/components/prism-elixir.js index 59be0d711c..cfad1c8841 100644 --- a/components/prism-elixir.js +++ b/components/prism-elixir.js @@ -55,7 +55,7 @@ Prism.languages.elixir = { alias: 'variable' }, 'number': /\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i, - 'keyword': /\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\b/, + 'keyword': /\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct|delegate)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\b/, 'boolean': /\b(?:true|false|nil)\b/, 'operator': [ /\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/, @@ -77,10 +77,11 @@ Prism.languages.insertBefore('elixir', 'keyword', { 'module': { pattern: /\b(defmodule\s)[A-Z][\w.\\]+/, lookbehind: true, + alias: 'class-name' }, 'function': { pattern: /\b(defp?\s)[\w.\\]+/, - lookbehind: true, + lookbehind: true } }); diff --git a/tests/languages/elixir/keyword_feature.test b/tests/languages/elixir/keyword_feature.test index e1b02a1ae3..6a851f1b24 100644 --- a/tests/languages/elixir/keyword_feature.test +++ b/tests/languages/elixir/keyword_feature.test @@ -3,7 +3,9 @@ catch cond def defcallback defexception defimpl defmodule -defp defprotocol +defp +defprotocol +defdelegate defstruct do else end fn for if import not or @@ -18,7 +20,9 @@ unless use when ["keyword", "defcallback"], ["keyword", "defexception"], ["keyword", "defimpl"], ["keyword", "defmodule"], - ["keyword", "defp"], ["keyword", "defprotocol"], + ["keyword", "defp"], + ["keyword", "defprotocol"], + ["keyword", "defdelegate"], ["keyword", "defstruct"], ["keyword", "do"], ["keyword", "else"], ["keyword", "end"], ["keyword", "fn"], ["keyword", "for"], ["keyword", "if"], ["keyword", "import"], ["keyword", "not"], ["keyword", "or"], @@ -28,4 +32,4 @@ unless use when ---------------------------------------------------- -Checks for all keywords. \ No newline at end of file +Checks for all keywords.