本文整理汇总了TypeScript中vscode-languageserver-protocol.TextDocument.positionAt方法的典型用法代码示例。如果您正苦于以下问题:TypeScript TextDocument.positionAt方法的具体用法?TypeScript TextDocument.positionAt怎么用?TypeScript TextDocument.positionAt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vscode-languageserver-protocol.TextDocument
的用法示例。
在下文中一共展示了TextDocument.positionAt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: getContentChanges
export function getContentChanges(document: TextDocument, content: string): TextDocumentContentChangeEvent[] {
let result = fastDiff(document.getText(), content)
let curr = 0
let edits: TextDocumentContentChangeEvent[] = []
for (let i = 0; i < result.length; i++) {
let item = result[i]
let [type, content] = item
if (type == fastDiff.EQUAL) {
curr += content.length
continue
}
if (type == fastDiff.DELETE) {
let next = result[i + 1]
let range: Range = {
start: document.positionAt(curr),
end: document.positionAt(curr + content.length)
}
curr += content.length
if (!next || next[0] == fastDiff.EQUAL) {
edits.push({
range,
rangeLength: content.length,
text: ''
})
} else {
// replace
i = i + 1
edits.push({
range,
rangeLength: content.length,
text: next[1]
})
}
} else {
// add
let range: Range = {
start: document.positionAt(curr),
end: document.positionAt(curr)
}
edits.push({
range,
rangeLength: 0,
text: content
})
}
}
return edits
}