Skip to content

Commit 88ce9da

Browse files
committed
extract Serialized<T> util
1 parent cfc07ec commit 88ce9da

8 files changed

Lines changed: 20 additions & 17 deletions

File tree

src/vs/base/common/types.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6+
import { URI, UriComponents } from 'vs/base/common/uri';
7+
68
const _typeof = {
79
number: 'number',
810
string: 'string',
@@ -262,3 +264,12 @@ export type AddFirstParameterToFunctions<Target, TargetFunctionsReturnType, Firs
262264
// Else: just leave as is
263265
Target[K]
264266
};
267+
268+
/**
269+
* Mapped typed that replaces all occurrences of URI with UriComponents and drop all functions
270+
*/
271+
export type Serialized<T> = { [K in keyof T]: T[K] extends URI
272+
? UriComponents
273+
: T[K] extends Function
274+
? never
275+
: Serialized<T[K]> };

src/vs/platform/actions/common/actions.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ import { ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/commo
1111
import { ICommandService, CommandsRegistry, ICommandHandlerDescription } from 'vs/platform/commands/common/commands';
1212
import { IDisposable, DisposableStore } from 'vs/base/common/lifecycle';
1313
import { Event, Emitter } from 'vs/base/common/event';
14-
import { URI, UriComponents } from 'vs/base/common/uri';
14+
import { URI } from 'vs/base/common/uri';
1515
import { ThemeIcon } from 'vs/platform/theme/common/themeService';
16+
import { Serialized } from 'vs/base/common/types';
1617

1718
export interface ILocalizedString {
1819
value: string;
@@ -28,8 +29,6 @@ export interface ICommandAction {
2829
toggled?: ContextKeyExpr;
2930
}
3031

31-
type Serialized<T> = { [K in keyof T]: T[K] extends URI ? UriComponents : Serialized<T[K]> };
32-
3332
export type ISerializableCommandAction = Serialized<ICommandAction>;
3433

3534
export interface IMenuItem {

src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
1919
import { URI } from 'vs/base/common/uri';
2020
import { Selection } from 'vs/editor/common/core/selection';
2121
import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
22-
import * as callh from 'vs/workbench/contrib/callHierarchy/browser/callHierarchy';
22+
import * as callh from 'vs/workbench/contrib/callHierarchy/common/callHierarchy';
2323
import { mixin } from 'vs/base/common/objects';
2424
import { decodeSemanticTokensDto } from 'vs/workbench/api/common/shared/semanticTokens';
2525

src/vs/workbench/api/common/extHost.protocol.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ import { TunnelDto } from 'vs/workbench/api/common/extHostTunnelService';
5151
import { TunnelOptions } from 'vs/platform/remote/common/tunnel';
5252
import { Timeline, TimelineChangeEvent, TimelineCursor, TimelineProviderDescriptor } from 'vs/workbench/contrib/timeline/common/timeline';
5353
import { revive } from 'vs/base/common/marshalling';
54+
import { CallHierarchyItem } from 'vs/workbench/contrib/callHierarchy/common/callHierarchy';
55+
import { Serialized } from 'vs/base/common/types';
5456

5557
export interface IEnvironment {
5658
isExtensionDevelopmentDebug: boolean;
@@ -1189,16 +1191,7 @@ export interface ICodeLensDto {
11891191
command?: ICommandDto;
11901192
}
11911193

1192-
export interface ICallHierarchyItemDto {
1193-
_sessionId: string;
1194-
_itemId: string;
1195-
kind: modes.SymbolKind;
1196-
name: string;
1197-
detail?: string;
1198-
uri: UriComponents;
1199-
range: IRange;
1200-
selectionRange: IRange;
1201-
}
1194+
export type ICallHierarchyItemDto = Serialized<CallHierarchyItem>;
12021195

12031196
export interface IIncomingCallDto {
12041197
from: ICallHierarchyItemDto;

src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { localize } from 'vs/nls';
7-
import { CallHierarchyProviderRegistry, CallHierarchyDirection, CallHierarchyModel } from 'vs/workbench/contrib/callHierarchy/browser/callHierarchy';
7+
import { CallHierarchyProviderRegistry, CallHierarchyDirection, CallHierarchyModel } from 'vs/workbench/contrib/callHierarchy/common/callHierarchy';
88
import { CancellationTokenSource } from 'vs/base/common/cancellation';
99
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
1010
import { CallHierarchyTreePeekWidget } from 'vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek';

src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'vs/css!./media/callHierarchy';
77
import * as peekView from 'vs/editor/contrib/peekView/peekView';
88
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
99
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
10-
import { CallHierarchyDirection, CallHierarchyModel } from 'vs/workbench/contrib/callHierarchy/browser/callHierarchy';
10+
import { CallHierarchyDirection, CallHierarchyModel } from 'vs/workbench/contrib/callHierarchy/common/callHierarchy';
1111
import { WorkbenchAsyncDataTree, IWorkbenchAsyncDataTreeOptions } from 'vs/platform/list/browser/listService';
1212
import { FuzzyScore } from 'vs/base/common/filters';
1313
import * as callHTree from 'vs/workbench/contrib/callHierarchy/browser/callHierarchyTree';

src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { IAsyncDataSource, ITreeRenderer, ITreeNode, ITreeSorter } from 'vs/base/browser/ui/tree/tree';
7-
import { CallHierarchyItem, CallHierarchyDirection, CallHierarchyModel, } from 'vs/workbench/contrib/callHierarchy/browser/callHierarchy';
7+
import { CallHierarchyItem, CallHierarchyDirection, CallHierarchyModel, } from 'vs/workbench/contrib/callHierarchy/common/callHierarchy';
88
import { CancellationToken } from 'vs/base/common/cancellation';
99
import { IIdentityProvider, IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
1010
import { FuzzyScore, createMatches } from 'vs/base/common/filters';

src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.ts renamed to src/vs/workbench/contrib/callHierarchy/common/callHierarchy.ts

File renamed without changes.

0 commit comments

Comments
 (0)