Skip to content

Commit 7085609

Browse files
authored
Merge branch 'master' into joh/e5host
2 parents 3611aaf + 4163ea2 commit 7085609

13 files changed

Lines changed: 78 additions & 67 deletions

File tree

extensions/cpp/test/colorize-results/test_cc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"t": "source.cpp meta.conditional.preprocessor.cpp entity.name.function.preprocessor.cpp",
3838
"r": {
3939
"dark_plus": "entity.name.function: #DCDCAA",
40-
"light_plus": "entity.name.function: #795codeE26",
40+
"light_plus": "entity.name.function: #795E26",
4141
"dark_vs": "default: #D4D4D4",
4242
"light_vs": "default: #000000",
4343
"hc_black": "entity.name.function: #DCDCAA"

src/vs/base/browser/ui/grid/gridview.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -549,11 +549,11 @@ class LeafNode implements ISplitView, IDisposable {
549549
}
550550
}
551551

552-
setVisible(visible: boolean): void {
552+
setVisible(visible: boolean, cachedVisibleSize?: number): void {
553553
if (visible) {
554554
this._cachedVisibleSize = undefined;
555555
} else {
556-
this._cachedVisibleSize = this._size;
556+
this._cachedVisibleSize = typeof cachedVisibleSize === 'number' ? cachedVisibleSize : this._size;
557557
}
558558

559559
if (this.view.setVisible) {

src/vs/base/browser/ui/splitview/splitview.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export interface IView {
4949
readonly priority?: LayoutPriority;
5050
readonly snap?: boolean;
5151
layout(size: number, orientation: Orientation): void;
52-
setVisible?(visible: boolean): void;
52+
setVisible?(visible: boolean, cachedVisibleSize?: number): void;
5353
}
5454

5555
interface ISashEvent {
@@ -79,7 +79,7 @@ abstract class ViewItem {
7979
return typeof this._cachedVisibleSize === 'undefined';
8080
}
8181

82-
set visible(visible: boolean) {
82+
setVisible(visible: boolean, size?: number): void {
8383
if (visible === this.visible) {
8484
return;
8585
}
@@ -88,14 +88,14 @@ abstract class ViewItem {
8888
this.size = clamp(this._cachedVisibleSize!, this.viewMinimumSize, this.viewMaximumSize);
8989
this._cachedVisibleSize = undefined;
9090
} else {
91-
this._cachedVisibleSize = this.size;
91+
this._cachedVisibleSize = typeof size === 'number' ? size : this.size;
9292
this.size = 0;
9393
}
9494

9595
dom.toggleClass(this.container, 'visible', visible);
9696

9797
if (this.view.setVisible) {
98-
this.view.setVisible(visible);
98+
this.view.setVisible(visible, this._cachedVisibleSize);
9999
}
100100
}
101101

@@ -161,6 +161,7 @@ interface ISashItem {
161161
interface ISashDragSnapState {
162162
readonly index: number;
163163
readonly limitDelta: number;
164+
readonly size: number;
164165
}
165166

166167
interface ISashDragState {
@@ -453,7 +454,7 @@ export class SplitView extends Disposable {
453454
}
454455

455456
const viewItem = this.viewItems[index];
456-
viewItem.visible = visible;
457+
viewItem.setVisible(visible);
457458

458459
this.distributeEmptySpace(index);
459460
this.layoutViews();
@@ -552,7 +553,8 @@ export class SplitView extends Disposable {
552553

553554
snapBefore = {
554555
index: snapBeforeIndex,
555-
limitDelta: viewItem.visible ? minDelta - halfSize : minDelta + halfSize
556+
limitDelta: viewItem.visible ? minDelta - halfSize : minDelta + halfSize,
557+
size: viewItem.size
556558
};
557559
}
558560

@@ -562,7 +564,8 @@ export class SplitView extends Disposable {
562564

563565
snapAfter = {
564566
index: snapAfterIndex,
565-
limitDelta: viewItem.visible ? maxDelta + halfSize : maxDelta - halfSize
567+
limitDelta: viewItem.visible ? maxDelta + halfSize : maxDelta - halfSize,
568+
size: viewItem.size
566569
};
567570
}
568571
}
@@ -740,14 +743,14 @@ export class SplitView extends Disposable {
740743
const snapView = this.viewItems[snapBefore.index];
741744
const visible = delta >= snapBefore.limitDelta;
742745
snapped = visible !== snapView.visible;
743-
snapView.visible = visible;
746+
snapView.setVisible(visible, snapBefore.size);
744747
}
745748

746749
if (!snapped && snapAfter) {
747750
const snapView = this.viewItems[snapAfter.index];
748751
const visible = delta < snapAfter.limitDelta;
749752
snapped = visible !== snapView.visible;
750-
snapView.visible = visible;
753+
snapView.setVisible(visible, snapAfter.size);
751754
}
752755

753756
if (snapped) {

src/vs/editor/contrib/gotoError/gotoErrorWidget.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ export class MarkerNavigationWidget extends PeekViewWidget {
228228

229229
protected _fillHead(container: HTMLElement): void {
230230
super._fillHead(container);
231-
this._actionbarWidget.push(this.actions, { label: false, icon: true });
231+
this._actionbarWidget!.push(this.actions, { label: false, icon: true });
232232
}
233233

234234
protected _fillTitleIcon(container: HTMLElement): void {

src/vs/editor/contrib/referenceSearch/peekViewWidget.ts

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@ export abstract class PeekViewWidget extends ZoneWidget {
8484

8585
private _onDidClose = new Emitter<PeekViewWidget>();
8686

87-
protected _headElement: HTMLDivElement;
88-
protected _primaryHeading: HTMLElement;
89-
protected _secondaryHeading: HTMLElement;
90-
protected _metaHeading: HTMLElement;
91-
protected _actionbarWidget: ActionBar;
92-
protected _bodyElement: HTMLDivElement;
87+
protected _headElement?: HTMLDivElement;
88+
protected _primaryHeading?: HTMLElement;
89+
protected _secondaryHeading?: HTMLElement;
90+
protected _metaHeading?: HTMLElement;
91+
protected _actionbarWidget?: ActionBar;
92+
protected _bodyElement?: HTMLDivElement;
9393

9494
constructor(editor: ICodeEditor, options: IPeekViewOptions = {}) {
9595
super(editor, options);
@@ -139,8 +139,8 @@ export abstract class PeekViewWidget extends ZoneWidget {
139139
protected _fillContainer(container: HTMLElement): void {
140140
this.setCssClass('peekview-widget');
141141

142-
this._headElement = dom.$('.head');
143-
this._bodyElement = dom.$('.body');
142+
this._headElement = dom.$<HTMLDivElement>('.head');
143+
this._bodyElement = dom.$<HTMLDivElement>('.body');
144144

145145
this._fillHead(this._headElement);
146146
this._fillBody(this._bodyElement);
@@ -151,7 +151,7 @@ export abstract class PeekViewWidget extends ZoneWidget {
151151

152152
protected _fillHead(container: HTMLElement): void {
153153
const titleElement = dom.$('.peekview-title');
154-
dom.append(this._headElement, titleElement);
154+
dom.append(this._headElement!, titleElement);
155155
dom.addStandardDisposableListener(titleElement, 'click', event => this._onTitleClick(event));
156156

157157
this._fillTitleIcon(titleElement);
@@ -161,7 +161,7 @@ export abstract class PeekViewWidget extends ZoneWidget {
161161
dom.append(titleElement, this._primaryHeading, this._secondaryHeading, this._metaHeading);
162162

163163
const actionsContainer = dom.$('.peekview-actions');
164-
dom.append(this._headElement, actionsContainer);
164+
dom.append(this._headElement!, actionsContainer);
165165

166166
const actionBarOptions = this._getActionBarOptions();
167167
this._actionbarWidget = new ActionBar(actionsContainer, actionBarOptions);
@@ -185,20 +185,24 @@ export abstract class PeekViewWidget extends ZoneWidget {
185185
}
186186

187187
public setTitle(primaryHeading: string, secondaryHeading?: string): void {
188-
this._primaryHeading.innerHTML = strings.escape(primaryHeading);
189-
this._primaryHeading.setAttribute('aria-label', primaryHeading);
190-
if (secondaryHeading) {
191-
this._secondaryHeading.innerHTML = strings.escape(secondaryHeading);
192-
} else {
193-
dom.clearNode(this._secondaryHeading);
188+
if (this._primaryHeading && this._secondaryHeading) {
189+
this._primaryHeading.innerHTML = strings.escape(primaryHeading);
190+
this._primaryHeading.setAttribute('aria-label', primaryHeading);
191+
if (secondaryHeading) {
192+
this._secondaryHeading.innerHTML = strings.escape(secondaryHeading);
193+
} else {
194+
dom.clearNode(this._secondaryHeading);
195+
}
194196
}
195197
}
196198

197199
public setMetaTitle(value: string): void {
198-
if (value) {
199-
this._metaHeading.innerHTML = strings.escape(value);
200-
} else {
201-
dom.clearNode(this._metaHeading);
200+
if (this._metaHeading) {
201+
if (value) {
202+
this._metaHeading.innerHTML = strings.escape(value);
203+
} else {
204+
dom.clearNode(this._metaHeading);
205+
}
202206
}
203207
}
204208

@@ -220,11 +224,15 @@ export abstract class PeekViewWidget extends ZoneWidget {
220224
}
221225

222226
protected _doLayoutHead(heightInPixel: number, widthInPixel: number): void {
223-
this._headElement.style.height = `${heightInPixel}px`;
224-
this._headElement.style.lineHeight = this._headElement.style.height;
227+
if (this._headElement) {
228+
this._headElement.style.height = `${heightInPixel}px`;
229+
this._headElement.style.lineHeight = this._headElement.style.height;
230+
}
225231
}
226232

227233
protected _doLayoutBody(heightInPixel: number, widthInPixel: number): void {
228-
this._bodyElement.style.height = `${heightInPixel}px`;
234+
if (this._bodyElement) {
235+
this._bodyElement.style.height = `${heightInPixel}px`;
236+
}
229237
}
230238
}

src/vs/platform/progress/common/progress.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,13 @@ export interface IProgress<T> {
9090
export class Progress<T> implements IProgress<T> {
9191

9292
private _callback: (data: T) => void;
93-
private _value: T;
93+
private _value?: T;
9494

9595
constructor(callback: (data: T) => void) {
9696
this._callback = callback;
9797
}
9898

99-
get value() {
99+
get value(): T | undefined {
100100
return this._value;
101101
}
102102

src/vs/vscode.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2786,7 +2786,7 @@ declare module 'vscode' {
27862786
* *Note* that the eol-sequence will be applied to the
27872787
* whole document.
27882788
*/
2789-
newEol: EndOfLine;
2789+
newEol?: EndOfLine;
27902790

27912791
/**
27922792
* Create a new TextEdit.

src/vs/workbench/api/common/extHostDocumentSaveParticipant.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ export class ExtHostDocumentSaveParticipant implements ExtHostDocumentSavePartic
153153
resourceEdit.edits.push({
154154
range: range && Range.from(range),
155155
text: newText,
156-
eol: EndOfLine.from(newEol)
156+
eol: newEol && EndOfLine.from(newEol)
157157
});
158158
}
159159
}

src/vs/workbench/api/common/extHostTextEditor.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,11 @@ export class ExtHostTextEditorOptions implements vscode.TextEditorOptions {
151151
private _proxy: MainThreadTextEditorsShape;
152152
private _id: string;
153153

154-
private _tabSize: number;
155-
private _indentSize: number;
156-
private _insertSpaces: boolean;
157-
private _cursorStyle: TextEditorCursorStyle;
158-
private _lineNumbers: TextEditorLineNumbersStyle;
154+
private _tabSize!: number;
155+
private _indentSize!: number;
156+
private _insertSpaces!: boolean;
157+
private _cursorStyle!: TextEditorCursorStyle;
158+
private _lineNumbers!: TextEditorLineNumbersStyle;
159159

160160
constructor(proxy: MainThreadTextEditorsShape, id: string, source: IResolvedTextEditorConfiguration) {
161161
this._proxy = proxy;

src/vs/workbench/api/common/extHostTypeConverters.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ export namespace TextEdit {
442442
export function from(edit: vscode.TextEdit): modes.TextEdit {
443443
return <modes.TextEdit>{
444444
text: edit.newText,
445-
eol: EndOfLine.from(edit.newEol),
445+
eol: edit.newEol && EndOfLine.from(edit.newEol),
446446
range: Range.from(edit.range)
447447
};
448448
}

0 commit comments

Comments
 (0)