mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
show markdown preview (#6198)
This commit is contained in:
@@ -13,7 +13,6 @@ export class BookTreeItem extends vscode.TreeItem {
|
|||||||
public readonly tableOfContents: any[],
|
public readonly tableOfContents: any[],
|
||||||
public readonly collapsibleState: vscode.TreeItemCollapsibleState,
|
public readonly collapsibleState: vscode.TreeItemCollapsibleState,
|
||||||
public uri?: string,
|
public uri?: string,
|
||||||
public readonly type?: vscode.FileType,
|
|
||||||
public command?: vscode.Command
|
public command?: vscode.Command
|
||||||
) {
|
) {
|
||||||
super(title, collapsibleState);
|
super(title, collapsibleState);
|
||||||
|
|||||||
@@ -40,13 +40,23 @@ export class BookTreeViewProvider implements vscode.TreeDataProvider<BookTreeIte
|
|||||||
return allFiles;
|
return allFiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
async openNotebook(resource: vscode.Uri): Promise<void> {
|
async openNotebook(resource: string): Promise<void> {
|
||||||
try {
|
try {
|
||||||
let doc = await vscode.workspace.openTextDocument(resource);
|
let doc = await vscode.workspace.openTextDocument(resource);
|
||||||
vscode.window.showTextDocument(doc);
|
vscode.window.showTextDocument(doc);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
vscode.window.showErrorMessage(localize('openNotebookError', 'Open file {0} failed: {1}',
|
vscode.window.showErrorMessage(localize('openNotebookError', 'Open file {0} failed: {1}',
|
||||||
resource.fsPath,
|
resource,
|
||||||
|
e instanceof Error ? e.message : e));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async openMarkdown(resource: string): Promise<void> {
|
||||||
|
try {
|
||||||
|
vscode.commands.executeCommand('markdown.showPreview', vscode.Uri.file(resource));
|
||||||
|
} catch (e) {
|
||||||
|
vscode.window.showErrorMessage(localize('openMarkdownError', 'Open file {0} failed: {1}',
|
||||||
|
resource,
|
||||||
e instanceof Error ? e.message : e));
|
e instanceof Error ? e.message : e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -94,10 +104,10 @@ export class BookTreeViewProvider implements vscode.TreeDataProvider<BookTreeIte
|
|||||||
// Note: Currently, if there is an ipynb and a md file with the same name, Jupyter Books only shows the notebook.
|
// Note: Currently, if there is an ipynb and a md file with the same name, Jupyter Books only shows the notebook.
|
||||||
// Following Jupyter Books behavior for now
|
// Following Jupyter Books behavior for now
|
||||||
if (fs.existsSync(pathToNotebook)) {
|
if (fs.existsSync(pathToNotebook)) {
|
||||||
let notebook = new BookTreeItem(sec[i].title, root, sec[i].sections, sec[i].sections ? vscode.TreeItemCollapsibleState.Expanded : vscode.TreeItemCollapsibleState.None, sec[i].url, vscode.FileType.File, { command: 'bookTreeView.openNotebook', title: 'Open Notebook', arguments: [pathToNotebook], });
|
let notebook = new BookTreeItem(sec[i].title, root, sec[i].sections, sec[i].sections ? vscode.TreeItemCollapsibleState.Expanded : vscode.TreeItemCollapsibleState.None, sec[i].url, { command: 'bookTreeView.openNotebook', title: 'Open Notebook', arguments: [pathToNotebook], });
|
||||||
notebooks.push(notebook);
|
notebooks.push(notebook);
|
||||||
} else if (fs.existsSync(pathToMarkdown)) {
|
} else if (fs.existsSync(pathToMarkdown)) {
|
||||||
let markdown = new BookTreeItem(sec[i].title, root, sec[i].sections, sec[i].sections ? vscode.TreeItemCollapsibleState.Expanded : vscode.TreeItemCollapsibleState.None, sec[i].url, vscode.FileType.File, { command: 'bookTreeView.openNotebook', title: 'Open Notebook', arguments: [pathToMarkdown], });
|
let markdown = new BookTreeItem(sec[i].title, root, sec[i].sections, sec[i].sections ? vscode.TreeItemCollapsibleState.Expanded : vscode.TreeItemCollapsibleState.None, sec[i].url, { command: 'bookTreeView.openMarkdown', title: 'Open Markdown', arguments: [pathToMarkdown], });
|
||||||
notebooks.push(markdown);
|
notebooks.push(markdown);
|
||||||
} else {
|
} else {
|
||||||
vscode.window.showErrorMessage(localize('missingFileError', 'Missing file : {0}', sec[i].title));
|
vscode.window.showErrorMessage(localize('missingFileError', 'Missing file : {0}', sec[i].title));
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ export async function activate(extensionContext: vscode.ExtensionContext): Promi
|
|||||||
const bookTreeViewProvider = new BookTreeViewProvider(vscode.workspace.rootPath || '');
|
const bookTreeViewProvider = new BookTreeViewProvider(vscode.workspace.rootPath || '');
|
||||||
vscode.window.registerTreeDataProvider('bookTreeView', bookTreeViewProvider);
|
vscode.window.registerTreeDataProvider('bookTreeView', bookTreeViewProvider);
|
||||||
vscode.commands.registerCommand('bookTreeView.openNotebook', (resource) => bookTreeViewProvider.openNotebook(resource));
|
vscode.commands.registerCommand('bookTreeView.openNotebook', (resource) => bookTreeViewProvider.openNotebook(resource));
|
||||||
|
vscode.commands.registerCommand('bookTreeView.openMarkdown', (resource) => bookTreeViewProvider.openMarkdown(resource));
|
||||||
|
|
||||||
extensionContext.subscriptions.push(vscode.commands.registerCommand('_notebook.command.new', (context?: azdata.ConnectedContext) => {
|
extensionContext.subscriptions.push(vscode.commands.registerCommand('_notebook.command.new', (context?: azdata.ConnectedContext) => {
|
||||||
let connectionProfile: azdata.IConnectionProfile = undefined;
|
let connectionProfile: azdata.IConnectionProfile = undefined;
|
||||||
|
|||||||
Reference in New Issue
Block a user