51 lines
938 B
TypeScript
51 lines
938 B
TypeScript
import type { Hljs } from './types'
|
|
|
|
export function svelte(hljs: Hljs) {
|
|
return {
|
|
subLanguage: 'xml',
|
|
contains: [
|
|
hljs.COMMENT('<!--', '-->', {
|
|
relevance: 10,
|
|
}),
|
|
{
|
|
begin: /^(\s*)(<script(\s*context="module")?>)/gm,
|
|
end: /^(\s*)(<\/script>)/gm,
|
|
subLanguage: 'javascript',
|
|
excludeBegin: true,
|
|
excludeEnd: true,
|
|
contains: [
|
|
{
|
|
begin: /^(\s*)(\$:)/gm,
|
|
end: /(\s*)/gm,
|
|
className: 'keyword',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
begin: /^(\s*)(<style.*>)/gm,
|
|
end: /^(\s*)(<\/style>)/gm,
|
|
subLanguage: 'css',
|
|
excludeBegin: true,
|
|
excludeEnd: true,
|
|
},
|
|
{
|
|
begin: /\{/gm,
|
|
end: /\}/gm,
|
|
subLanguage: 'javascript',
|
|
contains: [
|
|
{
|
|
begin: /[\{]/,
|
|
end: /[\}]/,
|
|
skip: true,
|
|
},
|
|
{
|
|
begin: /([#:\/@])(if|else|each|await|then|catch|debug|html)/gm,
|
|
className: 'keyword',
|
|
relevance: 10,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
}
|