mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-25 02:58:56 +01:00
[html] adopt folding APIs
This commit is contained in:
@@ -77,7 +77,7 @@ export function getCSSMode(documentRegions: LanguageModelCache<HTMLDocumentRegio
|
||||
},
|
||||
getFoldingRanges(document: TextDocument, range: Range): FoldingRange[] {
|
||||
let embedded = embeddedCSSDocuments.get(document);
|
||||
let ranges = cssLanguageService.getFoldingRanges(embedded, {}).ranges;
|
||||
let ranges = cssLanguageService.getFoldingRanges(embedded, {});
|
||||
return ranges.filter(r => r.startLine >= range.start.line && r.endLine < range.end.line);
|
||||
},
|
||||
onDocumentRemoved(document: TextDocument) {
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
import { TextDocument, CancellationToken, Position, Range } from 'vscode-languageserver';
|
||||
import { FoldingRange, FoldingRangeList } from 'vscode-languageserver-protocol-foldingprovider';
|
||||
import { FoldingRange } from 'vscode-languageserver-protocol-foldingprovider';
|
||||
import { LanguageModes } from './languageModes';
|
||||
|
||||
export function getFoldingRanges(languageModes: LanguageModes, document: TextDocument, maxRanges: number | undefined, cancellationToken: CancellationToken | null): FoldingRangeList {
|
||||
export function getFoldingRanges(languageModes: LanguageModes, document: TextDocument, maxRanges: number | undefined, cancellationToken: CancellationToken | null): FoldingRange[] {
|
||||
let htmlMode = languageModes.getMode('html');
|
||||
let range = Range.create(Position.create(0, 0), Position.create(document.lineCount, 0));
|
||||
let ranges: FoldingRange[] = [];
|
||||
@@ -24,7 +24,7 @@ export function getFoldingRanges(languageModes: LanguageModes, document: TextDoc
|
||||
if (maxRanges && ranges.length > maxRanges) {
|
||||
ranges = limitRanges(ranges, maxRanges);
|
||||
}
|
||||
return { ranges };
|
||||
return ranges;
|
||||
}
|
||||
|
||||
function limitRanges(ranges: FoldingRange[], maxRanges: number) {
|
||||
|
||||
@@ -64,7 +64,7 @@ export function getHTMLMode(htmlLanguageService: HTMLLanguageService, workspace:
|
||||
return htmlLanguageService.format(document, range, formatSettings);
|
||||
},
|
||||
getFoldingRanges(document: TextDocument, range: Range): FoldingRange[] {
|
||||
let ranges = htmlLanguageService.getFoldingRanges(document).ranges;
|
||||
let ranges = htmlLanguageService.getFoldingRanges(document);
|
||||
return ranges.filter(r => r.startLine >= range.start.line && r.endLine < range.end.line);
|
||||
},
|
||||
doAutoClose(document: TextDocument, position: Position) {
|
||||
|
||||
@@ -12,7 +12,7 @@ import { HTMLDocumentRegions } from './embeddedSupport';
|
||||
|
||||
import * as ts from 'typescript';
|
||||
import { join } from 'path';
|
||||
import { FoldingRange, FoldingRangeType } from 'vscode-languageserver-protocol-foldingprovider';
|
||||
import { FoldingRange, FoldingRangeKind } from 'vscode-languageserver-protocol-foldingprovider';
|
||||
|
||||
const FILE_NAME = 'vscode://javascript/1'; // the same 'file' is used for all contents
|
||||
const JQUERY_D_TS = join(__dirname, '../../lib/jquery.d.ts');
|
||||
@@ -291,7 +291,7 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume
|
||||
let foldingRange: FoldingRange = { startLine, endLine };
|
||||
let match = document.getText(curr).match(/^\s*\/(?:(\/\s*#(?:end)?region\b)|(\*|\/))/);
|
||||
if (match) {
|
||||
foldingRange.type = match[1] ? FoldingRangeType.Region : FoldingRangeType.Comment;
|
||||
foldingRange.kind = match[1] ? FoldingRangeKind.Region : FoldingRangeKind.Comment;
|
||||
}
|
||||
ranges.push(foldingRange);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user