tsrc 2.1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/Gemfile +7 -0
  4. data/LICENSE +55 -0
  5. data/README.md +33 -0
  6. data/Rakefile +16 -0
  7. data/lib/tsrc.rb +57 -0
  8. data/lib/tsrc/support/typescript/.mailmap +216 -0
  9. data/lib/tsrc/support/typescript/.npmignore +19 -0
  10. data/lib/tsrc/support/typescript/AUTHORS.md +204 -0
  11. data/lib/tsrc/support/typescript/CONTRIBUTING.md +185 -0
  12. data/lib/tsrc/support/typescript/CopyrightNotice.txt +15 -0
  13. data/lib/tsrc/support/typescript/LICENSE.txt +55 -0
  14. data/lib/tsrc/support/typescript/README.md +98 -0
  15. data/lib/tsrc/support/typescript/ThirdPartyNoticeText.txt +35 -0
  16. data/lib/tsrc/support/typescript/bin/tsc +2 -0
  17. data/lib/tsrc/support/typescript/bin/tsserver +2 -0
  18. data/lib/tsrc/support/typescript/lib/README.md +5 -0
  19. data/lib/tsrc/support/typescript/lib/cancellationToken.js +41 -0
  20. data/lib/tsrc/support/typescript/lib/lib.d.ts +18215 -0
  21. data/lib/tsrc/support/typescript/lib/lib.dom.d.ts +13738 -0
  22. data/lib/tsrc/support/typescript/lib/lib.dom.iterable.d.ts +33 -0
  23. data/lib/tsrc/support/typescript/lib/lib.es2015.collection.d.ts +92 -0
  24. data/lib/tsrc/support/typescript/lib/lib.es2015.core.d.ts +544 -0
  25. data/lib/tsrc/support/typescript/lib/lib.es2015.d.ts +30 -0
  26. data/lib/tsrc/support/typescript/lib/lib.es2015.generator.d.ts +32 -0
  27. data/lib/tsrc/support/typescript/lib/lib.es2015.iterable.d.ts +465 -0
  28. data/lib/tsrc/support/typescript/lib/lib.es2015.promise.d.ts +274 -0
  29. data/lib/tsrc/support/typescript/lib/lib.es2015.proxy.d.ts +42 -0
  30. data/lib/tsrc/support/typescript/lib/lib.es2015.reflect.d.ts +35 -0
  31. data/lib/tsrc/support/typescript/lib/lib.es2015.symbol.d.ts +56 -0
  32. data/lib/tsrc/support/typescript/lib/lib.es2015.symbol.wellknown.d.ts +347 -0
  33. data/lib/tsrc/support/typescript/lib/lib.es2016.array.include.d.ts +118 -0
  34. data/lib/tsrc/support/typescript/lib/lib.es2016.d.ts +22 -0
  35. data/lib/tsrc/support/typescript/lib/lib.es2017.d.ts +24 -0
  36. data/lib/tsrc/support/typescript/lib/lib.es2017.object.d.ts +45 -0
  37. data/lib/tsrc/support/typescript/lib/lib.es2017.sharedmemory.d.ts +47 -0
  38. data/lib/tsrc/support/typescript/lib/lib.es2017.string.d.ts +47 -0
  39. data/lib/tsrc/support/typescript/lib/lib.es5.d.ts +4195 -0
  40. data/lib/tsrc/support/typescript/lib/lib.es6.d.ts +19950 -0
  41. data/lib/tsrc/support/typescript/lib/lib.scripthost.d.ts +311 -0
  42. data/lib/tsrc/support/typescript/lib/lib.webworker.d.ts +1274 -0
  43. data/lib/tsrc/support/typescript/lib/protocol.d.ts +1900 -0
  44. data/lib/tsrc/support/typescript/lib/tsc.js +52470 -0
  45. data/lib/tsrc/support/typescript/lib/tsserver.js +70720 -0
  46. data/lib/tsrc/support/typescript/lib/tsserverlibrary.d.ts +11939 -0
  47. data/lib/tsrc/support/typescript/lib/tsserverlibrary.js +70256 -0
  48. data/lib/tsrc/support/typescript/lib/typescript.d.ts +3166 -0
  49. data/lib/tsrc/support/typescript/lib/typescript.js +81536 -0
  50. data/lib/tsrc/support/typescript/lib/typescriptServices.d.ts +3164 -0
  51. data/lib/tsrc/support/typescript/lib/typescriptServices.js +81536 -0
  52. data/lib/tsrc/support/typescript/lib/typingsInstaller.js +7314 -0
  53. data/lib/tsrc/support/typescript/package.json +129 -0
  54. data/lib/tsrc/support/typescript/test.config +1 -0
  55. data/lib/tsrc/version.rb +5 -0
  56. data/tsrc.gemspec +20 -0
  57. metadata +113 -0
