mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Merge from vscode 718331d6f3ebd1b571530ab499edb266ddd493d5
This commit is contained in:
224
src/vs/vscode.proposed.d.ts
vendored
224
src/vs/vscode.proposed.d.ts
vendored
@@ -18,27 +18,52 @@ declare module 'vscode' {
|
||||
|
||||
// #region auth provider: https://github.com/microsoft/vscode/issues/88309
|
||||
|
||||
export interface Session {
|
||||
export interface AuthenticationSession {
|
||||
id: string;
|
||||
accessToken: string;
|
||||
displayName: string;
|
||||
accessToken(): Promise<string>;
|
||||
accountName: string;
|
||||
scopes: string[]
|
||||
}
|
||||
|
||||
/**
|
||||
* An [event](#Event) which fires when an [AuthenticationProvider](#AuthenticationProvider) is added or removed.
|
||||
*/
|
||||
export interface AuthenticationProvidersChangeEvent {
|
||||
/**
|
||||
* The ids of the [authenticationProvider](#AuthenticationProvider)s that have been added.
|
||||
*/
|
||||
readonly added: string[];
|
||||
|
||||
/**
|
||||
* The ids of the [authenticationProvider](#AuthenticationProvider)s that have been removed..
|
||||
*/
|
||||
readonly removed: string[];
|
||||
}
|
||||
|
||||
export interface AuthenticationProvider {
|
||||
/**
|
||||
* Used as an identifier for extensions trying to work with a particular
|
||||
* provider: 'Microsoft', 'GitHub', etc. id must be unique, registering
|
||||
* another provider with the same id will fail.
|
||||
*/
|
||||
readonly id: string;
|
||||
readonly displayName: string;
|
||||
|
||||
/**
|
||||
* A [enent](#Event) which fires when the array of sessions has changed, or data
|
||||
* within a session has changed.
|
||||
*/
|
||||
readonly onDidChangeSessions: Event<void>;
|
||||
|
||||
/**
|
||||
* Returns an array of current sessions.
|
||||
*/
|
||||
getSessions(): Promise<ReadonlyArray<Session>>;
|
||||
getSessions(): Promise<ReadonlyArray<AuthenticationSession>>;
|
||||
|
||||
/**
|
||||
* Prompts a user to login.
|
||||
*/
|
||||
login(scopes: string[]): Promise<Session>;
|
||||
login(scopes: string[]): Promise<AuthenticationSession>;
|
||||
logout(sessionId: string): Promise<void>;
|
||||
}
|
||||
|
||||
@@ -48,8 +73,7 @@ declare module 'vscode' {
|
||||
/**
|
||||
* Fires with the provider id that was registered or unregistered.
|
||||
*/
|
||||
export const onDidRegisterAuthenticationProvider: Event<string>;
|
||||
export const onDidUnregisterAuthenticationProvider: Event<string>;
|
||||
export const onDidChangeAuthenticationProviders: Event<AuthenticationProvidersChangeEvent>;
|
||||
|
||||
export const providers: ReadonlyArray<AuthenticationProvider>;
|
||||
}
|
||||
@@ -93,7 +117,8 @@ declare module 'vscode' {
|
||||
}
|
||||
|
||||
/**
|
||||
* Used as part of the ResolverResult if the extension has any candidate, published, or forwarded ports.
|
||||
* Used as part of the ResolverResult if the extension has any candidate,
|
||||
* published, or forwarded ports.
|
||||
*/
|
||||
export interface TunnelInformation {
|
||||
/**
|
||||
@@ -145,8 +170,15 @@ declare module 'vscode' {
|
||||
|
||||
/**
|
||||
* Fired when the list of tunnels has changed.
|
||||
* @deprecated use onDidChangeTunnels instead
|
||||
*/
|
||||
// TODO@alexr
|
||||
// eslint-disable-next-line vscode-dts-event-naming
|
||||
export const onDidTunnelsChange: Event<void>;
|
||||
/**
|
||||
* Fired when the list of tunnels has changed.
|
||||
*/
|
||||
export const onDidChangeTunnels: Event<void>;
|
||||
}
|
||||
|
||||
export interface ResourceLabelFormatter {
|
||||
@@ -157,6 +189,8 @@ declare module 'vscode' {
|
||||
|
||||
export interface ResourceLabelFormatting {
|
||||
label: string; // myLabel:/${path}
|
||||
// TODO@isi
|
||||
// eslint-disable-next-line vscode-dts-literal-or-types
|
||||
separator: '/' | '\\' | '';
|
||||
tildify?: boolean;
|
||||
normalizeDriveLetter?: boolean;
|
||||
@@ -235,7 +269,7 @@ declare module 'vscode' {
|
||||
* - at index `5*i` - `deltaLine`: token line number, relative to the previous token
|
||||
* - at index `5*i+1` - `deltaStart`: token start character, relative to the previous token (relative to 0 or the previous token's start if they are on the same line)
|
||||
* - at index `5*i+2` - `length`: the length of the token. A token cannot be multiline.
|
||||
* - at index `5*i+3` - `tokenType`: will be looked up in `SemanticTokensLegend.tokenTypes`
|
||||
* - at index `5*i+3` - `tokenType`: will be looked up in `SemanticTokensLegend.tokenTypes`. We currently ask that `tokenType` < 65536.
|
||||
* - at index `5*i+4` - `tokenModifiers`: each set bit will be looked up in `SemanticTokensLegend.tokenModifiers`
|
||||
*
|
||||
* ---
|
||||
@@ -243,15 +277,15 @@ declare module 'vscode' {
|
||||
*
|
||||
* Here is an example for encoding a file with 3 tokens in a uint32 array:
|
||||
* ```
|
||||
* { line: 2, startChar: 5, length: 3, tokenType: "properties", tokenModifiers: ["private", "static"] },
|
||||
* { line: 2, startChar: 10, length: 4, tokenType: "types", tokenModifiers: [] },
|
||||
* { line: 5, startChar: 2, length: 7, tokenType: "classes", tokenModifiers: [] }
|
||||
* { line: 2, startChar: 5, length: 3, tokenType: "property", tokenModifiers: ["private", "static"] },
|
||||
* { line: 2, startChar: 10, length: 4, tokenType: "type", tokenModifiers: [] },
|
||||
* { line: 5, startChar: 2, length: 7, tokenType: "class", tokenModifiers: [] }
|
||||
* ```
|
||||
*
|
||||
* 1. First of all, a legend must be devised. This legend must be provided up-front and capture all possible token types.
|
||||
* For this example, we will choose the following legend which must be passed in when registering the provider:
|
||||
* ```
|
||||
* tokenTypes: ['properties', 'types', 'classes'],
|
||||
* tokenTypes: ['property', 'type', 'class'],
|
||||
* tokenModifiers: ['private', 'static']
|
||||
* ```
|
||||
*
|
||||
@@ -265,7 +299,7 @@ declare module 'vscode' {
|
||||
* { line: 5, startChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
|
||||
* ```
|
||||
*
|
||||
* 3. The next steps is to encode each token relative to the previous token in the file. In this case, the second token
|
||||
* 3. The next step is to represent each token relative to the previous token in the file. In this case, the second token
|
||||
* is on the same line as the first token, so the `startChar` of the second token is made relative to the `startChar`
|
||||
* of the first token, so it will be `10 - 5`. The third token is on a different line than the second token, so the
|
||||
* `startChar` of the third token will not be altered:
|
||||
@@ -295,9 +329,9 @@ declare module 'vscode' {
|
||||
* Continuing with the above example, suppose a new line was inserted at the top of the file.
|
||||
* That would make all the tokens move down by one line (notice how the line has changed for each one):
|
||||
* ```
|
||||
* { line: 3, startChar: 5, length: 3, tokenType: "properties", tokenModifiers: ["private", "static"] },
|
||||
* { line: 3, startChar: 10, length: 4, tokenType: "types", tokenModifiers: [] },
|
||||
* { line: 6, startChar: 2, length: 7, tokenType: "classes", tokenModifiers: [] }
|
||||
* { line: 3, startChar: 5, length: 3, tokenType: "property", tokenModifiers: ["private", "static"] },
|
||||
* { line: 3, startChar: 10, length: 4, tokenType: "type", tokenModifiers: [] },
|
||||
* { line: 6, startChar: 2, length: 7, tokenType: "class", tokenModifiers: [] }
|
||||
* ```
|
||||
* The integer encoding of the tokens does not change substantially because of the delta-encoding of positions:
|
||||
* ```
|
||||
@@ -314,10 +348,10 @@ declare module 'vscode' {
|
||||
*
|
||||
* Furthermore, let's assume that a new token has appeared on line 4:
|
||||
* ```
|
||||
* { line: 3, startChar: 5, length: 3, tokenType: "properties", tokenModifiers: ["private", "static"] },
|
||||
* { line: 3, startChar: 10, length: 4, tokenType: "types", tokenModifiers: [] },
|
||||
* { line: 4, startChar: 3, length: 5, tokenType: "properties", tokenModifiers: ["static"] },
|
||||
* { line: 6, startChar: 2, length: 7, tokenType: "classes", tokenModifiers: [] }
|
||||
* { line: 3, startChar: 5, length: 3, tokenType: "property", tokenModifiers: ["private", "static"] },
|
||||
* { line: 3, startChar: 10, length: 4, tokenType: "type", tokenModifiers: [] },
|
||||
* { line: 4, startChar: 3, length: 5, tokenType: "property", tokenModifiers: ["static"] },
|
||||
* { line: 6, startChar: 2, length: 7, tokenType: "class", tokenModifiers: [] }
|
||||
* ```
|
||||
* The integer encoding of the tokens is:
|
||||
* ```
|
||||
@@ -960,8 +994,8 @@ declare module 'vscode' {
|
||||
export interface SourceControlInputBox {
|
||||
|
||||
/**
|
||||
* Controls whether the input box is visible (default is `true`).
|
||||
*/
|
||||
* Controls whether the input box is visible (default is `true`).
|
||||
*/
|
||||
visible: boolean;
|
||||
}
|
||||
|
||||
@@ -1216,6 +1250,8 @@ declare module 'vscode' {
|
||||
/**
|
||||
* Event triggered by extensions to signal to VS Code that an edit has occurred.
|
||||
*/
|
||||
// TODO@matt
|
||||
// eslint-disable-next-line vscode-dts-event-naming
|
||||
readonly onEdit: Event<{ readonly resource: Uri, readonly edit: EditType }>;
|
||||
|
||||
/**
|
||||
@@ -1315,8 +1351,8 @@ declare module 'vscode' {
|
||||
|
||||
export interface QuickPick<T extends QuickPickItem> extends QuickInput {
|
||||
/**
|
||||
* An optional flag to sort the final results by index of first query match in label. Defaults to true.
|
||||
*/
|
||||
* An optional flag to sort the final results by index of first query match in label. Defaults to true.
|
||||
*/
|
||||
sortByLabel: boolean;
|
||||
}
|
||||
|
||||
@@ -1469,4 +1505,142 @@ declare module 'vscode' {
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region eamodio - timeline: https://github.com/microsoft/vscode/issues/84297
|
||||
|
||||
export class TimelineItem {
|
||||
/**
|
||||
* A timestamp (in milliseconds since 1 January 1970 00:00:00) for when the timeline item occurred.
|
||||
*/
|
||||
timestamp: number;
|
||||
|
||||
/**
|
||||
* A human-readable string describing the timeline item.
|
||||
*/
|
||||
label: string;
|
||||
|
||||
/**
|
||||
* Optional id for the timeline item.
|
||||
*/
|
||||
/**
|
||||
* Optional id for the timeline item that has to be unique across your timeline source.
|
||||
*
|
||||
* If not provided, an id is generated using the timeline item's label.
|
||||
*/
|
||||
id?: string;
|
||||
|
||||
/**
|
||||
* The icon path or [ThemeIcon](#ThemeIcon) for the timeline item.
|
||||
*/
|
||||
iconPath?: Uri | { light: Uri; dark: Uri } | ThemeIcon;
|
||||
|
||||
/**
|
||||
* A human readable string describing less prominent details of the timeline item.
|
||||
*/
|
||||
description?: string;
|
||||
|
||||
/**
|
||||
* The tooltip text when you hover over the timeline item.
|
||||
*/
|
||||
detail?: string;
|
||||
|
||||
/**
|
||||
* The [command](#Command) that should be executed when the timeline item is selected.
|
||||
*/
|
||||
command?: Command;
|
||||
|
||||
/**
|
||||
* Context value of the timeline item. This can be used to contribute specific actions to the item.
|
||||
* For example, a timeline item is given a context value as `commit`. When contributing actions to `timeline/item/context`
|
||||
* using `menus` extension point, you can specify context value for key `timelineItem` in `when` expression like `timelineItem == commit`.
|
||||
* ```
|
||||
* "contributes": {
|
||||
* "menus": {
|
||||
* "timeline/item/context": [
|
||||
* {
|
||||
* "command": "extension.copyCommitId",
|
||||
* "when": "timelineItem == commit"
|
||||
* }
|
||||
* ]
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* This will show the `extension.copyCommitId` action only for items where `contextValue` is `commit`.
|
||||
*/
|
||||
contextValue?: string;
|
||||
|
||||
/**
|
||||
* @param label A human-readable string describing the timeline item
|
||||
* @param timestamp A timestamp (in milliseconds since 1 January 1970 00:00:00) for when the timeline item occurred
|
||||
*/
|
||||
constructor(label: string, timestamp: number);
|
||||
}
|
||||
|
||||
export interface TimelineChangeEvent {
|
||||
/**
|
||||
* The [uri](#Uri) of the resource for which the timeline changed.
|
||||
* If the [uri](#Uri) is `undefined` that signals that the timeline source for all resources changed.
|
||||
*/
|
||||
uri?: Uri;
|
||||
}
|
||||
|
||||
export interface TimelineProvider {
|
||||
/**
|
||||
* An optional event to signal that the timeline for a source has changed.
|
||||
* To signal that the timeline for all resources (uris) has changed, do not pass any argument or pass `undefined`.
|
||||
*/
|
||||
onDidChange?: Event<TimelineChangeEvent>;
|
||||
|
||||
/**
|
||||
* An identifier of the source of the timeline items. This can be used to filter sources.
|
||||
*/
|
||||
id: string;
|
||||
|
||||
/**
|
||||
* A human-readable string describing the source of the timeline items. This can be used as the display label when filtering sources.
|
||||
*/
|
||||
label: string;
|
||||
|
||||
/**
|
||||
* Provide [timeline items](#TimelineItem) for a [Uri](#Uri).
|
||||
*
|
||||
* @param uri The [uri](#Uri) of the file to provide the timeline for.
|
||||
* @param token A cancellation token.
|
||||
* @return An array of timeline items or a thenable that resolves to such. The lack of a result
|
||||
* can be signaled by returning `undefined`, `null`, or an empty array.
|
||||
*/
|
||||
provideTimeline(uri: Uri, token: CancellationToken): ProviderResult<TimelineItem[]>;
|
||||
}
|
||||
|
||||
export namespace workspace {
|
||||
/**
|
||||
* Register a timeline provider.
|
||||
*
|
||||
* Multiple providers can be registered. In that case, providers are asked in
|
||||
* parallel and the results are merged. A failing provider (rejected promise or exception) will
|
||||
* not cause a failure of the whole operation.
|
||||
*
|
||||
* @param selector A selector that defines the documents this provider is applicable to.
|
||||
* @param provider A timeline provider.
|
||||
* @return A [disposable](#Disposable) that unregisters this provider when being disposed.
|
||||
*/
|
||||
export function registerTimelineProvider(selector: DocumentSelector, provider: TimelineProvider): Disposable;
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
||||
|
||||
//#region https://github.com/microsoft/vscode/issues/90208
|
||||
|
||||
export interface ExtensionContext {
|
||||
/**
|
||||
* Get the uri of a resource contained in the extension.
|
||||
*
|
||||
* @param relativePath A relative path to a resource contained in the extension.
|
||||
* @return The uri of the resource.
|
||||
*/
|
||||
asExtensionUri(relativePath: string): Uri;
|
||||
}
|
||||
|
||||
//#endregion
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user