diff --git a/packages/web/src/commands/stdCommands.ts b/packages/web/src/commands/stdCommands.ts
index 282bccc3b..1797888b0 100644
--- a/packages/web/src/commands/stdCommands.ts
+++ b/packages/web/src/commands/stdCommands.ts
@@ -6,6 +6,7 @@ import ConnectionModal from '../modals/ConnectionModal.svelte';
import { showModal } from '../modals/modalTools';
import newQuery from '../query/newQuery';
import saveTabFile, { saveTabEnabledStore } from '../utility/saveTabFile';
+import openNewTab from '../utility/openNewTab';
function themeCommand(theme: ThemeDefinition) {
return {
@@ -66,11 +67,39 @@ registerCommand({
onClick: () => newQuery(),
});
+registerCommand({
+ id: 'new.shell',
+ category: 'New',
+ icon: 'img shell',
+ name: 'JavaScript Shell',
+ onClick: () => {
+ openNewTab({
+ title: 'Shell #',
+ icon: 'img shell',
+ tabComponent: 'ShellTab',
+ });
+ },
+});
+
+registerCommand({
+ id: 'new.markdown',
+ category: 'New',
+ icon: 'img markdown',
+ name: 'Markdown page',
+ onClick: () => {
+ openNewTab({
+ title: 'Page #',
+ icon: 'img markdown',
+ tabComponent: 'MarkdownEditorTab',
+ });
+ },
+});
+
export function registerFileCommands({
idPrefix,
category,
editorStore,
- editorStatusStore,
+ editorStatusStore = undefined,
folder,
format,
fileExtension,
diff --git a/packages/web/src/tabs/MarkdownEditorTab.svelte b/packages/web/src/tabs/MarkdownEditorTab.svelte
new file mode 100644
index 000000000..7286def25
--- /dev/null
+++ b/packages/web/src/tabs/MarkdownEditorTab.svelte
@@ -0,0 +1,108 @@
+
+
+
+
+ setEditorData(e.detail)}
+ on:focus={() => lastFocusedEditor.set(instance)}
+ bind:this={domEditor}
+ mode="markdown"
+/>
diff --git a/packages/web/src/tabs/QueryTab.svelte b/packages/web/src/tabs/QueryTab.svelte
index 6fbededab..9e935307b 100644
--- a/packages/web/src/tabs/QueryTab.svelte
+++ b/packages/web/src/tabs/QueryTab.svelte
@@ -1,22 +1,22 @@