本文整理匯總了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
}