Skip to content

Commit f62513e

Browse files
authored
Copies sources from vscode (#688)
* Copy sources from vscode * NodeJS.Timeout -> TimeoutHandle * Fixes copy sources fallout * Fixes snapshots
1 parent 51add93 commit f62513e

File tree

86 files changed

+1547
-757
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+1547
-757
lines changed

script/setup/copySources.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,6 @@ async function doIt(filepaths: string[]) {
101101
newSource = newSource.slice(0, edit.pos + 1) + edit.newText + newSource.slice(edit.end + 1);
102102
}
103103

104-
if (filepath.endsWith('src/vs/nls.ts')) {
105-
newSource = 'declare var document: any;\n\n' + newSource;
106-
}
107104
newSource = '//!!! DO NOT modify, this file was COPIED from \'microsoft/vscode\'\n\n' + newSource;
108105

109106
seen.set(filepath, {
@@ -163,6 +160,13 @@ async function doIt(filepaths: string[]) {
163160
'vs/base/node/ports.ts',
164161

165162
'vs/platform/instantiation/common/instantiationService.ts',
163+
'vs/editor/common/core/edits/lineEdit.ts',
164+
'vs/editor/common/core/edits/lengthEdit.ts',
165+
'vs/editor/common/core/edits/arrayEdit.ts',
166+
'vs/editor/common/core/text/positionToOffset.ts',
167+
168+
'vs/base/common/sseParser.ts',
169+
'vs/base/common/errorMessage.ts',
166170

167171
// SPECIAL IMPLICIT DEPENDENCIES
168172
'typings/vscode-globals-nls.d.ts',

src/extension/contextKeys/vscode-node/contextKeys.contribution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ const debugContextKey = 'github.copilot.chat.debug';
4040
export class ContextKeysContribution extends Disposable {
4141

4242
private _needsOfflineCheck = false;
43-
private _scheduledOfflineCheck: NodeJS.Timeout | undefined;
43+
private _scheduledOfflineCheck: TimeoutHandle | undefined;
4444
private _showLogView = false;
4545

4646
constructor(

src/extension/inlineEdits/common/common.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { IDisposable, toDisposable } from '../../../util/vs/base/common/lifecycle';
7+
import { ensureDependenciesAreSet } from '../../../util/vs/editor/common/core/text/positionToOffset';
78

89
export function createTimeout(ms: number, cb: () => void): IDisposable {
910
const t = setTimeout(cb, ms);
1011
return toDisposable(() => clearTimeout(t));
1112
}
13+
14+
ensureDependenciesAreSet();

src/extension/inlineEdits/node/nextEditProviderTelemetry.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ export class NextEditProviderTelemetryBuilder extends Disposable {
553553

554554
export class TelemetrySender implements IDisposable {
555555

556-
private readonly _map = new Map<INextEditResult, { builder: NextEditProviderTelemetryBuilder; timeout: NodeJS.Timeout }>();
556+
private readonly _map = new Map<INextEditResult, { builder: NextEditProviderTelemetryBuilder; timeout: TimeoutHandle }>();
557557

558558
constructor(
559559
@ITelemetryService private readonly _telemetryService: ITelemetryService,

src/extension/inlineEdits/node/serverPoweredInlineEditProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ export class ServerPoweredInlineEditProvider implements IStatelessNextEditProvid
9393
const edits = response.edits.map(e => LineReplacement.deserialize(e));
9494
const sortingPermutation = Permutation.createSortPermutation(edits, (a, b) => a.lineRange.startLineNumber - b.lineRange.startLineNumber);
9595
const lineEdit = new LineEdit(sortingPermutation.apply(edits));
96-
lineEdit.edits.forEach(edit => pushEdit(Result.ok({ edit })));
96+
lineEdit.replacements.forEach(edit => pushEdit(Result.ok({ edit })));
9797
pushEdit(Result.error(new NoNextEditReason.NoSuggestions(request.documentBeforeEdits, undefined)));
9898
return StatelessNextEditResult.streaming(telemetryBuilder);
9999
} else {

src/extension/inlineEdits/test/common/editRebase.spec.ts

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,20 @@ class Point3D {
5555
expect(res).toBeTypeOf('object');
5656
const result = res as Exclude<typeof res, string | undefined>;
5757
expect(result[0].rebasedEditIndex).toBe(1);
58-
expect(result[0].rebasedEdit.toString()).toMatchInlineSnapshot(`"[68, 76) -> "\\n\\t\\tthis.z = z;""`);
58+
expect(result[0].rebasedEdit.toString()).toMatchInlineSnapshot(`
59+
"[68, 76) -> "
60+
this.z = z;""
61+
`);
5962
}
6063
{
6164
const res = tryRebase(originalDocument, undefined, decomposeStringEdit(suggestedEdit).edits, [], userEdit, currentDocument, [], 'lenient', tracer);
6265
expect(res).toBeTypeOf('object');
6366
const result = res as Exclude<typeof res, string | undefined>;
6467
expect(result[0].rebasedEditIndex).toBe(1);
65-
expect(result[0].rebasedEdit.toString()).toMatchInlineSnapshot(`"[68, 76) -> "\\n\\t\\tthis.z = z;""`);
68+
expect(result[0].rebasedEdit.toString()).toMatchInlineSnapshot(`
69+
"[68, 76) -> "
70+
this.z = z;""
71+
`);
6672
}
6773
});
6874

@@ -221,15 +227,25 @@ int main()
221227
const result = res as Exclude<typeof res, string | undefined>;
222228
expect(result[0].rebasedEditIndex).toBe(0);
223229
expect(StringEdit.single(result[0].rebasedEdit).apply(currentDocument)).toStrictEqual(final);
224-
expect(result[0].rebasedEdit.removeCommonSuffixAndPrefix(currentDocument).toString()).toMatchInlineSnapshot(`"[87, 164) -> "esult42.empty())\\n return result42.size();\\n result42.clear();\\n return result42""`);
230+
expect(result[0].rebasedEdit.removeCommonSuffixAndPrefix(currentDocument).toString()).toMatchInlineSnapshot(`
231+
"[87, 164) -> "esult42.empty())
232+
return result42.size();
233+
result42.clear();
234+
return result42""
235+
`);
225236
}
226237
{
227238
const res = tryRebase(originalDocument, undefined, suggestedEdit.replacements, [], userEdit, currentDocument, [], 'lenient', tracer);
228239
expect(res).toBeTypeOf('object');
229240
const result = res as Exclude<typeof res, string | undefined>;
230241
expect(result[0].rebasedEditIndex).toBe(0);
231242
expect(StringEdit.single(result[0].rebasedEdit).apply(currentDocument)).toStrictEqual(final);
232-
expect(result[0].rebasedEdit.removeCommonSuffixAndPrefix(currentDocument).toString()).toMatchInlineSnapshot(`"[87, 164) -> "esult42.empty())\\n return result42.size();\\n result42.clear();\\n return result42""`);
243+
expect(result[0].rebasedEdit.removeCommonSuffixAndPrefix(currentDocument).toString()).toMatchInlineSnapshot(`
244+
"[87, 164) -> "esult42.empty())
245+
return result42.size();
246+
result42.clear();
247+
return result42""
248+
`);
233249
}
234250
});
235251
});
@@ -330,10 +346,16 @@ class Point3D {
330346

331347
const strict = tryRebaseStringEdits(text, edit, base, 'strict')?.removeCommonSuffixAndPrefix(current);
332348
expect(strict?.apply(current)).toStrictEqual(final);
333-
expect(strict?.replacements.toString()).toMatchInlineSnapshot(`"[69, 69) -> "\\t\\tthis.z = z;\\n""`);
349+
expect(strict?.replacements.toString()).toMatchInlineSnapshot(`
350+
"[69, 69) -> " this.z = z;
351+
""
352+
`);
334353
const lenient = tryRebaseStringEdits(text, edit, base, 'lenient')?.removeCommonSuffixAndPrefix(current);
335354
expect(lenient?.apply(current)).toStrictEqual(final);
336-
expect(lenient?.replacements.toString()).toMatchInlineSnapshot(`"[69, 69) -> "\\t\\tthis.z = z;\\n""`);
355+
expect(lenient?.replacements.toString()).toMatchInlineSnapshot(`
356+
"[69, 69) -> " this.z = z;
357+
""
358+
`);
337359
});
338360
test('insert 2 and 2 edits', () => {
339361
const text = `

src/extension/inlineEdits/test/node/ignoreImportChanges.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class FooBar {
4848
`);
4949

5050
const lineEdit = RootedEdit.toLineEdit(await computeDiff(doc1, doc2));
51-
expect(IgnoreImportChangesAspect.isImportChange(lineEdit.edits[0], 'typescript', doc1.getLines())).toBe(true);
51+
expect(IgnoreImportChangesAspect.isImportChange(lineEdit.replacements[0], 'typescript', doc1.getLines())).toBe(true);
5252
});
5353

