mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-18 01:25:37 -05:00
Add language picker to notebook cells. (#18601)
This commit is contained in:
@@ -418,6 +418,7 @@ export class CellModel extends Disposable implements ICellModel {
|
||||
if (newLanguage !== this._language) {
|
||||
this._language = newLanguage;
|
||||
this._onLanguageChanged.fire(newLanguage);
|
||||
this.sendChangeToNotebook(NotebookChangeType.CellMetadataUpdated);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -76,6 +76,8 @@ export interface INotebookService {
|
||||
|
||||
getStandardKernelsForProvider(provider: string): Promise<azdata.nb.IStandardKernel[] | undefined>;
|
||||
|
||||
getSupportedLanguagesForProvider(provider: string, kernelDisplayName?: string): Promise<string[]>;
|
||||
|
||||
getOrCreateSerializationManager(providerId: string, uri: URI): Promise<ISerializationManager>;
|
||||
|
||||
getOrCreateExecuteManager(providerId: string, uri: URI): Thenable<IExecuteManager>;
|
||||
|
||||
@@ -494,6 +494,22 @@ export class NotebookService extends Disposable implements INotebookService {
|
||||
return kernels;
|
||||
}
|
||||
|
||||
public async getSupportedLanguagesForProvider(provider: string, kernelDisplayName?: string): Promise<string[]> {
|
||||
let languages: string[] = [];
|
||||
let kernels = await this.getStandardKernelsForProvider(provider);
|
||||
if (kernelDisplayName && kernels) {
|
||||
kernels = kernels.filter(kernel => kernel.displayName === kernelDisplayName);
|
||||
}
|
||||
kernels?.forEach(kernel => {
|
||||
if (kernel.supportedLanguages) {
|
||||
languages.push(...kernel.supportedLanguages);
|
||||
}
|
||||
});
|
||||
// Remove duplicates
|
||||
languages = [...new Set(languages)];
|
||||
return languages;
|
||||
}
|
||||
|
||||
private shutdown(): void {
|
||||
this._executeManagersMap.forEach(manager => {
|
||||
manager.forEach(m => {
|
||||
|
||||
Reference in New Issue
Block a user