in src/emmetHelper.ts [440:455]
export function extractAbbreviation(document: TextDocument, position: Position, options?: Partial<ExtractOptions>): { abbreviation: string, abbreviationRange: Range, filter: string | undefined } | undefined {
const currentLine = getCurrentLine(document, position);
const currentLineTillPosition = currentLine.substr(0, position.character);
const { pos, filter } = getFilters(currentLineTillPosition, position.character);
const lengthOccupiedByFilter = filter ? filter.length + 1 : 0;
const result = extract(currentLine, pos, options);
if (!result) {
return;
}
const rangeToReplace = Range.create(position.line, result.location, position.line, result.location + result.abbreviation.length + lengthOccupiedByFilter);
return {
abbreviationRange: rangeToReplace,
abbreviation: result.abbreviation,
filter
};
}