mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-21 18:59:15 +00:00
use vscode-languageserver-protocol-foldingprovider
This commit is contained in:
@@ -14,7 +14,7 @@ import { EMPTY_ELEMENTS } from './htmlEmptyTagsShared';
|
|||||||
import { activateTagClosing } from './tagClosing';
|
import { activateTagClosing } from './tagClosing';
|
||||||
import TelemetryReporter from 'vscode-extension-telemetry';
|
import TelemetryReporter from 'vscode-extension-telemetry';
|
||||||
|
|
||||||
import { FoldingRangesRequest, FoldingRangeRequestParam } from './protocol/foldingProvider.proposed';
|
import { FoldingRangesRequest, FoldingRangeRequestParam } from 'vscode-languageserver-protocol-foldingprovider';
|
||||||
|
|
||||||
namespace TagCloseRequest {
|
namespace TagCloseRequest {
|
||||||
export const type: RequestType<TextDocumentPositionParams, string, any, any> = new RequestType('html/tag');
|
export const type: RequestType<TextDocumentPositionParams, string, any, any> = new RequestType('html/tag');
|
||||||
|
|||||||
@@ -1,94 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------------------------
|
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
||||||
*--------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
import { TextDocumentIdentifier } from 'vscode-languageserver-types';
|
|
||||||
import { RequestType, TextDocumentRegistrationOptions, StaticRegistrationOptions } from 'vscode-languageserver-protocol';
|
|
||||||
|
|
||||||
// ---- capabilities
|
|
||||||
|
|
||||||
export interface FoldingProviderClientCapabilities {
|
|
||||||
/**
|
|
||||||
* The text document client capabilities
|
|
||||||
*/
|
|
||||||
textDocument?: {
|
|
||||||
/**
|
|
||||||
* Capabilities specific to the foldingProvider
|
|
||||||
*/
|
|
||||||
foldingProvider?: {
|
|
||||||
/**
|
|
||||||
* Whether implementation supports dynamic registration. If this is set to `true`
|
|
||||||
* the client supports the new `(FoldingProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
|
|
||||||
* return value for the corresponding server capability as well.
|
|
||||||
*/
|
|
||||||
dynamicRegistration?: boolean;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingProviderOptions {
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingProviderServerCapabilities {
|
|
||||||
/**
|
|
||||||
* The server provides folding provider support.
|
|
||||||
*/
|
|
||||||
foldingProvider?: FoldingProviderOptions | (FoldingProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRangeList {
|
|
||||||
/**
|
|
||||||
* The folding ranges.
|
|
||||||
*/
|
|
||||||
ranges: FoldingRange[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum FoldingRangeType {
|
|
||||||
/**
|
|
||||||
* Folding range for a comment
|
|
||||||
*/
|
|
||||||
Comment = 'comment',
|
|
||||||
/**
|
|
||||||
* Folding range for a imports or includes
|
|
||||||
*/
|
|
||||||
Imports = 'imports',
|
|
||||||
/**
|
|
||||||
* Folding range for a region (e.g. `#region`)
|
|
||||||
*/
|
|
||||||
Region = 'region'
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRange {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The start line number
|
|
||||||
*/
|
|
||||||
startLine: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The end line number
|
|
||||||
*/
|
|
||||||
endLine: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The actual color value for this folding range.
|
|
||||||
*/
|
|
||||||
type?: FoldingRangeType | string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRangeRequestParam {
|
|
||||||
/**
|
|
||||||
* The text document.
|
|
||||||
*/
|
|
||||||
textDocument: TextDocumentIdentifier;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The maximum number of ranges to provide
|
|
||||||
*/
|
|
||||||
maxRanges?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export namespace FoldingRangesRequest {
|
|
||||||
export const type: RequestType<FoldingRangeRequestParam, FoldingRangeList | null, any, any> = new RequestType('textDocument/foldingRanges');
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "html-language-features",
|
"name": "html-language-features",
|
||||||
"displayName": "%displayName%",
|
"displayName": "%displayName%",
|
||||||
"description": "%description%",
|
"description": "%description%",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"publisher": "vscode",
|
"publisher": "vscode",
|
||||||
"aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217",
|
"aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217",
|
||||||
@@ -171,6 +171,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"vscode-extension-telemetry": "0.0.15",
|
"vscode-extension-telemetry": "0.0.15",
|
||||||
"vscode-languageclient": "^4.0.0",
|
"vscode-languageclient": "^4.0.0",
|
||||||
|
"vscode-languageserver-protocol-foldingprovider": "^1.0.1",
|
||||||
"vscode-nls": "^3.2.2"
|
"vscode-nls": "^3.2.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"vscode-emmet-helper": "1.2.1",
|
"vscode-emmet-helper": "1.2.1",
|
||||||
"vscode-html-languageservice": "^2.1.1",
|
"vscode-html-languageservice": "^2.1.1",
|
||||||
"vscode-languageserver": "^4.0.0",
|
"vscode-languageserver": "^4.0.0",
|
||||||
|
"vscode-languageserver-protocol-foldingprovider": "^1.0.1",
|
||||||
"vscode-languageserver-types": "^3.6.1",
|
"vscode-languageserver-types": "^3.6.1",
|
||||||
"vscode-nls": "^3.2.2",
|
"vscode-nls": "^3.2.2",
|
||||||
"vscode-uri": "^1.0.3"
|
"vscode-uri": "^1.0.3"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import uri from 'vscode-uri';
|
|||||||
import { formatError, runSafe, runSafeAsync } from './utils/runner';
|
import { formatError, runSafe, runSafeAsync } from './utils/runner';
|
||||||
import { doComplete as emmetDoComplete, updateExtensionsPath as updateEmmetExtensionsPath, getEmmetCompletionParticipants } from 'vscode-emmet-helper';
|
import { doComplete as emmetDoComplete, updateExtensionsPath as updateEmmetExtensionsPath, getEmmetCompletionParticipants } from 'vscode-emmet-helper';
|
||||||
|
|
||||||
import { FoldingRangesRequest, FoldingProviderServerCapabilities } from './protocol/foldingProvider.proposed';
|
import { FoldingRangesRequest, FoldingProviderServerCapabilities } from 'vscode-languageserver-protocol-foldingprovider';
|
||||||
import { getFoldingRegions } from './modes/htmlFolding';
|
import { getFoldingRegions } from './modes/htmlFolding';
|
||||||
|
|
||||||
namespace TagCloseRequest {
|
namespace TagCloseRequest {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import { TextDocument, CancellationToken, Position } from 'vscode-languageserver';
|
import { TextDocument, CancellationToken, Position } from 'vscode-languageserver';
|
||||||
import { LanguageService as HTMLLanguageService, TokenType, Range } from 'vscode-html-languageservice';
|
import { LanguageService as HTMLLanguageService, TokenType, Range } from 'vscode-html-languageservice';
|
||||||
|
|
||||||
import { FoldingRangeType, FoldingRange, FoldingRangeList } from '../protocol/foldingProvider.proposed';
|
import { FoldingRangeType, FoldingRange, FoldingRangeList } from 'vscode-languageserver-protocol-foldingprovider';
|
||||||
import { LanguageModes } from './languageModes';
|
import { LanguageModes } from './languageModes';
|
||||||
import { binarySearch } from '../utils/arrays';
|
import { binarySearch } from '../utils/arrays';
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { LanguageService as HTMLLanguageService, HTMLDocument, DocumentContext,
|
|||||||
import { TextDocument, Position, Range, CompletionItem } from 'vscode-languageserver-types';
|
import { TextDocument, Position, Range, CompletionItem } from 'vscode-languageserver-types';
|
||||||
import { LanguageMode, Workspace } from './languageModes';
|
import { LanguageMode, Workspace } from './languageModes';
|
||||||
|
|
||||||
import { FoldingRange } from '../protocol/foldingProvider.proposed';
|
import { FoldingRange } from 'vscode-languageserver-protocol-foldingprovider';
|
||||||
import { getHTMLFoldingRegions } from './htmlFolding';
|
import { getHTMLFoldingRegions } from './htmlFolding';
|
||||||
import { getPathCompletionParticipant } from './pathCompletion';
|
import { getPathCompletionParticipant } from './pathCompletion';
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { HTMLDocumentRegions } from './embeddedSupport';
|
|||||||
|
|
||||||
import * as ts from 'typescript';
|
import * as ts from 'typescript';
|
||||||
import { join } from 'path';
|
import { join } from 'path';
|
||||||
import { FoldingRange, FoldingRangeType } from '../protocol/foldingProvider.proposed';
|
import { FoldingRange, FoldingRangeType } from 'vscode-languageserver-protocol-foldingprovider';
|
||||||
|
|
||||||
const FILE_NAME = 'vscode://javascript/1'; // the same 'file' is used for all contents
|
const FILE_NAME = 'vscode://javascript/1'; // the same 'file' is used for all contents
|
||||||
const JQUERY_D_TS = join(__dirname, '../../lib/jquery.d.ts');
|
const JQUERY_D_TS = join(__dirname, '../../lib/jquery.d.ts');
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import {
|
|||||||
Hover, DocumentHighlight, CompletionList, Position, FormattingOptions, SymbolInformation
|
Hover, DocumentHighlight, CompletionList, Position, FormattingOptions, SymbolInformation
|
||||||
} from 'vscode-languageserver-types';
|
} from 'vscode-languageserver-types';
|
||||||
import { ColorInformation, ColorPresentation, Color, WorkspaceFolder } from 'vscode-languageserver';
|
import { ColorInformation, ColorPresentation, Color, WorkspaceFolder } from 'vscode-languageserver';
|
||||||
import { FoldingRange } from '../protocol/foldingProvider.proposed';
|
import { FoldingRange } from 'vscode-languageserver-protocol-foldingprovider';
|
||||||
|
|
||||||
import { getLanguageModelCache, LanguageModelCache } from '../languageModelCache';
|
import { getLanguageModelCache, LanguageModelCache } from '../languageModelCache';
|
||||||
import { getDocumentRegions, HTMLDocumentRegions } from './embeddedSupport';
|
import { getDocumentRegions, HTMLDocumentRegions } from './embeddedSupport';
|
||||||
|
|||||||
@@ -1,94 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------------------------
|
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
||||||
*--------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
import { TextDocumentIdentifier } from 'vscode-languageserver-types';
|
|
||||||
import { RequestType, TextDocumentRegistrationOptions, StaticRegistrationOptions } from 'vscode-languageserver-protocol';
|
|
||||||
|
|
||||||
// ---- capabilities
|
|
||||||
|
|
||||||
export interface FoldingProviderClientCapabilities {
|
|
||||||
/**
|
|
||||||
* The text document client capabilities
|
|
||||||
*/
|
|
||||||
textDocument?: {
|
|
||||||
/**
|
|
||||||
* Capabilities specific to the foldingProvider
|
|
||||||
*/
|
|
||||||
foldingProvider?: {
|
|
||||||
/**
|
|
||||||
* Whether implementation supports dynamic registration. If this is set to `true`
|
|
||||||
* the client supports the new `(FoldingProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
|
|
||||||
* return value for the corresponding server capability as well.
|
|
||||||
*/
|
|
||||||
dynamicRegistration?: boolean;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingProviderOptions {
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingProviderServerCapabilities {
|
|
||||||
/**
|
|
||||||
* The server provides folding provider support.
|
|
||||||
*/
|
|
||||||
foldingProvider?: FoldingProviderOptions | (FoldingProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRangeList {
|
|
||||||
/**
|
|
||||||
* The folding ranges.
|
|
||||||
*/
|
|
||||||
ranges: FoldingRange[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum FoldingRangeType {
|
|
||||||
/**
|
|
||||||
* Folding range for a comment
|
|
||||||
*/
|
|
||||||
Comment = 'comment',
|
|
||||||
/**
|
|
||||||
* Folding range for a imports or includes
|
|
||||||
*/
|
|
||||||
Imports = 'imports',
|
|
||||||
/**
|
|
||||||
* Folding range for a region (e.g. `#region`)
|
|
||||||
*/
|
|
||||||
Region = 'region'
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRange {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The start line number
|
|
||||||
*/
|
|
||||||
startLine: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The end line number
|
|
||||||
*/
|
|
||||||
endLine: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The actual color value for this folding range.
|
|
||||||
*/
|
|
||||||
type?: FoldingRangeType | string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRangeRequestParam {
|
|
||||||
/**
|
|
||||||
* The text document.
|
|
||||||
*/
|
|
||||||
textDocument: TextDocumentIdentifier;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The maximum number of ranges to provide
|
|
||||||
*/
|
|
||||||
maxRanges?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export namespace FoldingRangesRequest {
|
|
||||||
export const type: RequestType<FoldingRangeRequestParam, FoldingRangeList | null, any, any> = new RequestType('textDocument/foldingRanges');
|
|
||||||
}
|
|
||||||
@@ -45,6 +45,13 @@ vscode-jsonrpc@^3.6.0:
|
|||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.0.tgz#848d56995d5168950d84feb5d9c237ae5c6a02d4"
|
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.0.tgz#848d56995d5168950d84feb5d9c237ae5c6a02d4"
|
||||||
|
|
||||||
|
vscode-languageserver-protocol-foldingprovider@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol-foldingprovider/-/vscode-languageserver-protocol-foldingprovider-1.0.1.tgz#85514aaf8fe905e91bf21e4106e0847f60d40f44"
|
||||||
|
dependencies:
|
||||||
|
vscode-languageserver-protocol "^3.6.0"
|
||||||
|
vscode-languageserver-types "^3.6.0"
|
||||||
|
|
||||||
vscode-languageserver-protocol@^3.6.0:
|
vscode-languageserver-protocol@^3.6.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040"
|
||||||
|
|||||||
@@ -44,6 +44,13 @@ vscode-languageclient@^4.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
vscode-languageserver-protocol "^3.6.0"
|
vscode-languageserver-protocol "^3.6.0"
|
||||||
|
|
||||||
|
vscode-languageserver-protocol-foldingprovider@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol-foldingprovider/-/vscode-languageserver-protocol-foldingprovider-1.0.1.tgz#85514aaf8fe905e91bf21e4106e0847f60d40f44"
|
||||||
|
dependencies:
|
||||||
|
vscode-languageserver-protocol "^3.6.0"
|
||||||
|
vscode-languageserver-types "^3.6.0"
|
||||||
|
|
||||||
vscode-languageserver-protocol@^3.6.0:
|
vscode-languageserver-protocol@^3.6.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { workspace, languages, ExtensionContext, extensions, Uri, LanguageConfig
|
|||||||
import { LanguageClient, LanguageClientOptions, RequestType, ServerOptions, TransportKind, NotificationType, DidChangeConfigurationNotification, CancellationToken } from 'vscode-languageclient';
|
import { LanguageClient, LanguageClientOptions, RequestType, ServerOptions, TransportKind, NotificationType, DidChangeConfigurationNotification, CancellationToken } from 'vscode-languageclient';
|
||||||
import TelemetryReporter from 'vscode-extension-telemetry';
|
import TelemetryReporter from 'vscode-extension-telemetry';
|
||||||
|
|
||||||
import { FoldingRangesRequest, FoldingRangeRequestParam } from './protocol/foldingProvider.proposed';
|
import { FoldingRangesRequest, FoldingRangeRequestParam } from 'vscode-languageserver-protocol-foldingprovider';
|
||||||
|
|
||||||
import { hash } from './utils/hash';
|
import { hash } from './utils/hash';
|
||||||
|
|
||||||
|
|||||||
@@ -1,94 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------------------------
|
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
||||||
*--------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
import { TextDocumentIdentifier } from 'vscode-languageserver-types';
|
|
||||||
import { RequestType, TextDocumentRegistrationOptions, StaticRegistrationOptions } from 'vscode-languageserver-protocol';
|
|
||||||
|
|
||||||
// ---- capabilities
|
|
||||||
|
|
||||||
export interface FoldingProviderClientCapabilities {
|
|
||||||
/**
|
|
||||||
* The text document client capabilities
|
|
||||||
*/
|
|
||||||
textDocument?: {
|
|
||||||
/**
|
|
||||||
* Capabilities specific to the foldingProvider
|
|
||||||
*/
|
|
||||||
foldingProvider?: {
|
|
||||||
/**
|
|
||||||
* Whether implementation supports dynamic registration. If this is set to `true`
|
|
||||||
* the client supports the new `(FoldingProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
|
|
||||||
* return value for the corresponding server capability as well.
|
|
||||||
*/
|
|
||||||
dynamicRegistration?: boolean;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingProviderOptions {
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingProviderServerCapabilities {
|
|
||||||
/**
|
|
||||||
* The server provides folding provider support.
|
|
||||||
*/
|
|
||||||
foldingProvider?: FoldingProviderOptions | (FoldingProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRangeList {
|
|
||||||
/**
|
|
||||||
* The folding ranges.
|
|
||||||
*/
|
|
||||||
ranges: FoldingRange[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum FoldingRangeType {
|
|
||||||
/**
|
|
||||||
* Folding range for a comment
|
|
||||||
*/
|
|
||||||
Comment = 'comment',
|
|
||||||
/**
|
|
||||||
* Folding range for a imports or includes
|
|
||||||
*/
|
|
||||||
Imports = 'imports',
|
|
||||||
/**
|
|
||||||
* Folding range for a region (e.g. `#region`)
|
|
||||||
*/
|
|
||||||
Region = 'region'
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRange {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The start line number
|
|
||||||
*/
|
|
||||||
startLine: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The end line number
|
|
||||||
*/
|
|
||||||
endLine: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The actual color value for this folding range.
|
|
||||||
*/
|
|
||||||
type?: FoldingRangeType | string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRangeRequestParam {
|
|
||||||
/**
|
|
||||||
* The text document.
|
|
||||||
*/
|
|
||||||
textDocument: TextDocumentIdentifier;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The maximum number of ranges to provide
|
|
||||||
*/
|
|
||||||
maxRanges?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export namespace FoldingRangesRequest {
|
|
||||||
export const type: RequestType<FoldingRangeRequestParam, FoldingRangeList | null, any, any> = new RequestType('textDocument/foldingRanges');
|
|
||||||
}
|
|
||||||
@@ -99,6 +99,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"vscode-extension-telemetry": "0.0.15",
|
"vscode-extension-telemetry": "0.0.15",
|
||||||
"vscode-languageclient": "^4.0.0",
|
"vscode-languageclient": "^4.0.0",
|
||||||
|
"vscode-languageserver-protocol-foldingprovider": "^1.0.1",
|
||||||
"vscode-nls": "^3.2.2"
|
"vscode-nls": "^3.2.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -15,12 +15,13 @@
|
|||||||
"request-light": "^0.2.2",
|
"request-light": "^0.2.2",
|
||||||
"vscode-json-languageservice": "^3.0.12",
|
"vscode-json-languageservice": "^3.0.12",
|
||||||
"vscode-languageserver": "^4.0.0",
|
"vscode-languageserver": "^4.0.0",
|
||||||
|
"vscode-languageserver-protocol-foldingprovider": "^1.0.1",
|
||||||
"vscode-nls": "^3.2.2",
|
"vscode-nls": "^3.2.2",
|
||||||
"vscode-uri": "^1.0.3"
|
"vscode-uri": "^1.0.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "7.0.43",
|
"@types/mocha": "2.2.33",
|
||||||
"@types/mocha": "2.2.33"
|
"@types/node": "7.0.43"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"prepublishOnly": "npm run clean && npm run test",
|
"prepublishOnly": "npm run clean && npm run test",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
import { TextDocument, Position, CancellationToken } from 'vscode-languageserver';
|
import { TextDocument, Position, CancellationToken } from 'vscode-languageserver';
|
||||||
import { createScanner, SyntaxKind, ScanError } from 'jsonc-parser';
|
import { createScanner, SyntaxKind, ScanError } from 'jsonc-parser';
|
||||||
import { FoldingRangeType, FoldingRange, FoldingRangeList } from './protocol/foldingProvider.proposed';
|
import { FoldingRangeType, FoldingRange, FoldingRangeList } from 'vscode-languageserver-protocol-foldingprovider';
|
||||||
|
|
||||||
export function getFoldingRegions(document: TextDocument, maxRanges: number | undefined, cancellationToken: CancellationToken | null) {
|
export function getFoldingRegions(document: TextDocument, maxRanges: number | undefined, cancellationToken: CancellationToken | null) {
|
||||||
let ranges: FoldingRange[] = [];
|
let ranges: FoldingRange[] = [];
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import { JSONDocument, JSONSchema, getLanguageService, DocumentLanguageSettings,
|
|||||||
import { getLanguageModelCache } from './languageModelCache';
|
import { getLanguageModelCache } from './languageModelCache';
|
||||||
import { getFoldingRegions } from './jsonFolding';
|
import { getFoldingRegions } from './jsonFolding';
|
||||||
|
|
||||||
import { FoldingRangesRequest, FoldingProviderServerCapabilities } from './protocol/foldingProvider.proposed';
|
import { FoldingRangesRequest, FoldingProviderServerCapabilities } from 'vscode-languageserver-protocol-foldingprovider';
|
||||||
|
|
||||||
interface ISchemaAssociations {
|
interface ISchemaAssociations {
|
||||||
[pattern: string]: string[];
|
[pattern: string]: string[];
|
||||||
|
|||||||
@@ -1,94 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------------------------
|
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
||||||
*--------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
import { TextDocumentIdentifier } from 'vscode-languageserver-types';
|
|
||||||
import { RequestType, TextDocumentRegistrationOptions, StaticRegistrationOptions } from 'vscode-languageserver-protocol';
|
|
||||||
|
|
||||||
// ---- capabilities
|
|
||||||
|
|
||||||
export interface FoldingProviderClientCapabilities {
|
|
||||||
/**
|
|
||||||
* The text document client capabilities
|
|
||||||
*/
|
|
||||||
textDocument?: {
|
|
||||||
/**
|
|
||||||
* Capabilities specific to the foldingProvider
|
|
||||||
*/
|
|
||||||
foldingProvider?: {
|
|
||||||
/**
|
|
||||||
* Whether implementation supports dynamic registration. If this is set to `true`
|
|
||||||
* the client supports the new `(FoldingProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
|
|
||||||
* return value for the corresponding server capability as well.
|
|
||||||
*/
|
|
||||||
dynamicRegistration?: boolean;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingProviderOptions {
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingProviderServerCapabilities {
|
|
||||||
/**
|
|
||||||
* The server provides folding provider support.
|
|
||||||
*/
|
|
||||||
foldingProvider?: FoldingProviderOptions | (FoldingProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRangeList {
|
|
||||||
/**
|
|
||||||
* The folding ranges.
|
|
||||||
*/
|
|
||||||
ranges: FoldingRange[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum FoldingRangeType {
|
|
||||||
/**
|
|
||||||
* Folding range for a comment
|
|
||||||
*/
|
|
||||||
Comment = 'comment',
|
|
||||||
/**
|
|
||||||
* Folding range for a imports or includes
|
|
||||||
*/
|
|
||||||
Imports = 'imports',
|
|
||||||
/**
|
|
||||||
* Folding range for a region (e.g. `#region`)
|
|
||||||
*/
|
|
||||||
Region = 'region'
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRange {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The start line number
|
|
||||||
*/
|
|
||||||
startLine: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The end line number
|
|
||||||
*/
|
|
||||||
endLine: number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The actual color value for this folding range.
|
|
||||||
*/
|
|
||||||
type?: FoldingRangeType | string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface FoldingRangeRequestParam {
|
|
||||||
/**
|
|
||||||
* The text document.
|
|
||||||
*/
|
|
||||||
textDocument: TextDocumentIdentifier;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The maximum number of ranges to provide
|
|
||||||
*/
|
|
||||||
maxRanges?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export namespace FoldingRangesRequest {
|
|
||||||
export const type: RequestType<FoldingRangeRequestParam, FoldingRangeList | null, any, any> = new RequestType('textDocument/foldingRanges');
|
|
||||||
}
|
|
||||||
@@ -81,6 +81,13 @@ vscode-jsonrpc@^3.6.0:
|
|||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.0.tgz#848d56995d5168950d84feb5d9c237ae5c6a02d4"
|
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.0.tgz#848d56995d5168950d84feb5d9c237ae5c6a02d4"
|
||||||
|
|
||||||
|
vscode-languageserver-protocol-foldingprovider@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol-foldingprovider/-/vscode-languageserver-protocol-foldingprovider-1.0.1.tgz#85514aaf8fe905e91bf21e4106e0847f60d40f44"
|
||||||
|
dependencies:
|
||||||
|
vscode-languageserver-protocol "^3.6.0"
|
||||||
|
vscode-languageserver-types "^3.6.0"
|
||||||
|
|
||||||
vscode-languageserver-protocol@^3.6.0:
|
vscode-languageserver-protocol@^3.6.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040"
|
||||||
|
|||||||
@@ -44,6 +44,13 @@ vscode-languageclient@^4.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
vscode-languageserver-protocol "^3.6.0"
|
vscode-languageserver-protocol "^3.6.0"
|
||||||
|
|
||||||
|
vscode-languageserver-protocol-foldingprovider@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol-foldingprovider/-/vscode-languageserver-protocol-foldingprovider-1.0.1.tgz#85514aaf8fe905e91bf21e4106e0847f60d40f44"
|
||||||
|
dependencies:
|
||||||
|
vscode-languageserver-protocol "^3.6.0"
|
||||||
|
vscode-languageserver-types "^3.6.0"
|
||||||
|
|
||||||
vscode-languageserver-protocol@^3.6.0:
|
vscode-languageserver-protocol@^3.6.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040"
|
||||||
|
|||||||
Reference in New Issue
Block a user