From adf6059eb90b8783820654f548ea1f48bdb72c8a Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 5 Apr 2022 10:44:42 +0200 Subject: [PATCH] set template filles --- .../workspace/src/lib/actions/index.ts | 10 ++++- .../workspace/src/lib/templates/default.ts | 37 +++++++++++++++++++ .../workspace/src/lib/templates/examples.ts | 1 + 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 libs/remix-ui/workspace/src/lib/templates/default.ts diff --git a/libs/remix-ui/workspace/src/lib/actions/index.ts b/libs/remix-ui/workspace/src/lib/actions/index.ts index a000853f9f..99beae7a8d 100644 --- a/libs/remix-ui/workspace/src/lib/actions/index.ts +++ b/libs/remix-ui/workspace/src/lib/actions/index.ts @@ -5,6 +5,7 @@ import { customAction } from '@remixproject/plugin-api/lib/file-system/file-pane import { displayNotification, displayPopUp, fetchDirectoryError, fetchDirectoryRequest, fetchDirectorySuccess, focusElement, fsInitializationCompleted, hidePopUp, removeInputFieldSuccess, setCurrentWorkspace, setExpandPath, setMode, setWorkspaces } from './payload' import { listenOnPluginEvents, listenOnProviderEvents } from './events' import { createWorkspaceTemplate, getWorkspaces, loadWorkspacePreset, setPlugin } from './workspace' +import { defaultContract, defaultScript } from '../templates/default' import { QueryParams } from '@remix-project/remix-lib' import JSZip from 'jszip' @@ -172,7 +173,14 @@ export const clearPopUp = async () => { export const createNewFile = async (path: string, rootDir: string) => { const fileManager = plugin.fileManager const newName = await createNonClashingNameAsync(path, fileManager) - const createFile = await fileManager.writeFile(newName, '') + let content = '' + if (newName.endsWith('.sol')) { + content = defaultContract + } + if (newName.endsWith('.js') || newName.endsWith('.ts')) { + content = defaultScript + } + const createFile = await fileManager.writeFile(newName, content) if (!createFile) { return dispatch(displayPopUp('Failed to create file ' + newName)) diff --git a/libs/remix-ui/workspace/src/lib/templates/default.ts b/libs/remix-ui/workspace/src/lib/templates/default.ts new file mode 100644 index 0000000000..7cb08a0413 --- /dev/null +++ b/libs/remix-ui/workspace/src/lib/templates/default.ts @@ -0,0 +1,37 @@ +'use strict' + +export const defaultContract = `// SPDX-License-Identifier: GPL-3.0 + +pragma solidity >=0.7.0 <0.9.0; + +/** + * @title ContractName + * @dev ContractDescription + * @custom:dev-run-script ./scripts/.ts + */ +contract ContractName { + + /** + * @dev function_1 description + */ + function function_1() public { + // code + } + + /** + * @dev function_2 description + */ + function function_2() public { + // code + } +}` + +export const defaultScript = ` +(async () => { + try { + console.log('running script ...') + } catch (e) { + console.log(e.message) + } +})() +` diff --git a/libs/remix-ui/workspace/src/lib/templates/examples.ts b/libs/remix-ui/workspace/src/lib/templates/examples.ts index bb3f2cacab..e780af51b1 100644 --- a/libs/remix-ui/workspace/src/lib/templates/examples.ts +++ b/libs/remix-ui/workspace/src/lib/templates/examples.ts @@ -7,6 +7,7 @@ pragma solidity >=0.7.0 <0.9.0; /** * @title Storage * @dev Store & retrieve value in a variable + * @custom:dev-run-script ./scripts/deploy_with_ethers.ts */ contract Storage {