mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Re-enable .NET Interactive in Ipynb notebooks (#21002)
This commit is contained in:
@@ -57,27 +57,20 @@ export class ExtHostNotebookDocumentsAndEditors implements ExtHostNotebookDocume
|
|||||||
private readonly _onDidOpenVSCodeNotebook = new Emitter<vscode.NotebookDocument>();
|
private readonly _onDidOpenVSCodeNotebook = new Emitter<vscode.NotebookDocument>();
|
||||||
private readonly _onDidCloseVSCodeNotebook = new Emitter<vscode.NotebookDocument>();
|
private readonly _onDidCloseVSCodeNotebook = new Emitter<vscode.NotebookDocument>();
|
||||||
private readonly _onDidSaveVSCodeNotebook = new Emitter<vscode.NotebookDocument>();
|
private readonly _onDidSaveVSCodeNotebook = new Emitter<vscode.NotebookDocument>();
|
||||||
// {{SQL CARBON TODO}} - disable events
|
|
||||||
// private readonly _onDidChangeVSCodeCellMetadata = new Emitter<vscode.NotebookCellMetadataChangeEvent>();
|
|
||||||
// private readonly _onDidChangeVSCodeDocumentMetadata = new Emitter<vscode.NotebookDocumentMetadataChangeEvent>();
|
|
||||||
// private readonly _onDidChangeVSCodeCellOutputs = new Emitter<vscode.NotebookCellOutputsChangeEvent>();
|
|
||||||
// private readonly _onDidChangeVSCodeNotebookCells = new Emitter<vscode.NotebookCellsChangeEvent>();
|
|
||||||
private readonly _onDidChangeVSCodeExecutionState = new Emitter<vscode.NotebookCellExecutionStateChangeEvent>();
|
private readonly _onDidChangeVSCodeExecutionState = new Emitter<vscode.NotebookCellExecutionStateChangeEvent>();
|
||||||
private readonly _onDidChangeVSCodeEditorSelection = new Emitter<vscode.NotebookEditorSelectionChangeEvent>();
|
private readonly _onDidChangeVSCodeEditorSelection = new Emitter<vscode.NotebookEditorSelectionChangeEvent>();
|
||||||
private readonly _onDidChangeVSCodeEditorRanges = new Emitter<vscode.NotebookEditorVisibleRangesChangeEvent>();
|
private readonly _onDidChangeVSCodeEditorRanges = new Emitter<vscode.NotebookEditorVisibleRangesChangeEvent>();
|
||||||
|
private readonly _onDidChangeVSCodeNotebookDocument = new Emitter<vscode.NotebookDocumentChangeEvent>();
|
||||||
|
|
||||||
readonly onDidChangeVisibleVSCodeEditors: Event<vscode.NotebookEditor[]> = this._onDidChangeVisibleVSCodeEditors.event;
|
readonly onDidChangeVisibleVSCodeEditors: Event<vscode.NotebookEditor[]> = this._onDidChangeVisibleVSCodeEditors.event;
|
||||||
readonly onDidChangeActiveVSCodeEditor: Event<vscode.NotebookEditor> = this._onDidChangeActiveVSCodeEditor.event;
|
readonly onDidChangeActiveVSCodeEditor: Event<vscode.NotebookEditor> = this._onDidChangeActiveVSCodeEditor.event;
|
||||||
readonly onDidOpenVSCodeNotebookDocument: Event<vscode.NotebookDocument> = this._onDidOpenVSCodeNotebook.event;
|
readonly onDidOpenVSCodeNotebookDocument: Event<vscode.NotebookDocument> = this._onDidOpenVSCodeNotebook.event;
|
||||||
readonly onDidCloseVSCodeNotebookDocument: Event<vscode.NotebookDocument> = this._onDidCloseVSCodeNotebook.event;
|
readonly onDidCloseVSCodeNotebookDocument: Event<vscode.NotebookDocument> = this._onDidCloseVSCodeNotebook.event;
|
||||||
readonly onDidSaveVSCodeNotebookDocument: Event<vscode.NotebookDocument> = this._onDidSaveVSCodeNotebook.event;
|
readonly onDidSaveVSCodeNotebookDocument: Event<vscode.NotebookDocument> = this._onDidSaveVSCodeNotebook.event;
|
||||||
// readonly onDidChangeVSCodeCellMetadata: Event<vscode.NotebookCellMetadataChangeEvent> = this._onDidChangeVSCodeCellMetadata.event;
|
|
||||||
// readonly onDidChangeVSCodeDocumentMetadata: Event<vscode.NotebookDocumentMetadataChangeEvent> = this._onDidChangeVSCodeDocumentMetadata.event;
|
|
||||||
// readonly onDidChangeVSCodeCellOutputs: Event<vscode.NotebookCellOutputsChangeEvent> = this._onDidChangeVSCodeCellOutputs.event;
|
|
||||||
// readonly onDidChangeVSCodeNotebookCells: Event<vscode.NotebookCellsChangeEvent> = this._onDidChangeVSCodeNotebookCells.event;
|
|
||||||
readonly onDidChangeVSCodeExecutionState: Event<vscode.NotebookCellExecutionStateChangeEvent> = this._onDidChangeVSCodeExecutionState.event;
|
readonly onDidChangeVSCodeExecutionState: Event<vscode.NotebookCellExecutionStateChangeEvent> = this._onDidChangeVSCodeExecutionState.event;
|
||||||
readonly onDidChangeVSCodeEditorSelection: Event<vscode.NotebookEditorSelectionChangeEvent> = this._onDidChangeVSCodeEditorSelection.event;
|
readonly onDidChangeVSCodeEditorSelection: Event<vscode.NotebookEditorSelectionChangeEvent> = this._onDidChangeVSCodeEditorSelection.event;
|
||||||
readonly onDidChangeVSCodeEditorRanges: Event<vscode.NotebookEditorVisibleRangesChangeEvent> = this._onDidChangeVSCodeEditorRanges.event;
|
readonly onDidChangeVSCodeEditorRanges: Event<vscode.NotebookEditorVisibleRangesChangeEvent> = this._onDidChangeVSCodeEditorRanges.event;
|
||||||
|
readonly onDidChangeVSCodeNotebookDocument: Event<vscode.NotebookDocumentChangeEvent> = this._onDidChangeVSCodeNotebookDocument.event;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private readonly _mainContext: IMainContext,
|
private readonly _mainContext: IMainContext,
|
||||||
|
|||||||
@@ -39,11 +39,14 @@ export const FILE_QUERY_EDITOR_TYPEID = 'workbench.editorInput.fileQueryInput';
|
|||||||
export const RESOURCE_VIEWER_TYPEID = 'workbench.editorInput.resourceViewerInput';
|
export const RESOURCE_VIEWER_TYPEID = 'workbench.editorInput.resourceViewerInput';
|
||||||
|
|
||||||
export const JUPYTER_PROVIDER_ID = 'jupyter';
|
export const JUPYTER_PROVIDER_ID = 'jupyter';
|
||||||
|
export const VSCODE_JUPYTER_PROVIDER_ID = 'jupyter-notebook';
|
||||||
export const IPYKERNEL_DISPLAY_NAME = 'Python 3 (ipykernel)';
|
export const IPYKERNEL_DISPLAY_NAME = 'Python 3 (ipykernel)';
|
||||||
export const INTERACTIVE_PROVIDER_ID = 'dotnet-interactive';
|
export const INTERACTIVE_PROVIDER_ID = 'dotnet-interactive';
|
||||||
export const TSGOPS_WEB_QUALITY = 'tsgops-image';
|
export const TSGOPS_WEB_QUALITY = 'tsgops-image';
|
||||||
export const CELL_URI_PATH_PREFIX = 'notebook-editor-';
|
export const CELL_URI_PATH_PREFIX = 'notebook-editor-';
|
||||||
|
|
||||||
|
export const DEFAULT_NOTEBOOK_FILETYPE = '.ipynb';
|
||||||
|
|
||||||
// The version of the notebook file format that we support
|
// The version of the notebook file format that we support
|
||||||
export const NBFORMAT = 4;
|
export const NBFORMAT = 4;
|
||||||
export const NBFORMAT_MINOR = 2;
|
export const NBFORMAT_MINOR = 2;
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ import { ImageMimeTypes, TextCellEditModes } from 'sql/workbench/services/notebo
|
|||||||
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||||
import { NotebookInput } from 'sql/workbench/contrib/notebook/browser/models/notebookInput';
|
import { NotebookInput } from 'sql/workbench/contrib/notebook/browser/models/notebookInput';
|
||||||
import { INotebookModel } from 'sql/workbench/services/notebook/browser/models/modelInterfaces';
|
import { INotebookModel } from 'sql/workbench/services/notebook/browser/models/modelInterfaces';
|
||||||
import { DefaultNotebookProviders, DEFAULT_NOTEBOOK_FILETYPE, IExecuteManager } from 'sql/workbench/services/notebook/browser/notebookService';
|
import { DefaultNotebookProviders, IExecuteManager } from 'sql/workbench/services/notebook/browser/notebookService';
|
||||||
import { NotebookExplorerViewletViewsContribution } from 'sql/workbench/contrib/notebook/browser/notebookExplorer/notebookExplorerViewlet';
|
import { NotebookExplorerViewletViewsContribution } from 'sql/workbench/contrib/notebook/browser/notebookExplorer/notebookExplorerViewlet';
|
||||||
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
|
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
|
||||||
import { IEditorResolverService, RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorResolverService';
|
import { IEditorResolverService, RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorResolverService';
|
||||||
@@ -59,7 +59,7 @@ import { FileEditorInput } from 'vs/workbench/contrib/files/browser/editors/file
|
|||||||
import { ILogService } from 'vs/platform/log/common/log';
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
import { DiffEditorInput } from 'vs/workbench/common/editor/diffEditorInput';
|
import { DiffEditorInput } from 'vs/workbench/common/editor/diffEditorInput';
|
||||||
import { useNewMarkdownRendererKey } from 'sql/workbench/contrib/notebook/common/notebookCommon';
|
import { useNewMarkdownRendererKey } from 'sql/workbench/contrib/notebook/common/notebookCommon';
|
||||||
import { JUPYTER_PROVIDER_ID, NotebookLanguage } from 'sql/workbench/common/constants';
|
import { DEFAULT_NOTEBOOK_FILETYPE, JUPYTER_PROVIDER_ID, NotebookLanguage } from 'sql/workbench/common/constants';
|
||||||
import { INotebookProviderRegistry, NotebookProviderRegistryId } from 'sql/workbench/services/notebook/common/notebookRegistry';
|
import { INotebookProviderRegistry, NotebookProviderRegistryId } from 'sql/workbench/services/notebook/common/notebookRegistry';
|
||||||
import { EditorInput } from 'vs/workbench/common/editor/editorInput';
|
import { EditorInput } from 'vs/workbench/common/editor/editorInput';
|
||||||
import { IPaneCompositePartService } from 'vs/workbench/services/panecomposite/browser/panecomposite';
|
import { IPaneCompositePartService } from 'vs/workbench/services/panecomposite/browser/panecomposite';
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
|
|||||||
import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo';
|
import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo';
|
||||||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||||
import { UndoRedoService } from 'vs/platform/undoRedo/common/undoRedoService';
|
import { UndoRedoService } from 'vs/platform/undoRedo/common/undoRedoService';
|
||||||
import { DEFAULT_NOTEBOOK_FILETYPE, IExecuteManager, INotebookService, SQL_NOTEBOOK_PROVIDER } from 'sql/workbench/services/notebook/browser/notebookService';
|
import { IExecuteManager, INotebookService, SQL_NOTEBOOK_PROVIDER } from 'sql/workbench/services/notebook/browser/notebookService';
|
||||||
import { NBFORMAT, NBFORMAT_MINOR } from 'sql/workbench/common/constants';
|
import { DEFAULT_NOTEBOOK_FILETYPE, NBFORMAT, NBFORMAT_MINOR } from 'sql/workbench/common/constants';
|
||||||
import { Emitter } from 'vs/base/common/event';
|
import { Emitter } from 'vs/base/common/event';
|
||||||
import { IStandardKernelWithProvider } from 'sql/workbench/services/notebook/browser/models/notebookUtils';
|
import { IStandardKernelWithProvider } from 'sql/workbench/services/notebook/browser/models/notebookUtils';
|
||||||
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
|
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
|
||||||
|
|||||||
@@ -8,11 +8,12 @@ import * as TypeMoq from 'typemoq';
|
|||||||
|
|
||||||
import { nb, ServerInfo } from 'azdata';
|
import { nb, ServerInfo } from 'azdata';
|
||||||
import { getHostAndPortFromEndpoint, isStream, getProvidersForFileName, asyncForEach, clusterEndpointsProperty, getClusterEndpoints, RawEndpoint, IEndpoint, getStandardKernelsForProvider, IStandardKernelWithProvider, rewriteUrlUsingRegex } from 'sql/workbench/services/notebook/browser/models/notebookUtils';
|
import { getHostAndPortFromEndpoint, isStream, getProvidersForFileName, asyncForEach, clusterEndpointsProperty, getClusterEndpoints, RawEndpoint, IEndpoint, getStandardKernelsForProvider, IStandardKernelWithProvider, rewriteUrlUsingRegex } from 'sql/workbench/services/notebook/browser/models/notebookUtils';
|
||||||
import { INotebookService, DEFAULT_NOTEBOOK_FILETYPE, DEFAULT_NOTEBOOK_PROVIDER, SQL_NOTEBOOK_PROVIDER } from 'sql/workbench/services/notebook/browser/notebookService';
|
import { INotebookService, DEFAULT_NOTEBOOK_PROVIDER, SQL_NOTEBOOK_PROVIDER } from 'sql/workbench/services/notebook/browser/notebookService';
|
||||||
import { NotebookServiceStub } from 'sql/workbench/contrib/notebook/test/stubs';
|
import { NotebookServiceStub } from 'sql/workbench/contrib/notebook/test/stubs';
|
||||||
import { tryMatchCellMagic, extractCellMagicCommandPlusArgs } from 'sql/workbench/services/notebook/browser/utils';
|
import { tryMatchCellMagic, extractCellMagicCommandPlusArgs } from 'sql/workbench/services/notebook/browser/utils';
|
||||||
import { RichTextEditStack } from 'sql/workbench/contrib/notebook/browser/cellViews/textCell.component';
|
import { RichTextEditStack } from 'sql/workbench/contrib/notebook/browser/cellViews/textCell.component';
|
||||||
import { notebookConstants } from 'sql/workbench/services/notebook/browser/interfaces';
|
import { notebookConstants } from 'sql/workbench/services/notebook/browser/interfaces';
|
||||||
|
import { DEFAULT_NOTEBOOK_FILETYPE } from 'sql/workbench/common/constants';
|
||||||
|
|
||||||
suite('notebookUtils', function (): void {
|
suite('notebookUtils', function (): void {
|
||||||
const mockNotebookService = TypeMoq.Mock.ofType<INotebookService>(NotebookServiceStub);
|
const mockNotebookService = TypeMoq.Mock.ofType<INotebookService>(NotebookServiceStub);
|
||||||
|
|||||||
@@ -165,8 +165,7 @@ export class NotebookModel extends Disposable implements INotebookModel {
|
|||||||
if (!fileExt) {
|
if (!fileExt) {
|
||||||
let languageMode = this._notebookOptions.getInputLanguageMode();
|
let languageMode = this._notebookOptions.getInputLanguageMode();
|
||||||
if (languageMode) {
|
if (languageMode) {
|
||||||
let languageName = this._languageService.getLanguageName(languageMode);
|
let fileExtensions = this._languageService.getExtensions(languageMode);
|
||||||
let fileExtensions = this._languageService.getExtensions(languageName);
|
|
||||||
if (fileExtensions?.length > 0) {
|
if (fileExtensions?.length > 0) {
|
||||||
extensions = fileExtensions;
|
extensions = fileExtensions;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
import * as path from 'vs/base/common/path';
|
import * as path from 'vs/base/common/path';
|
||||||
import { nb, ServerInfo } from 'azdata';
|
import { nb, ServerInfo } from 'azdata';
|
||||||
import { DEFAULT_NOTEBOOK_PROVIDER, DEFAULT_NOTEBOOK_FILETYPE, INotebookService, SQL_NOTEBOOK_PROVIDER } from 'sql/workbench/services/notebook/browser/notebookService';
|
import { DEFAULT_NOTEBOOK_PROVIDER, INotebookService, SQL_NOTEBOOK_PROVIDER } from 'sql/workbench/services/notebook/browser/notebookService';
|
||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
import { NotebookLanguage } from 'sql/workbench/common/constants';
|
import { DEFAULT_NOTEBOOK_FILETYPE, NotebookLanguage } from 'sql/workbench/common/constants';
|
||||||
|
|
||||||
export const clusterEndpointsProperty = 'clusterEndpoints';
|
export const clusterEndpointsProperty = 'clusterEndpoints';
|
||||||
export const hadoopEndpointNameGateway = 'gateway';
|
export const hadoopEndpointNameGateway = 'gateway';
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ export const SERVICE_ID = 'sqlNotebookService';
|
|||||||
export const INotebookService = createDecorator<INotebookService>(SERVICE_ID);
|
export const INotebookService = createDecorator<INotebookService>(SERVICE_ID);
|
||||||
|
|
||||||
export const DEFAULT_NOTEBOOK_PROVIDER = 'builtin';
|
export const DEFAULT_NOTEBOOK_PROVIDER = 'builtin';
|
||||||
export const DEFAULT_NOTEBOOK_FILETYPE = '.ipynb';
|
|
||||||
export const SQL_NOTEBOOK_PROVIDER = 'sql';
|
export const SQL_NOTEBOOK_PROVIDER = 'sql';
|
||||||
export const OVERRIDE_EDITOR_THEMING_SETTING = 'notebook.overrideEditorTheming';
|
export const OVERRIDE_EDITOR_THEMING_SETTING = 'notebook.overrideEditorTheming';
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { Registry } from 'vs/platform/registry/common/platform';
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
INotebookService, IExecuteManager, IExecuteProvider,
|
INotebookService, IExecuteManager, IExecuteProvider,
|
||||||
DEFAULT_NOTEBOOK_FILETYPE, INotebookEditor, SQL_NOTEBOOK_PROVIDER, INavigationProvider, ILanguageMagic, NavigationProviders, unsavedBooksContextKey, ISerializationProvider, ISerializationManager, DefaultNotebookProviders
|
INotebookEditor, SQL_NOTEBOOK_PROVIDER, INavigationProvider, ILanguageMagic, NavigationProviders, unsavedBooksContextKey, ISerializationProvider, ISerializationManager, DefaultNotebookProviders
|
||||||
} from 'sql/workbench/services/notebook/browser/notebookService';
|
} from 'sql/workbench/services/notebook/browser/notebookService';
|
||||||
import { RenderMimeRegistry } from 'sql/workbench/services/notebook/browser/outputs/registry';
|
import { RenderMimeRegistry } from 'sql/workbench/services/notebook/browser/outputs/registry';
|
||||||
import { standardRendererFactories } from 'sql/workbench/services/notebook/browser/outputs/factories';
|
import { standardRendererFactories } from 'sql/workbench/services/notebook/browser/outputs/factories';
|
||||||
@@ -50,7 +50,7 @@ import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editor
|
|||||||
import { IEditorPane, IUntypedFileEditorInput } from 'vs/workbench/common/editor';
|
import { IEditorPane, IUntypedFileEditorInput } from 'vs/workbench/common/editor';
|
||||||
import { isINotebookInput } from 'sql/workbench/services/notebook/browser/interface';
|
import { isINotebookInput } from 'sql/workbench/services/notebook/browser/interface';
|
||||||
import { INotebookShowOptions } from 'sql/workbench/api/common/sqlExtHost.protocol';
|
import { INotebookShowOptions } from 'sql/workbench/api/common/sqlExtHost.protocol';
|
||||||
import { INTERACTIVE_PROVIDER_ID, NotebookLanguage } from 'sql/workbench/common/constants';
|
import { DEFAULT_NOTEBOOK_FILETYPE, INTERACTIVE_PROVIDER_ID, NotebookLanguage } from 'sql/workbench/common/constants';
|
||||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||||
import { SqlSerializationProvider } from 'sql/workbench/services/notebook/browser/sql/sqlSerializationProvider';
|
import { SqlSerializationProvider } from 'sql/workbench/services/notebook/browser/sql/sqlSerializationProvider';
|
||||||
import { EditorInput } from 'vs/workbench/common/editor/editorInput';
|
import { EditorInput } from 'vs/workbench/common/editor/editorInput';
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import { localize } from 'vs/nls';
|
|||||||
import * as platform from 'vs/platform/registry/common/platform';
|
import * as platform from 'vs/platform/registry/common/platform';
|
||||||
import * as azdata from 'azdata';
|
import * as azdata from 'azdata';
|
||||||
import { Event, Emitter } from 'vs/base/common/event';
|
import { Event, Emitter } from 'vs/base/common/event';
|
||||||
|
import { DEFAULT_NOTEBOOK_FILETYPE, VSCODE_JUPYTER_PROVIDER_ID } from 'sql/workbench/common/constants';
|
||||||
|
|
||||||
export const NotebookProviderRegistryId = 'notebooks.providers.registry';
|
export const NotebookProviderRegistryId = 'notebooks.providers.registry';
|
||||||
|
|
||||||
@@ -136,7 +137,17 @@ class NotebookProviderRegistry implements INotebookProviderRegistry {
|
|||||||
updateProviderKernels(providerId: string, kernels: azdata.nb.IStandardKernel[]): void {
|
updateProviderKernels(providerId: string, kernels: azdata.nb.IStandardKernel[]): void {
|
||||||
let registration = this._providerDescriptionRegistration.get(providerId);
|
let registration = this._providerDescriptionRegistration.get(providerId);
|
||||||
if (!registration) {
|
if (!registration) {
|
||||||
throw new Error(this.providerNotInRegistryError(providerId));
|
// Newer versions of the Jupyter extension don't contribute a provider for the default file type, so
|
||||||
|
// register the original provider details here to preserve backwards compatibility for .NET Interactive
|
||||||
|
if (providerId === VSCODE_JUPYTER_PROVIDER_ID) {
|
||||||
|
registration = {
|
||||||
|
provider: VSCODE_JUPYTER_PROVIDER_ID,
|
||||||
|
fileExtensions: [DEFAULT_NOTEBOOK_FILETYPE],
|
||||||
|
standardKernels: undefined
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
throw new Error(this.providerNotInRegistryError(providerId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
registration.standardKernels = kernels;
|
registration.standardKernels = kernels;
|
||||||
|
|
||||||
|
|||||||
@@ -9,18 +9,18 @@ import { Emitter } from 'vs/base/common/event';
|
|||||||
import { DisposableStore, dispose, IDisposable } from 'vs/base/common/lifecycle';
|
import { DisposableStore, dispose, IDisposable } from 'vs/base/common/lifecycle';
|
||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
import { NotebookDto } from 'vs/workbench/api/browser/mainThreadNotebookDto';
|
import { NotebookDto } from 'vs/workbench/api/browser/mainThreadNotebookDto';
|
||||||
import { extHostNamedCustomer, IExtHostContext } from 'vs/workbench/services/extensions/common/extHostCustomers';
|
import { IExtHostContext } from 'vs/workbench/services/extensions/common/extHostCustomers'; // {{SQL CARBON EDIT}} Remove unused
|
||||||
import { INotebookCellStatusBarService } from 'vs/workbench/contrib/notebook/common/notebookCellStatusBarService';
|
import { INotebookCellStatusBarService } from 'vs/workbench/contrib/notebook/common/notebookCellStatusBarService';
|
||||||
import { INotebookCellStatusBarItemProvider, INotebookContributionData, NotebookData as NotebookData, NotebookExtensionDescription, TransientCellMetadata, TransientDocumentMetadata, TransientOptions } from 'vs/workbench/contrib/notebook/common/notebookCommon';
|
import { INotebookCellStatusBarItemProvider, INotebookContributionData, NotebookData as NotebookData, NotebookExtensionDescription, TransientCellMetadata, TransientDocumentMetadata, TransientOptions } from 'vs/workbench/contrib/notebook/common/notebookCommon';
|
||||||
import { INotebookContentProvider, INotebookService, SimpleNotebookProviderInfo } from 'vs/workbench/contrib/notebook/common/notebookService';
|
import { INotebookContentProvider, INotebookService, SimpleNotebookProviderInfo } from 'vs/workbench/contrib/notebook/common/notebookService';
|
||||||
import { SerializableObjectWithBuffers } from 'vs/workbench/services/extensions/common/proxyIdentifier';
|
import { SerializableObjectWithBuffers } from 'vs/workbench/services/extensions/common/proxyIdentifier';
|
||||||
import { ExtHostContext, ExtHostNotebookShape, MainContext, MainThreadNotebookShape } from '../common/extHost.protocol';
|
import { ExtHostContext, ExtHostNotebookShape, MainThreadNotebookShape } from '../common/extHost.protocol'; // {{SQL CARBON EDIT}} Remove unused
|
||||||
import { ILogService } from 'vs/platform/log/common/log';
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
import { StopWatch } from 'vs/base/common/stopwatch';
|
import { StopWatch } from 'vs/base/common/stopwatch';
|
||||||
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
|
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
|
||||||
import { assertType } from 'vs/base/common/types';
|
import { assertType } from 'vs/base/common/types';
|
||||||
|
|
||||||
@extHostNamedCustomer(MainContext.MainThreadNotebook)
|
// @extHostNamedCustomer(MainContext.MainThreadNotebook) {{SQL CARBON EDIT}} Disable VS Code notebooks
|
||||||
export class MainThreadNotebooks implements MainThreadNotebookShape {
|
export class MainThreadNotebooks implements MainThreadNotebookShape {
|
||||||
|
|
||||||
private readonly _disposables = new DisposableStore();
|
private readonly _disposables = new DisposableStore();
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
import { Emitter, Event } from 'vs/base/common/event';
|
import { Emitter, Event } from 'vs/base/common/event';
|
||||||
import { DisposableStore, IDisposable } from 'vs/base/common/lifecycle';
|
import { DisposableStore, IDisposable } from 'vs/base/common/lifecycle';
|
||||||
import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
|
import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
|
||||||
import { extHostNamedCustomer, IExtHostContext } from 'vs/workbench/services/extensions/common/extHostCustomers';
|
import { IExtHostContext } from 'vs/workbench/services/extensions/common/extHostCustomers'; // {{SQL CARBON EDIT}} Remove unused
|
||||||
import { INotebookKernelService, INotebookProxyKernel, INotebookProxyKernelChangeEvent, ProxyKernelState, NotebookKernelType } from 'vs/workbench/contrib/notebook/common/notebookKernelService';
|
import { INotebookKernelService, INotebookProxyKernel, INotebookProxyKernelChangeEvent, ProxyKernelState, NotebookKernelType } from 'vs/workbench/contrib/notebook/common/notebookKernelService';
|
||||||
import { ExtHostContext, ExtHostNotebookProxyKernelsShape, INotebookProxyKernelDto, MainContext, MainThreadNotebookProxyKernelsShape } from '../common/extHost.protocol';
|
import { ExtHostContext, ExtHostNotebookProxyKernelsShape, INotebookProxyKernelDto, MainThreadNotebookProxyKernelsShape } from '../common/extHost.protocol'; // {{SQL CARBON EDIT}} Remove unused
|
||||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||||
|
|
||||||
abstract class MainThreadProxyKernel implements INotebookProxyKernel {
|
abstract class MainThreadProxyKernel implements INotebookProxyKernel {
|
||||||
@@ -64,7 +64,7 @@ abstract class MainThreadProxyKernel implements INotebookProxyKernel {
|
|||||||
abstract resolveKernel(): Promise<string | null>;
|
abstract resolveKernel(): Promise<string | null>;
|
||||||
}
|
}
|
||||||
|
|
||||||
@extHostNamedCustomer(MainContext.MainThreadNotebookProxyKernels)
|
// @extHostNamedCustomer(MainContext.MainThreadNotebookProxyKernels) {{SQL CARBON EDIT}} Disable VS Code notebooks
|
||||||
export class MainThreadNotebookProxyKernels implements MainThreadNotebookProxyKernelsShape {
|
export class MainThreadNotebookProxyKernels implements MainThreadNotebookProxyKernelsShape {
|
||||||
|
|
||||||
private readonly _disposables = new DisposableStore();
|
private readonly _disposables = new DisposableStore();
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ import { ExtHostUriOpeners } from 'vs/workbench/api/common/extHostUriOpener';
|
|||||||
import { IExtHostSecretState } from 'vs/workbench/api/common/exHostSecretState';
|
import { IExtHostSecretState } from 'vs/workbench/api/common/exHostSecretState';
|
||||||
import { IExtHostEditorTabs } from 'vs/workbench/api/common/extHostEditorTabs';
|
import { IExtHostEditorTabs } from 'vs/workbench/api/common/extHostEditorTabs';
|
||||||
import { IExtHostTelemetry } from 'vs/workbench/api/common/extHostTelemetry';
|
import { IExtHostTelemetry } from 'vs/workbench/api/common/extHostTelemetry';
|
||||||
import { ExtHostNotebookKernels } from 'vs/workbench/api/common/extHostNotebookKernels'; // {{SQL CARBON EDIT}} Disable VS Code notebooks
|
// import { ExtHostNotebookKernels } from 'vs/workbench/api/common/extHostNotebookKernels'; {{SQL CARBON EDIT}} Disable VS Code notebooks
|
||||||
import { TextSearchCompleteMessageType } from 'vs/workbench/services/search/common/searchExtTypes';
|
import { TextSearchCompleteMessageType } from 'vs/workbench/services/search/common/searchExtTypes';
|
||||||
// import { ExtHostNotebookRenderers } from 'vs/workbench/api/common/extHostNotebookRenderers'; {{SQL CARBON EDIT}} Disable VS Code notebooks
|
// import { ExtHostNotebookRenderers } from 'vs/workbench/api/common/extHostNotebookRenderers'; {{SQL CARBON EDIT}} Disable VS Code notebooks
|
||||||
import { Schemas } from 'vs/base/common/network';
|
import { Schemas } from 'vs/base/common/network';
|
||||||
@@ -93,7 +93,7 @@ import { matchesScheme } from 'vs/platform/opener/common/opener';
|
|||||||
import { combinedDisposable } from 'vs/base/common/lifecycle';
|
import { combinedDisposable } from 'vs/base/common/lifecycle';
|
||||||
import { checkProposedApiEnabled, ExtensionIdentifierSet, isProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions';
|
import { checkProposedApiEnabled, ExtensionIdentifierSet, isProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions';
|
||||||
import { DebugConfigurationProviderTriggerKind } from 'vs/workbench/contrib/debug/common/debug';
|
import { DebugConfigurationProviderTriggerKind } from 'vs/workbench/contrib/debug/common/debug';
|
||||||
import { ExtHostNotebookProxyKernels } from 'vs/workbench/api/common/extHostNotebookProxyKernels';
|
// import { ExtHostNotebookProxyKernels } from 'vs/workbench/api/common/extHostNotebookProxyKernels'; {{SQL CARBON EDIT}} Disable VS Code notebooks
|
||||||
|
|
||||||
import { ExtHostNotebook } from 'sql/workbench/api/common/extHostNotebook'; // {{SQL CARBON EDIT}}
|
import { ExtHostNotebook } from 'sql/workbench/api/common/extHostNotebook'; // {{SQL CARBON EDIT}}
|
||||||
import { docCreationFailedError, functionalityNotSupportedError, invalidArgumentsError } from 'sql/base/common/locConstants';
|
import { docCreationFailedError, functionalityNotSupportedError, invalidArgumentsError } from 'sql/base/common/locConstants';
|
||||||
@@ -169,13 +169,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor, ex
|
|||||||
const extHostNotebook = rpcProtocol.set(ExtHostContext.ExtHostNotebook, new ExtHostNotebookController(rpcProtocol, extHostCommands, extHostDocumentsAndEditors, extHostDocuments, extensionStoragePaths));
|
const extHostNotebook = rpcProtocol.set(ExtHostContext.ExtHostNotebook, new ExtHostNotebookController(rpcProtocol, extHostCommands, extHostDocumentsAndEditors, extHostDocuments, extensionStoragePaths));
|
||||||
const extHostNotebookDocuments = rpcProtocol.set(ExtHostContext.ExtHostNotebookDocuments, new ExtHostNotebookDocuments(extHostNotebook));
|
const extHostNotebookDocuments = rpcProtocol.set(ExtHostContext.ExtHostNotebookDocuments, new ExtHostNotebookDocuments(extHostNotebook));
|
||||||
const extHostNotebookEditors = rpcProtocol.set(ExtHostContext.ExtHostNotebookEditors, new ExtHostNotebookEditors(extHostLogService, rpcProtocol, extHostNotebook));
|
const extHostNotebookEditors = rpcProtocol.set(ExtHostContext.ExtHostNotebookEditors, new ExtHostNotebookEditors(extHostLogService, rpcProtocol, extHostNotebook));
|
||||||
const extHostNotebookKernels = rpcProtocol.set(ExtHostContext.ExtHostNotebookKernels, new ExtHostNotebookKernels(rpcProtocol, initData, extHostNotebook, extHostCommands, extHostLogService));
|
|
||||||
const extHostNotebookProxyKernels = rpcProtocol.set(ExtHostContext.ExtHostNotebookProxyKernels, new ExtHostNotebookProxyKernels(rpcProtocol, extHostNotebookKernels, extHostLogService));
|
|
||||||
const extHostNotebookRenderers = rpcProtocol.set(ExtHostContext.ExtHostNotebookRenderers, new ExtHostNotebookRenderers(rpcProtocol, extHostNotebook));
|
const extHostNotebookRenderers = rpcProtocol.set(ExtHostContext.ExtHostNotebookRenderers, new ExtHostNotebookRenderers(rpcProtocol, extHostNotebook));
|
||||||
*/
|
|
||||||
// {{SQL CARBON TODO}} - need to use a ADS specific proxy
|
|
||||||
const extHostNotebookKernels = rpcProtocol.set(ExtHostContext.ExtHostNotebookKernels, new ExtHostNotebookKernels(rpcProtocol, initData, <any>extHostNotebook, extHostCommands, extHostLogService));
|
const extHostNotebookKernels = rpcProtocol.set(ExtHostContext.ExtHostNotebookKernels, new ExtHostNotebookKernels(rpcProtocol, initData, <any>extHostNotebook, extHostCommands, extHostLogService));
|
||||||
const extHostNotebookProxyKernels = rpcProtocol.set(ExtHostContext.ExtHostNotebookProxyKernels, new ExtHostNotebookProxyKernels(rpcProtocol, extHostNotebookKernels, extHostLogService));
|
const extHostNotebookProxyKernels = rpcProtocol.set(ExtHostContext.ExtHostNotebookProxyKernels, new ExtHostNotebookProxyKernels(rpcProtocol, extHostNotebookKernels, extHostLogService));
|
||||||
|
*/
|
||||||
|
|
||||||
const extHostEditors = rpcProtocol.set(ExtHostContext.ExtHostEditors, new ExtHostEditors(rpcProtocol, extHostDocumentsAndEditors));
|
const extHostEditors = rpcProtocol.set(ExtHostContext.ExtHostEditors, new ExtHostEditors(rpcProtocol, extHostDocumentsAndEditors));
|
||||||
const extHostTreeViews = rpcProtocol.set(ExtHostContext.ExtHostTreeViews, new ExtHostTreeViews(rpcProtocol.getProxy(MainContext.MainThreadTreeViews), extHostCommands, extHostLogService));
|
const extHostTreeViews = rpcProtocol.set(ExtHostContext.ExtHostTreeViews, new ExtHostTreeViews(rpcProtocol.getProxy(MainContext.MainThreadTreeViews), extHostCommands, extHostLogService));
|
||||||
@@ -210,6 +207,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor, ex
|
|||||||
ExtHostContext.ExtHostNotebookEditors,
|
ExtHostContext.ExtHostNotebookEditors,
|
||||||
ExtHostContext.ExtHostNotebookKernels,
|
ExtHostContext.ExtHostNotebookKernels,
|
||||||
ExtHostContext.ExtHostNotebookRenderers,
|
ExtHostContext.ExtHostNotebookRenderers,
|
||||||
|
ExtHostContext.ExtHostNotebookProxyKernels,
|
||||||
ExtHostContext.ExtHostInteractive
|
ExtHostContext.ExtHostInteractive
|
||||||
]);
|
]);
|
||||||
const expected: ProxyIdentifier<any>[] = values(ExtHostContext).filter(v => !filteredProxies.has(v));
|
const expected: ProxyIdentifier<any>[] = values(ExtHostContext).filter(v => !filteredProxies.has(v));
|
||||||
@@ -787,7 +785,8 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor, ex
|
|||||||
},
|
},
|
||||||
get activeNotebookEditor(): vscode.NotebookEditor | undefined {
|
get activeNotebookEditor(): vscode.NotebookEditor | undefined {
|
||||||
// {{SQL CARBON EDIT}} Use our own notebooks
|
// {{SQL CARBON EDIT}} Use our own notebooks
|
||||||
return new VSCodeNotebookEditor(extHostNotebookDocumentsAndEditors.getActiveEditor());
|
let activeEditor = extHostNotebookDocumentsAndEditors.getActiveEditor();
|
||||||
|
return activeEditor ? new VSCodeNotebookEditor(activeEditor) : undefined;
|
||||||
},
|
},
|
||||||
onDidChangeActiveNotebookEditor(listener, thisArgs?, disposables?) {
|
onDidChangeActiveNotebookEditor(listener, thisArgs?, disposables?) {
|
||||||
// {{SQL CARBON EDIT}} Use our own notebooks
|
// {{SQL CARBON EDIT}} Use our own notebooks
|
||||||
@@ -967,14 +966,12 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor, ex
|
|||||||
return new VSCodeNotebookDocument(doc);
|
return new VSCodeNotebookDocument(doc);
|
||||||
},
|
},
|
||||||
onDidSaveNotebookDocument(listener, thisArg, disposables) {
|
onDidSaveNotebookDocument(listener, thisArg, disposables) {
|
||||||
// {{SQL CARBON TODO}} - disable event
|
// {{SQL CARBON EDIT}} Use our own notebooks
|
||||||
return undefined
|
return extHostNotebookDocumentsAndEditors.onDidSaveVSCodeNotebookDocument(listener, thisArg, disposables);
|
||||||
//return extHostNotebookDocuments.onDidSaveNotebookDocument(listener, thisArg, disposables);
|
|
||||||
},
|
},
|
||||||
onDidChangeNotebookDocument(listener, thisArg, disposables) {
|
onDidChangeNotebookDocument(listener, thisArg, disposables) {
|
||||||
// {{SQL CARBON TODO}} - disable event
|
// {{SQL CARBON EDIT}} Use our own notebooks
|
||||||
return undefined;
|
return extHostNotebookDocumentsAndEditors.onDidChangeVSCodeNotebookDocument(listener, thisArg, disposables);
|
||||||
//return extHostNotebookDocuments.onDidChangeNotebookDocument(listener, thisArg, disposables);
|
|
||||||
},
|
},
|
||||||
get onDidOpenNotebookDocument(): Event<vscode.NotebookDocument> {
|
get onDidOpenNotebookDocument(): Event<vscode.NotebookDocument> {
|
||||||
// {{SQL CARBON EDIT}} Use our own notebooks
|
// {{SQL CARBON EDIT}} Use our own notebooks
|
||||||
@@ -1261,9 +1258,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor, ex
|
|||||||
return extHostNotebookDocumentsAndEditors.onDidChangeVSCodeExecutionState(listener, thisArgs, disposables);
|
return extHostNotebookDocumentsAndEditors.onDidChangeVSCodeExecutionState(listener, thisArgs, disposables);
|
||||||
},
|
},
|
||||||
createNotebookProxyController(id: string, notebookType: string, label: string, handler: () => vscode.NotebookController | string | Thenable<vscode.NotebookController | string>) {
|
createNotebookProxyController(id: string, notebookType: string, label: string, handler: () => vscode.NotebookController | string | Thenable<vscode.NotebookController | string>) {
|
||||||
//checkProposedApiEnabled(extension, 'notebookProxyController');
|
// {{SQL CARBON EDIT}} Disable VS Code notebooks
|
||||||
return extHostNotebookProxyKernels.createNotebookProxyController(extension, id, notebookType, label, handler);
|
throw new Error(functionalityNotSupportedError);
|
||||||
// {{SQL CARBON TODO}}
|
// checkProposedApiEnabled(extension, 'notebookProxyController');
|
||||||
|
// return extHostNotebookProxyKernels.createNotebookProxyController(extension, id, notebookType, label, handler);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -318,6 +318,7 @@ class ExtensionHostManager extends Disposable implements IExtensionHostManager {
|
|||||||
MainContext.MainThreadNotebookEditors,
|
MainContext.MainThreadNotebookEditors,
|
||||||
MainContext.MainThreadNotebookKernels,
|
MainContext.MainThreadNotebookKernels,
|
||||||
MainContext.MainThreadNotebookRenderers,
|
MainContext.MainThreadNotebookRenderers,
|
||||||
|
MainContext.MainThreadNotebookProxyKernels,
|
||||||
MainContext.MainThreadInteractive
|
MainContext.MainThreadInteractive
|
||||||
];
|
];
|
||||||
const expected: ProxyIdentifier<any>[] = Object.keys(MainContext).map((key) => (<any>MainContext)[key]).filter(v => !filtered.some(x => x === v));
|
const expected: ProxyIdentifier<any>[] = Object.keys(MainContext).map((key) => (<any>MainContext)[key]).filter(v => !filtered.some(x => x === v));
|
||||||
|
|||||||
Reference in New Issue
Block a user