本文整理汇总了TypeScript中vscode-languageserver.TextDocument.getText方法的典型用法代码示例。如果您正苦于以下问题:TypeScript TextDocument.getText方法的具体用法?TypeScript TextDocument.getText怎么用?TypeScript TextDocument.getText使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vscode-languageserver.TextDocument
的用法示例。
在下文中一共展示了TextDocument.getText方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: nodeMcuSignatureHelpHandler
export function nodeMcuSignatureHelpHandler(remoteConsole: RemoteConsole, document: TextDocument, textDocumentPosition: TextDocumentPositionParams): SignatureHelp {
remoteConsole.log("Server nodeMcuSignatureHelpHandler entered");
let text = document.getText();
let lineText = text.split(/\r?\n/g)[textDocumentPosition.position.line];
let analyzeResult = analyze(lineText, textDocumentPosition.position);
remoteConsole.log("Server nodeMcuSignatureHelpHandler word: " + JSON.stringify(analyzeResult));
if (analyzeResult.inSignatureDefinition && analyzeResult.signatureName && analyzeResult.moduleName && api[analyzeResult.moduleName]) {
let currentApi: CompletionItem[] = api[analyzeResult.moduleName];
let filtered = currentApi.filter(function (value: CompletionItem, index: number, array: CompletionItem[]) {
return value.label == analyzeResult.signatureName;
});
if (filtered.length > 0) {
let signatureInfo: SignatureInformation = {
label: filtered[0].detail,
documentation: filtered[0].documentation
};
let result: SignatureHelp = {
signatures: [signatureInfo],
};
return result;
}
}
return null;
}
示例2: validateTextDocumentAsync
export function validateTextDocumentAsync(textDocument: TextDocument, options: CSpellUserSettings): Rx.Observable<Diagnostic> {
const limit = (options.checkLimit || defaultCheckLimit) * 1024;
const text = textDocument.getText().slice(0, limit);
return Rx.Observable.fromPromise<cspell.TextOffset[]>(validateText(text, options))
.flatMap(a => a)
.filter(a => !!a)
.map(a => a!)
// Convert the offset into a position
.map(offsetWord => ({...offsetWord, position: textDocument.positionAt(offsetWord.offset) }))
// Calculate the range
.map(word => ({
...word,
range: {
start: word.position,
end: ({...word.position, character: word.position.character + word.text.length })
}
}))
// Convert it to a Diagnostic
.map(({text, range}) => ({
severity: DiagnosticSeverity.Information,
range: range,
message: `Unknown word: "${text}"`,
source: diagSource
}))
;
}
示例3: syntaxCheck
export async function syntaxCheck(document: TextDocument) {
const diagnostics: Diagnostic[] = []
try {
const client = await clientFromUrl(document.uri)
if (!client) return
const obj = await getObject(document.uri)
// no object or include without a main program
if (!obj || !objectIsValid(obj)) return
const source = document.getText()
const checks = await client.syntaxCheck(
obj.url,
obj.mainUrl,
source,
obj.mainProgram
)
checks.forEach(c => {
const range = sourceRange(document, c.line, c.offset)
diagnostics.push({
message: c.text,
range,
severity: decodeSeverity(c.severity)
})
})
} catch (e) {
log("Exception in syntax check:", e.toString()) // ignore
}
connection.sendDiagnostics({ uri: document.uri, diagnostics })
}
示例4: validateTextDocumentAsync
export function validateTextDocumentAsync(textDocument: TextDocument, options: CSpellUserSettings): Observable<Diagnostic> {
const { diagnosticLevel = DiagnosticSeverity.Information.toString() } = options;
const severity = diagSeverityMap.get(diagnosticLevel.toLowerCase()) || DiagnosticSeverity.Information;
const limit = (options.checkLimit || defaultCheckLimit) * 1024;
const text = textDocument.getText().slice(0, limit);
return from(validateText(text, options)).pipe(
flatMap(a => a),
filter(a => !!a),
map(a => a!),
// Convert the offset into a position
map(offsetWord => ({...offsetWord, position: textDocument.positionAt(offsetWord.offset) })),
// Calculate the range
map(word => ({
...word,
range: {
start: word.position,
end: ({...word.position, character: word.position.character + word.text.length })
}
})),
// Convert it to a Diagnostic
map(({text, range}) => ({
severity,
range: range,
message: `"${text}": Unknown word.`,
source: diagSource
})),
);
}
示例5: getSettings
function getSettings(doc: TextDocument): [CSpellUserSettings, Promise<SpellingDictionary>] {
const cached = settingsCache.get(doc.uri);
if (!cached || cached.version !== doc.version) {
const docSetting = cspell.constructSettingsForText(fnSettings(), doc.getText(), doc.languageId);
const dict = cspell.getDictionary(docSetting);
settingsCache.set(doc.uri, { version: doc.version, settings: [docSetting, dict] });
}
return settingsCache.get(doc.uri)!.settings;
}
示例6: constructor
constructor(document: TextDocument, config: FormatterConfig) {
this.document = document;
this.originalText = document.getText();
this.config = config;
this.differ = new DiffMatchPatch();
if (this.range) {
this.modifyRange();
}
}
示例7: getEOL
function getEOL(document: TextDocument): string {
let text = document.getText();
if (document.lineCount > 1) {
let to = document.offsetAt(Position.create(1, 0));
let from = to;
while (from > 0 && isEOL(text, from - 1)) {
from--;
}
return text.substr(from, to - from);
}
return '\n';
}
示例8: collectEntries
async function collectEntries(
document: TextDocument,
request: ImageInfoRequest,
cancellationToken: CancellationToken
): Promise<ImageInfo[]> {
let items = [];
absoluteUrlMappers.forEach(absoluteUrlMapper =>
absoluteUrlMapper.refreshConfig(request.workspaceFolder, request.additionalSourcefolder, request.paths)
);
const lines = document.getText().split(/\r\n|\r|\n/);
for (const lineIndex of request.visibleLines) {
var line = lines[lineIndex];
if (!line) continue;
if (cancellationToken.isCancellationRequested) return items;
if (line.length > 20000) {
continue;
}
recognizers
.map(recognizer => {
if (cancellationToken.isCancellationRequested) return;
return recognizer.recognize(lineIndex, line);
})
.filter(item => !!item)
.forEach(urlMatches => {
if (cancellationToken.isCancellationRequested) return;
urlMatches.forEach(urlMatch => {
if (cancellationToken.isCancellationRequested) return;
let absoluteUrls = absoluteUrlMappers
.map(mapper => {
try {
return mapper.map(request.fileName, urlMatch.url);
} catch (e) {}
})
.filter(item => nonNullOrEmpty(item));
let absoluteUrlsSet = new Set(absoluteUrls);
items = items.concat(
Array.from(absoluteUrlsSet.values()).map(absoluteImagePath => {
const result =
convertToLocalImagePath(absoluteImagePath, urlMatch) || Promise.resolve(null);
return result.catch(p => null);
})
);
});
});
}
return await Promise.all(items);
}
示例9: applyEdits
export function applyEdits(document: TextDocument, edits: TextEdit[]) : string {
let formatted = document.getText();
let sortedEdits = edits.sort((a, b) => document.offsetAt(b.range.start) - document.offsetAt(a.range.start));
let lastOffset = formatted.length;
sortedEdits.forEach(e => {
let startOffset = document.offsetAt(e.range.start);
let endOffset = document.offsetAt(e.range.end);
assert.ok(startOffset <= endOffset);
assert.ok(endOffset <= lastOffset);
formatted = formatted.substring(0, startOffset) + e.newText + formatted.substring(endOffset, formatted.length);
lastOffset = startOffset;
});
return formatted;
}
示例10: async
export const exportDocument = async (
argdownEngine: AsyncArgdownApplication,
args: ExportDocumentArgs,
doc: TextDocument | undefined
) => {
let request: any = { logLevel: "none" };
request.inputPath = Uri.parse(args.source).fsPath;
request.outputPath = Uri.parse(args.target).fsPath;
const getRequest = requestProviders[args.process];
request = getRequest(request);
if (doc) {
request.input = doc.getText();
await argdownEngine.runAsync(request);
} else {
await argdownEngine.load(request);
}
};