Update to 7.1
This commit is contained in:
@@ -3,9 +3,9 @@ Language: Haskell
|
||||
Author: Jeremy Hull <sourdrums@gmail.com>
|
||||
*/
|
||||
|
||||
hljs.LANGUAGES.haskell = function(){
|
||||
var LABEL = {
|
||||
className: 'label',
|
||||
hljs.LANGUAGES['haskell'] = function(hljs) {
|
||||
var TYPE = {
|
||||
className: 'type',
|
||||
begin: '\\b[A-Z][\\w\']*',
|
||||
relevance: 0
|
||||
};
|
||||
@@ -13,28 +13,33 @@ hljs.LANGUAGES.haskell = function(){
|
||||
className: 'container',
|
||||
begin: '\\(', end: '\\)',
|
||||
contains: [
|
||||
{className: 'label', begin: '\\b[A-Z][\\w\\(\\)\\.\']*'},
|
||||
{className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
|
||||
{className: 'title', begin: '[_a-z][\\w\']*'}
|
||||
]
|
||||
};
|
||||
var CONTAINER2 = {
|
||||
className: 'container',
|
||||
begin: '{', end: '}',
|
||||
contains: CONTAINER.contains
|
||||
}
|
||||
|
||||
return {
|
||||
defaultMode: {
|
||||
keywords: {
|
||||
'keyword': {
|
||||
'let': 1, 'in': 1, 'if': 1, 'then': 1, 'else': 1, 'case': 1, 'of': 1,
|
||||
'where': 1, 'do': 1, 'module': 1, 'import': 1, 'hiding': 1,
|
||||
'qualified': 1, 'type': 1, 'data': 1, 'newtype': 1, 'deriving': 1,
|
||||
'class': 1, 'instance': 1, 'null': 1, 'not': 1, 'as': 1
|
||||
}
|
||||
},
|
||||
keywords:
|
||||
'let in if then else case of where do module import hiding qualified type data ' +
|
||||
'newtype deriving class instance not as foreign ccall safe unsafe',
|
||||
contains: [
|
||||
{
|
||||
className: 'comment',
|
||||
begin: '--', end: '$'
|
||||
},
|
||||
{
|
||||
className: 'preprocessor',
|
||||
begin: '{-#', end: '#-}'
|
||||
},
|
||||
{
|
||||
className: 'comment',
|
||||
contains: ['self'],
|
||||
begin: '{-', end: '-}'
|
||||
},
|
||||
{
|
||||
@@ -47,31 +52,39 @@ hljs.LANGUAGES.haskell = function(){
|
||||
{
|
||||
className: 'import',
|
||||
begin: '\\bimport', end: '$',
|
||||
keywords: {'import': 1, 'qualified': 1, 'as': 1, 'hiding': 1},
|
||||
contains: [CONTAINER]
|
||||
keywords: 'import qualified as hiding',
|
||||
contains: [CONTAINER],
|
||||
illegal: '\\W\\.|;'
|
||||
},
|
||||
{
|
||||
className: 'module',
|
||||
begin: '\\bmodule', end: 'where',
|
||||
keywords: {'module': 1, 'where': 1},
|
||||
contains: [CONTAINER]
|
||||
keywords: 'module where',
|
||||
contains: [CONTAINER],
|
||||
illegal: '\\W\\.|;'
|
||||
},
|
||||
{
|
||||
className: 'class',
|
||||
begin: '\\b(class|instance|data|(new)?type)', end: '(where|$)',
|
||||
keywords: {'class': 1, 'where': 1, 'instance': 1,'data': 1,'type': 1,'newtype': 1, 'deriving': 1},
|
||||
contains: [LABEL]
|
||||
begin: '\\b(class|instance)', end: 'where',
|
||||
keywords: 'class where instance',
|
||||
contains: [TYPE]
|
||||
},
|
||||
{
|
||||
className: 'typedef',
|
||||
begin: '\\b(data|(new)?type)', end: '$',
|
||||
keywords: 'data type newtype deriving',
|
||||
contains: [TYPE, CONTAINER, CONTAINER2]
|
||||
},
|
||||
hljs.C_NUMBER_MODE,
|
||||
{
|
||||
className: 'shebang',
|
||||
begin: '#!\\/usr\\/bin\\/env\ runhaskell', end: '$'
|
||||
},
|
||||
LABEL,
|
||||
TYPE,
|
||||
{
|
||||
className: 'title', begin: '^[_a-z][\\w\']*'
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
}();
|
||||
}(hljs);
|
||||
|
||||
Reference in New Issue
Block a user