Browse Source

wip: modifiers

pull/9689/head
Evan You 2 years ago
parent
commit
65c0b31148
  1. 15
      packages/compiler-core/src/parser/index.ts

15
packages/compiler-core/src/parser/index.ts

@ -13,7 +13,7 @@ import {
createRoot
} from '../ast'
import { ParserOptions } from '../options'
import Tokenizer, { CharCodes, isWhitespace } from './Tokenizer'
import Tokenizer, { CharCodes, QuoteType, isWhitespace } from './Tokenizer'
import { CompilerCompatOptions } from '../compat/compatConfig'
import { NO, extend } from '@vue/shared'
import { defaultOnError, defaultOnWarn } from '../errors'
@ -184,18 +184,18 @@ const tokenizer = new Tokenizer(
}
},
ondirmodifier(start, end) {
// console.log('.' + getSlice(start, end))
;(currentProp as DirectiveNode).modifiers.push(getSlice(start, end))
},
onattribdata(start, end) {
currentAttrValue += getSlice(start, end)
if (currentAttrStartIndex < 0) currentAttrStartIndex = start - 1
currentAttrEndIndex = end + 1
if (currentAttrStartIndex < 0) currentAttrStartIndex = start
currentAttrEndIndex = end
},
onattribentity(codepoint) {
currentAttrValue += fromCodePoint(codepoint)
},
onattribend(_quote, end) {
onattribend(quote, end) {
// TODO check duplicate
// if (currentAttrs.has(name)) {
// // emit error DUPLICATE_ATTRIBUTE
@ -209,7 +209,10 @@ const tokenizer = new Tokenizer(
currentProp!.value = {
type: NodeTypes.TEXT,
content: currentAttrValue,
loc: getLoc(currentAttrStartIndex, currentAttrEndIndex)
loc:
quote === QuoteType.Unquoted
? getLoc(currentAttrStartIndex, currentAttrEndIndex)
: getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
}
} else {
// directive

Loading…
Cancel
Save