Update LKG

This commit is contained in:
Mohamed Hegazy
2017-11-06 11:36:52 -08:00
parent 138accd1ac
commit d61f9f1c14
17 changed files with 5221 additions and 4935 deletions
+779 -776
View File
File diff suppressed because it is too large Load Diff
+779 -776
View File
File diff suppressed because it is too large Load Diff
+779 -776
View File
File diff suppressed because it is too large Load Diff
+779 -776
View File
File diff suppressed because it is too large Load Diff
+779 -776
View File
File diff suppressed because it is too large Load Diff
+779 -776
View File
File diff suppressed because it is too large Load Diff
+91 -87
View File
@@ -57,7 +57,7 @@ interface IDBIndexParameters {
interface IDBObjectStoreParameters {
autoIncrement?: boolean;
keyPath?: IDBKeyPath | null;
keyPath?: string | string[];
}
interface KeyAlgorithm {
@@ -94,7 +94,7 @@ interface RequestInit {
body?: any;
cache?: RequestCache;
credentials?: RequestCredentials;
headers?: Headers | string[][];
headers?: HeadersInit;
integrity?: string;
keepalive?: boolean;
method?: string;
@@ -106,7 +106,7 @@ interface RequestInit {
}
interface ResponseInit {
headers?: Headers | string[][];
headers?: HeadersInit;
status?: number;
statusText?: string;
}
@@ -461,10 +461,10 @@ interface FileReader extends EventTarget, MSBaseReader {
readAsBinaryString(blob: Blob): void;
readAsDataURL(blob: Blob): void;
readAsText(blob: Blob, encoding?: string): void;
addEventListener<K extends keyof MSBaseReaderEventMap>(type: K, listener: (this: FileReader, ev: MSBaseReaderEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof MSBaseReaderEventMap>(type: K, listener: (this: FileReader, ev: MSBaseReaderEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof MSBaseReaderEventMap>(type: K, listener: (this: FileReader, ev: MSBaseReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof MSBaseReaderEventMap>(type: K, listener: (this: FileReader, ev: MSBaseReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var FileReader: {
@@ -492,7 +492,7 @@ interface Headers {
declare var Headers: {
prototype: Headers;
new(init?: Headers | string[][] | object): Headers;
new(init?: HeadersInit): Headers;
};
interface IDBCursor {
@@ -544,11 +544,12 @@ interface IDBDatabase extends EventTarget {
createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;
deleteObjectStore(name: string): void;
transaction(storeNames: string | string[], mode?: IDBTransactionMode): IDBTransaction;
addEventListener(type: "versionchange", listener: (ev: IDBVersionChangeEvent) => any, useCapture?: boolean): void;
addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener(type: "versionchange", listener: (this: IDBDatabase, ev: IDBVersionChangeEvent) => any, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: "versionchange", listener: (this: IDBDatabase, ev: IDBVersionChangeEvent) => any, options?: boolean | EventListenerOptions): void;
addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var IDBDatabase: {
@@ -632,10 +633,10 @@ interface IDBOpenDBRequestEventMap extends IDBRequestEventMap {
interface IDBOpenDBRequest extends IDBRequest {
onblocked: (this: IDBOpenDBRequest, ev: Event) => any;
onupgradeneeded: (this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any;
addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var IDBOpenDBRequest: {
@@ -656,10 +657,10 @@ interface IDBRequest extends EventTarget {
readonly result: any;
source: IDBObjectStore | IDBIndex | IDBCursor;
readonly transaction: IDBTransaction;
addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var IDBRequest: {
@@ -685,10 +686,10 @@ interface IDBTransaction extends EventTarget {
readonly READ_ONLY: string;
readonly READ_WRITE: string;
readonly VERSION_CHANGE: string;
addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var IDBTransaction: {
@@ -753,10 +754,10 @@ interface MessagePort extends EventTarget {
close(): void;
postMessage(message?: any, transfer?: any[]): void;
start(): void;
addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var MessagePort: {
@@ -784,10 +785,10 @@ interface Notification extends EventTarget {
readonly tag: string;
readonly title: string;
close(): void;
addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var Notification: {
@@ -1014,10 +1015,10 @@ interface ServiceWorker extends EventTarget, AbstractWorker {
readonly scriptURL: USVString;
readonly state: ServiceWorkerState;
postMessage(message: any, transfer?: any[]): void;
addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var ServiceWorker: {
@@ -1041,10 +1042,10 @@ interface ServiceWorkerRegistration extends EventTarget {
showNotification(title: string, options?: NotificationOptions): Promise<void>;
unregister(): Promise<boolean>;
update(): Promise<void>;
addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var ServiceWorkerRegistration: {
@@ -1109,10 +1110,10 @@ interface WebSocket extends EventTarget {
readonly CLOSING: number;
readonly CONNECTING: number;
readonly OPEN: number;
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var WebSocket: {
@@ -1132,10 +1133,10 @@ interface Worker extends EventTarget, AbstractWorker {
onmessage: (this: Worker, ev: MessageEvent) => any;
postMessage(message: any, transfer?: any[]): void;
terminate(): void;
addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var Worker: {
@@ -1175,10 +1176,10 @@ interface XMLHttpRequest extends EventTarget, XMLHttpRequestEventTarget {
readonly LOADING: number;
readonly OPENED: number;
readonly UNSENT: number;
addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var XMLHttpRequest: {
@@ -1192,10 +1193,10 @@ declare var XMLHttpRequest: {
};
interface XMLHttpRequestUpload extends EventTarget, XMLHttpRequestEventTarget {
addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var XMLHttpRequestUpload: {
@@ -1209,10 +1210,10 @@ interface AbstractWorkerEventMap {
interface AbstractWorker {
onerror: (this: AbstractWorker, ev: ErrorEvent) => any;
addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
interface Body {
@@ -1249,10 +1250,10 @@ interface MSBaseReader {
readonly DONE: number;
readonly EMPTY: number;
readonly LOADING: number;
addEventListener<K extends keyof MSBaseReaderEventMap>(type: K, listener: (this: MSBaseReader, ev: MSBaseReaderEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof MSBaseReaderEventMap>(type: K, listener: (this: MSBaseReader, ev: MSBaseReaderEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof MSBaseReaderEventMap>(type: K, listener: (this: MSBaseReader, ev: MSBaseReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof MSBaseReaderEventMap>(type: K, listener: (this: MSBaseReader, ev: MSBaseReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
interface NavigatorBeacon {
@@ -1306,10 +1307,10 @@ interface XMLHttpRequestEventTarget {
onloadstart: (this: XMLHttpRequest, ev: Event) => any;
onprogress: (this: XMLHttpRequest, ev: ProgressEvent) => any;
ontimeout: (this: XMLHttpRequest, ev: ProgressEvent) => any;
addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
interface Client {
@@ -1344,10 +1345,10 @@ interface DedicatedWorkerGlobalScope extends WorkerGlobalScope {
onmessage: (this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any;
close(): void;
postMessage(message: any, transfer?: any[]): void;
addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var DedicatedWorkerGlobalScope: {
@@ -1457,10 +1458,10 @@ interface ServiceWorkerGlobalScope extends WorkerGlobalScope {
onsync: (this: ServiceWorkerGlobalScope, ev: SyncEvent) => any;
readonly registration: ServiceWorkerRegistration;
skipWaiting(): Promise<void>;
addEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var ServiceWorkerGlobalScope: {
@@ -1504,10 +1505,10 @@ interface WorkerGlobalScope extends EventTarget, WorkerUtils, WindowConsole, Glo
msWriteProfilerMark(profilerMarkName: string): void;
createImageBitmap(image: ImageBitmap | ImageData | Blob, options?: ImageBitmapOptions): Promise<ImageBitmap>;
createImageBitmap(image: ImageBitmap | ImageData | Blob, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
addEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
removeEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, useCapture?: boolean): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var WorkerGlobalScope: {
@@ -1564,8 +1565,10 @@ interface BroadcastChannel extends EventTarget {
onmessageerror: (ev: MessageEvent) => any;
close(): void;
postMessage(message: any): void;
addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, useCapture?: boolean): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var BroadcastChannel: {
@@ -1895,10 +1898,10 @@ declare function btoa(rawString: string): string;
declare var console: Console;
declare function fetch(input: RequestInfo, init?: RequestInit): Promise<Response>;
declare function dispatchEvent(evt: Event): boolean;
declare function addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, useCapture?: boolean): void;
declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
declare function removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, useCapture?: boolean): void;
declare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
declare function addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
declare function removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
declare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
type AlgorithmIdentifier = string | Algorithm;
type BodyInit = any;
type IDBKeyPath = string;
@@ -1907,6 +1910,7 @@ type USVString = string;
type IDBValidKey = number | string | Date | IDBArrayKey;
type BufferSource = ArrayBuffer | ArrayBufferView;
type FormDataEntryValue = string | File;
type HeadersInit = Headers | string[][] | { [key: string]: string };
type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique";
type IDBRequestReadyState = "pending" | "done";
type IDBTransactionMode = "readonly" | "readwrite" | "versionchange";
+5
View File
@@ -1207,6 +1207,11 @@ declare namespace ts.server.protocol {
* Optional prefix to apply to possible completions.
*/
prefix?: string;
/**
* If enabled, TypeScript will search through all external modules' exports and add them to the completions list.
* This affects lone identifier completions but not completions on the right hand side of `obj.`.
*/
includeExternalModuleExports: boolean;
}
/**
* Completions request; value of command field is "completions".
+19 -4
View File
@@ -152,7 +152,7 @@ var ts;
var ts;
(function (ts) {
ts.versionMajorMinor = "2.6";
ts.version = ts.versionMajorMinor + ".1";
ts.version = ts.versionMajorMinor + ".2";
})(ts || (ts = {}));
(function (ts) {
function isExternalModuleNameRelative(moduleName) {
@@ -20836,18 +20836,21 @@ var ts;
function createNodeBuilder() {
return {
typeToTypeNode: function (type, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = typeToTypeNodeHelper(type, context);
var result = context.encounteredError ? undefined : resultingNode;
return result;
},
indexInfoToIndexSignatureDeclaration: function (indexInfo, kind, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = indexInfoToIndexSignatureDeclarationHelper(indexInfo, kind, context);
var result = context.encounteredError ? undefined : resultingNode;
return result;
},
signatureToSignatureDeclaration: function (signature, kind, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = signatureToSignatureDeclarationHelper(signature, kind, context);
var result = context.encounteredError ? undefined : resultingNode;
@@ -59077,6 +59080,9 @@ var ts;
function isNodeModulesDirectory(dirPath) {
return ts.endsWith(dirPath, "/node_modules");
}
function isNodeModulesAtTypesDirectory(dirPath) {
return ts.endsWith(dirPath, "/node_modules/@types");
}
function isDirectoryAtleastAtLevelFromFSRoot(dirPath, minLevels) {
for (var searchIndex = ts.getRootLength(dirPath); minLevels > 0; minLevels--) {
searchIndex = dirPath.indexOf(ts.directorySeparator, searchIndex) + 1;
@@ -59258,10 +59264,19 @@ var ts;
isChangedFailedLookupLocation = function (location) { return isInDirectoryPath(fileOrDirectoryPath, resolutionHost.toPath(location)); };
}
else {
if (!isPathWithDefaultFailedLookupExtension(fileOrDirectoryPath) && !customFailedLookupPaths.has(fileOrDirectoryPath)) {
return false;
var dirOfFileOrDirectory = ts.getDirectoryPath(fileOrDirectoryPath);
if (isNodeModulesAtTypesDirectory(dirOfFileOrDirectory) || isNodeModulesDirectory(dirOfFileOrDirectory)) {
isChangedFailedLookupLocation = function (location) {
var locationPath = resolutionHost.toPath(location);
return locationPath === fileOrDirectoryPath || ts.startsWith(resolutionHost.toPath(location), fileOrDirectoryPath);
};
}
else {
if (!isPathWithDefaultFailedLookupExtension(fileOrDirectoryPath) && !customFailedLookupPaths.has(fileOrDirectoryPath)) {
return false;
}
isChangedFailedLookupLocation = function (location) { return resolutionHost.toPath(location) === fileOrDirectoryPath; };
}
isChangedFailedLookupLocation = function (location) { return resolutionHost.toPath(location) === fileOrDirectoryPath; };
}
var hasChangedFailedLookupLocation = function (resolution) { return ts.some(resolution.failedLookupLocations, isChangedFailedLookupLocation); };
var invalidatedFilesCount = filesWithInvalidatedResolutions && filesWithInvalidatedResolutions.size;
+115 -52
View File
@@ -1177,7 +1177,7 @@ var ts;
var ts;
(function (ts) {
ts.versionMajorMinor = "2.6";
ts.version = ts.versionMajorMinor + ".1";
ts.version = ts.versionMajorMinor + ".2";
})(ts || (ts = {}));
(function (ts) {
function isExternalModuleNameRelative(moduleName) {
@@ -22071,18 +22071,21 @@ var ts;
function createNodeBuilder() {
return {
typeToTypeNode: function (type, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = typeToTypeNodeHelper(type, context);
var result = context.encounteredError ? undefined : resultingNode;
return result;
},
indexInfoToIndexSignatureDeclaration: function (indexInfo, kind, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = indexInfoToIndexSignatureDeclarationHelper(indexInfo, kind, context);
var result = context.encounteredError ? undefined : resultingNode;
return result;
},
signatureToSignatureDeclaration: function (signature, kind, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = signatureToSignatureDeclarationHelper(signature, kind, context);
var result = context.encounteredError ? undefined : resultingNode;
@@ -65050,14 +65053,14 @@ var ts;
KeywordCompletionFilters[KeywordCompletionFilters["ClassElementKeywords"] = 1] = "ClassElementKeywords";
KeywordCompletionFilters[KeywordCompletionFilters["ConstructorParameterKeywords"] = 2] = "ConstructorParameterKeywords";
})(KeywordCompletionFilters || (KeywordCompletionFilters = {}));
function getCompletionsAtPosition(host, typeChecker, log, compilerOptions, sourceFile, position, allSourceFiles) {
function getCompletionsAtPosition(host, typeChecker, log, compilerOptions, sourceFile, position, allSourceFiles, options) {
if (ts.isInReferenceComment(sourceFile, position)) {
return Completions.PathCompletions.getTripleSlashReferenceCompletion(sourceFile, position, compilerOptions, host);
}
if (ts.isInString(sourceFile, position)) {
return getStringLiteralCompletionEntries(sourceFile, position, typeChecker, compilerOptions, host, log);
}
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles);
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, options);
if (!completionData) {
return undefined;
}
@@ -65264,40 +65267,60 @@ var ts;
}
function getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, _a, allSourceFiles) {
var name = _a.name, source = _a.source;
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles);
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, { includeExternalModuleExports: true });
if (!completionData) {
return undefined;
return { type: "none" };
}
var symbols = completionData.symbols, location = completionData.location, allowStringLiteral = completionData.allowStringLiteral, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, request = completionData.request;
if (request) {
return { type: "request", request: request };
}
var symbols = completionData.symbols, location = completionData.location, allowStringLiteral = completionData.allowStringLiteral, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap;
var symbol = ts.find(symbols, function (s) {
return getCompletionEntryDisplayNameForSymbol(s, compilerOptions.target, false, allowStringLiteral) === name
&& getSourceFromOrigin(symbolToOriginInfoMap[ts.getSymbolId(s)]) === source;
});
return symbol && { symbol: symbol, location: location, symbolToOriginInfoMap: symbolToOriginInfoMap };
return symbol ? { type: "symbol", symbol: symbol, location: location, symbolToOriginInfoMap: symbolToOriginInfoMap } : { type: "none" };
}
function getCompletionEntryDetails(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles, host, rulesProvider) {
var name = entryId.name, source = entryId.source;
var symbolCompletion = getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles);
if (symbolCompletion) {
var symbol = symbolCompletion.symbol, location = symbolCompletion.location, symbolToOriginInfoMap = symbolCompletion.symbolToOriginInfoMap;
var codeActions = getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, typeChecker, host, compilerOptions, sourceFile, rulesProvider);
var kindModifiers = ts.SymbolDisplay.getSymbolModifiers(symbol);
var _a = ts.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, location, location, 7), displayParts = _a.displayParts, documentation = _a.documentation, symbolKind = _a.symbolKind, tags = _a.tags;
return { name: name, kindModifiers: kindModifiers, kind: symbolKind, displayParts: displayParts, documentation: documentation, tags: tags, codeActions: codeActions, source: source === undefined ? undefined : [ts.textPart(source)] };
switch (symbolCompletion.type) {
case "request": {
var request = symbolCompletion.request;
switch (request.kind) {
case "JsDocTagName":
return ts.JsDoc.getJSDocTagNameCompletionDetails(name);
case "JsDocTag":
return ts.JsDoc.getJSDocTagCompletionDetails(name);
case "JsDocParameterName":
return ts.JsDoc.getJSDocParameterNameCompletionDetails(name);
default:
return ts.Debug.assertNever(request);
}
}
case "symbol": {
var symbol = symbolCompletion.symbol, location = symbolCompletion.location, symbolToOriginInfoMap = symbolCompletion.symbolToOriginInfoMap;
var codeActions = getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, typeChecker, host, compilerOptions, sourceFile, rulesProvider);
var kindModifiers = ts.SymbolDisplay.getSymbolModifiers(symbol);
var _a = ts.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, location, location, 7), displayParts = _a.displayParts, documentation = _a.documentation, symbolKind = _a.symbolKind, tags = _a.tags;
return { name: name, kindModifiers: kindModifiers, kind: symbolKind, displayParts: displayParts, documentation: documentation, tags: tags, codeActions: codeActions, source: source === undefined ? undefined : [ts.textPart(source)] };
}
case "none": {
if (ts.some(getKeywordCompletions(0), function (c) { return c.name === name; })) {
return {
name: name,
kind: "keyword",
kindModifiers: "",
displayParts: [ts.displayPart(name, ts.SymbolDisplayPartKind.keyword)],
documentation: undefined,
tags: undefined,
codeActions: undefined,
source: undefined,
};
}
return undefined;
}
}
if (source === undefined && ts.some(getKeywordCompletions(0), function (c) { return c.name === name; })) {
return {
name: name,
kind: "keyword",
kindModifiers: "",
displayParts: [ts.displayPart(name, ts.SymbolDisplayPartKind.keyword)],
documentation: undefined,
tags: undefined,
codeActions: undefined,
source: undefined,
};
}
return undefined;
}
Completions.getCompletionEntryDetails = getCompletionEntryDetails;
function getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, checker, host, compilerOptions, sourceFile, rulesProvider) {
@@ -65321,10 +65344,10 @@ var ts;
}
function getCompletionEntrySymbol(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles) {
var completion = getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles);
return completion && completion.symbol;
return completion.type === "symbol" ? completion.symbol : undefined;
}
Completions.getCompletionEntrySymbol = getCompletionEntrySymbol;
function getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles) {
function getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, options) {
var isJavaScriptFile = ts.isSourceFileJavaScript(sourceFile);
var request;
var start = ts.timestamp();
@@ -65366,7 +65389,7 @@ var ts;
}
if (request) {
return {
symbols: undefined,
symbols: ts.emptyArray,
isGlobalCompletion: false,
isMemberCompletion: false,
allowStringLiteral: false,
@@ -65591,7 +65614,9 @@ var ts;
}
var symbolMeanings = 793064 | 107455 | 1920 | 2097152;
symbols = typeChecker.getSymbolsInScope(scopeNode, symbolMeanings);
getSymbolsFromOtherSourceFileExports(symbols, previousToken && ts.isIdentifier(previousToken) ? previousToken.text : "");
if (options.includeExternalModuleExports) {
getSymbolsFromOtherSourceFileExports(symbols, previousToken && ts.isIdentifier(previousToken) ? previousToken.text : "");
}
filterGlobalCompletion(symbols);
return true;
}
@@ -69047,6 +69072,7 @@ var ts;
}));
}
JsDoc.getJSDocTagNameCompletions = getJSDocTagNameCompletions;
JsDoc.getJSDocTagNameCompletionDetails = getJSDocTagCompletionDetails;
function getJSDocTagCompletions() {
return jsDocTagCompletionEntries || (jsDocTagCompletionEntries = ts.map(jsDocTagNames, function (tagName) {
return {
@@ -69058,6 +69084,18 @@ var ts;
}));
}
JsDoc.getJSDocTagCompletions = getJSDocTagCompletions;
function getJSDocTagCompletionDetails(name) {
return {
name: name,
kind: "",
kindModifiers: "",
displayParts: [ts.textPart(name)],
documentation: ts.emptyArray,
tags: ts.emptyArray,
codeActions: undefined,
};
}
JsDoc.getJSDocTagCompletionDetails = getJSDocTagCompletionDetails;
function getJSDocParameterNameCompletions(tag) {
if (!ts.isIdentifier(tag.name)) {
return ts.emptyArray;
@@ -69079,6 +69117,18 @@ var ts;
});
}
JsDoc.getJSDocParameterNameCompletions = getJSDocParameterNameCompletions;
function getJSDocParameterNameCompletionDetails(name) {
return {
name: name,
kind: "parameter",
kindModifiers: "",
displayParts: [ts.textPart(name)],
documentation: ts.emptyArray,
tags: ts.emptyArray,
codeActions: undefined,
};
}
JsDoc.getJSDocParameterNameCompletionDetails = getJSDocParameterNameCompletionDetails;
function getDocCommentTemplateAtPosition(newLine, sourceFile, position) {
if (ts.isInString(sourceFile, position) || ts.isInComment(sourceFile, position) || ts.hasDocComment(sourceFile, position)) {
return undefined;
@@ -77996,7 +78046,7 @@ var ts;
if (!isJS) {
var type = checker.getTypeOfSymbolAtLocation(usage.symbol, usage.node);
type = checker.getBaseTypeOfLiteralType(type);
typeNode = checker.typeToTypeNode(type, node, ts.NodeBuilderFlags.NoTruncation);
typeNode = checker.typeToTypeNode(type, scope, ts.NodeBuilderFlags.NoTruncation);
}
var paramDecl = ts.createParameter(undefined, undefined, undefined, name, undefined, typeNode);
parameters.push(paramDecl);
@@ -78862,7 +78912,7 @@ var ts;
})(ts || (ts = {}));
var ts;
(function (ts) {
ts.servicesVersion = "0.6";
ts.servicesVersion = "0.7";
var ruleProvider;
function createNode(kind, pos, end, parent) {
var node = ts.isNodeKind(kind) ? new NodeObject(kind, pos, end) :
@@ -79772,9 +79822,10 @@ var ts;
synchronizeHostData();
return program.getOptionsDiagnostics(cancellationToken).concat(program.getGlobalDiagnostics(cancellationToken));
}
function getCompletionsAtPosition(fileName, position) {
function getCompletionsAtPosition(fileName, position, options) {
if (options === void 0) { options = { includeExternalModuleExports: false }; }
synchronizeHostData();
return ts.Completions.getCompletionsAtPosition(host, program.getTypeChecker(), log, program.getCompilerOptions(), getValidSourceFile(fileName), position, program.getSourceFiles());
return ts.Completions.getCompletionsAtPosition(host, program.getTypeChecker(), log, program.getCompilerOptions(), getValidSourceFile(fileName), position, program.getSourceFiles(), options);
}
function getCompletionEntryDetails(fileName, position, name, formattingOptions, source) {
synchronizeHostData();
@@ -80778,9 +80829,9 @@ var ts;
return ts.filter(results, function (r) { return ts.normalizeSlashes(r.fileName).toLowerCase() === normalizedName; });
});
};
LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position) {
LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position, options) {
var _this = this;
return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position); });
return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ", " + options + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position, options); });
};
LanguageServiceShimObject.prototype.getCompletionEntryDetails = function (fileName, position, entryName, options, source) {
var _this = this;
@@ -81373,6 +81424,7 @@ var ts;
CommandTypes["Completions"] = "completions";
CommandTypes["CompletionsFull"] = "completions-full";
CommandTypes["CompletionDetails"] = "completionEntryDetails";
CommandTypes["CompletionDetailsFull"] = "completionEntryDetailsFull";
CommandTypes["CompileOnSaveAffectedFileList"] = "compileOnSaveAffectedFileList";
CommandTypes["CompileOnSaveEmitFile"] = "compileOnSaveEmitFile";
CommandTypes["Configure"] = "configure";
@@ -82079,6 +82131,9 @@ var ts;
function isNodeModulesDirectory(dirPath) {
return ts.endsWith(dirPath, "/node_modules");
}
function isNodeModulesAtTypesDirectory(dirPath) {
return ts.endsWith(dirPath, "/node_modules/@types");
}
function isDirectoryAtleastAtLevelFromFSRoot(dirPath, minLevels) {
for (var searchIndex = ts.getRootLength(dirPath); minLevels > 0; minLevels--) {
searchIndex = dirPath.indexOf(ts.directorySeparator, searchIndex) + 1;
@@ -82260,10 +82315,19 @@ var ts;
isChangedFailedLookupLocation = function (location) { return isInDirectoryPath(fileOrDirectoryPath, resolutionHost.toPath(location)); };
}
else {
if (!isPathWithDefaultFailedLookupExtension(fileOrDirectoryPath) && !customFailedLookupPaths.has(fileOrDirectoryPath)) {
return false;
var dirOfFileOrDirectory = ts.getDirectoryPath(fileOrDirectoryPath);
if (isNodeModulesAtTypesDirectory(dirOfFileOrDirectory) || isNodeModulesDirectory(dirOfFileOrDirectory)) {
isChangedFailedLookupLocation = function (location) {
var locationPath = resolutionHost.toPath(location);
return locationPath === fileOrDirectoryPath || ts.startsWith(resolutionHost.toPath(location), fileOrDirectoryPath);
};
}
else {
if (!isPathWithDefaultFailedLookupExtension(fileOrDirectoryPath) && !customFailedLookupPaths.has(fileOrDirectoryPath)) {
return false;
}
isChangedFailedLookupLocation = function (location) { return resolutionHost.toPath(location) === fileOrDirectoryPath; };
}
isChangedFailedLookupLocation = function (location) { return resolutionHost.toPath(location) === fileOrDirectoryPath; };
}
var hasChangedFailedLookupLocation = function (resolution) { return ts.some(resolution.failedLookupLocations, isChangedFailedLookupLocation); };
var invalidatedFilesCount = filesWithInvalidatedResolutions && filesWithInvalidatedResolutions.size;
@@ -85314,7 +85378,10 @@ var ts;
return _this.requiredResponse(_this.getCompletions(request.arguments, false));
},
_a[server.CommandNames.CompletionDetails] = function (request) {
return _this.requiredResponse(_this.getCompletionEntryDetails(request.arguments));
return _this.requiredResponse(_this.getCompletionEntryDetails(request.arguments, true));
},
_a[server.CommandNames.CompletionDetailsFull] = function (request) {
return _this.requiredResponse(_this.getCompletionEntryDetails(request.arguments, false));
},
_a[server.CommandNames.CompileOnSaveAffectedFileList] = function (request) {
return _this.requiredResponse(_this.getCompileOnSaveAffectedFileList(request.arguments));
@@ -86196,10 +86263,10 @@ var ts;
var _a = this.getFileAndProject(args), file = _a.file, project = _a.project;
var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);
var position = this.getPosition(args, scriptInfo);
var completions = project.getLanguageService().getCompletionsAtPosition(file, position);
var completions = project.getLanguageService().getCompletionsAtPosition(file, position, args);
if (simplifiedResult) {
return ts.mapDefined(completions && completions.entries, function (entry) {
if (completions.isMemberCompletion || (entry.name.toLowerCase().indexOf(prefix.toLowerCase()) === 0)) {
if (completions.isMemberCompletion || ts.startsWith(entry.name.toLowerCase(), prefix.toLowerCase())) {
var name = entry.name, kind = entry.kind, kindModifiers = entry.kindModifiers, sortText = entry.sortText, replacementSpan = entry.replacementSpan, hasAction = entry.hasAction, source = entry.source;
var convertedSpan = replacementSpan ? _this.decorateSpan(replacementSpan, scriptInfo) : undefined;
return { name: name, kind: kind, kindModifiers: kindModifiers, sortText: sortText, replacementSpan: convertedSpan, hasAction: hasAction || undefined, source: source };
@@ -86210,23 +86277,19 @@ var ts;
return completions;
}
};
Session.prototype.getCompletionEntryDetails = function (args) {
Session.prototype.getCompletionEntryDetails = function (args, simplifiedResult) {
var _this = this;
var _a = this.getFileAndProject(args), file = _a.file, project = _a.project;
var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);
var position = this.getPosition(args, scriptInfo);
var formattingOptions = project.projectService.getFormatCodeOptions(file);
return ts.mapDefined(args.entryNames, function (entryName) {
var result = ts.mapDefined(args.entryNames, function (entryName) {
var _a = typeof entryName === "string" ? { name: entryName, source: undefined } : entryName, name = _a.name, source = _a.source;
var details = project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source);
if (details) {
var mappedCodeActions = ts.map(details.codeActions, function (action) { return _this.mapCodeAction(action, scriptInfo); });
return __assign({}, details, { codeActions: mappedCodeActions });
}
else {
return undefined;
}
return project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source);
});
return simplifiedResult
? result.map(function (details) { return (__assign({}, details, { codeActions: ts.map(details.codeActions, function (action) { return _this.mapCodeAction(action, scriptInfo); }) })); })
: result;
};
Session.prototype.getCompileOnSaveAffectedFileList = function (args) {
var info = this.projectService.getScriptInfoEnsuringProjectsUptoDate(args.file);
+11 -3
View File
@@ -3914,7 +3914,7 @@ declare namespace ts {
getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[];
getEncodedSyntacticClassifications(fileName: string, span: TextSpan): Classifications;
getEncodedSemanticClassifications(fileName: string, span: TextSpan): Classifications;
getCompletionsAtPosition(fileName: string, position: number): CompletionInfo;
getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined): CompletionInfo;
getCompletionEntryDetails(fileName: string, position: number, name: string, options: FormatCodeOptions | FormatCodeSettings | undefined, source: string | undefined): CompletionEntryDetails;
getCompletionEntrySymbol(fileName: string, position: number, name: string, source: string | undefined): Symbol;
getQuickInfoAtPosition(fileName: string, position: number): QuickInfo;
@@ -3952,6 +3952,9 @@ declare namespace ts {
getProgram(): Program;
dispose(): void;
}
interface GetCompletionsAtPositionOptions {
includeExternalModuleExports: boolean;
}
interface ApplyCodeActionCommandResult {
successMessage: string;
}
@@ -4598,7 +4601,7 @@ declare namespace ts {
}
declare namespace ts {
/** The version of the language service API */
const servicesVersion = "0.6";
const servicesVersion = "0.7";
interface DisplayPartsSymbolWriter extends SymbolWriter {
displayParts(): SymbolDisplayPart[];
}
@@ -6015,6 +6018,11 @@ declare namespace ts.server.protocol {
* Optional prefix to apply to possible completions.
*/
prefix?: string;
/**
* If enabled, TypeScript will search through all external modules' exports and add them to the completions list.
* This affects lone identifier completions but not completions on the right hand side of `obj.`.
*/
includeExternalModuleExports: boolean;
}
/**
* Completions request; value of command field is "completions".
@@ -6961,7 +6969,7 @@ declare namespace ts.server {
private getFormattingEditsAfterKeystrokeFull(args);
private getFormattingEditsAfterKeystroke(args);
private getCompletions(args, simplifiedResult);
private getCompletionEntryDetails(args);
private getCompletionEntryDetails(args, simplifiedResult);
private getCompileOnSaveAffectedFileList(args);
private emitFile(args);
private getSignatureHelpItems(args, simplifiedResult);
+119 -54
View File
@@ -1363,7 +1363,7 @@ var ts;
// If changing the text in this section, be sure to test `configureNightly` too.
ts.versionMajorMinor = "2.6";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".1";
ts.version = ts.versionMajorMinor + ".2";
})(ts || (ts = {}));
(function (ts) {
function isExternalModuleNameRelative(moduleName) {
@@ -27775,18 +27775,21 @@ var ts;
function createNodeBuilder() {
return {
typeToTypeNode: function (type, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8 /* Synthesized */) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = typeToTypeNodeHelper(type, context);
var result = context.encounteredError ? undefined : resultingNode;
return result;
},
indexInfoToIndexSignatureDeclaration: function (indexInfo, kind, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8 /* Synthesized */) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = indexInfoToIndexSignatureDeclarationHelper(indexInfo, kind, context);
var result = context.encounteredError ? undefined : resultingNode;
return result;
},
signatureToSignatureDeclaration: function (signature, kind, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8 /* Synthesized */) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = signatureToSignatureDeclarationHelper(signature, kind, context);
var result = context.encounteredError ? undefined : resultingNode;
@@ -78943,14 +78946,14 @@ var ts;
KeywordCompletionFilters[KeywordCompletionFilters["ClassElementKeywords"] = 1] = "ClassElementKeywords";
KeywordCompletionFilters[KeywordCompletionFilters["ConstructorParameterKeywords"] = 2] = "ConstructorParameterKeywords";
})(KeywordCompletionFilters || (KeywordCompletionFilters = {}));
function getCompletionsAtPosition(host, typeChecker, log, compilerOptions, sourceFile, position, allSourceFiles) {
function getCompletionsAtPosition(host, typeChecker, log, compilerOptions, sourceFile, position, allSourceFiles, options) {
if (ts.isInReferenceComment(sourceFile, position)) {
return Completions.PathCompletions.getTripleSlashReferenceCompletion(sourceFile, position, compilerOptions, host);
}
if (ts.isInString(sourceFile, position)) {
return getStringLiteralCompletionEntries(sourceFile, position, typeChecker, compilerOptions, host, log);
}
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles);
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, options);
if (!completionData) {
return undefined;
}
@@ -79216,11 +79219,14 @@ var ts;
}
function getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, _a, allSourceFiles) {
var name = _a.name, source = _a.source;
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles);
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, { includeExternalModuleExports: true });
if (!completionData) {
return undefined;
return { type: "none" };
}
var symbols = completionData.symbols, location = completionData.location, allowStringLiteral = completionData.allowStringLiteral, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, request = completionData.request;
if (request) {
return { type: "request", request: request };
}
var symbols = completionData.symbols, location = completionData.location, allowStringLiteral = completionData.allowStringLiteral, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap;
// Find the symbol with the matching entry name.
// We don't need to perform character checks here because we're only comparing the
// name against 'entryName' (which is known to be good), not building a new
@@ -79229,33 +79235,50 @@ var ts;
return getCompletionEntryDisplayNameForSymbol(s, compilerOptions.target, /*performCharacterChecks*/ false, allowStringLiteral) === name
&& getSourceFromOrigin(symbolToOriginInfoMap[ts.getSymbolId(s)]) === source;
});
return symbol && { symbol: symbol, location: location, symbolToOriginInfoMap: symbolToOriginInfoMap };
return symbol ? { type: "symbol", symbol: symbol, location: location, symbolToOriginInfoMap: symbolToOriginInfoMap } : { type: "none" };
}
function getCompletionEntryDetails(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles, host, rulesProvider) {
var name = entryId.name, source = entryId.source;
// Compute all the completion symbols again.
var symbolCompletion = getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles);
if (symbolCompletion) {
var symbol = symbolCompletion.symbol, location = symbolCompletion.location, symbolToOriginInfoMap = symbolCompletion.symbolToOriginInfoMap;
var codeActions = getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, typeChecker, host, compilerOptions, sourceFile, rulesProvider);
var kindModifiers = ts.SymbolDisplay.getSymbolModifiers(symbol);
var _a = ts.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, location, location, 7 /* All */), displayParts = _a.displayParts, documentation = _a.documentation, symbolKind = _a.symbolKind, tags = _a.tags;
return { name: name, kindModifiers: kindModifiers, kind: symbolKind, displayParts: displayParts, documentation: documentation, tags: tags, codeActions: codeActions, source: source === undefined ? undefined : [ts.textPart(source)] };
switch (symbolCompletion.type) {
case "request": {
var request = symbolCompletion.request;
switch (request.kind) {
case "JsDocTagName":
return ts.JsDoc.getJSDocTagNameCompletionDetails(name);
case "JsDocTag":
return ts.JsDoc.getJSDocTagCompletionDetails(name);
case "JsDocParameterName":
return ts.JsDoc.getJSDocParameterNameCompletionDetails(name);
default:
return ts.Debug.assertNever(request);
}
}
case "symbol": {
var symbol = symbolCompletion.symbol, location = symbolCompletion.location, symbolToOriginInfoMap = symbolCompletion.symbolToOriginInfoMap;
var codeActions = getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, typeChecker, host, compilerOptions, sourceFile, rulesProvider);
var kindModifiers = ts.SymbolDisplay.getSymbolModifiers(symbol);
var _a = ts.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, location, location, 7 /* All */), displayParts = _a.displayParts, documentation = _a.documentation, symbolKind = _a.symbolKind, tags = _a.tags;
return { name: name, kindModifiers: kindModifiers, kind: symbolKind, displayParts: displayParts, documentation: documentation, tags: tags, codeActions: codeActions, source: source === undefined ? undefined : [ts.textPart(source)] };
}
case "none": {
// Didn't find a symbol with this name. See if we can find a keyword instead.
if (ts.some(getKeywordCompletions(0 /* None */), function (c) { return c.name === name; })) {
return {
name: name,
kind: "keyword" /* keyword */,
kindModifiers: "" /* none */,
displayParts: [ts.displayPart(name, ts.SymbolDisplayPartKind.keyword)],
documentation: undefined,
tags: undefined,
codeActions: undefined,
source: undefined,
};
}
return undefined;
}
}
// Didn't find a symbol with this name. See if we can find a keyword instead.
if (source === undefined && ts.some(getKeywordCompletions(0 /* None */), function (c) { return c.name === name; })) {
return {
name: name,
kind: "keyword" /* keyword */,
kindModifiers: "" /* none */,
displayParts: [ts.displayPart(name, ts.SymbolDisplayPartKind.keyword)],
documentation: undefined,
tags: undefined,
codeActions: undefined,
source: undefined,
};
}
return undefined;
}
Completions.getCompletionEntryDetails = getCompletionEntryDetails;
function getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, checker, host, compilerOptions, sourceFile, rulesProvider) {
@@ -79279,10 +79302,10 @@ var ts;
}
function getCompletionEntrySymbol(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles) {
var completion = getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles);
return completion && completion.symbol;
return completion.type === "symbol" ? completion.symbol : undefined;
}
Completions.getCompletionEntrySymbol = getCompletionEntrySymbol;
function getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles) {
function getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, options) {
var isJavaScriptFile = ts.isSourceFileJavaScript(sourceFile);
var request;
var start = ts.timestamp();
@@ -79348,7 +79371,7 @@ var ts;
}
if (request) {
return {
symbols: undefined,
symbols: ts.emptyArray,
isGlobalCompletion: false,
isMemberCompletion: false,
allowStringLiteral: false,
@@ -79637,7 +79660,9 @@ var ts;
}
var symbolMeanings = 793064 /* Type */ | 107455 /* Value */ | 1920 /* Namespace */ | 2097152 /* Alias */;
symbols = typeChecker.getSymbolsInScope(scopeNode, symbolMeanings);
getSymbolsFromOtherSourceFileExports(symbols, previousToken && ts.isIdentifier(previousToken) ? previousToken.text : "");
if (options.includeExternalModuleExports) {
getSymbolsFromOtherSourceFileExports(symbols, previousToken && ts.isIdentifier(previousToken) ? previousToken.text : "");
}
filterGlobalCompletion(symbols);
return true;
}
@@ -83724,6 +83749,7 @@ var ts;
}));
}
JsDoc.getJSDocTagNameCompletions = getJSDocTagNameCompletions;
JsDoc.getJSDocTagNameCompletionDetails = getJSDocTagCompletionDetails;
function getJSDocTagCompletions() {
return jsDocTagCompletionEntries || (jsDocTagCompletionEntries = ts.map(jsDocTagNames, function (tagName) {
return {
@@ -83735,6 +83761,18 @@ var ts;
}));
}
JsDoc.getJSDocTagCompletions = getJSDocTagCompletions;
function getJSDocTagCompletionDetails(name) {
return {
name: name,
kind: "" /* unknown */,
kindModifiers: "",
displayParts: [ts.textPart(name)],
documentation: ts.emptyArray,
tags: ts.emptyArray,
codeActions: undefined,
};
}
JsDoc.getJSDocTagCompletionDetails = getJSDocTagCompletionDetails;
function getJSDocParameterNameCompletions(tag) {
if (!ts.isIdentifier(tag.name)) {
return ts.emptyArray;
@@ -83756,6 +83794,18 @@ var ts;
});
}
JsDoc.getJSDocParameterNameCompletions = getJSDocParameterNameCompletions;
function getJSDocParameterNameCompletionDetails(name) {
return {
name: name,
kind: "parameter" /* parameterElement */,
kindModifiers: "",
displayParts: [ts.textPart(name)],
documentation: ts.emptyArray,
tags: ts.emptyArray,
codeActions: undefined,
};
}
JsDoc.getJSDocParameterNameCompletionDetails = getJSDocParameterNameCompletionDetails;
/**
* Checks if position points to a valid position to add JSDoc comments, and if so,
* returns the appropriate template. Otherwise returns an empty string.
@@ -94080,7 +94130,7 @@ var ts;
var type = checker.getTypeOfSymbolAtLocation(usage.symbol, usage.node);
// Widen the type so we don't emit nonsense annotations like "function fn(x: 3) {"
type = checker.getBaseTypeOfLiteralType(type);
typeNode = checker.typeToTypeNode(type, node, ts.NodeBuilderFlags.NoTruncation);
typeNode = checker.typeToTypeNode(type, scope, ts.NodeBuilderFlags.NoTruncation);
}
var paramDecl = ts.createParameter(
/*decorators*/ undefined,
@@ -95135,7 +95185,7 @@ var ts;
var ts;
(function (ts) {
/** The version of the language service API */
ts.servicesVersion = "0.6";
ts.servicesVersion = "0.7";
/* @internal */
var ruleProvider;
function createNode(kind, pos, end, parent) {
@@ -96154,9 +96204,10 @@ var ts;
synchronizeHostData();
return program.getOptionsDiagnostics(cancellationToken).concat(program.getGlobalDiagnostics(cancellationToken));
}
function getCompletionsAtPosition(fileName, position) {
function getCompletionsAtPosition(fileName, position, options) {
if (options === void 0) { options = { includeExternalModuleExports: false }; }
synchronizeHostData();
return ts.Completions.getCompletionsAtPosition(host, program.getTypeChecker(), log, program.getCompilerOptions(), getValidSourceFile(fileName), position, program.getSourceFiles());
return ts.Completions.getCompletionsAtPosition(host, program.getTypeChecker(), log, program.getCompilerOptions(), getValidSourceFile(fileName), position, program.getSourceFiles(), options);
}
function getCompletionEntryDetails(fileName, position, name, formattingOptions, source) {
synchronizeHostData();
@@ -97247,6 +97298,8 @@ var ts;
/* @internal */
CommandTypes["CompletionsFull"] = "completions-full";
CommandTypes["CompletionDetails"] = "completionEntryDetails";
/* @internal */
CommandTypes["CompletionDetailsFull"] = "completionEntryDetailsFull";
CommandTypes["CompileOnSaveAffectedFileList"] = "compileOnSaveAffectedFileList";
CommandTypes["CompileOnSaveEmitFile"] = "compileOnSaveEmitFile";
CommandTypes["Configure"] = "configure";
@@ -97694,7 +97747,10 @@ var ts;
return _this.requiredResponse(_this.getCompletions(request.arguments, /*simplifiedResult*/ false));
},
_a[server.CommandNames.CompletionDetails] = function (request) {
return _this.requiredResponse(_this.getCompletionEntryDetails(request.arguments));
return _this.requiredResponse(_this.getCompletionEntryDetails(request.arguments, /*simplifiedResult*/ true));
},
_a[server.CommandNames.CompletionDetailsFull] = function (request) {
return _this.requiredResponse(_this.getCompletionEntryDetails(request.arguments, /*simplifiedResult*/ false));
},
_a[server.CommandNames.CompileOnSaveAffectedFileList] = function (request) {
return _this.requiredResponse(_this.getCompileOnSaveAffectedFileList(request.arguments));
@@ -98605,10 +98661,10 @@ var ts;
var _a = this.getFileAndProject(args), file = _a.file, project = _a.project;
var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);
var position = this.getPosition(args, scriptInfo);
var completions = project.getLanguageService().getCompletionsAtPosition(file, position);
var completions = project.getLanguageService().getCompletionsAtPosition(file, position, args);
if (simplifiedResult) {
return ts.mapDefined(completions && completions.entries, function (entry) {
if (completions.isMemberCompletion || (entry.name.toLowerCase().indexOf(prefix.toLowerCase()) === 0)) {
if (completions.isMemberCompletion || ts.startsWith(entry.name.toLowerCase(), prefix.toLowerCase())) {
var name = entry.name, kind = entry.kind, kindModifiers = entry.kindModifiers, sortText = entry.sortText, replacementSpan = entry.replacementSpan, hasAction = entry.hasAction, source = entry.source;
var convertedSpan = replacementSpan ? _this.decorateSpan(replacementSpan, scriptInfo) : undefined;
// Use `hasAction || undefined` to avoid serializing `false`.
@@ -98620,23 +98676,19 @@ var ts;
return completions;
}
};
Session.prototype.getCompletionEntryDetails = function (args) {
Session.prototype.getCompletionEntryDetails = function (args, simplifiedResult) {
var _this = this;
var _a = this.getFileAndProject(args), file = _a.file, project = _a.project;
var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);
var position = this.getPosition(args, scriptInfo);
var formattingOptions = project.projectService.getFormatCodeOptions(file);
return ts.mapDefined(args.entryNames, function (entryName) {
var result = ts.mapDefined(args.entryNames, function (entryName) {
var _a = typeof entryName === "string" ? { name: entryName, source: undefined } : entryName, name = _a.name, source = _a.source;
var details = project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source);
if (details) {
var mappedCodeActions = ts.map(details.codeActions, function (action) { return _this.mapCodeAction(action, scriptInfo); });
return __assign({}, details, { codeActions: mappedCodeActions });
}
else {
return undefined;
}
return project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source);
});
return simplifiedResult
? result.map(function (details) { return (__assign({}, details, { codeActions: ts.map(details.codeActions, function (action) { return _this.mapCodeAction(action, scriptInfo); }) })); })
: result;
};
Session.prototype.getCompileOnSaveAffectedFileList = function (args) {
var info = this.projectService.getScriptInfoEnsuringProjectsUptoDate(args.file);
@@ -100613,6 +100665,9 @@ var ts;
function isNodeModulesDirectory(dirPath) {
return ts.endsWith(dirPath, "/node_modules");
}
function isNodeModulesAtTypesDirectory(dirPath) {
return ts.endsWith(dirPath, "/node_modules/@types");
}
function isDirectoryAtleastAtLevelFromFSRoot(dirPath, minLevels) {
for (var searchIndex = ts.getRootLength(dirPath); minLevels > 0; minLevels--) {
searchIndex = dirPath.indexOf(ts.directorySeparator, searchIndex) + 1;
@@ -100825,11 +100880,21 @@ var ts;
else {
// Some file or directory in the watching directory is created
// Return early if it does not have any of the watching extension or not the custom failed lookup path
if (!isPathWithDefaultFailedLookupExtension(fileOrDirectoryPath) && !customFailedLookupPaths.has(fileOrDirectoryPath)) {
return false;
var dirOfFileOrDirectory = ts.getDirectoryPath(fileOrDirectoryPath);
if (isNodeModulesAtTypesDirectory(dirOfFileOrDirectory) || isNodeModulesDirectory(dirOfFileOrDirectory)) {
// Invalidate any resolution from this directory
isChangedFailedLookupLocation = function (location) {
var locationPath = resolutionHost.toPath(location);
return locationPath === fileOrDirectoryPath || ts.startsWith(resolutionHost.toPath(location), fileOrDirectoryPath);
};
}
else {
if (!isPathWithDefaultFailedLookupExtension(fileOrDirectoryPath) && !customFailedLookupPaths.has(fileOrDirectoryPath)) {
return false;
}
// Resolution need to be invalidated if failed lookup location is same as the file or directory getting created
isChangedFailedLookupLocation = function (location) { return resolutionHost.toPath(location) === fileOrDirectoryPath; };
}
// Resolution need to be invalidated if failed lookup location is same as the file or directory getting created
isChangedFailedLookupLocation = function (location) { return resolutionHost.toPath(location) === fileOrDirectoryPath; };
}
var hasChangedFailedLookupLocation = function (resolution) { return ts.some(resolution.failedLookupLocations, isChangedFailedLookupLocation); };
var invalidatedFilesCount = filesWithInvalidatedResolutions && filesWithInvalidatedResolutions.size;
@@ -104639,9 +104704,9 @@ var ts;
* to provide at the given source position and providing a member completion
* list if requested.
*/
LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position) {
LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position, options) {
var _this = this;
return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position); });
return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ", " + options + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position, options); });
};
/** Get a string based representation of a completion list entry details */
LanguageServiceShimObject.prototype.getCompletionEntryDetails = function (fileName, position, entryName, options /*Services.FormatCodeOptions*/, source) {
+5 -2
View File
@@ -3914,7 +3914,7 @@ declare namespace ts {
getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[];
getEncodedSyntacticClassifications(fileName: string, span: TextSpan): Classifications;
getEncodedSemanticClassifications(fileName: string, span: TextSpan): Classifications;
getCompletionsAtPosition(fileName: string, position: number): CompletionInfo;
getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined): CompletionInfo;
getCompletionEntryDetails(fileName: string, position: number, name: string, options: FormatCodeOptions | FormatCodeSettings | undefined, source: string | undefined): CompletionEntryDetails;
getCompletionEntrySymbol(fileName: string, position: number, name: string, source: string | undefined): Symbol;
getQuickInfoAtPosition(fileName: string, position: number): QuickInfo;
@@ -3952,6 +3952,9 @@ declare namespace ts {
getProgram(): Program;
dispose(): void;
}
interface GetCompletionsAtPositionOptions {
includeExternalModuleExports: boolean;
}
interface ApplyCodeActionCommandResult {
successMessage: string;
}
@@ -4598,7 +4601,7 @@ declare namespace ts {
}
declare namespace ts {
/** The version of the language service API */
const servicesVersion = "0.6";
const servicesVersion = "0.7";
interface DisplayPartsSymbolWriter extends SymbolWriter {
displayParts(): SymbolDisplayPart[];
}
+88 -37
View File
@@ -1363,7 +1363,7 @@ var ts;
// If changing the text in this section, be sure to test `configureNightly` too.
ts.versionMajorMinor = "2.6";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".1";
ts.version = ts.versionMajorMinor + ".2";
})(ts || (ts = {}));
(function (ts) {
function isExternalModuleNameRelative(moduleName) {
@@ -25742,18 +25742,21 @@ var ts;
function createNodeBuilder() {
return {
typeToTypeNode: function (type, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8 /* Synthesized */) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = typeToTypeNodeHelper(type, context);
var result = context.encounteredError ? undefined : resultingNode;
return result;
},
indexInfoToIndexSignatureDeclaration: function (indexInfo, kind, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8 /* Synthesized */) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = indexInfoToIndexSignatureDeclarationHelper(indexInfo, kind, context);
var result = context.encounteredError ? undefined : resultingNode;
return result;
},
signatureToSignatureDeclaration: function (signature, kind, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8 /* Synthesized */) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = signatureToSignatureDeclarationHelper(signature, kind, context);
var result = context.encounteredError ? undefined : resultingNode;
@@ -78339,14 +78342,14 @@ var ts;
KeywordCompletionFilters[KeywordCompletionFilters["ClassElementKeywords"] = 1] = "ClassElementKeywords";
KeywordCompletionFilters[KeywordCompletionFilters["ConstructorParameterKeywords"] = 2] = "ConstructorParameterKeywords";
})(KeywordCompletionFilters || (KeywordCompletionFilters = {}));
function getCompletionsAtPosition(host, typeChecker, log, compilerOptions, sourceFile, position, allSourceFiles) {
function getCompletionsAtPosition(host, typeChecker, log, compilerOptions, sourceFile, position, allSourceFiles, options) {
if (ts.isInReferenceComment(sourceFile, position)) {
return Completions.PathCompletions.getTripleSlashReferenceCompletion(sourceFile, position, compilerOptions, host);
}
if (ts.isInString(sourceFile, position)) {
return getStringLiteralCompletionEntries(sourceFile, position, typeChecker, compilerOptions, host, log);
}
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles);
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, options);
if (!completionData) {
return undefined;
}
@@ -78612,11 +78615,14 @@ var ts;
}
function getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, _a, allSourceFiles) {
var name = _a.name, source = _a.source;
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles);
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, { includeExternalModuleExports: true });
if (!completionData) {
return undefined;
return { type: "none" };
}
var symbols = completionData.symbols, location = completionData.location, allowStringLiteral = completionData.allowStringLiteral, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, request = completionData.request;
if (request) {
return { type: "request", request: request };
}
var symbols = completionData.symbols, location = completionData.location, allowStringLiteral = completionData.allowStringLiteral, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap;
// Find the symbol with the matching entry name.
// We don't need to perform character checks here because we're only comparing the
// name against 'entryName' (which is known to be good), not building a new
@@ -78625,33 +78631,50 @@ var ts;
return getCompletionEntryDisplayNameForSymbol(s, compilerOptions.target, /*performCharacterChecks*/ false, allowStringLiteral) === name
&& getSourceFromOrigin(symbolToOriginInfoMap[ts.getSymbolId(s)]) === source;
});
return symbol && { symbol: symbol, location: location, symbolToOriginInfoMap: symbolToOriginInfoMap };
return symbol ? { type: "symbol", symbol: symbol, location: location, symbolToOriginInfoMap: symbolToOriginInfoMap } : { type: "none" };
}
function getCompletionEntryDetails(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles, host, rulesProvider) {
var name = entryId.name, source = entryId.source;
// Compute all the completion symbols again.
var symbolCompletion = getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles);
if (symbolCompletion) {
var symbol = symbolCompletion.symbol, location = symbolCompletion.location, symbolToOriginInfoMap = symbolCompletion.symbolToOriginInfoMap;
var codeActions = getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, typeChecker, host, compilerOptions, sourceFile, rulesProvider);
var kindModifiers = ts.SymbolDisplay.getSymbolModifiers(symbol);
var _a = ts.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, location, location, 7 /* All */), displayParts = _a.displayParts, documentation = _a.documentation, symbolKind = _a.symbolKind, tags = _a.tags;
return { name: name, kindModifiers: kindModifiers, kind: symbolKind, displayParts: displayParts, documentation: documentation, tags: tags, codeActions: codeActions, source: source === undefined ? undefined : [ts.textPart(source)] };
switch (symbolCompletion.type) {
case "request": {
var request = symbolCompletion.request;
switch (request.kind) {
case "JsDocTagName":
return ts.JsDoc.getJSDocTagNameCompletionDetails(name);
case "JsDocTag":
return ts.JsDoc.getJSDocTagCompletionDetails(name);
case "JsDocParameterName":
return ts.JsDoc.getJSDocParameterNameCompletionDetails(name);
default:
return ts.Debug.assertNever(request);
}
}
case "symbol": {
var symbol = symbolCompletion.symbol, location = symbolCompletion.location, symbolToOriginInfoMap = symbolCompletion.symbolToOriginInfoMap;
var codeActions = getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, typeChecker, host, compilerOptions, sourceFile, rulesProvider);
var kindModifiers = ts.SymbolDisplay.getSymbolModifiers(symbol);
var _a = ts.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, location, location, 7 /* All */), displayParts = _a.displayParts, documentation = _a.documentation, symbolKind = _a.symbolKind, tags = _a.tags;
return { name: name, kindModifiers: kindModifiers, kind: symbolKind, displayParts: displayParts, documentation: documentation, tags: tags, codeActions: codeActions, source: source === undefined ? undefined : [ts.textPart(source)] };
}
case "none": {
// Didn't find a symbol with this name. See if we can find a keyword instead.
if (ts.some(getKeywordCompletions(0 /* None */), function (c) { return c.name === name; })) {
return {
name: name,
kind: "keyword" /* keyword */,
kindModifiers: "" /* none */,
displayParts: [ts.displayPart(name, ts.SymbolDisplayPartKind.keyword)],
documentation: undefined,
tags: undefined,
codeActions: undefined,
source: undefined,
};
}
return undefined;
}
}
// Didn't find a symbol with this name. See if we can find a keyword instead.
if (source === undefined && ts.some(getKeywordCompletions(0 /* None */), function (c) { return c.name === name; })) {
return {
name: name,
kind: "keyword" /* keyword */,
kindModifiers: "" /* none */,
displayParts: [ts.displayPart(name, ts.SymbolDisplayPartKind.keyword)],
documentation: undefined,
tags: undefined,
codeActions: undefined,
source: undefined,
};
}
return undefined;
}
Completions.getCompletionEntryDetails = getCompletionEntryDetails;
function getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, checker, host, compilerOptions, sourceFile, rulesProvider) {
@@ -78675,10 +78698,10 @@ var ts;
}
function getCompletionEntrySymbol(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles) {
var completion = getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles);
return completion && completion.symbol;
return completion.type === "symbol" ? completion.symbol : undefined;
}
Completions.getCompletionEntrySymbol = getCompletionEntrySymbol;
function getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles) {
function getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, options) {
var isJavaScriptFile = ts.isSourceFileJavaScript(sourceFile);
var request;
var start = ts.timestamp();
@@ -78744,7 +78767,7 @@ var ts;
}
if (request) {
return {
symbols: undefined,
symbols: ts.emptyArray,
isGlobalCompletion: false,
isMemberCompletion: false,
allowStringLiteral: false,
@@ -79033,7 +79056,9 @@ var ts;
}
var symbolMeanings = 793064 /* Type */ | 107455 /* Value */ | 1920 /* Namespace */ | 2097152 /* Alias */;
symbols = typeChecker.getSymbolsInScope(scopeNode, symbolMeanings);
getSymbolsFromOtherSourceFileExports(symbols, previousToken && ts.isIdentifier(previousToken) ? previousToken.text : "");
if (options.includeExternalModuleExports) {
getSymbolsFromOtherSourceFileExports(symbols, previousToken && ts.isIdentifier(previousToken) ? previousToken.text : "");
}
filterGlobalCompletion(symbols);
return true;
}
@@ -83120,6 +83145,7 @@ var ts;
}));
}
JsDoc.getJSDocTagNameCompletions = getJSDocTagNameCompletions;
JsDoc.getJSDocTagNameCompletionDetails = getJSDocTagCompletionDetails;
function getJSDocTagCompletions() {
return jsDocTagCompletionEntries || (jsDocTagCompletionEntries = ts.map(jsDocTagNames, function (tagName) {
return {
@@ -83131,6 +83157,18 @@ var ts;
}));
}
JsDoc.getJSDocTagCompletions = getJSDocTagCompletions;
function getJSDocTagCompletionDetails(name) {
return {
name: name,
kind: "" /* unknown */,
kindModifiers: "",
displayParts: [ts.textPart(name)],
documentation: ts.emptyArray,
tags: ts.emptyArray,
codeActions: undefined,
};
}
JsDoc.getJSDocTagCompletionDetails = getJSDocTagCompletionDetails;
function getJSDocParameterNameCompletions(tag) {
if (!ts.isIdentifier(tag.name)) {
return ts.emptyArray;
@@ -83152,6 +83190,18 @@ var ts;
});
}
JsDoc.getJSDocParameterNameCompletions = getJSDocParameterNameCompletions;
function getJSDocParameterNameCompletionDetails(name) {
return {
name: name,
kind: "parameter" /* parameterElement */,
kindModifiers: "",
displayParts: [ts.textPart(name)],
documentation: ts.emptyArray,
tags: ts.emptyArray,
codeActions: undefined,
};
}
JsDoc.getJSDocParameterNameCompletionDetails = getJSDocParameterNameCompletionDetails;
/**
* Checks if position points to a valid position to add JSDoc comments, and if so,
* returns the appropriate template. Otherwise returns an empty string.
@@ -93476,7 +93526,7 @@ var ts;
var type = checker.getTypeOfSymbolAtLocation(usage.symbol, usage.node);
// Widen the type so we don't emit nonsense annotations like "function fn(x: 3) {"
type = checker.getBaseTypeOfLiteralType(type);
typeNode = checker.typeToTypeNode(type, node, ts.NodeBuilderFlags.NoTruncation);
typeNode = checker.typeToTypeNode(type, scope, ts.NodeBuilderFlags.NoTruncation);
}
var paramDecl = ts.createParameter(
/*decorators*/ undefined,
@@ -94531,7 +94581,7 @@ var ts;
var ts;
(function (ts) {
/** The version of the language service API */
ts.servicesVersion = "0.6";
ts.servicesVersion = "0.7";
/* @internal */
var ruleProvider;
function createNode(kind, pos, end, parent) {
@@ -95550,9 +95600,10 @@ var ts;
synchronizeHostData();
return program.getOptionsDiagnostics(cancellationToken).concat(program.getGlobalDiagnostics(cancellationToken));
}
function getCompletionsAtPosition(fileName, position) {
function getCompletionsAtPosition(fileName, position, options) {
if (options === void 0) { options = { includeExternalModuleExports: false }; }
synchronizeHostData();
return ts.Completions.getCompletionsAtPosition(host, program.getTypeChecker(), log, program.getCompilerOptions(), getValidSourceFile(fileName), position, program.getSourceFiles());
return ts.Completions.getCompletionsAtPosition(host, program.getTypeChecker(), log, program.getCompilerOptions(), getValidSourceFile(fileName), position, program.getSourceFiles(), options);
}
function getCompletionEntryDetails(fileName, position, name, formattingOptions, source) {
synchronizeHostData();
@@ -97388,9 +97439,9 @@ var ts;
* to provide at the given source position and providing a member completion
* list if requested.
*/
LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position) {
LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position, options) {
var _this = this;
return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position); });
return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ", " + options + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position, options); });
};
/** Get a string based representation of a completion list entry details */
LanguageServiceShimObject.prototype.getCompletionEntryDetails = function (fileName, position, entryName, options /*Services.FormatCodeOptions*/, source) {
+5 -2
View File
@@ -3914,7 +3914,7 @@ declare namespace ts {
getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[];
getEncodedSyntacticClassifications(fileName: string, span: TextSpan): Classifications;
getEncodedSemanticClassifications(fileName: string, span: TextSpan): Classifications;
getCompletionsAtPosition(fileName: string, position: number): CompletionInfo;
getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined): CompletionInfo;
getCompletionEntryDetails(fileName: string, position: number, name: string, options: FormatCodeOptions | FormatCodeSettings | undefined, source: string | undefined): CompletionEntryDetails;
getCompletionEntrySymbol(fileName: string, position: number, name: string, source: string | undefined): Symbol;
getQuickInfoAtPosition(fileName: string, position: number): QuickInfo;
@@ -3952,6 +3952,9 @@ declare namespace ts {
getProgram(): Program;
dispose(): void;
}
interface GetCompletionsAtPositionOptions {
includeExternalModuleExports: boolean;
}
interface ApplyCodeActionCommandResult {
successMessage: string;
}
@@ -4598,7 +4601,7 @@ declare namespace ts {
}
declare namespace ts {
/** The version of the language service API */
const servicesVersion = "0.6";
const servicesVersion = "0.7";
interface DisplayPartsSymbolWriter extends SymbolWriter {
displayParts(): SymbolDisplayPart[];
}
+88 -37
View File
@@ -1363,7 +1363,7 @@ var ts;
// If changing the text in this section, be sure to test `configureNightly` too.
ts.versionMajorMinor = "2.6";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".1";
ts.version = ts.versionMajorMinor + ".2";
})(ts || (ts = {}));
(function (ts) {
function isExternalModuleNameRelative(moduleName) {
@@ -25742,18 +25742,21 @@ var ts;
function createNodeBuilder() {
return {
typeToTypeNode: function (type, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8 /* Synthesized */) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = typeToTypeNodeHelper(type, context);
var result = context.encounteredError ? undefined : resultingNode;
return result;
},
indexInfoToIndexSignatureDeclaration: function (indexInfo, kind, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8 /* Synthesized */) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = indexInfoToIndexSignatureDeclarationHelper(indexInfo, kind, context);
var result = context.encounteredError ? undefined : resultingNode;
return result;
},
signatureToSignatureDeclaration: function (signature, kind, enclosingDeclaration, flags) {
ts.Debug.assert(enclosingDeclaration === undefined || (enclosingDeclaration.flags & 8 /* Synthesized */) === 0);
var context = createNodeBuilderContext(enclosingDeclaration, flags);
var resultingNode = signatureToSignatureDeclarationHelper(signature, kind, context);
var result = context.encounteredError ? undefined : resultingNode;
@@ -78339,14 +78342,14 @@ var ts;
KeywordCompletionFilters[KeywordCompletionFilters["ClassElementKeywords"] = 1] = "ClassElementKeywords";
KeywordCompletionFilters[KeywordCompletionFilters["ConstructorParameterKeywords"] = 2] = "ConstructorParameterKeywords";
})(KeywordCompletionFilters || (KeywordCompletionFilters = {}));
function getCompletionsAtPosition(host, typeChecker, log, compilerOptions, sourceFile, position, allSourceFiles) {
function getCompletionsAtPosition(host, typeChecker, log, compilerOptions, sourceFile, position, allSourceFiles, options) {
if (ts.isInReferenceComment(sourceFile, position)) {
return Completions.PathCompletions.getTripleSlashReferenceCompletion(sourceFile, position, compilerOptions, host);
}
if (ts.isInString(sourceFile, position)) {
return getStringLiteralCompletionEntries(sourceFile, position, typeChecker, compilerOptions, host, log);
}
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles);
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, options);
if (!completionData) {
return undefined;
}
@@ -78612,11 +78615,14 @@ var ts;
}
function getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, _a, allSourceFiles) {
var name = _a.name, source = _a.source;
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles);
var completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, { includeExternalModuleExports: true });
if (!completionData) {
return undefined;
return { type: "none" };
}
var symbols = completionData.symbols, location = completionData.location, allowStringLiteral = completionData.allowStringLiteral, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, request = completionData.request;
if (request) {
return { type: "request", request: request };
}
var symbols = completionData.symbols, location = completionData.location, allowStringLiteral = completionData.allowStringLiteral, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap;
// Find the symbol with the matching entry name.
// We don't need to perform character checks here because we're only comparing the
// name against 'entryName' (which is known to be good), not building a new
@@ -78625,33 +78631,50 @@ var ts;
return getCompletionEntryDisplayNameForSymbol(s, compilerOptions.target, /*performCharacterChecks*/ false, allowStringLiteral) === name
&& getSourceFromOrigin(symbolToOriginInfoMap[ts.getSymbolId(s)]) === source;
});
return symbol && { symbol: symbol, location: location, symbolToOriginInfoMap: symbolToOriginInfoMap };
return symbol ? { type: "symbol", symbol: symbol, location: location, symbolToOriginInfoMap: symbolToOriginInfoMap } : { type: "none" };
}
function getCompletionEntryDetails(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles, host, rulesProvider) {
var name = entryId.name, source = entryId.source;
// Compute all the completion symbols again.
var symbolCompletion = getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles);
if (symbolCompletion) {
var symbol = symbolCompletion.symbol, location = symbolCompletion.location, symbolToOriginInfoMap = symbolCompletion.symbolToOriginInfoMap;
var codeActions = getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, typeChecker, host, compilerOptions, sourceFile, rulesProvider);
var kindModifiers = ts.SymbolDisplay.getSymbolModifiers(symbol);
var _a = ts.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, location, location, 7 /* All */), displayParts = _a.displayParts, documentation = _a.documentation, symbolKind = _a.symbolKind, tags = _a.tags;
return { name: name, kindModifiers: kindModifiers, kind: symbolKind, displayParts: displayParts, documentation: documentation, tags: tags, codeActions: codeActions, source: source === undefined ? undefined : [ts.textPart(source)] };
switch (symbolCompletion.type) {
case "request": {
var request = symbolCompletion.request;
switch (request.kind) {
case "JsDocTagName":
return ts.JsDoc.getJSDocTagNameCompletionDetails(name);
case "JsDocTag":
return ts.JsDoc.getJSDocTagCompletionDetails(name);
case "JsDocParameterName":
return ts.JsDoc.getJSDocParameterNameCompletionDetails(name);
default:
return ts.Debug.assertNever(request);
}
}
case "symbol": {
var symbol = symbolCompletion.symbol, location = symbolCompletion.location, symbolToOriginInfoMap = symbolCompletion.symbolToOriginInfoMap;
var codeActions = getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, typeChecker, host, compilerOptions, sourceFile, rulesProvider);
var kindModifiers = ts.SymbolDisplay.getSymbolModifiers(symbol);
var _a = ts.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, location, location, 7 /* All */), displayParts = _a.displayParts, documentation = _a.documentation, symbolKind = _a.symbolKind, tags = _a.tags;
return { name: name, kindModifiers: kindModifiers, kind: symbolKind, displayParts: displayParts, documentation: documentation, tags: tags, codeActions: codeActions, source: source === undefined ? undefined : [ts.textPart(source)] };
}
case "none": {
// Didn't find a symbol with this name. See if we can find a keyword instead.
if (ts.some(getKeywordCompletions(0 /* None */), function (c) { return c.name === name; })) {
return {
name: name,
kind: "keyword" /* keyword */,
kindModifiers: "" /* none */,
displayParts: [ts.displayPart(name, ts.SymbolDisplayPartKind.keyword)],
documentation: undefined,
tags: undefined,
codeActions: undefined,
source: undefined,
};
}
return undefined;
}
}
// Didn't find a symbol with this name. See if we can find a keyword instead.
if (source === undefined && ts.some(getKeywordCompletions(0 /* None */), function (c) { return c.name === name; })) {
return {
name: name,
kind: "keyword" /* keyword */,
kindModifiers: "" /* none */,
displayParts: [ts.displayPart(name, ts.SymbolDisplayPartKind.keyword)],
documentation: undefined,
tags: undefined,
codeActions: undefined,
source: undefined,
};
}
return undefined;
}
Completions.getCompletionEntryDetails = getCompletionEntryDetails;
function getCompletionEntryCodeActions(symbolToOriginInfoMap, symbol, checker, host, compilerOptions, sourceFile, rulesProvider) {
@@ -78675,10 +78698,10 @@ var ts;
}
function getCompletionEntrySymbol(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles) {
var completion = getSymbolCompletionFromEntryId(typeChecker, log, compilerOptions, sourceFile, position, entryId, allSourceFiles);
return completion && completion.symbol;
return completion.type === "symbol" ? completion.symbol : undefined;
}
Completions.getCompletionEntrySymbol = getCompletionEntrySymbol;
function getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles) {
function getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, options) {
var isJavaScriptFile = ts.isSourceFileJavaScript(sourceFile);
var request;
var start = ts.timestamp();
@@ -78744,7 +78767,7 @@ var ts;
}
if (request) {
return {
symbols: undefined,
symbols: ts.emptyArray,
isGlobalCompletion: false,
isMemberCompletion: false,
allowStringLiteral: false,
@@ -79033,7 +79056,9 @@ var ts;
}
var symbolMeanings = 793064 /* Type */ | 107455 /* Value */ | 1920 /* Namespace */ | 2097152 /* Alias */;
symbols = typeChecker.getSymbolsInScope(scopeNode, symbolMeanings);
getSymbolsFromOtherSourceFileExports(symbols, previousToken && ts.isIdentifier(previousToken) ? previousToken.text : "");
if (options.includeExternalModuleExports) {
getSymbolsFromOtherSourceFileExports(symbols, previousToken && ts.isIdentifier(previousToken) ? previousToken.text : "");
}
filterGlobalCompletion(symbols);
return true;
}
@@ -83120,6 +83145,7 @@ var ts;
}));
}
JsDoc.getJSDocTagNameCompletions = getJSDocTagNameCompletions;
JsDoc.getJSDocTagNameCompletionDetails = getJSDocTagCompletionDetails;
function getJSDocTagCompletions() {
return jsDocTagCompletionEntries || (jsDocTagCompletionEntries = ts.map(jsDocTagNames, function (tagName) {
return {
@@ -83131,6 +83157,18 @@ var ts;
}));
}
JsDoc.getJSDocTagCompletions = getJSDocTagCompletions;
function getJSDocTagCompletionDetails(name) {
return {
name: name,
kind: "" /* unknown */,
kindModifiers: "",
displayParts: [ts.textPart(name)],
documentation: ts.emptyArray,
tags: ts.emptyArray,
codeActions: undefined,
};
}
JsDoc.getJSDocTagCompletionDetails = getJSDocTagCompletionDetails;
function getJSDocParameterNameCompletions(tag) {
if (!ts.isIdentifier(tag.name)) {
return ts.emptyArray;
@@ -83152,6 +83190,18 @@ var ts;
});
}
JsDoc.getJSDocParameterNameCompletions = getJSDocParameterNameCompletions;
function getJSDocParameterNameCompletionDetails(name) {
return {
name: name,
kind: "parameter" /* parameterElement */,
kindModifiers: "",
displayParts: [ts.textPart(name)],
documentation: ts.emptyArray,
tags: ts.emptyArray,
codeActions: undefined,
};
}
JsDoc.getJSDocParameterNameCompletionDetails = getJSDocParameterNameCompletionDetails;
/**
* Checks if position points to a valid position to add JSDoc comments, and if so,
* returns the appropriate template. Otherwise returns an empty string.
@@ -93476,7 +93526,7 @@ var ts;
var type = checker.getTypeOfSymbolAtLocation(usage.symbol, usage.node);
// Widen the type so we don't emit nonsense annotations like "function fn(x: 3) {"
type = checker.getBaseTypeOfLiteralType(type);
typeNode = checker.typeToTypeNode(type, node, ts.NodeBuilderFlags.NoTruncation);
typeNode = checker.typeToTypeNode(type, scope, ts.NodeBuilderFlags.NoTruncation);
}
var paramDecl = ts.createParameter(
/*decorators*/ undefined,
@@ -94531,7 +94581,7 @@ var ts;
var ts;
(function (ts) {
/** The version of the language service API */
ts.servicesVersion = "0.6";
ts.servicesVersion = "0.7";
/* @internal */
var ruleProvider;
function createNode(kind, pos, end, parent) {
@@ -95550,9 +95600,10 @@ var ts;
synchronizeHostData();
return program.getOptionsDiagnostics(cancellationToken).concat(program.getGlobalDiagnostics(cancellationToken));
}
function getCompletionsAtPosition(fileName, position) {
function getCompletionsAtPosition(fileName, position, options) {
if (options === void 0) { options = { includeExternalModuleExports: false }; }
synchronizeHostData();
return ts.Completions.getCompletionsAtPosition(host, program.getTypeChecker(), log, program.getCompilerOptions(), getValidSourceFile(fileName), position, program.getSourceFiles());
return ts.Completions.getCompletionsAtPosition(host, program.getTypeChecker(), log, program.getCompilerOptions(), getValidSourceFile(fileName), position, program.getSourceFiles(), options);
}
function getCompletionEntryDetails(fileName, position, name, formattingOptions, source) {
synchronizeHostData();
@@ -97388,9 +97439,9 @@ var ts;
* to provide at the given source position and providing a member completion
* list if requested.
*/
LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position) {
LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position, options) {
var _this = this;
return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position); });
return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ", " + options + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position, options); });
};
/** Get a string based representation of a completion list entry details */
LanguageServiceShimObject.prototype.getCompletionEntryDetails = function (fileName, position, entryName, options /*Services.FormatCodeOptions*/, source) {
+1 -1
View File
@@ -162,7 +162,7 @@ var ts;
var ts;
(function (ts) {
ts.versionMajorMinor = "2.6";
ts.version = ts.versionMajorMinor + ".1";
ts.version = ts.versionMajorMinor + ".2";
})(ts || (ts = {}));
(function (ts) {
function isExternalModuleNameRelative(moduleName) {