Skip to content

Commit dfdb85d

Browse files
authored
Fix folding range tests (#1320)
1 parent 3a21e09 commit dfdb85d

File tree

5 files changed

+25
-12
lines changed

5 files changed

+25
-12
lines changed

README.md

+8
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@ After cloning the repository, run `npm install` to install dependencies and `npm
3434

3535
## History
3636

37+
## 3.17.0 Protocol, 8.2.0 JSON-RPC 9.0.0 Client and 9.0.0 Server
38+
39+
- added proposed refresh method for folding ranges. This changed the shape of the folding range feature since we need to expose the event emitter. The change is breaking. To get to the provider you now need to do
40+
```ts
41+
client.getFeature(lsclient.FoldingRangeRequest.method).getProvider(document)?.provider;
42+
```
43+
- various [bug fixes](https://github.com/microsoft/vscode-languageserver-node/milestone/46?closed=1)
44+
3745
## 3.17.4-next.0 Protocol, 8.2.0-next.0 JSON-RPC, 8.2.0-next.0 Client and 8.2.0-next.0 Server.
3846

3947
- middleware support for general notifications and requests as well as for register and unregister capabilities.

client-node-tests/src/integration.test.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -763,8 +763,9 @@ suite('Client integration', () => {
763763
});
764764

765765
test('Folding Ranges', async () => {
766-
const provider = client.getFeature(lsclient.FoldingRangeRequest.method).getProvider(document);
767-
isDefined(provider);
766+
const providerData = client.getFeature(lsclient.FoldingRangeRequest.method).getProvider(document);
767+
isDefined(providerData);
768+
const provider = providerData.provider;
768769
const result = (await provider.provideFoldingRanges(document, {}, tokenSource.token));
769770

770771
isArray(result, vscode.FoldingRange, 1);

client/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"bugs": {
1616
"url": "https://github.com/Microsoft/vscode-languageserver-node/issues"
1717
},
18-
"enabledApiProposals": ["formatMultipleRanges"],
18+
"enabledApiProposals": [],
1919
"main": "./lib/node/main.js",
2020
"browser": {
2121
"./lib/node/main.js": "./lib/browser/main.js"

client/src/common/client.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
MessageItem, WorkspaceFolder as VWorkspaceFolder, env as Env, TextDocumentShowOptions, CancellationError, CancellationTokenSource, FileCreateEvent,
1010
FileRenameEvent, FileDeleteEvent, FileWillCreateEvent, FileWillRenameEvent, FileWillDeleteEvent, CompletionItemProvider, HoverProvider, SignatureHelpProvider,
1111
DefinitionProvider, ReferenceProvider, DocumentHighlightProvider, CodeActionProvider, DocumentFormattingEditProvider, DocumentRangeFormattingEditProvider,
12-
OnTypeFormattingEditProvider, RenameProvider, DocumentSymbolProvider, DocumentLinkProvider, DeclarationProvider, FoldingRangeProvider, ImplementationProvider,
12+
OnTypeFormattingEditProvider, RenameProvider, DocumentSymbolProvider, DocumentLinkProvider, DeclarationProvider, ImplementationProvider,
1313
DocumentColorProvider, SelectionRangeProvider, TypeDefinitionProvider, CallHierarchyProvider, LinkedEditingRangeProvider, TypeHierarchyProvider, WorkspaceSymbolProvider,
1414
ProviderResult, TextEdit as VTextEdit, InlineCompletionItemProvider
1515
} from 'vscode';
@@ -36,7 +36,7 @@ import {
3636
TypeHierarchyPrepareRequest, InlineValueRequest, InlayHintRequest, WorkspaceSymbolRequest, TextDocumentRegistrationOptions, FileOperationRegistrationOptions,
3737
ConnectionOptions, PositionEncodingKind, DocumentDiagnosticRequest, NotebookDocumentSyncRegistrationType, NotebookDocumentSyncRegistrationOptions, ErrorCodes,
3838
MessageStrategy, DidOpenTextDocumentParams, CodeLensResolveRequest, CompletionResolveRequest, CodeActionResolveRequest, InlayHintResolveRequest, DocumentLinkResolveRequest, WorkspaceSymbolResolveRequest,
39-
CancellationToken as ProtocolCancellationToken, InlineCompletionRequest, InlineCompletionRegistrationOptions
39+
CancellationToken as ProtocolCancellationToken, InlineCompletionRequest, InlineCompletionRegistrationOptions, ExecuteCommandRequest, ExecuteCommandOptions
4040
} from 'vscode-languageserver-protocol';
4141

4242
import * as c2p from './codeConverter';
@@ -79,7 +79,7 @@ import { DocumentFormattingFeature, DocumentOnTypeFormattingFeature, DocumentRan
7979
import { RenameFeature, RenameMiddleware } from './rename';
8080
import { DocumentLinkFeature, DocumentLinkMiddleware } from './documentLink';
8181
import { ExecuteCommandFeature, ExecuteCommandMiddleware } from './executeCommand';
82-
import { FoldingRangeProviderMiddleware } from './foldingRange';
82+
import { FoldingRangeProviderMiddleware, FoldingRangeProviderShape } from './foldingRange';
8383
import { DeclarationMiddleware } from './declaration';
8484
import { SelectionRangeProviderMiddleware } from './selectionRange';
8585
import { CallHierarchyMiddleware } from './callHierarchy';
@@ -1737,7 +1737,7 @@ export abstract class BaseLanguageClient implements FeatureClient<Middleware, La
17371737
getFeature(request: typeof DocumentLinkRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DocumentLinkProvider>;
17381738
getFeature(request: typeof DocumentColorRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DocumentColorProvider>;
17391739
getFeature(request: typeof DeclarationRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DeclarationProvider>;
1740-
getFeature(request: typeof FoldingRangeRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<FoldingRangeProvider>;
1740+
getFeature(request: typeof FoldingRangeRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<FoldingRangeProviderShape>;
17411741
getFeature(request: typeof ImplementationRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<ImplementationProvider>;
17421742
getFeature(request: typeof SelectionRangeRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<SelectionRangeProvider>;
17431743
getFeature(request: typeof TypeDefinitionRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<TypeDefinitionProvider>;
@@ -1751,6 +1751,7 @@ export abstract class BaseLanguageClient implements FeatureClient<Middleware, La
17511751
getFeature(request: typeof DocumentDiagnosticRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DiagnosticProviderShape> | undefined;
17521752
getFeature(request: typeof NotebookDocumentSyncRegistrationType.method): DynamicFeature<NotebookDocumentSyncRegistrationOptions> & NotebookDocumentProviderShape | undefined;
17531753
getFeature(request: typeof InlineCompletionRequest.method): DynamicFeature<InlineCompletionRegistrationOptions> & TextDocumentProviderFeature<InlineCompletionItemProvider>;
1754+
getFeature(request: typeof ExecuteCommandRequest.method): DynamicFeature<ExecuteCommandOptions>;
17541755
public getFeature(request: string): DynamicFeature<any> | undefined {
17551756
return this._dynamicFeatures.get(request);
17561757
}

client/src/common/features.ts

+8-5
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ import {
88
Disposable, CancellationToken, ProviderResult, TextEdit as VTextEdit, ReferenceProvider, DefinitionProvider, SignatureHelpProvider,
99
HoverProvider, CompletionItemProvider, WorkspaceSymbolProvider, DocumentHighlightProvider, CodeActionProvider, DocumentFormattingEditProvider,
1010
DocumentRangeFormattingEditProvider, OnTypeFormattingEditProvider, RenameProvider, DocumentSymbolProvider, DocumentLinkProvider, DocumentColorProvider,
11-
DeclarationProvider, FoldingRangeProvider, ImplementationProvider, SelectionRangeProvider, TypeDefinitionProvider, CallHierarchyProvider,
11+
DeclarationProvider, ImplementationProvider, SelectionRangeProvider, TypeDefinitionProvider, CallHierarchyProvider,
1212
LinkedEditingRangeProvider, TypeHierarchyProvider, FileCreateEvent, FileRenameEvent, FileDeleteEvent, FileWillCreateEvent, FileWillRenameEvent,
13-
FileWillDeleteEvent, CancellationError
13+
FileWillDeleteEvent, CancellationError, InlineCompletionItemProvider
1414
} from 'vscode';
1515

1616
import {
1717
CallHierarchyPrepareRequest, ClientCapabilities, CodeActionRequest, CodeLensRequest, CompletionRequest, DeclarationRequest, DefinitionRequest,
1818
DidChangeTextDocumentNotification, DidCloseTextDocumentNotification, DidCreateFilesNotification, DidDeleteFilesNotification, DidOpenTextDocumentNotification,
1919
DidRenameFilesNotification, DidSaveTextDocumentNotification, DocumentColorRequest, DocumentDiagnosticRequest, DocumentFormattingRequest, DocumentHighlightRequest,
20-
DocumentLinkRequest, DocumentOnTypeFormattingRequest, DocumentRangeFormattingRequest, DocumentSelector, DocumentSymbolRequest, FileOperationRegistrationOptions,
21-
FoldingRangeRequest, GenericNotificationHandler, GenericRequestHandler, HoverRequest, ImplementationRequest, InitializeParams, InlayHintRequest, InlineValueRequest,
20+
DocumentLinkRequest, DocumentOnTypeFormattingRequest, DocumentRangeFormattingRequest, DocumentSelector, DocumentSymbolRequest, ExecuteCommandOptions, ExecuteCommandRequest, FileOperationRegistrationOptions,
21+
FoldingRangeRequest, GenericNotificationHandler, GenericRequestHandler, HoverRequest, ImplementationRequest, InitializeParams, InlayHintRequest, InlineCompletionRegistrationOptions, InlineCompletionRequest, InlineValueRequest,
2222
LinkedEditingRangeRequest, MessageSignature, NotebookDocumentSyncRegistrationOptions, NotebookDocumentSyncRegistrationType, NotificationHandler, NotificationHandler0,
2323
NotificationType, NotificationType0, ProgressType, ProtocolNotificationType, ProtocolNotificationType0, ProtocolRequestType, ProtocolRequestType0, ReferencesRequest,
2424
RegistrationType, RenameRequest, RequestHandler, RequestHandler0, RequestType, RequestType0, SelectionRangeRequest, SemanticTokensRegistrationType, ServerCapabilities,
@@ -650,6 +650,7 @@ import type { InlineValueProviderShape } from './inlineValue';
650650
import type { InlayHintsProviderShape } from './inlayHint';
651651
import type { DiagnosticProviderShape } from './diagnostic';
652652
import type { NotebookDocumentProviderShape } from './notebook';
653+
import { FoldingRangeProviderShape } from './foldingRange';
653654

654655
export interface FeatureClient<M, CO = object> {
655656

@@ -727,7 +728,7 @@ export interface FeatureClient<M, CO = object> {
727728
getFeature(request: typeof DocumentLinkRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DocumentLinkProvider>;
728729
getFeature(request: typeof DocumentColorRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DocumentColorProvider>;
729730
getFeature(request: typeof DeclarationRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DeclarationProvider>;
730-
getFeature(request: typeof FoldingRangeRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<FoldingRangeProvider>;
731+
getFeature(request: typeof FoldingRangeRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<FoldingRangeProviderShape>;
731732
getFeature(request: typeof ImplementationRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<ImplementationProvider>;
732733
getFeature(request: typeof SelectionRangeRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<SelectionRangeProvider>;
733734
getFeature(request: typeof TypeDefinitionRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<TypeDefinitionProvider>;
@@ -740,4 +741,6 @@ export interface FeatureClient<M, CO = object> {
740741
getFeature(request: typeof WorkspaceSymbolRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & WorkspaceProviderFeature<WorkspaceSymbolProvider>;
741742
getFeature(request: typeof DocumentDiagnosticRequest.method): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<DiagnosticProviderShape> | undefined;
742743
getFeature(request: typeof NotebookDocumentSyncRegistrationType.method): DynamicFeature<NotebookDocumentSyncRegistrationOptions> & NotebookDocumentProviderShape | undefined;
744+
getFeature(request: typeof InlineCompletionRequest.method): DynamicFeature<InlineCompletionRegistrationOptions> & TextDocumentProviderFeature<InlineCompletionItemProvider>;
745+
getFeature(request: typeof ExecuteCommandRequest.method): DynamicFeature<ExecuteCommandOptions>;
743746
}

0 commit comments

Comments
 (0)