in patched-vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.ts [400:603]
private _updateConfiguration(e: IConfigurationChangeEvent) {
const cellStatusBarVisibility = e.affectsConfiguration(NotebookSetting.showCellStatusBar);
const cellToolbarLocation = e.affectsConfiguration(NotebookSetting.cellToolbarLocation);
const cellToolbarInteraction = e.affectsConfiguration(NotebookSetting.cellToolbarVisibility);
const compactView = e.affectsConfiguration(NotebookSetting.compactView);
const focusIndicator = e.affectsConfiguration(NotebookSetting.focusIndicator);
const insertToolbarPosition = e.affectsConfiguration(NotebookSetting.insertToolbarLocation);
const insertToolbarAlignment = e.affectsConfiguration(NotebookSetting.experimentalInsertToolbarAlignment);
const globalToolbar = e.affectsConfiguration(NotebookSetting.globalToolbar);
const stickyScrollEnabled = e.affectsConfiguration(NotebookSetting.stickyScrollEnabled);
const stickyScrollMode = e.affectsConfiguration(NotebookSetting.stickyScrollMode);
const consolidatedOutputButton = e.affectsConfiguration(NotebookSetting.consolidatedOutputButton);
const consolidatedRunButton = e.affectsConfiguration(NotebookSetting.consolidatedRunButton);
const showFoldingControls = e.affectsConfiguration(NotebookSetting.showFoldingControls);
const dragAndDropEnabled = e.affectsConfiguration(NotebookSetting.dragAndDropEnabled);
const fontSize = e.affectsConfiguration('editor.fontSize');
const outputFontSize = e.affectsConfiguration(NotebookSetting.outputFontSize);
const markupFontSize = e.affectsConfiguration(NotebookSetting.markupFontSize);
const markdownLineHeight = e.affectsConfiguration(NotebookSetting.markdownLineHeight);
const fontFamily = e.affectsConfiguration('editor.fontFamily');
const outputFontFamily = e.affectsConfiguration(NotebookSetting.outputFontFamily);
const editorOptionsCustomizations = e.affectsConfiguration(NotebookSetting.cellEditorOptionsCustomizations);
const interactiveWindowCollapseCodeCells = e.affectsConfiguration(NotebookSetting.interactiveWindowCollapseCodeCells);
const outputLineHeight = e.affectsConfiguration(NotebookSetting.outputLineHeight);
const outputScrolling = e.affectsConfiguration(NotebookSetting.outputScrolling);
const outputWordWrap = e.affectsConfiguration(NotebookSetting.outputWordWrap);
const outputLinkifyFilePaths = e.affectsConfiguration(NotebookSetting.LinkifyOutputFilePaths);
const minimalError = e.affectsConfiguration(NotebookSetting.minimalErrorRendering);
if (
!cellStatusBarVisibility
&& !cellToolbarLocation
&& !cellToolbarInteraction
&& !compactView
&& !focusIndicator
&& !insertToolbarPosition
&& !insertToolbarAlignment
&& !globalToolbar
&& !stickyScrollEnabled
&& !stickyScrollMode
&& !consolidatedOutputButton
&& !consolidatedRunButton
&& !showFoldingControls
&& !dragAndDropEnabled
&& !fontSize
&& !outputFontSize
&& !markupFontSize
&& !markdownLineHeight
&& !fontFamily
&& !outputFontFamily
&& !editorOptionsCustomizations
&& !interactiveWindowCollapseCodeCells
&& !outputLineHeight
&& !outputScrolling
&& !outputWordWrap
&& !outputLinkifyFilePaths
&& !minimalError) {
return;
}
let configuration = Object.assign({}, this._layoutConfiguration);
if (cellStatusBarVisibility) {
configuration.showCellStatusBar = this.configurationService.getValue<ShowCellStatusBarType>(NotebookSetting.showCellStatusBar);
}
if (cellToolbarLocation) {
configuration.cellToolbarLocation = this.configurationService.getValue<string | { [key: string]: string }>(NotebookSetting.cellToolbarLocation) ?? { 'default': 'right' };
}
if (cellToolbarInteraction && !this.overrides?.cellToolbarInteraction) {
configuration.cellToolbarInteraction = this.configurationService.getValue<string>(NotebookSetting.cellToolbarVisibility);
}
if (focusIndicator) {
configuration.focusIndicator = this._computeFocusIndicatorOption();
}
if (compactView) {
const compactViewValue = this.configurationService.getValue<boolean | undefined>(NotebookSetting.compactView) ?? true;
configuration = Object.assign(configuration, {
...(compactViewValue ? compactConfigConstants : defaultConfigConstants),
});
configuration.compactView = compactViewValue;
}
if (insertToolbarAlignment) {
configuration.insertToolbarAlignment = this._computeInsertToolbarAlignmentOption();
}
if (insertToolbarPosition) {
configuration.insertToolbarPosition = this._computeInsertToolbarPositionOption(this.isReadonly);
}
if (globalToolbar && this.overrides?.globalToolbar === undefined) {
configuration.globalToolbar = this.configurationService.getValue<boolean>(NotebookSetting.globalToolbar) ?? true;
}
if (stickyScrollEnabled && this.overrides?.stickyScrollEnabled === undefined) {
configuration.stickyScrollEnabled = this.configurationService.getValue<boolean>(NotebookSetting.stickyScrollEnabled) ?? false;
}
if (stickyScrollMode) {
configuration.stickyScrollMode = this.configurationService.getValue<'flat' | 'indented'>(NotebookSetting.stickyScrollMode) ?? 'flat';
}
if (consolidatedOutputButton) {
configuration.consolidatedOutputButton = this.configurationService.getValue<boolean>(NotebookSetting.consolidatedOutputButton) ?? true;
}
if (consolidatedRunButton) {
configuration.consolidatedRunButton = this.configurationService.getValue<boolean>(NotebookSetting.consolidatedRunButton) ?? true;
}
if (showFoldingControls) {
configuration.showFoldingControls = this._computeShowFoldingControlsOption();
}
if (dragAndDropEnabled) {
configuration.dragAndDropEnabled = this.configurationService.getValue<boolean>(NotebookSetting.dragAndDropEnabled) ?? true;
}
if (fontSize) {
configuration.fontSize = this.configurationService.getValue<number>('editor.fontSize');
}
if (outputFontSize || fontSize) {
configuration.outputFontSize = this.configurationService.getValue<number>(NotebookSetting.outputFontSize) || configuration.fontSize;
}
if (markupFontSize) {
configuration.markupFontSize = this.configurationService.getValue<number>(NotebookSetting.markupFontSize);
}
if (markdownLineHeight) {
configuration.markdownLineHeight = this.configurationService.getValue<number>(NotebookSetting.markdownLineHeight);
}
if (outputFontFamily) {
configuration.outputFontFamily = this.configurationService.getValue<string>(NotebookSetting.outputFontFamily);
}
if (editorOptionsCustomizations) {
configuration.editorOptionsCustomizations = this.configurationService.getValue(NotebookSetting.cellEditorOptionsCustomizations);
}
if (interactiveWindowCollapseCodeCells) {
configuration.interactiveWindowCollapseCodeCells = this.configurationService.getValue(NotebookSetting.interactiveWindowCollapseCodeCells);
}
if (outputLineHeight || fontSize || outputFontSize) {
const lineHeight = this.configurationService.getValue<number>(NotebookSetting.outputLineHeight);
configuration.outputLineHeight = this._computeOutputLineHeight(lineHeight, configuration.outputFontSize);
}
if (outputWordWrap) {
configuration.outputWordWrap = this.configurationService.getValue<boolean>(NotebookSetting.outputWordWrap);
}
if (outputScrolling) {
configuration.outputScrolling = this.configurationService.getValue<boolean>(NotebookSetting.outputScrolling);
}
if (outputLinkifyFilePaths) {
configuration.outputLinkifyFilePaths = this.configurationService.getValue<boolean>(NotebookSetting.LinkifyOutputFilePaths);
}
if (minimalError) {
configuration.outputMinimalError = this.configurationService.getValue<boolean>(NotebookSetting.minimalErrorRendering);
}
this._layoutConfiguration = Object.freeze(configuration);
// trigger event
this._onDidChangeOptions.fire({
cellStatusBarVisibility,
cellToolbarLocation,
cellToolbarInteraction,
compactView,
focusIndicator,
insertToolbarPosition,
insertToolbarAlignment,
globalToolbar,
stickyScrollEnabled,
stickyScrollMode,
showFoldingControls,
consolidatedOutputButton,
consolidatedRunButton,
dragAndDropEnabled,
fontSize,
outputFontSize,
markupFontSize,
markdownLineHeight,
fontFamily,
outputFontFamily,
editorOptionsCustomizations,
interactiveWindowCollapseCodeCells,
outputLineHeight,
outputScrolling,
outputWordWrap,
outputLinkifyFilePaths,
minimalError
});
}