import { languages , IndentAction } from 'vscode' ; const EMPTY_ELEMENTS = [ 'area' , 'base' , 'br' , 'col' , 'embed' , 'hr' , 'img' , 'input' , 'keygen' , 'link' , 'menuitem' , 'meta' , 'param' , 'source' , 'track' , 'wbr' ] ; export function registerLanguageConfigurations ( ) { languages . setLanguageConfiguration ( 'vue-html' , { wordPattern : /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g , onEnterRules : [ { beforeText : new RegExp ( `<(?!(?:${ EMPTY_ELEMENTS . join ( '|' ) }))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$` , 'i' ) , afterText : /^<\/([_:\w][_:\w-.\d]*)\s*>$/i , action : { indentAction : IndentAction . IndentOutdent } } , { beforeText : new RegExp ( `<(?!(?:${ EMPTY_ELEMENTS . join ( '|' ) }))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$` , 'i' ) , action : { indentAction : IndentAction . Indent } } ] } ) ; }