@@ -0,0 +1,1900 @@
1
+ /**
2
+ * Declaration module describing the TypeScript Server protocol
3
+ */
4
+ declare namespace ts.server.protocol {
5
+ namespace CommandTypes {
6
+ type Brace = "brace";
7
+ type BraceCompletion = "braceCompletion";
8
+ type Change = "change";
9
+ type Close = "close";
10
+ type Completions = "completions";
11
+ type CompletionDetails = "completionEntryDetails";
12
+ type CompileOnSaveAffectedFileList = "compileOnSaveAffectedFileList";
13
+ type CompileOnSaveEmitFile = "compileOnSaveEmitFile";
14
+ type Configure = "configure";
15
+ type Definition = "definition";
16
+ type Implementation = "implementation";
17
+ type Exit = "exit";
18
+ type Format = "format";
19
+ type Formatonkey = "formatonkey";
20
+ type Geterr = "geterr";
21
+ type GeterrForProject = "geterrForProject";
22
+ type SemanticDiagnosticsSync = "semanticDiagnosticsSync";
23
+ type SyntacticDiagnosticsSync = "syntacticDiagnosticsSync";
24
+ type NavBar = "navbar";
25
+ type Navto = "navto";
26
+ type NavTree = "navtree";
27
+ type NavTreeFull = "navtree-full";
28
+ type Occurrences = "occurrences";
29
+ type DocumentHighlights = "documentHighlights";
30
+ type Open = "open";
31
+ type Quickinfo = "quickinfo";
32
+ type References = "references";
33
+ type Reload = "reload";
34
+ type Rename = "rename";
35
+ type Saveto = "saveto";
36
+ type SignatureHelp = "signatureHelp";
37
+ type TypeDefinition = "typeDefinition";
38
+ type ProjectInfo = "projectInfo";
39
+ type ReloadProjects = "reloadProjects";
40
+ type Unknown = "unknown";
41
+ type OpenExternalProject = "openExternalProject";
42
+ type OpenExternalProjects = "openExternalProjects";
43
+ type CloseExternalProject = "closeExternalProject";
44
+ type TodoComments = "todoComments";
45
+ type Indentation = "indentation";
46
+ type DocCommentTemplate = "docCommentTemplate";
47
+ type CompilerOptionsForInferredProjects = "compilerOptionsForInferredProjects";
48
+ type GetCodeFixes = "getCodeFixes";
49
+ type GetSupportedCodeFixes = "getSupportedCodeFixes";
50
+ }
51
+ /**
52
+ * A TypeScript Server message
53
+ */
54
+ interface Message {
55
+ /**
56
+ * Sequence number of the message
57
+ */
58
+ seq: number;
59
+ /**
60
+ * One of "request", "response", or "event"
61
+ */
62
+ type: "request" | "response" | "event";
63
+ }
64
+ /**
65
+ * Client-initiated request message
66
+ */
67
+ interface Request extends Message {
68
+ /**
69
+ * The command to execute
70
+ */
71
+ command: string;
72
+ /**
73
+ * Object containing arguments for the command
74
+ */
75
+ arguments?: any;
76
+ }
77
+ /**
78
+ * Request to reload the project structure for all the opened files
79
+ */
80
+ interface ReloadProjectsRequest extends Message {
81
+ command: CommandTypes.ReloadProjects;
82
+ }
83
+ /**
84
+ * Server-initiated event message
85
+ */
86
+ interface Event extends Message {
87
+ /**
88
+ * Name of event
89
+ */
90
+ event: string;
91
+ /**
92
+ * Event-specific information
93
+ */
94
+ body?: any;
95
+ }
96
+ /**
97
+ * Response by server to client request message.
98
+ */
99
+ interface Response extends Message {
100
+ /**
101
+ * Sequence number of the request message.
102
+ */
103
+ request_seq: number;
104
+ /**
105
+ * Outcome of the request.
106
+ */
107
+ success: boolean;
108
+ /**
109
+ * The command requested.
110
+ */
111
+ command: string;
112
+ /**
113
+ * Contains error message if success === false.
114
+ */
115
+ message?: string;
116
+ /**
117
+ * Contains message body if success === true.
118
+ */
119
+ body?: any;
120
+ }
121
+ /**
122
+ * Arguments for FileRequest messages.
123
+ */
124
+ interface FileRequestArgs {
125
+ /**
126
+ * The file for the request (absolute pathname required).
127
+ */
128
+ file: string;
129
+ projectFileName?: string;
130
+ }
131
+ /**
132
+ * Requests a JS Doc comment template for a given position
133
+ */
134
+ interface DocCommentTemplateRequest extends FileLocationRequest {
135
+ command: CommandTypes.DocCommentTemplate;
136
+ }
137
+ /**
138
+ * Response to DocCommentTemplateRequest
139
+ */
140
+ interface DocCommandTemplateResponse extends Response {
141
+ body?: TextInsertion;
142
+ }
143
+ /**
144
+ * A request to get TODO comments from the file
145
+ */
146
+ interface TodoCommentRequest extends FileRequest {
147
+ command: CommandTypes.TodoComments;
148
+ arguments: TodoCommentRequestArgs;
149
+ }
150
+ /**
151
+ * Arguments for TodoCommentRequest request.
152
+ */
153
+ interface TodoCommentRequestArgs extends FileRequestArgs {
154
+ /**
155
+ * Array of target TodoCommentDescriptors that describes TODO comments to be found
156
+ */
157
+ descriptors: TodoCommentDescriptor[];
158
+ }
159
+ /**
160
+ * Response for TodoCommentRequest request.
161
+ */
162
+ interface TodoCommentsResponse extends Response {
163
+ body?: TodoComment[];
164
+ }
165
+ /**
166
+ * A request to get indentation for a location in file
167
+ */
168
+ interface IndentationRequest extends FileLocationRequest {
169
+ command: CommandTypes.Indentation;
170
+ arguments: IndentationRequestArgs;
171
+ }
172
+ /**
173
+ * Response for IndentationRequest request.
174
+ */
175
+ interface IndentationResponse extends Response {
176
+ body?: IndentationResult;
177
+ }
178
+ /**
179
+ * Indentation result representing where indentation should be placed
180
+ */
181
+ interface IndentationResult {
182
+ /**
183
+ * The base position in the document that the indent should be relative to
184
+ */
185
+ position: number;
186
+ /**
187
+ * The number of columns the indent should be at relative to the position's column.
188
+ */
189
+ indentation: number;
190
+ }
191
+ /**
192
+ * Arguments for IndentationRequest request.
193
+ */
194
+ interface IndentationRequestArgs extends FileLocationRequestArgs {
195
+ /**
196
+ * An optional set of settings to be used when computing indentation.
197
+ * If argument is omitted - then it will use settings for file that were previously set via 'configure' request or global settings.
198
+ */
199
+ options?: EditorSettings;
200
+ }
201
+ /**
202
+ * Arguments for ProjectInfoRequest request.
203
+ */
204
+ interface ProjectInfoRequestArgs extends FileRequestArgs {
205
+ /**
206
+ * Indicate if the file name list of the project is needed
207
+ */
208
+ needFileNameList: boolean;
209
+ }
210
+ /**
211
+ * A request to get the project information of the current file.
212
+ */
213
+ interface ProjectInfoRequest extends Request {
214
+ command: CommandTypes.ProjectInfo;
215
+ arguments: ProjectInfoRequestArgs;
216
+ }
217
+ /**
218
+ * A request to retrieve compiler options diagnostics for a project
219
+ */
220
+ interface CompilerOptionsDiagnosticsRequest extends Request {
221
+ arguments: CompilerOptionsDiagnosticsRequestArgs;
222
+ }
223
+ /**
224
+ * Arguments for CompilerOptionsDiagnosticsRequest request.
225
+ */
226
+ interface CompilerOptionsDiagnosticsRequestArgs {
227
+ /**
228
+ * Name of the project to retrieve compiler options diagnostics.
229
+ */
230
+ projectFileName: string;
231
+ }
232
+ /**
233
+ * Response message body for "projectInfo" request
234
+ */
235
+ interface ProjectInfo {
236
+ /**
237
+ * For configured project, this is the normalized path of the 'tsconfig.json' file
238
+ * For inferred project, this is undefined
239
+ */
240
+ configFileName: string;
241
+ /**
242
+ * The list of normalized file name in the project, including 'lib.d.ts'
243
+ */
244
+ fileNames?: string[];
245
+ /**
246
+ * Indicates if the project has a active language service instance
247
+ */
248
+ languageServiceDisabled?: boolean;
249
+ }
250
+ /**
251
+ * Represents diagnostic info that includes location of diagnostic in two forms
252
+ * - start position and length of the error span
253
+ * - startLocation and endLocation - a pair of Location objects that store start/end line and offset of the error span.
254
+ */
255
+ interface DiagnosticWithLinePosition {
256
+ message: string;
257
+ start: number;
258
+ length: number;
259
+ startLocation: Location;
260
+ endLocation: Location;
261
+ category: string;
262
+ code: number;
263
+ }
264
+ /**
265
+ * Response message for "projectInfo" request
266
+ */
267
+ interface ProjectInfoResponse extends Response {
268
+ body?: ProjectInfo;
269
+ }
270
+ /**
271
+ * Request whose sole parameter is a file name.
272
+ */
273
+ interface FileRequest extends Request {
274
+ arguments: FileRequestArgs;
275
+ }
276
+ /**
277
+ * Instances of this interface specify a location in a source file:
278
+ * (file, line, character offset), where line and character offset are 1-based.
279
+ */
280
+ interface FileLocationRequestArgs extends FileRequestArgs {
281
+ /**
282
+ * The line number for the request (1-based).
283
+ */
284
+ line: number;
285
+ /**
286
+ * The character offset (on the line) for the request (1-based).
287
+ */
288
+ offset: number;
289
+ }
290
+ /**
291
+ * Request for the available codefixes at a specific position.
292
+ */
293
+ interface CodeFixRequest extends Request {
294
+ command: CommandTypes.GetCodeFixes;
295
+ arguments: CodeFixRequestArgs;
296
+ }
297
+ /**
298
+ * Instances of this interface specify errorcodes on a specific location in a sourcefile.
299
+ */
300
+ interface CodeFixRequestArgs extends FileRequestArgs {
301
+ /**
302
+ * The line number for the request (1-based).
303
+ */
304
+ startLine: number;
305
+ /**
306
+ * The character offset (on the line) for the request (1-based).
307
+ */
308
+ startOffset: number;
309
+ /**
310
+ * The line number for the request (1-based).
311
+ */
312
+ endLine: number;
313
+ /**
314
+ * The character offset (on the line) for the request (1-based).
315
+ */
316
+ endOffset: number;
317
+ /**
318
+ * Errorcodes we want to get the fixes for.
319
+ */
320
+ errorCodes?: number[];
321
+ }
322
+ /**
323
+ * Response for GetCodeFixes request.
324
+ */
325
+ interface GetCodeFixesResponse extends Response {
326
+ body?: CodeAction[];
327
+ }
328
+ /**
329
+ * A request whose arguments specify a file location (file, line, col).
330
+ */
331
+ interface FileLocationRequest extends FileRequest {
332
+ arguments: FileLocationRequestArgs;
333
+ }
334
+ /**
335
+ * A request to get codes of supported code fixes.
336
+ */
337
+ interface GetSupportedCodeFixesRequest extends Request {
338
+ command: CommandTypes.GetSupportedCodeFixes;
339
+ }
340
+ /**
341
+ * A response for GetSupportedCodeFixesRequest request.
342
+ */
343
+ interface GetSupportedCodeFixesResponse extends Response {
344
+ /**
345
+ * List of error codes supported by the server.
346
+ */
347
+ body?: string[];
348
+ }
349
+ /**
350
+ * Arguments for EncodedSemanticClassificationsRequest request.
351
+ */
352
+ interface EncodedSemanticClassificationsRequestArgs extends FileRequestArgs {
353
+ /**
354
+ * Start position of the span.
355
+ */
356
+ start: number;
357
+ /**
358
+ * Length of the span.
359
+ */
360
+ length: number;
361
+ }
362
+ /**
363
+ * Arguments in document highlight request; include: filesToSearch, file,
364
+ * line, offset.
365
+ */
366
+ interface DocumentHighlightsRequestArgs extends FileLocationRequestArgs {
367
+ /**
368
+ * List of files to search for document highlights.
369
+ */
370
+ filesToSearch: string[];
371
+ }
372
+ /**
373
+ * Go to definition request; value of command field is
374
+ * "definition". Return response giving the file locations that
375
+ * define the symbol found in file at location line, col.
376
+ */
377
+ interface DefinitionRequest extends FileLocationRequest {
378
+ command: CommandTypes.Definition;
379
+ }
380
+ /**
381
+ * Go to type request; value of command field is
382
+ * "typeDefinition". Return response giving the file locations that
383
+ * define the type for the symbol found in file at location line, col.
384
+ */
385
+ interface TypeDefinitionRequest extends FileLocationRequest {
386
+ command: CommandTypes.TypeDefinition;
387
+ }
388
+ /**
389
+ * Go to implementation request; value of command field is
390
+ * "implementation". Return response giving the file locations that
391
+ * implement the symbol found in file at location line, col.
392
+ */
393
+ interface ImplementationRequest extends FileLocationRequest {
394
+ command: CommandTypes.Implementation;
395
+ }
396
+ /**
397
+ * Location in source code expressed as (one-based) line and character offset.
398
+ */
399
+ interface Location {
400
+ line: number;
401
+ offset: number;
402
+ }
403
+ /**
404
+ * Object found in response messages defining a span of text in source code.
405
+ */
406
+ interface TextSpan {
407
+ /**
408
+ * First character of the definition.
409
+ */
410
+ start: Location;
411
+ /**
412
+ * One character past last character of the definition.
413
+ */
414
+ end: Location;
415
+ }
416
+ /**
417
+ * Object found in response messages defining a span of text in a specific source file.
418
+ */
419
+ interface FileSpan extends TextSpan {
420
+ /**
421
+ * File containing text span.
422
+ */
423
+ file: string;
424
+ }
425
+ /**
426
+ * Definition response message. Gives text range for definition.
427
+ */
428
+ interface DefinitionResponse extends Response {
429
+ body?: FileSpan[];
430
+ }
431
+ /**
432
+ * Definition response message. Gives text range for definition.
433
+ */
434
+ interface TypeDefinitionResponse extends Response {
435
+ body?: FileSpan[];
436
+ }
437
+ /**
438
+ * Implementation response message. Gives text range for implementations.
439
+ */
440
+ interface ImplementationResponse extends Response {
441
+ body?: FileSpan[];
442
+ }
443
+ /**
444
+ * Request to get brace completion for a location in the file.
445
+ */
446
+ interface BraceCompletionRequest extends FileLocationRequest {
447
+ command: CommandTypes.BraceCompletion;
448
+ arguments: BraceCompletionRequestArgs;
449
+ }
450
+ /**
451
+ * Argument for BraceCompletionRequest request.
452
+ */
453
+ interface BraceCompletionRequestArgs extends FileLocationRequestArgs {
454
+ /**
455
+ * Kind of opening brace
456
+ */
457
+ openingBrace: string;
458
+ }
459
+ /**
460
+ * Get occurrences request; value of command field is
461
+ * "occurrences". Return response giving spans that are relevant
462
+ * in the file at a given line and column.
463
+ */
464
+ interface OccurrencesRequest extends FileLocationRequest {
465
+ command: CommandTypes.Occurrences;
466
+ }
467
+ interface OccurrencesResponseItem extends FileSpan {
468
+ /**
469
+ * True if the occurrence is a write location, false otherwise.
470
+ */
471
+ isWriteAccess: boolean;
472
+ }
473
+ interface OccurrencesResponse extends Response {
474
+ body?: OccurrencesResponseItem[];
475
+ }
476
+ /**
477
+ * Get document highlights request; value of command field is
478
+ * "documentHighlights". Return response giving spans that are relevant
479
+ * in the file at a given line and column.
480
+ */
481
+ interface DocumentHighlightsRequest extends FileLocationRequest {
482
+ command: CommandTypes.DocumentHighlights;
483
+ arguments: DocumentHighlightsRequestArgs;
484
+ }
485
+ /**
486
+ * Span augmented with extra information that denotes the kind of the highlighting to be used for span.
487
+ * Kind is taken from HighlightSpanKind type.
488
+ */
489
+ interface HighlightSpan extends TextSpan {
490
+ kind: string;
491
+ }
492
+ /**
493
+ * Represents a set of highligh spans for a give name
494
+ */
495
+ interface DocumentHighlightsItem {
496
+ /**
497
+ * File containing highlight spans.
498
+ */
499
+ file: string;
500
+ /**
501
+ * Spans to highlight in file.
502
+ */
503
+ highlightSpans: HighlightSpan[];
504
+ }
505
+ /**
506
+ * Response for a DocumentHighlightsRequest request.
507
+ */
508
+ interface DocumentHighlightsResponse extends Response {
509
+ body?: DocumentHighlightsItem[];
510
+ }
511
+ /**
512
+ * Find references request; value of command field is
513
+ * "references". Return response giving the file locations that
514
+ * reference the symbol found in file at location line, col.
515
+ */
516
+ interface ReferencesRequest extends FileLocationRequest {
517
+ command: CommandTypes.References;
518
+ }
519
+ interface ReferencesResponseItem extends FileSpan {
520
+ /** Text of line containing the reference. Including this
521
+ * with the response avoids latency of editor loading files
522
+ * to show text of reference line (the server already has
523
+ * loaded the referencing files).
524
+ */
525
+ lineText: string;
526
+ /**
527
+ * True if reference is a write location, false otherwise.
528
+ */
529
+ isWriteAccess: boolean;
530
+ /**
531
+ * True if reference is a definition, false otherwise.
532
+ */
533
+ isDefinition: boolean;
534
+ }
535
+ /**
536
+ * The body of a "references" response message.
537
+ */
538
+ interface ReferencesResponseBody {
539
+ /**
540
+ * The file locations referencing the symbol.
541
+ */
542
+ refs: ReferencesResponseItem[];
543
+ /**
544
+ * The name of the symbol.
545
+ */
546
+ symbolName: string;
547
+ /**
548
+ * The start character offset of the symbol (on the line provided by the references request).
549
+ */
550
+ symbolStartOffset: number;
551
+ /**
552
+ * The full display name of the symbol.
553
+ */
554
+ symbolDisplayString: string;
555
+ }
556
+ /**
557
+ * Response to "references" request.
558
+ */
559
+ interface ReferencesResponse extends Response {
560
+ body?: ReferencesResponseBody;
561
+ }
562
+ /**
563
+ * Argument for RenameRequest request.
564
+ */
565
+ interface RenameRequestArgs extends FileLocationRequestArgs {
566
+ /**
567
+ * Should text at specified location be found/changed in comments?
568
+ */
569
+ findInComments?: boolean;
570
+ /**
571
+ * Should text at specified location be found/changed in strings?
572
+ */
573
+ findInStrings?: boolean;
574
+ }
575
+ /**
576
+ * Rename request; value of command field is "rename". Return
577
+ * response giving the file locations that reference the symbol
578
+ * found in file at location line, col. Also return full display
579
+ * name of the symbol so that client can print it unambiguously.
580
+ */
581
+ interface RenameRequest extends FileLocationRequest {
582
+ command: CommandTypes.Rename;
583
+ arguments: RenameRequestArgs;
584
+ }
585
+ /**
586
+ * Information about the item to be renamed.
587
+ */
588
+ interface RenameInfo {
589
+ /**
590
+ * True if item can be renamed.
591
+ */
592
+ canRename: boolean;
593
+ /**
594
+ * Error message if item can not be renamed.
595
+ */
596
+ localizedErrorMessage?: string;
597
+ /**
598
+ * Display name of the item to be renamed.
599
+ */
600
+ displayName: string;
601
+ /**
602
+ * Full display name of item to be renamed.
603
+ */
604
+ fullDisplayName: string;
605
+ /**
606
+ * The items's kind (such as 'className' or 'parameterName' or plain 'text').
607
+ */
608
+ kind: string;
609
+ /**
610
+ * Optional modifiers for the kind (such as 'public').
611
+ */
612
+ kindModifiers: string;
613
+ }
614
+ /**
615
+ * A group of text spans, all in 'file'.
616
+ */
617
+ interface SpanGroup {
618
+ /** The file to which the spans apply */
619
+ file: string;
620
+ /** The text spans in this group */
621
+ locs: TextSpan[];
622
+ }
623
+ interface RenameResponseBody {
624
+ /**
625
+ * Information about the item to be renamed.
626
+ */
627
+ info: RenameInfo;
628
+ /**
629
+ * An array of span groups (one per file) that refer to the item to be renamed.
630
+ */
631
+ locs: SpanGroup[];
632
+ }
633
+ /**
634
+ * Rename response message.
635
+ */
636
+ interface RenameResponse extends Response {
637
+ body?: RenameResponseBody;
638
+ }
639
+ /**
640
+ * Represents a file in external project.
641
+ * External project is project whose set of files, compilation options and open\close state
642
+ * is maintained by the client (i.e. if all this data come from .csproj file in Visual Studio).
643
+ * External project will exist even if all files in it are closed and should be closed explicity.
644
+ * If external project includes one or more tsconfig.json/jsconfig.json files then tsserver will
645
+ * create configured project for every config file but will maintain a link that these projects were created
646
+ * as a result of opening external project so they should be removed once external project is closed.
647
+ */
648
+ interface ExternalFile {
649
+ /**
650
+ * Name of file file
651
+ */
652
+ fileName: string;
653
+ /**
654
+ * Script kind of the file
655
+ */
656
+ scriptKind?: ScriptKindName | ts.ScriptKind;
657
+ /**
658
+ * Whether file has mixed content (i.e. .cshtml file that combines html markup with C#/JavaScript)
659
+ */
660
+ hasMixedContent?: boolean;
661
+ /**
662
+ * Content of the file
663
+ */
664
+ content?: string;
665
+ }
666
+ /**
667
+ * Represent an external project
668
+ */
669
+ interface ExternalProject {
670
+ /**
671
+ * Project name
672
+ */
673
+ projectFileName: string;
674
+ /**
675
+ * List of root files in project
676
+ */
677
+ rootFiles: ExternalFile[];
678
+ /**
679
+ * Compiler options for the project
680
+ */
681
+ options: ExternalProjectCompilerOptions;
682
+ /**
683
+ * @deprecated typingOptions. Use typeAcquisition instead
684
+ */
685
+ typingOptions?: TypeAcquisition;
686
+ /**
687
+ * Explicitly specified type acquisition for the project
688
+ */
689
+ typeAcquisition?: TypeAcquisition;
690
+ }
691
+ interface CompileOnSaveMixin {
692
+ /**
693
+ * If compile on save is enabled for the project
694
+ */
695
+ compileOnSave?: boolean;
696
+ }
697
+ /**
698
+ * For external projects, some of the project settings are sent together with
699
+ * compiler settings.
700
+ */
701
+ type ExternalProjectCompilerOptions = CompilerOptions & CompileOnSaveMixin;
702
+ /**
703
+ * Represents a set of changes that happen in project
704
+ */
705
+ interface ProjectChanges {
706
+ /**
707
+ * List of added files
708
+ */
709
+ added: string[];
710
+ /**
711
+ * List of removed files
712
+ */
713
+ removed: string[];
714
+ /**
715
+ * List of updated files
716
+ */
717
+ updated: string[];
718
+ }
719
+ /**
720
+ * Information found in a configure request.
721
+ */
722
+ interface ConfigureRequestArguments {
723
+ /**
724
+ * Information about the host, for example 'Emacs 24.4' or
725
+ * 'Sublime Text version 3075'
726
+ */
727
+ hostInfo?: string;
728
+ /**
729
+ * If present, tab settings apply only to this file.
730
+ */
731
+ file?: string;
732
+ /**
733
+ * The format options to use during formatting and other code editing features.
734
+ */
735
+ formatOptions?: FormatCodeSettings;
736
+ /**
737
+ * The host's additional supported file extensions
738
+ */
739
+ extraFileExtensions?: FileExtensionInfo[];
740
+ }
741
+ /**
742
+ * Configure request; value of command field is "configure". Specifies
743
+ * host information, such as host type, tab size, and indent size.
744
+ */
745
+ interface ConfigureRequest extends Request {
746
+ command: CommandTypes.Configure;
747
+ arguments: ConfigureRequestArguments;
748
+ }
749
+ /**
750
+ * Response to "configure" request. This is just an acknowledgement, so
751
+ * no body field is required.
752
+ */
753
+ interface ConfigureResponse extends Response {
754
+ }
755
+ /**
756
+ * Information found in an "open" request.
757
+ */
758
+ interface OpenRequestArgs extends FileRequestArgs {
759
+ /**
760
+ * Used when a version of the file content is known to be more up to date than the one on disk.
761
+ * Then the known content will be used upon opening instead of the disk copy
762
+ */
763
+ fileContent?: string;
764
+ /**
765
+ * Used to specify the script kind of the file explicitly. It could be one of the following:
766
+ * "TS", "JS", "TSX", "JSX"
767
+ */
768
+ scriptKindName?: ScriptKindName;
769
+ }
770
+ type ScriptKindName = "TS" | "JS" | "TSX" | "JSX";
771
+ /**
772
+ * Open request; value of command field is "open". Notify the
773
+ * server that the client has file open. The server will not
774
+ * monitor the filesystem for changes in this file and will assume
775
+ * that the client is updating the server (using the change and/or
776
+ * reload messages) when the file changes. Server does not currently
777
+ * send a response to an open request.
778
+ */
779
+ interface OpenRequest extends Request {
780
+ command: CommandTypes.Open;
781
+ arguments: OpenRequestArgs;
782
+ }
783
+ /**
784
+ * Request to open or update external project
785
+ */
786
+ interface OpenExternalProjectRequest extends Request {
787
+ command: CommandTypes.OpenExternalProject;
788
+ arguments: OpenExternalProjectArgs;
789
+ }
790
+ /**
791
+ * Arguments to OpenExternalProjectRequest request
792
+ */
793
+ type OpenExternalProjectArgs = ExternalProject;
794
+ /**
795
+ * Request to open multiple external projects
796
+ */
797
+ interface OpenExternalProjectsRequest extends Request {
798
+ command: CommandTypes.OpenExternalProjects;
799
+ arguments: OpenExternalProjectsArgs;
800
+ }
801
+ /**
802
+ * Arguments to OpenExternalProjectsRequest
803
+ */
804
+ interface OpenExternalProjectsArgs {
805
+ /**
806
+ * List of external projects to open or update
807
+ */
808
+ projects: ExternalProject[];
809
+ }
810
+ /**
811
+ * Response to OpenExternalProjectRequest request. This is just an acknowledgement, so
812
+ * no body field is required.
813
+ */
814
+ interface OpenExternalProjectResponse extends Response {
815
+ }
816
+ /**
817
+ * Response to OpenExternalProjectsRequest request. This is just an acknowledgement, so
818
+ * no body field is required.
819
+ */
820
+ interface OpenExternalProjectsResponse extends Response {
821
+ }
822
+ /**
823
+ * Request to close external project.
824
+ */
825
+ interface CloseExternalProjectRequest extends Request {
826
+ command: CommandTypes.CloseExternalProject;
827
+ arguments: CloseExternalProjectRequestArgs;
828
+ }
829
+ /**
830
+ * Arguments to CloseExternalProjectRequest request
831
+ */
832
+ interface CloseExternalProjectRequestArgs {
833
+ /**
834
+ * Name of the project to close
835
+ */
836
+ projectFileName: string;
837
+ }
838
+ /**
839
+ * Response to CloseExternalProjectRequest request. This is just an acknowledgement, so
840
+ * no body field is required.
841
+ */
842
+ interface CloseExternalProjectResponse extends Response {
843
+ }
844
+ /**
845
+ * Request to set compiler options for inferred projects.
846
+ * External projects are opened / closed explicitly.
847
+ * Configured projects are opened when user opens loose file that has 'tsconfig.json' or 'jsconfig.json' anywhere in one of containing folders.
848
+ * This configuration file will be used to obtain a list of files and configuration settings for the project.
849
+ * Inferred projects are created when user opens a loose file that is not the part of external project
850
+ * or configured project and will contain only open file and transitive closure of referenced files if 'useOneInferredProject' is false,
851
+ * or all open loose files and its transitive closure of referenced files if 'useOneInferredProject' is true.
852
+ */
853
+ interface SetCompilerOptionsForInferredProjectsRequest extends Request {
854
+ command: CommandTypes.CompilerOptionsForInferredProjects;
855
+ arguments: SetCompilerOptionsForInferredProjectsArgs;
856
+ }
857
+ /**
858
+ * Argument for SetCompilerOptionsForInferredProjectsRequest request.
859
+ */
860
+ interface SetCompilerOptionsForInferredProjectsArgs {
861
+ /**
862
+ * Compiler options to be used with inferred projects.
863
+ */
864
+ options: ExternalProjectCompilerOptions;
865
+ }
866
+ /**
867
+ * Response to SetCompilerOptionsForInferredProjectsResponse request. This is just an acknowledgement, so
868
+ * no body field is required.
869
+ */
870
+ interface SetCompilerOptionsForInferredProjectsResponse extends Response {
871
+ }
872
+ /**
873
+ * Exit request; value of command field is "exit". Ask the server process
874
+ * to exit.
875
+ */
876
+ interface ExitRequest extends Request {
877
+ command: CommandTypes.Exit;
878
+ }
879
+ /**
880
+ * Close request; value of command field is "close". Notify the
881
+ * server that the client has closed a previously open file. If
882
+ * file is still referenced by open files, the server will resume
883
+ * monitoring the filesystem for changes to file. Server does not
884
+ * currently send a response to a close request.
885
+ */
886
+ interface CloseRequest extends FileRequest {
887
+ command: CommandTypes.Close;
888
+ }
889
+ /**
890
+ * Request to obtain the list of files that should be regenerated if target file is recompiled.
891
+ * NOTE: this us query-only operation and does not generate any output on disk.
892
+ */
893
+ interface CompileOnSaveAffectedFileListRequest extends FileRequest {
894
+ command: CommandTypes.CompileOnSaveAffectedFileList;
895
+ }
896
+ /**
897
+ * Contains a list of files that should be regenerated in a project
898
+ */
899
+ interface CompileOnSaveAffectedFileListSingleProject {
900
+ /**
901
+ * Project name
902
+ */
903
+ projectFileName: string;
904
+ /**
905
+ * List of files names that should be recompiled
906
+ */
907
+ fileNames: string[];
908
+ }
909
+ /**
910
+ * Response for CompileOnSaveAffectedFileListRequest request;
911
+ */
912
+ interface CompileOnSaveAffectedFileListResponse extends Response {
913
+ body: CompileOnSaveAffectedFileListSingleProject[];
914
+ }
915
+ /**
916
+ * Request to recompile the file. All generated outputs (.js, .d.ts or .js.map files) is written on disk.
917
+ */
918
+ interface CompileOnSaveEmitFileRequest extends FileRequest {
919
+ command: CommandTypes.CompileOnSaveEmitFile;
920
+ arguments: CompileOnSaveEmitFileRequestArgs;
921
+ }
922
+ /**
923
+ * Arguments for CompileOnSaveEmitFileRequest
924
+ */
925
+ interface CompileOnSaveEmitFileRequestArgs extends FileRequestArgs {
926
+ /**
927
+ * if true - then file should be recompiled even if it does not have any changes.
928
+ */
929
+ forced?: boolean;
930
+ }
931
+ /**
932
+ * Quickinfo request; value of command field is
933
+ * "quickinfo". Return response giving a quick type and
934
+ * documentation string for the symbol found in file at location
935
+ * line, col.
936
+ */
937
+ interface QuickInfoRequest extends FileLocationRequest {
938
+ command: CommandTypes.Quickinfo;
939
+ }
940
+ /**
941
+ * Body of QuickInfoResponse.
942
+ */
943
+ interface QuickInfoResponseBody {
944
+ /**
945
+ * The symbol's kind (such as 'className' or 'parameterName' or plain 'text').
946
+ */
947
+ kind: string;
948
+ /**
949
+ * Optional modifiers for the kind (such as 'public').
950
+ */
951
+ kindModifiers: string;
952
+ /**
953
+ * Starting file location of symbol.
954
+ */
955
+ start: Location;
956
+ /**
957
+ * One past last character of symbol.
958
+ */
959
+ end: Location;
960
+ /**
961
+ * Type and kind of symbol.
962
+ */
963
+ displayString: string;
964
+ /**
965
+ * Documentation associated with symbol.
966
+ */
967
+ documentation: string;
968
+ /**
969
+ * JSDoc tags associated with symbol.
970
+ */
971
+ tags: JSDocTagInfo[];
972
+ }
973
+ /**
974
+ * Quickinfo response message.
975
+ */
976
+ interface QuickInfoResponse extends Response {
977
+ body?: QuickInfoResponseBody;
978
+ }
979
+ /**
980
+ * Arguments for format messages.
981
+ */
982
+ interface FormatRequestArgs extends FileLocationRequestArgs {
983
+ /**
984
+ * Last line of range for which to format text in file.
985
+ */
986
+ endLine: number;
987
+ /**
988
+ * Character offset on last line of range for which to format text in file.
989
+ */
990
+ endOffset: number;
991
+ /**
992
+ * Format options to be used.
993
+ */
994
+ options?: FormatCodeSettings;
995
+ }
996
+ /**
997
+ * Format request; value of command field is "format". Return
998
+ * response giving zero or more edit instructions. The edit
999
+ * instructions will be sorted in file order. Applying the edit
1000
+ * instructions in reverse to file will result in correctly
1001
+ * reformatted text.
1002
+ */
1003
+ interface FormatRequest extends FileLocationRequest {
1004
+ command: CommandTypes.Format;
1005
+ arguments: FormatRequestArgs;
1006
+ }
1007
+ /**
1008
+ * Object found in response messages defining an editing
1009
+ * instruction for a span of text in source code. The effect of
1010
+ * this instruction is to replace the text starting at start and
1011
+ * ending one character before end with newText. For an insertion,
1012
+ * the text span is empty. For a deletion, newText is empty.
1013
+ */
1014
+ interface CodeEdit {
1015
+ /**
1016
+ * First character of the text span to edit.
1017
+ */
1018
+ start: Location;
1019
+ /**
1020
+ * One character past last character of the text span to edit.
1021
+ */
1022
+ end: Location;
1023
+ /**
1024
+ * Replace the span defined above with this string (may be
1025
+ * the empty string).
1026
+ */
1027
+ newText: string;
1028
+ }
1029
+ interface FileCodeEdits {
1030
+ fileName: string;
1031
+ textChanges: CodeEdit[];
1032
+ }
1033
+ interface CodeFixResponse extends Response {
1034
+ /** The code actions that are available */
1035
+ body?: CodeAction[];
1036
+ }
1037
+ interface CodeAction {
1038
+ /** Description of the code action to display in the UI of the editor */
1039
+ description: string;
1040
+ /** Text changes to apply to each file as part of the code action */
1041
+ changes: FileCodeEdits[];
1042
+ }
1043
+ /**
1044
+ * Format and format on key response message.
1045
+ */
1046
+ interface FormatResponse extends Response {
1047
+ body?: CodeEdit[];
1048
+ }
1049
+ /**
1050
+ * Arguments for format on key messages.
1051
+ */
1052
+ interface FormatOnKeyRequestArgs extends FileLocationRequestArgs {
1053
+ /**
1054
+ * Key pressed (';', '\n', or '}').
1055
+ */
1056
+ key: string;
1057
+ options?: FormatCodeSettings;
1058
+ }
1059
+ /**
1060
+ * Format on key request; value of command field is
1061
+ * "formatonkey". Given file location and key typed (as string),
1062
+ * return response giving zero or more edit instructions. The
1063
+ * edit instructions will be sorted in file order. Applying the
1064
+ * edit instructions in reverse to file will result in correctly
1065
+ * reformatted text.
1066
+ */
1067
+ interface FormatOnKeyRequest extends FileLocationRequest {
1068
+ command: CommandTypes.Formatonkey;
1069
+ arguments: FormatOnKeyRequestArgs;
1070
+ }
1071
+ /**
1072
+ * Arguments for completions messages.
1073
+ */
1074
+ interface CompletionsRequestArgs extends FileLocationRequestArgs {
1075
+ /**
1076
+ * Optional prefix to apply to possible completions.
1077
+ */
1078
+ prefix?: string;
1079
+ }
1080
+ /**
1081
+ * Completions request; value of command field is "completions".
1082
+ * Given a file location (file, line, col) and a prefix (which may
1083
+ * be the empty string), return the possible completions that
1084
+ * begin with prefix.
1085
+ */
1086
+ interface CompletionsRequest extends FileLocationRequest {
1087
+ command: CommandTypes.Completions;
1088
+ arguments: CompletionsRequestArgs;
1089
+ }
1090
+ /**
1091
+ * Arguments for completion details request.
1092
+ */
1093
+ interface CompletionDetailsRequestArgs extends FileLocationRequestArgs {
1094
+ /**
1095
+ * Names of one or more entries for which to obtain details.
1096
+ */
1097
+ entryNames: string[];
1098
+ }
1099
+ /**
1100
+ * Completion entry details request; value of command field is
1101
+ * "completionEntryDetails". Given a file location (file, line,
1102
+ * col) and an array of completion entry names return more
1103
+ * detailed information for each completion entry.
1104
+ */
1105
+ interface CompletionDetailsRequest extends FileLocationRequest {
1106
+ command: CommandTypes.CompletionDetails;
1107
+ arguments: CompletionDetailsRequestArgs;
1108
+ }
1109
+ /**
1110
+ * Part of a symbol description.
1111
+ */
1112
+ interface SymbolDisplayPart {
1113
+ /**
1114
+ * Text of an item describing the symbol.
1115
+ */
1116
+ text: string;
1117
+ /**
1118
+ * The symbol's kind (such as 'className' or 'parameterName' or plain 'text').
1119
+ */
1120
+ kind: string;
1121
+ }
1122
+ /**
1123
+ * An item found in a completion response.
1124
+ */
1125
+ interface CompletionEntry {
1126
+ /**
1127
+ * The symbol's name.
1128
+ */
1129
+ name: string;
1130
+ /**
1131
+ * The symbol's kind (such as 'className' or 'parameterName').
1132
+ */
1133
+ kind: string;
1134
+ /**
1135
+ * Optional modifiers for the kind (such as 'public').
1136
+ */
1137
+ kindModifiers: string;
1138
+ /**
1139
+ * A string that is used for comparing completion items so that they can be ordered. This
1140
+ * is often the same as the name but may be different in certain circumstances.
1141
+ */
1142
+ sortText: string;
1143
+ /**
1144
+ * An optional span that indicates the text to be replaced by this completion item. If present,
1145
+ * this span should be used instead of the default one.
1146
+ */
1147
+ replacementSpan?: TextSpan;
1148
+ }
1149
+ /**
1150
+ * Additional completion entry details, available on demand
1151
+ */
1152
+ interface CompletionEntryDetails {
1153
+ /**
1154
+ * The symbol's name.
1155
+ */
1156
+ name: string;
1157
+ /**
1158
+ * The symbol's kind (such as 'className' or 'parameterName').
1159
+ */
1160
+ kind: string;
1161
+ /**
1162
+ * Optional modifiers for the kind (such as 'public').
1163
+ */
1164
+ kindModifiers: string;
1165
+ /**
1166
+ * Display parts of the symbol (similar to quick info).
1167
+ */
1168
+ displayParts: SymbolDisplayPart[];
1169
+ /**
1170
+ * Documentation strings for the symbol.
1171
+ */
1172
+ documentation: SymbolDisplayPart[];
1173
+ /**
1174
+ * JSDoc tags for the symbol.
1175
+ */
1176
+ tags: JSDocTagInfo[];
1177
+ }
1178
+ interface CompletionsResponse extends Response {
1179
+ body?: CompletionEntry[];
1180
+ }
1181
+ interface CompletionDetailsResponse extends Response {
1182
+ body?: CompletionEntryDetails[];
1183
+ }
1184
+ /**
1185
+ * Signature help information for a single parameter
1186
+ */
1187
+ interface SignatureHelpParameter {
1188
+ /**
1189
+ * The parameter's name
1190
+ */
1191
+ name: string;
1192
+ /**
1193
+ * Documentation of the parameter.
1194
+ */
1195
+ documentation: SymbolDisplayPart[];
1196
+ /**
1197
+ * Display parts of the parameter.
1198
+ */
1199
+ displayParts: SymbolDisplayPart[];
1200
+ /**
1201
+ * Whether the parameter is optional or not.
1202
+ */
1203
+ isOptional: boolean;
1204
+ }
1205
+ /**
1206
+ * Represents a single signature to show in signature help.
1207
+ */
1208
+ interface SignatureHelpItem {
1209
+ /**
1210
+ * Whether the signature accepts a variable number of arguments.
1211
+ */
1212
+ isVariadic: boolean;
1213
+ /**
1214
+ * The prefix display parts.
1215
+ */
1216
+ prefixDisplayParts: SymbolDisplayPart[];
1217
+ /**
1218
+ * The suffix display parts.
1219
+ */
1220
+ suffixDisplayParts: SymbolDisplayPart[];
1221
+ /**
1222
+ * The separator display parts.
1223
+ */
1224
+ separatorDisplayParts: SymbolDisplayPart[];
1225
+ /**
1226
+ * The signature helps items for the parameters.
1227
+ */
1228
+ parameters: SignatureHelpParameter[];
1229
+ /**
1230
+ * The signature's documentation
1231
+ */
1232
+ documentation: SymbolDisplayPart[];
1233
+ /**
1234
+ * The signature's JSDoc tags
1235
+ */
1236
+ tags: JSDocTagInfo[];
1237
+ }
1238
+ /**
1239
+ * Signature help items found in the response of a signature help request.
1240
+ */
1241
+ interface SignatureHelpItems {
1242
+ /**
1243
+ * The signature help items.
1244
+ */
1245
+ items: SignatureHelpItem[];
1246
+ /**
1247
+ * The span for which signature help should appear on a signature
1248
+ */
1249
+ applicableSpan: TextSpan;
1250
+ /**
1251
+ * The item selected in the set of available help items.
1252
+ */
1253
+ selectedItemIndex: number;
1254
+ /**
1255
+ * The argument selected in the set of parameters.
1256
+ */
1257
+ argumentIndex: number;
1258
+ /**
1259
+ * The argument count
1260
+ */
1261
+ argumentCount: number;
1262
+ }
1263
+ /**
1264
+ * Arguments of a signature help request.
1265
+ */
1266
+ interface SignatureHelpRequestArgs extends FileLocationRequestArgs {
1267
+ }
1268
+ /**
1269
+ * Signature help request; value of command field is "signatureHelp".
1270
+ * Given a file location (file, line, col), return the signature
1271
+ * help.
1272
+ */
1273
+ interface SignatureHelpRequest extends FileLocationRequest {
1274
+ command: CommandTypes.SignatureHelp;
1275
+ arguments: SignatureHelpRequestArgs;
1276
+ }
1277
+ /**
1278
+ * Response object for a SignatureHelpRequest.
1279
+ */
1280
+ interface SignatureHelpResponse extends Response {
1281
+ body?: SignatureHelpItems;
1282
+ }
1283
+ /**
1284
+ * Synchronous request for semantic diagnostics of one file.
1285
+ */
1286
+ interface SemanticDiagnosticsSyncRequest extends FileRequest {
1287
+ command: CommandTypes.SemanticDiagnosticsSync;
1288
+ arguments: SemanticDiagnosticsSyncRequestArgs;
1289
+ }
1290
+ interface SemanticDiagnosticsSyncRequestArgs extends FileRequestArgs {
1291
+ includeLinePosition?: boolean;
1292
+ }
1293
+ /**
1294
+ * Response object for synchronous sematic diagnostics request.
1295
+ */
1296
+ interface SemanticDiagnosticsSyncResponse extends Response {
1297
+ body?: Diagnostic[] | DiagnosticWithLinePosition[];
1298
+ }
1299
+ /**
1300
+ * Synchronous request for syntactic diagnostics of one file.
1301
+ */
1302
+ interface SyntacticDiagnosticsSyncRequest extends FileRequest {
1303
+ command: CommandTypes.SyntacticDiagnosticsSync;
1304
+ arguments: SyntacticDiagnosticsSyncRequestArgs;
1305
+ }
1306
+ interface SyntacticDiagnosticsSyncRequestArgs extends FileRequestArgs {
1307
+ includeLinePosition?: boolean;
1308
+ }
1309
+ /**
1310
+ * Response object for synchronous syntactic diagnostics request.
1311
+ */
1312
+ interface SyntacticDiagnosticsSyncResponse extends Response {
1313
+ body?: Diagnostic[] | DiagnosticWithLinePosition[];
1314
+ }
1315
+ /**
1316
+ * Arguments for GeterrForProject request.
1317
+ */
1318
+ interface GeterrForProjectRequestArgs {
1319
+ /**
1320
+ * the file requesting project error list
1321
+ */
1322
+ file: string;
1323
+ /**
1324
+ * Delay in milliseconds to wait before starting to compute
1325
+ * errors for the files in the file list
1326
+ */
1327
+ delay: number;
1328
+ }
1329
+ /**
1330
+ * GeterrForProjectRequest request; value of command field is
1331
+ * "geterrForProject". It works similarly with 'Geterr', only
1332
+ * it request for every file in this project.
1333
+ */
1334
+ interface GeterrForProjectRequest extends Request {
1335
+ command: CommandTypes.GeterrForProject;
1336
+ arguments: GeterrForProjectRequestArgs;
1337
+ }
1338
+ /**
1339
+ * Arguments for geterr messages.
1340
+ */
1341
+ interface GeterrRequestArgs {
1342
+ /**
1343
+ * List of file names for which to compute compiler errors.
1344
+ * The files will be checked in list order.
1345
+ */
1346
+ files: string[];
1347
+ /**
1348
+ * Delay in milliseconds to wait before starting to compute
1349
+ * errors for the files in the file list
1350
+ */
1351
+ delay: number;
1352
+ }
1353
+ /**
1354
+ * Geterr request; value of command field is "geterr". Wait for
1355
+ * delay milliseconds and then, if during the wait no change or
1356
+ * reload messages have arrived for the first file in the files
1357
+ * list, get the syntactic errors for the file, field requests,
1358
+ * and then get the semantic errors for the file. Repeat with a
1359
+ * smaller delay for each subsequent file on the files list. Best
1360
+ * practice for an editor is to send a file list containing each
1361
+ * file that is currently visible, in most-recently-used order.
1362
+ */
1363
+ interface GeterrRequest extends Request {
1364
+ command: CommandTypes.Geterr;
1365
+ arguments: GeterrRequestArgs;
1366
+ }
1367
+ /**
1368
+ * Item of diagnostic information found in a DiagnosticEvent message.
1369
+ */
1370
+ interface Diagnostic {
1371
+ /**
1372
+ * Starting file location at which text applies.
1373
+ */
1374
+ start: Location;
1375
+ /**
1376
+ * The last file location at which the text applies.
1377
+ */
1378
+ end: Location;
1379
+ /**
1380
+ * Text of diagnostic message.
1381
+ */
1382
+ text: string;
1383
+ /**
1384
+ * The error code of the diagnostic message.
1385
+ */
1386
+ code?: number;
1387
+ }
1388
+ interface DiagnosticEventBody {
1389
+ /**
1390
+ * The file for which diagnostic information is reported.
1391
+ */
1392
+ file: string;
1393
+ /**
1394
+ * An array of diagnostic information items.
1395
+ */
1396
+ diagnostics: Diagnostic[];
1397
+ }
1398
+ /**
1399
+ * Event message for "syntaxDiag" and "semanticDiag" event types.
1400
+ * These events provide syntactic and semantic errors for a file.
1401
+ */
1402
+ interface DiagnosticEvent extends Event {
1403
+ body?: DiagnosticEventBody;
1404
+ }
1405
+ interface ConfigFileDiagnosticEventBody {
1406
+ /**
1407
+ * The file which trigged the searching and error-checking of the config file
1408
+ */
1409
+ triggerFile: string;
1410
+ /**
1411
+ * The name of the found config file.
1412
+ */
1413
+ configFile: string;
1414
+ /**
1415
+ * An arry of diagnostic information items for the found config file.
1416
+ */
1417
+ diagnostics: Diagnostic[];
1418
+ }
1419
+ /**
1420
+ * Event message for "configFileDiag" event type.
1421
+ * This event provides errors for a found config file.
1422
+ */
1423
+ interface ConfigFileDiagnosticEvent extends Event {
1424
+ body?: ConfigFileDiagnosticEventBody;
1425
+ event: "configFileDiag";
1426
+ }
1427
+ type ProjectLanguageServiceStateEventName = "projectLanguageServiceState";
1428
+ interface ProjectLanguageServiceStateEvent extends Event {
1429
+ event: ProjectLanguageServiceStateEventName;
1430
+ body?: ProjectLanguageServiceStateEventBody;
1431
+ }
1432
+ interface ProjectLanguageServiceStateEventBody {
1433
+ /**
1434
+ * Project name that has changes in the state of language service.
1435
+ * For configured projects this will be the config file path.
1436
+ * For external projects this will be the name of the projects specified when project was open.
1437
+ * For inferred projects this event is not raised.
1438
+ */
1439
+ projectName: string;
1440
+ /**
1441
+ * True if language service state switched from disabled to enabled
1442
+ * and false otherwise.
1443
+ */
1444
+ languageServiceEnabled: boolean;
1445
+ }
1446
+ /**
1447
+ * Arguments for reload request.
1448
+ */
1449
+ interface ReloadRequestArgs extends FileRequestArgs {
1450
+ /**
1451
+ * Name of temporary file from which to reload file
1452
+ * contents. May be same as file.
1453
+ */
1454
+ tmpfile: string;
1455
+ }
1456
+ /**
1457
+ * Reload request message; value of command field is "reload".
1458
+ * Reload contents of file with name given by the 'file' argument
1459
+ * from temporary file with name given by the 'tmpfile' argument.
1460
+ * The two names can be identical.
1461
+ */
1462
+ interface ReloadRequest extends FileRequest {
1463
+ command: CommandTypes.Reload;
1464
+ arguments: ReloadRequestArgs;
1465
+ }
1466
+ /**
1467
+ * Response to "reload" request. This is just an acknowledgement, so
1468
+ * no body field is required.
1469
+ */
1470
+ interface ReloadResponse extends Response {
1471
+ }
1472
+ /**
1473
+ * Arguments for saveto request.
1474
+ */
1475
+ interface SavetoRequestArgs extends FileRequestArgs {
1476
+ /**
1477
+ * Name of temporary file into which to save server's view of
1478
+ * file contents.
1479
+ */
1480
+ tmpfile: string;
1481
+ }
1482
+ /**
1483
+ * Saveto request message; value of command field is "saveto".
1484
+ * For debugging purposes, save to a temporaryfile (named by
1485
+ * argument 'tmpfile') the contents of file named by argument
1486
+ * 'file'. The server does not currently send a response to a
1487
+ * "saveto" request.
1488
+ */
1489
+ interface SavetoRequest extends FileRequest {
1490
+ command: CommandTypes.Saveto;
1491
+ arguments: SavetoRequestArgs;
1492
+ }
1493
+ /**
1494
+ * Arguments for navto request message.
1495
+ */
1496
+ interface NavtoRequestArgs extends FileRequestArgs {
1497
+ /**
1498
+ * Search term to navigate to from current location; term can
1499
+ * be '.*' or an identifier prefix.
1500
+ */
1501
+ searchValue: string;
1502
+ /**
1503
+ * Optional limit on the number of items to return.
1504
+ */
1505
+ maxResultCount?: number;
1506
+ /**
1507
+ * Optional flag to indicate we want results for just the current file
1508
+ * or the entire project.
1509
+ */
1510
+ currentFileOnly?: boolean;
1511
+ projectFileName?: string;
1512
+ }
1513
+ /**
1514
+ * Navto request message; value of command field is "navto".
1515
+ * Return list of objects giving file locations and symbols that
1516
+ * match the search term given in argument 'searchTerm'. The
1517
+ * context for the search is given by the named file.
1518
+ */
1519
+ interface NavtoRequest extends FileRequest {
1520
+ command: CommandTypes.Navto;
1521
+ arguments: NavtoRequestArgs;
1522
+ }
1523
+ /**
1524
+ * An item found in a navto response.
1525
+ */
1526
+ interface NavtoItem {
1527
+ /**
1528
+ * The symbol's name.
1529
+ */
1530
+ name: string;
1531
+ /**
1532
+ * The symbol's kind (such as 'className' or 'parameterName').
1533
+ */
1534
+ kind: string;
1535
+ /**
1536
+ * exact, substring, or prefix.
1537
+ */
1538
+ matchKind?: string;
1539
+ /**
1540
+ * If this was a case sensitive or insensitive match.
1541
+ */
1542
+ isCaseSensitive?: boolean;
1543
+ /**
1544
+ * Optional modifiers for the kind (such as 'public').
1545
+ */
1546
+ kindModifiers?: string;
1547
+ /**
1548
+ * The file in which the symbol is found.
1549
+ */
1550
+ file: string;
1551
+ /**
1552
+ * The location within file at which the symbol is found.
1553
+ */
1554
+ start: Location;
1555
+ /**
1556
+ * One past the last character of the symbol.
1557
+ */
1558
+ end: Location;
1559
+ /**
1560
+ * Name of symbol's container symbol (if any); for example,
1561
+ * the class name if symbol is a class member.
1562
+ */
1563
+ containerName?: string;
1564
+ /**
1565
+ * Kind of symbol's container symbol (if any).
1566
+ */
1567
+ containerKind?: string;
1568
+ }
1569
+ /**
1570
+ * Navto response message. Body is an array of navto items. Each
1571
+ * item gives a symbol that matched the search term.
1572
+ */
1573
+ interface NavtoResponse extends Response {
1574
+ body?: NavtoItem[];
1575
+ }
1576
+ /**
1577
+ * Arguments for change request message.
1578
+ */
1579
+ interface ChangeRequestArgs extends FormatRequestArgs {
1580
+ /**
1581
+ * Optional string to insert at location (file, line, offset).
1582
+ */
1583
+ insertString?: string;
1584
+ }
1585
+ /**
1586
+ * Change request message; value of command field is "change".
1587
+ * Update the server's view of the file named by argument 'file'.
1588
+ * Server does not currently send a response to a change request.
1589
+ */
1590
+ interface ChangeRequest extends FileLocationRequest {
1591
+ command: CommandTypes.Change;
1592
+ arguments: ChangeRequestArgs;
1593
+ }
1594
+ /**
1595
+ * Response to "brace" request.
1596
+ */
1597
+ interface BraceResponse extends Response {
1598
+ body?: TextSpan[];
1599
+ }
1600
+ /**
1601
+ * Brace matching request; value of command field is "brace".
1602
+ * Return response giving the file locations of matching braces
1603
+ * found in file at location line, offset.
1604
+ */
1605
+ interface BraceRequest extends FileLocationRequest {
1606
+ command: CommandTypes.Brace;
1607
+ }
1608
+ /**
1609
+ * NavBar items request; value of command field is "navbar".
1610
+ * Return response giving the list of navigation bar entries
1611
+ * extracted from the requested file.
1612
+ */
1613
+ interface NavBarRequest extends FileRequest {
1614
+ command: CommandTypes.NavBar;
1615
+ }
1616
+ /**
1617
+ * NavTree request; value of command field is "navtree".
1618
+ * Return response giving the navigation tree of the requested file.
1619
+ */
1620
+ interface NavTreeRequest extends FileRequest {
1621
+ command: CommandTypes.NavTree;
1622
+ }
1623
+ interface NavigationBarItem {
1624
+ /**
1625
+ * The item's display text.
1626
+ */
1627
+ text: string;
1628
+ /**
1629
+ * The symbol's kind (such as 'className' or 'parameterName').
1630
+ */
1631
+ kind: string;
1632
+ /**
1633
+ * Optional modifiers for the kind (such as 'public').
1634
+ */
1635
+ kindModifiers?: string;
1636
+ /**
1637
+ * The definition locations of the item.
1638
+ */
1639
+ spans: TextSpan[];
1640
+ /**
1641
+ * Optional children.
1642
+ */
1643
+ childItems?: NavigationBarItem[];
1644
+ /**
1645
+ * Number of levels deep this item should appear.
1646
+ */
1647
+ indent: number;
1648
+ }
1649
+ /** protocol.NavigationTree is identical to ts.NavigationTree, except using protocol.TextSpan instead of ts.TextSpan */
1650
+ interface NavigationTree {
1651
+ text: string;
1652
+ kind: string;
1653
+ kindModifiers: string;
1654
+ spans: TextSpan[];
1655
+ childItems?: NavigationTree[];
1656
+ }
1657
+ type TelemetryEventName = "telemetry";
1658
+ interface TelemetryEvent extends Event {
1659
+ event: TelemetryEventName;
1660
+ body: TelemetryEventBody;
1661
+ }
1662
+ interface TelemetryEventBody {
1663
+ telemetryEventName: string;
1664
+ payload: any;
1665
+ }
1666
+ type TypingsInstalledTelemetryEventName = "typingsInstalled";
1667
+ interface TypingsInstalledTelemetryEventBody extends TelemetryEventBody {
1668
+ telemetryEventName: TypingsInstalledTelemetryEventName;
1669
+ payload: TypingsInstalledTelemetryEventPayload;
1670
+ }
1671
+ interface TypingsInstalledTelemetryEventPayload {
1672
+ /**
1673
+ * Comma separated list of installed typing packages
1674
+ */
1675
+ installedPackages: string;
1676
+ /**
1677
+ * true if install request succeeded, otherwise - false
1678
+ */
1679
+ installSuccess: boolean;
1680
+ /**
1681
+ * version of typings installer
1682
+ */
1683
+ typingsInstallerVersion: string;
1684
+ }
1685
+ type BeginInstallTypesEventName = "beginInstallTypes";
1686
+ type EndInstallTypesEventName = "endInstallTypes";
1687
+ interface BeginInstallTypesEvent extends Event {
1688
+ event: BeginInstallTypesEventName;
1689
+ body: BeginInstallTypesEventBody;
1690
+ }
1691
+ interface EndInstallTypesEvent extends Event {
1692
+ event: EndInstallTypesEventName;
1693
+ body: EndInstallTypesEventBody;
1694
+ }
1695
+ interface InstallTypesEventBody {
1696
+ /**
1697
+ * correlation id to match begin and end events
1698
+ */
1699
+ eventId: number;
1700
+ /**
1701
+ * list of packages to install
1702
+ */
1703
+ packages: ReadonlyArray<string>;
1704
+ }
1705
+ interface BeginInstallTypesEventBody extends InstallTypesEventBody {
1706
+ }
1707
+ interface EndInstallTypesEventBody extends InstallTypesEventBody {
1708
+ /**
1709
+ * true if installation succeeded, otherwise false
1710
+ */
1711
+ success: boolean;
1712
+ }
1713
+ interface NavBarResponse extends Response {
1714
+ body?: NavigationBarItem[];
1715
+ }
1716
+ interface NavTreeResponse extends Response {
1717
+ body?: NavigationTree;
1718
+ }
1719
+ namespace IndentStyle {
1720
+ type None = "None";
1721
+ type Block = "Block";
1722
+ type Smart = "Smart";
1723
+ }
1724
+ type IndentStyle = IndentStyle.None | IndentStyle.Block | IndentStyle.Smart;
1725
+ interface EditorSettings {
1726
+ baseIndentSize?: number;
1727
+ indentSize?: number;
1728
+ tabSize?: number;
1729
+ newLineCharacter?: string;
1730
+ convertTabsToSpaces?: boolean;
1731
+ indentStyle?: IndentStyle | ts.IndentStyle;
1732
+ }
1733
+ interface FormatCodeSettings extends EditorSettings {
1734
+ insertSpaceAfterCommaDelimiter?: boolean;
1735
+ insertSpaceAfterSemicolonInForStatements?: boolean;
1736
+ insertSpaceBeforeAndAfterBinaryOperators?: boolean;
1737
+ insertSpaceAfterConstructor?: boolean;
1738
+ insertSpaceAfterKeywordsInControlFlowStatements?: boolean;
1739
+ insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean;
1740
+ insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean;
1741
+ insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean;
1742
+ insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean;
1743
+ insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean;
1744
+ insertSpaceBeforeFunctionParenthesis?: boolean;
1745
+ placeOpenBraceOnNewLineForFunctions?: boolean;
1746
+ placeOpenBraceOnNewLineForControlBlocks?: boolean;
1747
+ }
1748
+ interface CompilerOptions {
1749
+ allowJs?: boolean;
1750
+ allowSyntheticDefaultImports?: boolean;
1751
+ allowUnreachableCode?: boolean;
1752
+ allowUnusedLabels?: boolean;
1753
+ baseUrl?: string;
1754
+ charset?: string;
1755
+ declaration?: boolean;
1756
+ declarationDir?: string;
1757
+ disableSizeLimit?: boolean;
1758
+ emitBOM?: boolean;
1759
+ emitDecoratorMetadata?: boolean;
1760
+ experimentalDecorators?: boolean;
1761
+ forceConsistentCasingInFileNames?: boolean;
1762
+ inlineSourceMap?: boolean;
1763
+ inlineSources?: boolean;
1764
+ isolatedModules?: boolean;
1765
+ jsx?: JsxEmit | ts.JsxEmit;
1766
+ lib?: string[];
1767
+ locale?: string;
1768
+ mapRoot?: string;
1769
+ maxNodeModuleJsDepth?: number;
1770
+ module?: ModuleKind | ts.ModuleKind;
1771
+ moduleResolution?: ModuleResolutionKind | ts.ModuleResolutionKind;
1772
+ newLine?: NewLineKind | ts.NewLineKind;
1773
+ noEmit?: boolean;
1774
+ noEmitHelpers?: boolean;
1775
+ noEmitOnError?: boolean;
1776
+ noErrorTruncation?: boolean;
1777
+ noFallthroughCasesInSwitch?: boolean;
1778
+ noImplicitAny?: boolean;
1779
+ noImplicitReturns?: boolean;
1780
+ noImplicitThis?: boolean;
1781
+ noUnusedLocals?: boolean;
1782
+ noUnusedParameters?: boolean;
1783
+ noImplicitUseStrict?: boolean;
1784
+ noLib?: boolean;
1785
+ noResolve?: boolean;
1786
+ out?: string;
1787
+ outDir?: string;
1788
+ outFile?: string;
1789
+ paths?: MapLike<string[]>;
1790
+ preserveConstEnums?: boolean;
1791
+ project?: string;
1792
+ reactNamespace?: string;
1793
+ removeComments?: boolean;
1794
+ rootDir?: string;
1795
+ rootDirs?: string[];
1796
+ skipLibCheck?: boolean;
1797
+ skipDefaultLibCheck?: boolean;
1798
+ sourceMap?: boolean;
1799
+ sourceRoot?: string;
1800
+ strictNullChecks?: boolean;
1801
+ suppressExcessPropertyErrors?: boolean;
1802
+ suppressImplicitAnyIndexErrors?: boolean;
1803
+ target?: ScriptTarget | ts.ScriptTarget;
1804
+ traceResolution?: boolean;
1805
+ types?: string[];
1806
+ /** Paths used to used to compute primary types search locations */
1807
+ typeRoots?: string[];
1808
+ [option: string]: CompilerOptionsValue | undefined;
1809
+ }
1810
+ namespace JsxEmit {
1811
+ type None = "None";
1812
+ type Preserve = "Preserve";
1813
+ type React = "React";
1814
+ }
1815
+ type JsxEmit = JsxEmit.None | JsxEmit.Preserve | JsxEmit.React;
1816
+ namespace ModuleKind {
1817
+ type None = "None";
1818
+ type CommonJS = "CommonJS";
1819
+ type AMD = "AMD";
1820
+ type UMD = "UMD";
1821
+ type System = "System";
1822
+ type ES6 = "ES6";
1823
+ type ES2015 = "ES2015";
1824
+ }
1825
+ type ModuleKind = ModuleKind.None | ModuleKind.CommonJS | ModuleKind.AMD | ModuleKind.UMD | ModuleKind.System | ModuleKind.ES6 | ModuleKind.ES2015;
1826
+ namespace ModuleResolutionKind {
1827
+ type Classic = "Classic";
1828
+ type Node = "Node";
1829
+ }
1830
+ type ModuleResolutionKind = ModuleResolutionKind.Classic | ModuleResolutionKind.Node;
1831
+ namespace NewLineKind {
1832
+ type Crlf = "Crlf";
1833
+ type Lf = "Lf";
1834
+ }
1835
+ type NewLineKind = NewLineKind.Crlf | NewLineKind.Lf;
1836
+ namespace ScriptTarget {
1837
+ type ES3 = "ES3";
1838
+ type ES5 = "ES5";
1839
+ type ES6 = "ES6";
1840
+ type ES2015 = "ES2015";
1841
+ }
1842
+ type ScriptTarget = ScriptTarget.ES3 | ScriptTarget.ES5 | ScriptTarget.ES6 | ScriptTarget.ES2015;
1843
+ }
1844
+ declare namespace ts.server.protocol {
1845
+
1846
+ interface TextInsertion {
1847
+ newText: string;
1848
+ /** The position in newText the caret should point to after the insertion. */
1849
+ caretOffset: number;
1850
+ }
1851
+
1852
+ interface TodoCommentDescriptor {
1853
+ text: string;
1854
+ priority: number;
1855
+ }
1856
+
1857
+ interface TodoComment {
1858
+ descriptor: TodoCommentDescriptor;
1859
+ message: string;
1860
+ position: number;
1861
+ }
1862
+
1863
+ interface TypeAcquisition {
1864
+ enableAutoDiscovery?: boolean;
1865
+ enable?: boolean;
1866
+ include?: string[];
1867
+ exclude?: string[];
1868
+ [option: string]: string[] | boolean | undefined;
1869
+ }
1870
+
1871
+ interface FileExtensionInfo {
1872
+ extension: string;
1873
+ scriptKind: ScriptKind;
1874
+ isMixedContent: boolean;
1875
+ }
1876
+
1877
+ interface JSDocTagInfo {
1878
+ name: string;
1879
+ text?: string;
1880
+ }
1881
+
1882
+ interface MapLike<T> {
1883
+ [index: string]: T;
1884
+ }
1885
+
1886
+ type CompilerOptionsValue = string | number | boolean | (string | number)[] | string[] | MapLike<string[]>;
1887
+ }
1888
+ declare namespace ts {
1889
+ // these types are empty stubs for types from services and should not be used directly
1890
+ export type ScriptKind = never;
1891
+ export type IndentStyle = never;
1892
+ export type JsxEmit = never;
1893
+ export type ModuleKind = never;
1894
+ export type ModuleResolutionKind = never;
1895
+ export type NewLineKind = never;
1896
+ export type ScriptTarget = never;
1897
+ }
1898
+ import protocol = ts.server.protocol;
1899
+ export = protocol;
1900
+ export as namespace protocol;