5454

@@ -69,7 +69,7 @@ class FooBar {
6969
`);
7070

7171
const lineEdit = RootedEdit.toLineEdit(await computeDiff(doc1, doc2));
72-
expect(IgnoreImportChangesAspect.isImportChange(lineEdit.edits[0], 'typescript', doc1.getLines())).toBe(true);
72+
expect(IgnoreImportChangesAspect.isImportChange(lineEdit.replacements[0], 'typescript', doc1.getLines())).toBe(true);
7373
});
7474

7575
test('ImportChange', async () => {
@@ -88,7 +88,7 @@ class FooBar {
8888
`);
8989

9090
const lineEdit = RootedEdit.toLineEdit(await computeDiff(doc1, doc2));
91-
expect(IgnoreImportChangesAspect.isImportChange(lineEdit.edits[0], 'typescript', doc1.getLines())).toBe(true);
91+
expect(IgnoreImportChangesAspect.isImportChange(lineEdit.replacements[0], 'typescript', doc1.getLines())).toBe(true);
9292
});
9393

9494

@@ -109,6 +109,6 @@ class FooBar {
109109
`);
110110

111111
const lineEdit = RootedEdit.toLineEdit(await computeDiff(doc1, doc2));
112-
expect(IgnoreImportChangesAspect.isImportChange(lineEdit.edits[0], 'typescript', doc1.getLines())).toBe(false);
112+
expect(IgnoreImportChangesAspect.isImportChange(lineEdit.replacements[0], 'typescript', doc1.getLines())).toBe(false);
113113
});
114114
});

src/extension/inlineEdits/test/node/nextEditProviderCaching.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ describe('NextEditProvider Caching', () => {
7676
)
7777
]
7878
);
79-
lineEdit.edits.forEach(edit => pushEdit(Result.ok({ edit })));
79+
lineEdit.replacements.forEach(edit => pushEdit(Result.ok({ edit })));
8080
pushEdit(Result.error(new NoNextEditReason.NoSuggestions(request.documentBeforeEdits, undefined)));
8181
return StatelessNextEditResult.streaming(telemetryBuilder);
8282
}

src/extension/inlineEdits/vscode-node/components/logContextRecorder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export class LogContextRecorder extends Disposable {
2020
public readonly logFilePath: string;
2121
private readonly _impl: Promise<LogContextRecorderImpl>;
2222

23-
private readonly _shownSuggestions: DisposableMap<number, { timeout: NodeJS.Timeout; dispose: () => void }>;
23+
private readonly _shownSuggestions: DisposableMap<number, { timeout: TimeoutHandle; dispose: () => void }>;
2424

2525
constructor(
2626
public readonly recordingDirPath: string,

src/extension/inlineEdits/vscode-node/inlineEditModel.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,15 @@ class LastChange extends Disposable {
6565
public lastEditedTimestamp: number;
6666
public lineNumberTriggers: Map<number /* lineNumber */, number /* timestamp */>;
6767

68-
private _timeout: NodeJS.Timeout | undefined;
69-
public set timeout(value: NodeJS.Timeout | undefined) {
68+
private _timeout: TimeoutHandle | undefined;
69+
public set timeout(value: TimeoutHandle | undefined) {
7070
if (value !== undefined) {
7171
// TODO: we can end up collecting multiple timeouts, but also they could be cleared as debouncing happens
7272
this._register(toDisposable(() => clearTimeout(value)));
7373
}
7474
this._timeout = value;
7575
}
76-
public get timeout(): NodeJS.Timeout | undefined {
76+
public get timeout(): TimeoutHandle | undefined {
7777
return this._timeout;
7878
}
7979

0 commit comments

Comments
 (0)