本文整理汇总了TypeScript中vscode-languageserver-protocol.TextDocument.create方法的典型用法代码示例。如果您正苦于以下问题:TypeScript TextDocument.create方法的具体用法?TypeScript TextDocument.create怎么用?TypeScript TextDocument.create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vscode-languageserver-protocol.TextDocument
的用法示例。
在下文中一共展示了TextDocument.create方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: while
lines.forEach((line, ind) => {
const valueRegex = /value\(([\w-]+)\)/g;
let regexResult;
while ((regexResult = valueRegex.exec(line)) !== null) {
const result = regexResult[1];
const sym = meta.mappedSymbols[result];
let color: Color | null = null;
if (sym && sym._kind === 'var') {
const doc = TextDocument.create(
'',
'css',
0,
'.gaga {border: ' + evalDeclarationValue(stylable.resolver, sym.text, meta, sym.node) + '}'
);
color = cssService.findColor(doc);
} else if (sym && sym._kind === 'import' && sym.type === 'named') {
const impMeta = processor.process(sym.import.from);
const relevantVar = impMeta.vars.find(v => v.name === sym.name);
if (relevantVar) {
const doc = TextDocument.create(
'',
'css',
0,
'.gaga {border: ' +
evalDeclarationValue(
stylable.resolver,
'value(' + sym.name + ')',
impMeta,
relevantVar.node
) +
'}'
);
color = cssService.findColor(doc);
}
}
if (color) {
const range = new ProviderRange(
new ProviderPosition(
ind,
regexResult.index + regexResult[0].indexOf(regexResult[1]) - 'value('.length
),
new ProviderPosition(
ind,
regexResult.index + regexResult[0].indexOf(regexResult[1]) + result.length
)
);
colorComps.push({ color, range } as ColorInformation);
}
}
});
示例2: ProviderPosition
vars.forEach(v => {
const doc = TextDocument.create(
'',
'css',
0,
'.gaga {border: ' + evalDeclarationValue(stylable.resolver, v.text, impMeta!, v.node) + '}'
);
const color = cssService.findColor(doc);
if (color) {
meta.rawAst.walkDecls(valueMapping.named, decl => {
const lines = decl.value.split('\n');
const reg = new RegExp('\\b' + v.name + '\\b', 'g');
const lineIndex = lines.findIndex(l => reg.test(l));
if (lineIndex > -1 && lines[lineIndex].indexOf(v.name) > -1) {
let extraLines = 0;
let extraChars = 0;
if (decl.raws.between) {
extraLines = decl.raws.between.split('\n').length - 1;
extraChars = last(decl.raws.between.split('\n'))!.length;
}
const varStart = lineIndex // replace with value parser
? lines[lineIndex].indexOf(v.name) // replace with regex
: extraLines
? lines[lineIndex].indexOf(v.name) + extraChars
: lines[lineIndex].indexOf(v.name) +
valueMapping.named.length +
decl.source!.start!.column +
extraChars -
1;
const range = new ProviderRange(
new ProviderPosition(decl.source!.start!.line - 1 + lineIndex + extraLines, varStart),
new ProviderPosition(
decl.source!.start!.line - 1 + lineIndex + extraLines,
v.name.length + varStart
)
);
colorComps.push({ color, range } as ColorInformation);
}
});
}
});
示例3: createDocument
function createDocument(): TextDocument {
return TextDocument.create('file:///1', 'css', 1, '')
}
示例4: convertErrors
export function convertErrors(uri: string, content: string, errors: ParseError[]): ErrorItem[] {
let items: ErrorItem[] = []
let document = TextDocument.create(uri, 'json', 0, content)
for (let err of errors) {
let msg = 'parse error'
switch (err.error) {
case 2:
msg = 'invalid number'
break
case 8:
msg = 'close brace expected'
break
case 5:
msg = 'colon expected'
break
case 6:
msg = 'comma expected'
break
case 9:
msg = 'end of file expected'
break
case 16:
msg = 'invaliad character'
break
case 10:
msg = 'invalid commment token'
break
case 15:
msg = 'invalid escape character'
break
case 1:
msg = 'invalid symbol'
break
case 14:
msg = 'invalid unicode'
break
case 3:
msg = 'property name expected'
break
case 13:
msg = 'unexpected end of number'
break
case 12:
msg = 'unexpected end of string'
break
case 11:
msg = 'unexpected end of comment'
break
case 4:
msg = 'value expected'
break
default:
msg = 'Unknwn error'
break
}
let range: Range = {
start: document.positionAt(err.offset),
end: document.positionAt(err.offset + err.length),
}
let loc = Location.create(uri, range)
items.push({ location: loc, message: msg })
}
return items
}