From 6e41a436c94aaa07d71f8485dbce9ab17d407f78 Mon Sep 17 00:00:00 2001 From: yangfan <18767120422@163.com> Date: Mon, 13 Jul 2020 11:49:52 +0800 Subject: [PATCH 01/53] feat: make wati time longer --- scripts/publish-extension.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/publish-extension.ts b/scripts/publish-extension.ts index 6ab4b22ad..a08511ce9 100644 --- a/scripts/publish-extension.ts +++ b/scripts/publish-extension.ts @@ -13,7 +13,7 @@ function checkPackagePublished() { const publishedPackages: string[] = getPublishedPackages(); const timeout = 10000; - const maxDetectTimes = 18; + const maxDetectTimes = 30; return Promise.all(publishedPackages.map((publishedPackage) => { return new Promise((resolve, retject) => { @@ -98,4 +98,5 @@ checkPackagePublished().then(() => { }); }).catch((e) => { console.error(e); + process.exit(1); }); From 0322ace1d42286c041ad297329d11ef1dea8ca21 Mon Sep 17 00:00:00 2001 From: yangfan <18767120422@163.com> Date: Mon, 13 Jul 2020 15:54:17 +0800 Subject: [PATCH 02/53] fix: ice component --- extensions/iceworks-material-helper/CHANGELOG.md | 4 ++++ extensions/iceworks-material-helper/package.json | 2 +- .../src/propsAutoComplete/getPropKeysFromDefinition.ts | 8 ++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/extensions/iceworks-material-helper/CHANGELOG.md b/extensions/iceworks-material-helper/CHANGELOG.md index 8cb5f30d3..440f638cf 100644 --- a/extensions/iceworks-material-helper/CHANGELOG.md +++ b/extensions/iceworks-material-helper/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.1.4 + +Fix React component completion items, See: https://github.com/ice-lab/iceworks/issues/233 + ## 0.1.3 Fix docs typo. diff --git a/extensions/iceworks-material-helper/package.json b/extensions/iceworks-material-helper/package.json index a586101e2..c6d4f4c8e 100644 --- a/extensions/iceworks-material-helper/package.json +++ b/extensions/iceworks-material-helper/package.json @@ -3,7 +3,7 @@ "displayName": "Iceworks Material Helper", "description": "Easily use materials in JSX.", "publisher": "iceworks-team", - "version": "0.1.3", + "version": "0.1.4", "main": "./build/index.js", "engines": { "vscode": "^1.41.0" diff --git a/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromDefinition.ts b/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromDefinition.ts index 9015537f4..0271fa77d 100644 --- a/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromDefinition.ts +++ b/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromDefinition.ts @@ -9,8 +9,12 @@ export default function getPropKeysFromDefinition(componentPath): string[] { const propKeys: string[] = []; try { - // React/Rax component project has it's owner /types.d.ts - const componentTypesPath = `${path.dirname(componentPath)}/types.d.ts`; + let componentTypesPath = componentPath; + if (!componentTypesPath.endsWith('d.ts')) { + // Rax component project use types.ts + // If this ts component project not contain d.ts or types.ts, Don‘t show propKeys. + componentTypesPath = `${path.dirname(componentPath)}/types.ts`; + } if (fs.existsSync(componentTypesPath)) { const ast = parse(fs.readFileSync(componentTypesPath, 'utf-8'), { sourceType: 'module', From a41c85b3e318ba7476451d9b620176b6ec1d6612 Mon Sep 17 00:00:00 2001 From: luhc228 Date: Tue, 14 Jul 2020 13:57:01 +0800 Subject: [PATCH 03/53] feat: add quick icon in editor title menu --- .../iceworks-app/assets/dark/publish.svg | 1 + .../iceworks-app/assets/dark/runDev.svg | 1 + .../iceworks-app/assets/light/publish.svg | 1 + .../iceworks-app/assets/light/runDev.svg | 1 + extensions/iceworks-app/package.json | 33 +++++++++++++++++++ extensions/iceworks-app/package.nls.json | 2 ++ .../iceworks-app/package.nls.zh-cn.json | 2 ++ extensions/iceworks-app/src/extension.ts | 12 ++++++- .../quickPicks/showDefPublishEnvQuickPick.ts | 29 ++++++++++++++++ .../src/views/nodeDependenciesView.ts | 2 +- .../iceworks-app/src/views/npmScriptsView.ts | 18 +++++++++- 11 files changed, 99 insertions(+), 3 deletions(-) create mode 100644 extensions/iceworks-app/assets/dark/publish.svg create mode 100644 extensions/iceworks-app/assets/dark/runDev.svg create mode 100644 extensions/iceworks-app/assets/light/publish.svg create mode 100644 extensions/iceworks-app/assets/light/runDev.svg create mode 100644 extensions/iceworks-app/src/quickPicks/showDefPublishEnvQuickPick.ts diff --git a/extensions/iceworks-app/assets/dark/publish.svg b/extensions/iceworks-app/assets/dark/publish.svg new file mode 100644 index 000000000..4a9bbb467 --- /dev/null +++ b/extensions/iceworks-app/assets/dark/publish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/iceworks-app/assets/dark/runDev.svg b/extensions/iceworks-app/assets/dark/runDev.svg new file mode 100644 index 000000000..fb7867311 --- /dev/null +++ b/extensions/iceworks-app/assets/dark/runDev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/iceworks-app/assets/light/publish.svg b/extensions/iceworks-app/assets/light/publish.svg new file mode 100644 index 000000000..3ae57e807 --- /dev/null +++ b/extensions/iceworks-app/assets/light/publish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/iceworks-app/assets/light/runDev.svg b/extensions/iceworks-app/assets/light/runDev.svg new file mode 100644 index 000000000..5fcb156df --- /dev/null +++ b/extensions/iceworks-app/assets/light/runDev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/iceworks-app/package.json b/extensions/iceworks-app/package.json index c8f5dec42..6a82d55a3 100644 --- a/extensions/iceworks-app/package.json +++ b/extensions/iceworks-app/package.json @@ -92,6 +92,14 @@ "command": "iceworksApp.configHelper.start", "title": "%iceworksApp.command.configHelper.start.title%" }, + { + "command": "iceworksApp.DefPublish", + "title": "%iceworksApp.command.DefPublish.title%", + "icon": { + "light": "assets/light/publish.svg", + "dark": "assets/dark/publish.svg" + } + }, { "command": "iceworksApp.npmScripts.refresh", "title": "%iceworksApp.command.npmScripts.refresh.title%", @@ -116,6 +124,14 @@ "dark": "assets/dark/stop.svg" } }, + { + "command": "iceworksApp.npmScripts.runDev", + "title": "%iceworksApp.command.npmScripts.runDev.title%", + "icon": { + "light": "assets/light/runDev.svg", + "dark": "assets/dark/runDev.svg" + } + }, { "command": "iceworksApp.pages.add", "title": "%iceworksApp.command.pages.add.title%", @@ -216,6 +232,23 @@ "command": "iceworksApp.nodeDependencies.addDepsAndDevDeps" } ], + "editor/title": [ + { + "command": "iceworksApp.nodeDependencies.reinstall", + "group": "navigation@01", + "when": "iceworks:showScriptIconInEditorTitleMenu" + }, + { + "command": "iceworksApp.npmScripts.runDev", + "group": "navigation@11", + "when": "iceworks:showScriptIconInEditorTitleMenu" + }, + { + "command": "iceworksApp.DefPublish", + "group": "navigation@21", + "when": "iceworks:showScriptIconInEditorTitleMenu && iceworks:isAliInternal" + } + ], "view/title": [ { "command": "iceworksApp.npmScripts.refresh", diff --git a/extensions/iceworks-app/package.nls.json b/extensions/iceworks-app/package.nls.json index 0cf8f01ca..938218cca 100644 --- a/extensions/iceworks-app/package.nls.json +++ b/extensions/iceworks-app/package.nls.json @@ -9,9 +9,11 @@ "iceworksApp.viewsWelcome.components.contents": "Components could not be found.", "iceworksApp.viewsWelcome.nodeDependencies.contents": "Node dependencies could not be found in package.json.", "iceworksApp.command.configHelper.start.title": "Iceworks: Set Configuration", + "iceworksApp.command.DefPublish.title": "Iceworks: Def Publish", "iceworksApp.command.npmScripts.refresh.title": "Refresh", "iceworksApp.command.npmScripts.run.title": "Run Script", "iceworksApp.command.npmScripts.stop.title": "Stop Script", + "iceworksApp.command.npmScripts.runDev.title": "IceWorks: Run Dev", "iceworksApp.command.pages.add.title": "Add Pages", "iceworksApp.command.pages.refresh.title": "Refresh", "iceworksApp.command.pages.openFile.title": "Open File", diff --git a/extensions/iceworks-app/package.nls.zh-cn.json b/extensions/iceworks-app/package.nls.zh-cn.json index 63138cb4a..5eec84275 100644 --- a/extensions/iceworks-app/package.nls.zh-cn.json +++ b/extensions/iceworks-app/package.nls.zh-cn.json @@ -9,9 +9,11 @@ "iceworksApp.viewsWelcome.components.contents": "未找到组件。", "iceworksApp.viewsWelcome.nodeDependencies.contents": "未找到依赖。", "iceworksApp.command.configHelper.start.title": "Iceworks: 设置", + "iceworksApp.command.DefPublish.title": "Iceworks: 使用 Def 发布", "iceworksApp.command.npmScripts.refresh.title": "刷新", "iceworksApp.command.npmScripts.run.title": "运行脚本", "iceworksApp.command.npmScripts.stop.title": "停止脚本", + "iceworksApp.command.npmScripts.runDev.title": "Iceworks: 本地调试", "iceworksApp.command.pages.add.title": "添加页面", "iceworksApp.command.pages.refresh.title": "刷新", "iceworksApp.command.pages.openFile.title": "打开文件", diff --git a/extensions/iceworks-app/src/extension.ts b/extensions/iceworks-app/src/extension.ts index f58b6a428..1da61c3a2 100644 --- a/extensions/iceworks-app/src/extension.ts +++ b/extensions/iceworks-app/src/extension.ts @@ -2,7 +2,7 @@ import * as vscode from 'vscode'; import { Terminal, window, ViewColumn } from 'vscode'; import { connectService, getHtmlForWebview } from '@iceworks/vscode-webview/lib/vscode'; import { getProjectType } from '@iceworks/project-service'; -import { initExtension, Logger } from '@iceworks/common-service'; +import { initExtension, Logger, checkIsAliInternal } from '@iceworks/common-service'; import { createNpmScriptsTreeProvider } from './views/npmScriptsView'; import { createNodeDependenciesTreeProvider } from './views/nodeDependenciesView'; import { createComponentsTreeProvider } from './views/componentsView'; @@ -11,6 +11,7 @@ import { ITerminalMap } from './types'; import services from './services'; import { showExtensionsQuickPickCommandId } from './constants'; import showExtensionsQuickPick from './quickPicks/showExtensionsQuickPick'; +import showDefPublishEnvQuickPick from './quickPicks/showDefPublishEnvQuickPick'; import createExtensionsStatusBar from './statusBar/createExtensionsStatusBar'; // eslint-disable-next-line @@ -63,10 +64,19 @@ export async function activate(context: vscode.ExtensionContext) { vscode.commands.executeCommand('setContext', 'iceworks:isNotTargetProject', true); vscode.commands.executeCommand('iceworks-project-creator.start'); } + const terminals: ITerminalMap = new Map(); // init tree data providers createNpmScriptsTreeProvider(context, rootPath, terminals); createComponentsTreeProvider(context, rootPath); createPagesTreeProvider(context, rootPath); createNodeDependenciesTreeProvider(context, rootPath, terminals); + // show script icons in editor title menu + vscode.commands.executeCommand('setContext', 'iceworks:showScriptIconInEditorTitleMenu', true); + const isAliInternal = await checkIsAliInternal(); + if (isAliInternal) { + // DEF publish command in editor title + vscode.commands.executeCommand('setContext', 'iceworks:isAliInternal', true); + context.subscriptions.push(vscode.commands.registerCommand('iceworksApp.DefPublish', () => showDefPublishEnvQuickPick(terminals, rootPath))); + } } diff --git a/extensions/iceworks-app/src/quickPicks/showDefPublishEnvQuickPick.ts b/extensions/iceworks-app/src/quickPicks/showDefPublishEnvQuickPick.ts new file mode 100644 index 000000000..67a36a8c3 --- /dev/null +++ b/extensions/iceworks-app/src/quickPicks/showDefPublishEnvQuickPick.ts @@ -0,0 +1,29 @@ +import * as vscode from 'vscode'; +import { ITerminalMap } from '../types'; +import executeCommand from '../commands/executeCommand'; + +const { window } = vscode; + +const DEFEnvOptions = [ + { label: 'daily', detail: '发布到日常环境', command: 'def p -d' }, + { label: 'prod', detail: '发布到线上环境', command: 'def p -o' }, +] + +export default function showDefPublishEnvQuickPick(terminalMapping: ITerminalMap, rootPath: string) { + const quickPick = window.createQuickPick(); + quickPick.items = DEFEnvOptions.map((options) => ({ label: options.label, detail: options.detail })); + quickPick.onDidChangeSelection(selection => { + if (selection[0]) { + const env = DEFEnvOptions.find(option => option.label === selection[0].label)!; + const command: vscode.Command = { + title: 'Publish', + command: 'iceworksApp.DefPublish', + arguments: [rootPath, env.command] + } + executeCommand(terminalMapping, command, `DefPublish-${env.label}`) + quickPick.dispose(); + } + }); + quickPick.onDidHide(() => quickPick.dispose()); + quickPick.show(); +} diff --git a/extensions/iceworks-app/src/views/nodeDependenciesView.ts b/extensions/iceworks-app/src/views/nodeDependenciesView.ts index f078a9a89..42218f405 100644 --- a/extensions/iceworks-app/src/views/nodeDependenciesView.ts +++ b/extensions/iceworks-app/src/views/nodeDependenciesView.ts @@ -219,5 +219,5 @@ function toDep(extensionContext: vscode.ExtensionContext, workspaceDir: string, arguments: [workspaceDir, npmCommand] } : undefined; - return new DependencyTreeItem(extensionContext, moduleName, vscode.TreeItemCollapsibleState.None, `dependency-${moduleName}`, command, version, outdated); + return new DependencyTreeItem(extensionContext, moduleName, vscode.TreeItemCollapsibleState.None, `nodeDependencies-${moduleName}`, command, version, outdated); }; diff --git a/extensions/iceworks-app/src/views/npmScriptsView.ts b/extensions/iceworks-app/src/views/npmScriptsView.ts index 6e614d0bc..b5969c0b1 100644 --- a/extensions/iceworks-app/src/views/npmScriptsView.ts +++ b/extensions/iceworks-app/src/views/npmScriptsView.ts @@ -61,7 +61,7 @@ export class NpmScriptsProvider implements vscode.TreeDataProvider toScript(script, packageJson.scripts[script], `script-${script}`)) + ? Object.keys(packageJson.scripts).map((script) => toScript(script, packageJson.scripts[script], `npmScripts-${script}`)) : []; return scripts; } else { @@ -105,6 +105,22 @@ export function createNpmScriptsTreeProvider(context: vscode.ExtensionContext, r }); vscode.commands.registerCommand('iceworksApp.npmScripts.stop', (script: ScriptTreeItem) => stopCommand(terminals, script.id)); vscode.commands.registerCommand('iceworksApp.npmScripts.refresh', () => npmScriptsProvider.refresh()); + // run dev command in editor title + vscode.commands.registerCommand('iceworksApp.npmScripts.runDev', async () => { + const pathExists = await checkPathExists(rootPath, dependencyDir); + const command: vscode.Command = { + command: 'iceworksApp.npmScripts.runDev', + title: 'Run DEV', + arguments: [rootPath, createNpmCommand('run', 'start')] + }; + const commandId = 'npmScripts-runDev'; + if (!pathExists) { + command.arguments = [rootPath, `${createNpmCommand('install')} && ${command.arguments![1]}`]; + executeCommand(terminals, command, commandId); + return; + } + executeCommand(terminals, command, commandId) + }); const pattern = path.join(rootPath, packageJSONFilename); const fileWatcher = vscode.workspace.createFileSystemWatcher(pattern); From fa6eea7915df6fc8dd35a9f258b1dcc6e69c6022 Mon Sep 17 00:00:00 2001 From: luhc228 Date: Tue, 14 Jul 2020 14:12:08 +0800 Subject: [PATCH 04/53] chore: update editor title group order --- extensions/iceworks-app/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/iceworks-app/package.json b/extensions/iceworks-app/package.json index 6a82d55a3..17fe4ed21 100644 --- a/extensions/iceworks-app/package.json +++ b/extensions/iceworks-app/package.json @@ -240,12 +240,12 @@ }, { "command": "iceworksApp.npmScripts.runDev", - "group": "navigation@11", + "group": "navigation@02", "when": "iceworks:showScriptIconInEditorTitleMenu" }, { "command": "iceworksApp.DefPublish", - "group": "navigation@21", + "group": "navigation@03", "when": "iceworks:showScriptIconInEditorTitleMenu && iceworks:isAliInternal" } ], From ab3fc00432377625ee99f1da64aa7d78c52b7432 Mon Sep 17 00:00:00 2001 From: luhc228 Date: Tue, 14 Jul 2020 15:24:41 +0800 Subject: [PATCH 05/53] fix: set custom npm registry --- extensions/iceworks-app/web/src/constants.ts | 7 ++++++- .../iceworks-app/web/src/pages/ConfigHelper/index.tsx | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/extensions/iceworks-app/web/src/constants.ts b/extensions/iceworks-app/web/src/constants.ts index d6f161f7c..ec59441a1 100644 --- a/extensions/iceworks-app/web/src/constants.ts +++ b/extensions/iceworks-app/web/src/constants.ts @@ -7,4 +7,9 @@ export const npmRegistries = [ export const AliNpmRegistry = 'https://registry.npm.alibaba-inc.com'; -export const AliPackageManager = 'tnpm'; \ No newline at end of file +export const AliPackageManager = 'tnpm'; + +export const urlRegExp = new RegExp( + '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', + 'i' +) \ No newline at end of file diff --git a/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx b/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx index acab2b393..d5ed4e0e9 100644 --- a/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx +++ b/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx @@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react'; import { Form, Select, Input, Notification } from '@alifd/next'; import { debounce } from 'throttle-debounce'; import { IMaterialSource } from '@iceworks/material-utils'; -import { packageManagers, npmRegistries, AliNpmRegistry, AliPackageManager } from '@/constants'; +import { packageManagers, npmRegistries, AliNpmRegistry, AliPackageManager, urlRegExp } from '@/constants'; import callService from '@/callService'; import CustomMaterialSource from './CustomMaterialSource'; import styles from './index.module.scss'; @@ -57,7 +57,7 @@ const ConfigHelper = () => { return; } if (name === CUSTOM_NPM_REGISTRY_FORM_ITEM_KEY && - !/^(https?:\/\/(([a-zA-Z0-9]+-?)+[a-zA-Z0-9]+\.)+[a-zA-Z]+)(:\d+)?(\/.*)?(\?.*)?(#.*)?$/.test(value)) { + !urlRegExp.test(value)) { return; } if (name === CUSTOM_NPM_REGISTRY_FORM_ITEM_KEY) { @@ -100,7 +100,7 @@ const ConfigHelper = () => { }, []); return (
-
+ {fields.npmRegistry === CUSTOM_NPM_REGISTRY_SELECT_KEY && ( - + )} From 06bb1abf4d2fd42675e133ed0c2489b8cc1ac07d Mon Sep 17 00:00:00 2001 From: luhc228 Date: Tue, 14 Jul 2020 15:38:52 +0800 Subject: [PATCH 06/53] chore: version --- extensions/iceworks-app/CHANGELOG.md | 3 +++ extensions/iceworks-app/package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/extensions/iceworks-app/CHANGELOG.md b/extensions/iceworks-app/CHANGELOG.md index 296e43945..0f24467ce 100644 --- a/extensions/iceworks-app/CHANGELOG.md +++ b/extensions/iceworks-app/CHANGELOG.md @@ -1,5 +1,8 @@ # Change Log +## 0.2.1 +- feat: add quick entry in the editor title menu + ## 0.2.0 - feat: install dependencies automatically when node_modules does not exist - feat: refresh dependencies list、pages list and components list automatically diff --git a/extensions/iceworks-app/package.json b/extensions/iceworks-app/package.json index 17fe4ed21..17a76539b 100644 --- a/extensions/iceworks-app/package.json +++ b/extensions/iceworks-app/package.json @@ -3,7 +3,7 @@ "displayName": "Iceworks Application Viewer", "description": "Quick view your Universal Application(React/Rax/Vue, etc).", "publisher": "iceworks-team", - "version": "0.2.0", + "version": "0.2.1", "engines": { "vscode": "^1.41.0" }, From 4bc530bed6bc0561e941cf000be9c87fe3320d4f Mon Sep 17 00:00:00 2001 From: luhc228 Date: Tue, 14 Jul 2020 16:42:29 +0800 Subject: [PATCH 07/53] fix: remove code --- extensions/iceworks-app/CHANGELOG.md | 3 + extensions/iceworks-app/package.json | 2 +- .../src/pages/ConfigHelper/index.module.scss | 5 ++ .../web/src/pages/ConfigHelper/index.tsx | 68 +++++++++++-------- 4 files changed, 47 insertions(+), 31 deletions(-) diff --git a/extensions/iceworks-app/CHANGELOG.md b/extensions/iceworks-app/CHANGELOG.md index 296e43945..ba3d3b279 100644 --- a/extensions/iceworks-app/CHANGELOG.md +++ b/extensions/iceworks-app/CHANGELOG.md @@ -1,5 +1,8 @@ # Change Log +## 0.2.1 +- fix: fail to set custom registry + ## 0.2.0 - feat: install dependencies automatically when node_modules does not exist - feat: refresh dependencies list、pages list and components list automatically diff --git a/extensions/iceworks-app/package.json b/extensions/iceworks-app/package.json index c8f5dec42..ab861d4c0 100644 --- a/extensions/iceworks-app/package.json +++ b/extensions/iceworks-app/package.json @@ -3,7 +3,7 @@ "displayName": "Iceworks Application Viewer", "description": "Quick view your Universal Application(React/Rax/Vue, etc).", "publisher": "iceworks-team", - "version": "0.2.0", + "version": "0.2.1", "engines": { "vscode": "^1.41.0" }, diff --git a/extensions/iceworks-app/web/src/pages/ConfigHelper/index.module.scss b/extensions/iceworks-app/web/src/pages/ConfigHelper/index.module.scss index 46d5b07b6..bd8ef264c 100644 --- a/extensions/iceworks-app/web/src/pages/ConfigHelper/index.module.scss +++ b/extensions/iceworks-app/web/src/pages/ConfigHelper/index.module.scss @@ -8,3 +8,8 @@ } } } + +.loading { + width: 100%; + height: 80vh; +} diff --git a/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx b/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx index d5ed4e0e9..16511887f 100644 --- a/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx +++ b/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { Form, Select, Input, Notification } from '@alifd/next'; +import { Form, Select, Input, Notification, Loading } from '@alifd/next'; import { debounce } from 'throttle-debounce'; import { IMaterialSource } from '@iceworks/material-utils'; import { packageManagers, npmRegistries, AliNpmRegistry, AliPackageManager, urlRegExp } from '@/constants'; @@ -19,6 +19,7 @@ const CUSTOM_NPM_REGISTRY_SELECT_KEY = 'npm - 自定义镜像源'; const ConfigHelper = () => { const [materialSources, setMaterialSources] = useState([]); const [fields, setFields] = useState({}); + const [loading, setLoading] = useState(false); const onSourceAdd = async (materialSource: IMaterialSource) => { try { @@ -74,6 +75,7 @@ const ConfigHelper = () => { useEffect(() => { async function initFormData() { try { + setLoading(true); const curPackageManager = await callService('common', 'getDataFromSettingJson', 'packageManager'); let curNpmRegistry = await callService('common', 'getDataFromSettingJson', 'npmRegistry'); const curMaterialSources = await callService('material', 'getUserSources'); @@ -92,6 +94,8 @@ const ConfigHelper = () => { setFields({ packageManager: curPackageManager, npmRegistry: curNpmRegistry, customNpmRegistry }); } catch (e) { Notification.error({ content: e.message }); + } finally { + setLoading(false); } } @@ -99,35 +103,39 @@ const ConfigHelper = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); return ( -
- - - - - - - - {fields.npmRegistry === CUSTOM_NPM_REGISTRY_SELECT_KEY && ( - - - - )} - - -
+ <> + {loading ? : ( +
+
+ + + + + + + {fields.npmRegistry === CUSTOM_NPM_REGISTRY_SELECT_KEY && ( + + + + )} +
+ +
+ )} + ) } From 2c9ba53ec3211d8636955d8fc6df664c11dee94f Mon Sep 17 00:00:00 2001 From: yangfan <18767120422@163.com> Date: Tue, 14 Jul 2020 19:59:11 +0800 Subject: [PATCH 08/53] feat: support nested css --- extensions/iceworks-style-helper/CHANGELOG.md | 4 +++ extensions/iceworks-style-helper/package.json | 5 +-- .../src/styleInfoViewer/findStyle.ts | 36 ++++++++++++++++--- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/extensions/iceworks-style-helper/CHANGELOG.md b/extensions/iceworks-style-helper/CHANGELOG.md index 44ef473aa..15cbced88 100644 --- a/extensions/iceworks-style-helper/CHANGELOG.md +++ b/extensions/iceworks-style-helper/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.4.0 + +- Support nested CSS preview, definition and completion. + ## 0.3.1 - Support ICE css module style preview and completion. diff --git a/extensions/iceworks-style-helper/package.json b/extensions/iceworks-style-helper/package.json index c2271d3f7..4ac59ba50 100644 --- a/extensions/iceworks-style-helper/package.json +++ b/extensions/iceworks-style-helper/package.json @@ -3,7 +3,7 @@ "displayName": "Iceworks Style Helper", "description": "Easily write styles in JSX.", "publisher": "iceworks-team", - "version": "0.3.1", + "version": "0.4.0", "engines": { "vscode": "^1.41.0" }, @@ -18,7 +18,7 @@ "Inline Style", "Style", "CSS", - "ClassName" + "ClassName" ], "icon": "assets/logo.png", "activationEvents": [ @@ -50,6 +50,7 @@ "@babel/parser": "^7.10.3", "@babel/traverse": "^7.10.3", "css": "^2.2.4", + "css-flatten": "^1.0.1", "datauri": "^2.0.0", "line-column": "^1.0.2", "tinycolor2": "^1.4.1", diff --git a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts index c6d09edeb..6d46efc84 100644 --- a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts +++ b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts @@ -1,6 +1,7 @@ import * as fs from 'fs'; import * as path from 'path'; import css from 'css'; +import flatten from 'css-flatten'; import { IStyleDependency } from './findStyleDependencies'; // https://www.npmjs.com/package/css @@ -29,10 +30,37 @@ export function findStyle(directory: string, className: string, styleDependencie for (let i = 0, l = styleDependencies.length; i < l; i++) { const file = path.join(directory, styleDependencies[i].source); - const stylesheet = css.parse(fs.readFileSync(file, 'utf-8')).stylesheet; - - matched = stylesheet.rules.find(rule => rule.selectors && rule.selectors.includes(`.${className}`)); - + let fileContent = ''; + + try { + // Flattens nested (S)CSS string. + // https://www.npmjs.com/package/css-flatten + // Before: + // .foo { + // color: red; + // .bar { + // color: blue; + // } + // } + // After: + // .foo { + // color: red; + // } + // .foo .bar { + // color: blue; + // } + fileContent = flatten(fs.readFileSync(file, 'utf-8')); + } catch (e) { + fileContent = fs.readFileSync(file, 'utf-8'); + } + + const stylesheet = css.parse(fileContent).stylesheet; + matched = stylesheet.rules.find( + rule => rule.selectors && + // Selector endWith className. Example: '.bar' can match '.foo .bar'. + rule.selectors.find(selector => selector.endsWith(className)) + ); + // Just find one matched stylesheet. if (matched) { matched.file = file; From e044780ba7ceb1a85d0a34f1312de557726e8559 Mon Sep 17 00:00:00 2001 From: yangfan <18767120422@163.com> Date: Tue, 14 Jul 2020 20:15:27 +0800 Subject: [PATCH 09/53] feat: update --- .../iceworks-style-helper/src/styleInfoViewer/findStyle.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts index 6d46efc84..dc3014f75 100644 --- a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts +++ b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts @@ -32,8 +32,8 @@ export function findStyle(directory: string, className: string, styleDependencie const file = path.join(directory, styleDependencies[i].source); let fileContent = ''; - try { - // Flattens nested (S)CSS string. + if (/s(c|a)ss$/.test(file)) { + // Flattens nested SASS string. // https://www.npmjs.com/package/css-flatten // Before: // .foo { @@ -50,7 +50,7 @@ export function findStyle(directory: string, className: string, styleDependencie // color: blue; // } fileContent = flatten(fs.readFileSync(file, 'utf-8')); - } catch (e) { + } else { fileContent = fs.readFileSync(file, 'utf-8'); } From 782b34b3c11db9ea7ee6debc04da718dab6ae19b Mon Sep 17 00:00:00 2001 From: yangfan <18767120422@163.com> Date: Tue, 14 Jul 2020 20:22:56 +0800 Subject: [PATCH 10/53] feat: update version --- extensions/iceworks-style-helper/CHANGELOG.md | 2 +- extensions/iceworks-style-helper/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/iceworks-style-helper/CHANGELOG.md b/extensions/iceworks-style-helper/CHANGELOG.md index 15cbced88..3eb225098 100644 --- a/extensions/iceworks-style-helper/CHANGELOG.md +++ b/extensions/iceworks-style-helper/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log -## 0.4.0 +## 0.3.2 - Support nested CSS preview, definition and completion. diff --git a/extensions/iceworks-style-helper/package.json b/extensions/iceworks-style-helper/package.json index 4ac59ba50..779e08b46 100644 --- a/extensions/iceworks-style-helper/package.json +++ b/extensions/iceworks-style-helper/package.json @@ -3,7 +3,7 @@ "displayName": "Iceworks Style Helper", "description": "Easily write styles in JSX.", "publisher": "iceworks-team", - "version": "0.4.0", + "version": "0.3.2", "engines": { "vscode": "^1.41.0" }, From 1e6e4cac644c79cf0938586237ddf0f467c52422 Mon Sep 17 00:00:00 2001 From: luhc228 Date: Wed, 15 Jul 2020 10:20:40 +0800 Subject: [PATCH 11/53] fix: jsx file in vue project when creating page --- packages/page-service/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/page-service/src/index.ts b/packages/page-service/src/index.ts index b9d98d459..da80937a0 100644 --- a/packages/page-service/src/index.ts +++ b/packages/page-service/src/index.ts @@ -56,7 +56,7 @@ export default function () { pageName, }); const projectLanguageType = await getProjectLanguageType(); - const fileName = `index.${projectLanguageType}x`; + const fileName = `index.${projectLanguageType}${projectLanguageType === 'ts' ? 'x' : ''}`; const dist = path.join(pagePath, fileName); const rendered = prettier.format(fileContent, { singleQuote: true, From 86a920acffb8f70511b4229159785815d3c7fc62 Mon Sep 17 00:00:00 2001 From: yangfan <18767120422@163.com> Date: Wed, 15 Jul 2020 10:31:38 +0800 Subject: [PATCH 12/53] feat: update flatten --- .../src/styleInfoViewer/findStyle.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts index dc3014f75..2ac2a6e5a 100644 --- a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts +++ b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts @@ -30,10 +30,17 @@ export function findStyle(directory: string, className: string, styleDependencie for (let i = 0, l = styleDependencies.length; i < l; i++) { const file = path.join(directory, styleDependencies[i].source); - let fileContent = ''; + const fileContent = fs.readFileSync(file, 'utf-8'); + let cssContent = fileContent; - if (/s(c|a)ss$/.test(file)) { - // Flattens nested SASS string. + if ( + // SASS file + /s(c|a)ss$/.test(file) && + // Not contain media and keyframes + fileContent.indexOf('@media') === -1 && + fileContent.indexOf(' @keyframes') === -1 + ) { + // Flattens nested SASS string // https://www.npmjs.com/package/css-flatten // Before: // .foo { @@ -49,12 +56,10 @@ export function findStyle(directory: string, className: string, styleDependencie // .foo .bar { // color: blue; // } - fileContent = flatten(fs.readFileSync(file, 'utf-8')); - } else { - fileContent = fs.readFileSync(file, 'utf-8'); + cssContent = flatten(fs.readFileSync(file, 'utf-8')); } - const stylesheet = css.parse(fileContent).stylesheet; + const stylesheet = css.parse(cssContent).stylesheet; matched = stylesheet.rules.find( rule => rule.selectors && // Selector endWith className. Example: '.bar' can match '.foo .bar'. From b060013030d17ff787efd769b775b557b95a7d4c Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 11:34:49 +0800 Subject: [PATCH 13/53] docs: update iceworks-app docs --- extensions/iceworks-app/README.en.md | 49 +++++++++++++++++++++------ extensions/iceworks-app/README.md | 50 +++++++++++++++++++++------- 2 files changed, 76 insertions(+), 23 deletions(-) diff --git a/extensions/iceworks-app/README.en.md b/extensions/iceworks-app/README.en.md index 3c7481d82..84bd877a2 100644 --- a/extensions/iceworks-app/README.en.md +++ b/extensions/iceworks-app/README.en.md @@ -11,26 +11,53 @@ It helps you preview your Universal Application, including the information of np ### npm Scripts -- Support viewing the executable npm scripts of your app -- Support execute the npm scripts +#### Support viewing the executable npm scripts of your app -![script.gif](https://img.alicdn.com/tfs/TB1of.nHFT7gK0jSZFpXXaTkpXa-1272-786.gif) +#### Support execute or break off the npm scripts + +![demo](https://user-images.githubusercontent.com/56879942/87393980-9f59d700-c5e1-11ea-9e07-0244926f54cc.gif) + +1. View executable script information in the left pane. +2. Click the `Play` button to execute the script at terminal immediately. +3. Click the `Stop` button to end the corresponding script executed at terminal. ### Pages and Components -- Support jumping to corresponding pages and components -- Support adding pages and components(TODO) +#### Support jumping to corresponding pages and components + +![使用示例](https://user-images.githubusercontent.com/56879942/87393958-9963f600-c5e1-11ea-9c96-94fc10492577.gif) + +1. Click items in PAGES and COMPONENTS on the left panel. +2. Jump into files of selected projects. + +#### Support waking up create pages and generate components( [Create Pages](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-page-builder)|[Generate Components](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) ) + +![demo](https://user-images.githubusercontent.com/56879942/87393958-9963f600-c5e1-11ea-9c96-94fc10492577.gif) -![pages&components.gif](https://img.alicdn.com/tfs/TB1tfArHHY1gK0jSZTEXXXDQVXa-1265-760.gif) +1. Click '+' in PAGES header to jump into GENERATE PAGES page. +2. Click '+' in COMPONENTS header to jump into CREATE COMPONENT page. ### Node Dependencies -- Support viewing the application dependency information -- Support installing new dependencies and upgrading dependencies -- Support installing and reinstalling dependencies -- Support setting npm client and npm registry +#### Support viewing the application dependency information +#### Support installing new dependencies and reinstalling all dependencies + +![demo](https://user-images.githubusercontent.com/56879942/87393973-9cf77d00-c5e1-11ea-8baa-96c8c41229cf.gif) + +1. View all installed dependencies in the project in NODE DEPENDENCIES in the bottom of ICE panel. +2. Click ` ⬆` button next to dependency item, you can update the dependency to the latest version . +3. Click `Reinstall Dependencies` button on NODE DEPENDENCIES header to reinstall all the dependencisce of the project. + +#### Support installing and reinstalling dependencies + +![demo](https://user-images.githubusercontent.com/56879942/87393970-9bc65000-c5e1-11ea-9724-3bd47c4b21ed.gif) + +1. Click the `+` button on the NODE DEPENDENCIES header. +2. Select Install product Dependency or Debug Devdependency on the command panel that appears, +3. Type the NPM package name and version information to be installed, such as'`typescript@latest `. +4. The NPM package will be installed automatically . -![nodeDependencies.gif](https://img.alicdn.com/tfs/TB1SLgPXj39YK4jSZPcXXXrUFXa-1274-805.gif) + NOTE: If the package was installed, it will be reinstalled. ## More diff --git a/extensions/iceworks-app/README.md b/extensions/iceworks-app/README.md index d21ba2971..1e67fc34a 100644 --- a/extensions/iceworks-app/README.md +++ b/extensions/iceworks-app/README.md @@ -7,30 +7,56 @@ 它可以帮助你预览你的前端应用,包括 npm 脚本,页面,组件和依赖信息。它还支持快速安装或升级依赖,添加新页面和组件等等。 -## 用法 +## 功能 ### npm 脚本信息 -- 支持查看应用可执行的 npm 脚本 -- 支持快速执行 npm 脚本 +#### 查看应用可执行的 npm 脚本 -![script.gif](https://img.alicdn.com/tfs/TB1of.nHFT7gK0jSZFpXXaTkpXa-1272-786.gif) +#### 立即执行和中断 npm 脚本 + +![使用示例](https://user-images.githubusercontent.com/56879942/87393980-9f59d700-c5e1-11ea-9e07-0244926f54cc.gif) + +1. 在左侧的面板处查看可执行的脚本信息。 +2. 点击 `播放按钮` ,立即在终端执行脚本。 +3. 点击 `终止按钮`, 结束在终端执行的对应脚本。 ### 页面和组件信息 -- 支持快速跳转至对应的页面和组件 -- 支持快速添加页面和组件 (TODO) +#### 支持快速跳转至对应的页面和组件 + +![使用示例](https://user-images.githubusercontent.com/56879942/87393958-9963f600-c5e1-11ea-9c96-94fc10492577.gif) + +1. 点击左侧面板中页面列表和组件列表中的选项。 +2. 跳转到所选项目所在的源码文件 + +#### 支持唤醒添加页面和组件功能 (使用方法参照 [生成页面](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-page-builder)|[创建组件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) ) + +![使用示例](https://user-images.githubusercontent.com/56879942/87393953-949f4200-c5e1-11ea-896a-fd2d592050e0.gif) -![pages&components.gif](https://img.alicdn.com/tfs/TB1tfArHHY1gK0jSZTEXXXDQVXa-1265-760.gif) +1. 点击页面列表标题栏的 `+` 进入生成页面界面 +2. 点击组件列表标题栏的 `+` 进入创建组件界面 ### 应用依赖信息 -- 支持查看应用的依赖信息 -- 支持安装新依赖和升级依赖 -- 支持一键安装和重装依赖 -- 支持设置 npm 包管理工具和镜像地址 +#### 支持查看应用的依赖信息 + +#### 支持单独升级和整体重装依赖 + +![使用示例](https://user-images.githubusercontent.com/56879942/87393973-9cf77d00-c5e1-11ea-8baa-96c8c41229cf.gif) + +1. 在左下角依赖库中查看项目安装的所有依赖。 +2. 点击依赖项目旁边的 `⬆️` 按钮,即可更新到最新依赖。 +3. 点击依赖列表标题框上的 `重装依赖` 按钮,即可重装项目整体依赖。 + +#### 支持一键安装或重装指定依赖 + +![使用示例](https://user-images.githubusercontent.com/56879942/87393970-9bc65000-c5e1-11ea-9724-3bd47c4b21ed.gif) -![nodeDependencies.gif](https://img.alicdn.com/tfs/TB1SLgPXj39YK4jSZPcXXXrUFXa-1274-805.gif) +1. 点击依赖列表标题框上面的 `+` 按钮。 +2. 在出现的命令面板上选择安装为 产品依赖(Dependency) 或 调试依赖(Devdependency)。 +3. 输入需要安装的npm包及版本信息,例如`typescript@latest`。 +4. npm包将会自动安装, 如果这个包已经添加到了依赖中,那么将会重新安装。 ## 更多 From 5a9a87ae902d03edd38c03688fc8f6b633be3ebb Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 11:39:01 +0800 Subject: [PATCH 14/53] docs: update iceworks-component-builder docs --- extensions/iceworks-component-builder/README.en.md | 8 ++++---- extensions/iceworks-component-builder/README.md | 14 ++++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/extensions/iceworks-component-builder/README.en.md b/extensions/iceworks-component-builder/README.en.md index 866b693a5..3884bdbb8 100644 --- a/extensions/iceworks-component-builder/README.en.md +++ b/extensions/iceworks-component-builder/README.en.md @@ -9,11 +9,11 @@ Create a component in a low-code way. ## Usage -![create-component](https://img.alicdn.com/tfs/TB1.WORe5cKOu4jSZKbXXc19XXa-960-600.gif) +![demo](https://user-images.githubusercontent.com/56879942/87396941-2c069400-c5e6-11ea-8df8-f0ff5879da3b.gif) -1. Enter the component name (to be used as the folder name) -2. Select the block to be download -3. Click "generate component" button to generate component code +1. Enter the component name (to be used as component folder name). +2. Select a component. +3. Click `生成组件(Generate components)` button to generate component code. ## More diff --git a/extensions/iceworks-component-builder/README.md b/extensions/iceworks-component-builder/README.md index ac9862c0d..ebe4dcb84 100644 --- a/extensions/iceworks-component-builder/README.md +++ b/extensions/iceworks-component-builder/README.md @@ -7,13 +7,15 @@ 使用低代码的方式创建前端组件。 -## 用法 +## 功能 -![create-component](https://img.alicdn.com/tfs/TB1.WORe5cKOu4jSZKbXXc19XXa-960-600.gif) +### 创建前端组件 -1. 输入组件名(将用作文件夹名) -2. 选择区块 -3. 点击「生成组件」按钮,生成组件代码 +![使用说明](https://user-images.githubusercontent.com/56879942/87396941-2c069400-c5e6-11ea-8df8-f0ff5879da3b.gif) + +1. 输入组件名(将用作文件夹名)。 +2. 选择一个使用的区块。 +3. 点击 `生成组件` 按钮,生成组件代码。 ## 更多 @@ -21,4 +23,4 @@ ## License -[MIT](https://github.com/ice-lab/iceworks/blob/master/LICENSE) +[MIT](https://github.com/ice-lab/iceworks/blob/master/LICENSE) \ No newline at end of file From a94b52f78224801c698ab41204ff51461555956f Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 11:44:32 +0800 Subject: [PATCH 15/53] docs: update iceworks-material-helper docs --- extensions/iceworks-material-helper/README.en.md | 2 +- extensions/iceworks-material-helper/README.md | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/extensions/iceworks-material-helper/README.en.md b/extensions/iceworks-material-helper/README.en.md index 646865d43..35ef0403c 100644 --- a/extensions/iceworks-material-helper/README.en.md +++ b/extensions/iceworks-material-helper/README.en.md @@ -13,7 +13,7 @@ Write props easier in [JSX](https://reactjs.org/docs/introducing-jsx.html), frie When editing the props of a component in a JSX file, an automatic completion reminder will be given: -![demo](https://img.alicdn.com/tfs/TB1pNj5x7Y2gK0jSZFgXXc5OFXa-1688-780.gif) +![demo](https://user-images.githubusercontent.com/56879942/87399599-2dd25680-c5ea-11ea-9402-5e36ba7b8f98.gif) ## More diff --git a/extensions/iceworks-material-helper/README.md b/extensions/iceworks-material-helper/README.md index 43e135d55..5f87e1af2 100644 --- a/extensions/iceworks-material-helper/README.md +++ b/extensions/iceworks-material-helper/README.md @@ -9,11 +9,13 @@ > 什么是[物料](https://ice.alibaba-inc.com/docs/materials/about)? -## 用法 +## 功能 + +### 属性自动补全 在 JSX 文件中编辑组件的属性时将给予自动补全提醒: -![使用示例](https://img.alicdn.com/tfs/TB1pNj5x7Y2gK0jSZFgXXc5OFXa-1688-780.gif) +![使用说明](https://user-images.githubusercontent.com/56879942/87399599-2dd25680-c5ea-11ea-9402-5e36ba7b8f98.gif) ## 更多 From 0f867a530cc56baea7a12065585ea5f2cecfb7be Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 12:01:57 +0800 Subject: [PATCH 16/53] docs: update iceworks-config-helper docs --- .../iceworks-config-helper/README.en.md | 8 +++++--- extensions/iceworks-config-helper/README.md | 20 ++++++++++--------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/extensions/iceworks-config-helper/README.en.md b/extensions/iceworks-config-helper/README.en.md index e8dfdf2d7..68ab8bff0 100644 --- a/extensions/iceworks-config-helper/README.en.md +++ b/extensions/iceworks-config-helper/README.en.md @@ -13,17 +13,19 @@ For icejs and rax-app configuration files(like app.json/build.json), provides vi Whenever you hover over some JSON key, shows the description in a Hover widget. -![img01](https://img.alicdn.com/tfs/TB1e1wYvEY1gK0jSZFCXXcwqXXa-1140-592.gif) +![demo](https://user-images.githubusercontent.com/56879942/87398212-290ca300-c5e8-11ea-9596-c15c380c0d7c.gif) ### Code Completion When you input it will show key suggestions related to your config. -![img02](https://img.alicdn.com/tfs/TB188ZZvrj1gK0jSZFuXXcrHpXa-1132-774.gif) +![demo](https://user-images.githubusercontent.com/56879942/87398228-2e69ed80-c5e8-11ea-8b2e-611924fa76bb.gif) ### Snippets -![img03](https://img.alicdn.com/tfs/TB1a6IZvuH2gK0jSZJnXXaT1FXa-1136-1334.gif) +Use code snippets for quick configuration: + +![demo](https://user-images.githubusercontent.com/56879942/87398223-2d38c080-c5e8-11ea-8eef-2f208f498210.gif) ### Validator diff --git a/extensions/iceworks-config-helper/README.md b/extensions/iceworks-config-helper/README.md index 494dfca5d..b9852dd13 100644 --- a/extensions/iceworks-config-helper/README.md +++ b/extensions/iceworks-config-helper/README.md @@ -7,27 +7,29 @@ 为 icejs 和 rax-app 的配置类文件(build.json/app.json)提供可视化表单设置或代码编辑提醒、校验等功能。 -## 用法 +## 功能 -### 悬停信息 +### 悬停提示 -当您将鼠标悬停在某个 JSON 的字段上时,会出现悬浮小部件显示字段的描述: +当您将鼠标悬停在某个 JSON 的字段上时,会出现悬浮小部件显示字段的描述。 -![img01](https://img.alicdn.com/tfs/TB1e1wYvEY1gK0jSZFCXXcwqXXa-1140-592.gif) +![使用说明](https://user-images.githubusercontent.com/56879942/87398212-290ca300-c5e8-11ea-9596-c15c380c0d7c.gif) -### 输入提示 +### 自动补全 -当您在输入时,显示与您的配置相关的建议: +当您在输入时,显示与您的配置相关的建议。 -![img02](https://img.alicdn.com/tfs/TB188ZZvrj1gK0jSZFuXXcrHpXa-1132-774.gif) +![使用说明](https://user-images.githubusercontent.com/56879942/87398228-2e69ed80-c5e8-11ea-8b2e-611924fa76bb.gif) ### 代码片段 -![img03](https://img.alicdn.com/tfs/TB1a6IZvuH2gK0jSZJnXXaT1FXa-1136-1334.gif) +预设标准的代码片段,方便您进行快速配置。 + +![使用说明](https://user-images.githubusercontent.com/56879942/87398223-2d38c080-c5e8-11ea-8eef-2f208f498210.gif) ### 校验 -检查配置文件的设置是否合法。 +即将到来 ## 更多 From 1d7400b31af6f8866fb422c7b428989985556c3e Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 12:28:01 +0800 Subject: [PATCH 17/53] docs: update iceworks-style-helper docs --- extensions/iceworks-style-helper/README.en.md | 66 ++++++++++++---- extensions/iceworks-style-helper/README.md | 75 +++++++++++++++---- 2 files changed, 110 insertions(+), 31 deletions(-) diff --git a/extensions/iceworks-style-helper/README.en.md b/extensions/iceworks-style-helper/README.en.md index 77b57c30f..8a27300ff 100644 --- a/extensions/iceworks-style-helper/README.en.md +++ b/extensions/iceworks-style-helper/README.en.md @@ -11,34 +11,70 @@ Write styles easier in [JSX](https://reactjs.org/docs/introducing-jsx.html), fri ### JSX -* When editing the 'style' attribute of a component in a JSX file, an automatic completion reminder will be given: +When editing the 'style' attribute of a component in a JSX file, an automatic completion reminder will be given: - ![demo](https://img.alicdn.com/tfs/TB1oyRBF1H2gK0jSZFEXXcqMpXa-1000-586.gif) +#### Inline style -* Automatic completion When editing the 'style' name of a component in a JSX file, Use `cmd + click` (Windows: `ctrl + click`) jump to the identifier under the cursor. +Automatic completion for style keys and values according to W3C standards: - ![demo](https://img.alicdn.com/tfs/TB1pb1ltYY1gK0jSZTEXXXDQVXa-1468-906.gif) +![demo](https://user-images.githubusercontent.com/56879942/87412958-3895e700-c5fc-11ea-88e2-3e3e78a07f9e.gif) - ![demo](https://img.alicdn.com/tfs/TB1UDGht.Y1gK0jSZFMXXaWcVXa-1468-906.gif) +##### Variable assignment -* When editing the 'className' attribute of a component in a JSX file, an automatic completion reminder will be given: +When using CSS Module, automatic completion of style fields is carried out according to style declaration: - ![demo](https://img.alicdn.com/tfs/TB1JqP0Nfb2gK0jSZK9XXaEgFXa-900-561.gif) +![demo](https://user-images.githubusercontent.com/56879942/87412953-36cc2380-c5fc-11ea-9315-f153b1415dc8.gif) -### Class name +### className + +Automatic completion, value previews, and defined jumps are given when editing the component's 'className' properties in the JSX file. + +#### Automatic completion + +According to the class selector in the style file 'import' , automatic completion will be provided when editing ‘className'. + +![demo](https://user-images.githubusercontent.com/56879942/87412926-2caa2500-c5fc-11ea-9acc-78974ddb1932.gif) +#### Value preview and define jump + +![demo](https://user-images.githubusercontent.com/56879942/87412950-35026000-c5fc-11ea-83ee-33de13681911.gif) + +1. Hover over the 'className' value, and the hover board displays the style declaration corresponding to the value. +2. Click the corresponding 'className' value to jump to the definition of the value. + +### Class name When editing the 'class' name of a CSS, LESS or SASS file, an automatic completion reminder will be given: -![demo](https://img.alicdn.com/tfs/TB1l_zMFhD1gK0jSZFKXXcJrVXa-500-355.gif) +![demo](https://user-images.githubusercontent.com/56879942/87416514-63366e80-c601-11ea-8f3e-05fe51a8f26b.gif) + +1. Declare the value of the component 'className' property in JSX file like ` home, Text0, Text1, text2 `. +2. Reference SASS files in JSX: 'import './index.scss''. +3. step into the 'index.css' file. +4. Enter ' . ' in ' index.css ' to get the auto-completion reminder of the above property values. + +### SASS + +#### Automatic completion When editing the variable. + +When a variable is entered in an SASS file, code completion is provided based on the reference file + +![demo](https://user-images.githubusercontent.com/56879942/87409692-e3f06d00-c5f7-11ea-970c-76b0cf829851.gif) + +#### Show the variable value when hover it. + +![demo](https://user-images.githubusercontent.com/56879942/87412974-3e8bc800-c5fc-11ea-9a6c-ea62eecbfbff.gif) + +#### Automatic completion When editing the colors and attributes. + +When the attribute value is entered, if it is found that variables can be replaced as standard value,variable replacement suggestions will appear: + +![demo](https://user-images.githubusercontent.com/56879942/87412960-3a5faa80-c5fc-11ea-87f9-cda6cdc2f530.gif) -### Sass +#### variable identifier and link -* Automatic completion When editing the variable. -* Show the variable value when hover it. -* Automatic completion When editing the colors and attributes. -* Use `cmd + click` (Windows: `ctrl + click`) jump to the variable identifier under the cursor. +Use `cmd + click` (Windows: `ctrl + click`) jump to the variable identifier under the cursor. -![demo](https://img.alicdn.com/tfs/TB1RA_ZMeL2gK0jSZPhXXahvXXa-900-535.gif) +![demo](https://user-images.githubusercontent.com/56879942/87419478-2456e780-c606-11ea-9842-47a01b7e85c8.gif)ß ## More diff --git a/extensions/iceworks-style-helper/README.md b/extensions/iceworks-style-helper/README.md index 5ac5cdabe..71b1cd059 100644 --- a/extensions/iceworks-style-helper/README.md +++ b/extensions/iceworks-style-helper/README.md @@ -11,39 +11,82 @@ ### JSX 文件 -* 在 JSX 文件中编辑组件的 `style` 属性时将给予自动补全提醒: +#### style 属性 - ![使用示例](https://img.alicdn.com/tfs/TB1oyRBF1H2gK0jSZFEXXcqMpXa-1000-586.gif) +在 JSX 文件中编辑组件的 `style` 属性时给予自动补全提醒。 -* 在 JSX 文件中编辑组件的样式名时给予补全提醒并可通过 `cmd + 点击`( Windows: `ctrl + 点击` )跳转: +##### 行内样式 - ![使用示例](https://img.alicdn.com/tfs/TB1pb1ltYY1gK0jSZTEXXXDQVXa-1468-906.gif) +根据 w3c 标准给予样式字段和值的自动补全提醒: - ![使用示例](https://img.alicdn.com/tfs/TB1UDGht.Y1gK0jSZFMXXaWcVXa-1468-906.gif) +![使用示例](https://user-images.githubusercontent.com/56879942/87412958-3895e700-c5fc-11ea-88e2-3e3e78a07f9e.gif) -* 在 JSX 文件中编辑组件的 `className` 属性时给予自动补全提醒,预览及条跳转: +##### 变量赋值 + +使用 CSS Module 时,根据样式声明进行样式字段的自动补全: + +![使用示例](https://user-images.githubusercontent.com/56879942/87412953-36cc2380-c5fc-11ea-9315-f153b1415dc8.gif) + +#### className 属性 + +在 JSX 文件中编辑组件的 `className` 属性时给予自动补全提醒,值预览及定义跳转。 + +##### 自动补全提醒 + +在编辑组件的 `className` 时,根据文件 `import` 的样式文件内的类选择器进行自动补全提醒。 + +![使用示例](https://user-images.githubusercontent.com/56879942/87412926-2caa2500-c5fc-11ea-9acc-78974ddb1932.gif) + +##### 值预览及定义跳转 + +![使用示例](https://user-images.githubusercontent.com/56879942/87412950-35026000-c5fc-11ea-83ee-33de13681911.gif) + +1. 鼠标停留在 `className` 值上,出现悬浮部件显示该值对应的样式声明 + +2. 点击对应的 `className` 值,跳转到该值的定义处 - ![使用示例](https://img.alicdn.com/tfs/TB1JqP0Nfb2gK0jSZK9XXaEgFXa-900-561.gif) - ### 样式文件 -* 在 CSS、LESS、SASS 文件中编辑 `class` 名称时给予自动补全提醒: +在 CSS、LESS、SASS 文件中输入类选择器时,根据引用值进行自动补全提醒: + +![使用示例](https://user-images.githubusercontent.com/56879942/87416514-63366e80-c601-11ea-8f3e-05fe51a8f26b.gif) - ![使用示例](https://img.alicdn.com/tfs/TB1l_zMFhD1gK0jSZFKXXcJrVXa-500-355.gif) +1. 在 JSX 内声明组件 `className` 属性的值为 ` home , text0 , text1 , text2 ` +2. 在 JSX 内引用样式文件:`import './index.scss'` +3. 新建该 `index.css` 文件 +4. 在 `index.css` 内输入 `.` ,出现上述属性值的自动补全提醒 ### SASS 文件 -* 输入变量时给予自动补全提醒 -* 鼠标悬停在变量上时,预览变量对应值 -* 输入样式颜色值时给予变量的替换列表提醒 -* 通过 cmd + 点击( Windows: ctrl + 点击 )进行变量的定义代码跳转 +#### 变量自动补全提醒 -![使用示例](https://img.alicdn.com/tfs/TB1RA_ZMeL2gK0jSZPhXXahvXXa-900-535.gif) +在 SASS 文件内输入变量时,根据引用文件进行代码自动补全: + +![使用示例](https://user-images.githubusercontent.com/56879942/87409692-e3f06d00-c5f7-11ea-970c-76b0cf829851.gif) + +#### 变量预览值 + +鼠标停留在变量上,出现悬浮部件显示该变量对应的值: + +![使用示例](https://user-images.githubusercontent.com/56879942/87412974-3e8bc800-c5fc-11ea-9a6c-ea62eecbfbff.gif) + +#### 属性值使用变量替换的建议 + +输入属性值时,如发现可使用变量进行替换,则出现变量替换提醒列表: + +![使用示例](https://user-images.githubusercontent.com/56879942/87412960-3a5faa80-c5fc-11ea-87f9-cda6cdc2f530.gif) + +#### 变量的定义跳转 + +通过 cmd + 点击( Windows: ctrl + 点击 )进行变量的定义代码跳转: + +![使用示例](https://user-images.githubusercontent.com/56879942/87419478-2456e780-c606-11ea-9842-47a01b7e85c8.gif) ## 更多 -访问 [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) 了解更多 Iceworks 相关功能。 +访问 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) 获取更多功能。 ## License [MIT](https://github.com/ice-lab/iceworks/blob/master/LICENSE) + From 277e093127d0e2b7d3f580c12900712ed9bce1d7 Mon Sep 17 00:00:00 2001 From: luhc228 Date: Wed, 15 Jul 2020 13:42:27 +0800 Subject: [PATCH 18/53] fix: change material setting entry to Iceworks setting --- extensions/iceworks-component-builder/CHANGELOG.md | 4 ++++ extensions/iceworks-component-builder/package.json | 2 +- .../iceworks-component-builder/web/src/pages/Home/index.tsx | 2 +- extensions/iceworks-page-builder/CHANGELOG.md | 4 ++++ extensions/iceworks-page-builder/package.json | 2 +- extensions/iceworks-page-builder/web/src/pages/Home/index.tsx | 2 +- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/extensions/iceworks-component-builder/CHANGELOG.md b/extensions/iceworks-component-builder/CHANGELOG.md index c3577c1a6..39145679d 100644 --- a/extensions/iceworks-component-builder/CHANGELOG.md +++ b/extensions/iceworks-component-builder/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.1.10 + +Change the material setting entry to Iceworks setting. + ## 0.1.9 Use webpack to build this extension. diff --git a/extensions/iceworks-component-builder/package.json b/extensions/iceworks-component-builder/package.json index 059181a3a..125202f65 100644 --- a/extensions/iceworks-component-builder/package.json +++ b/extensions/iceworks-component-builder/package.json @@ -3,7 +3,7 @@ "displayName": "Iceworks Component Builder", "description": "Build Component UI by low-code way", "publisher": "iceworks-team", - "version": "0.1.9", + "version": "0.1.10", "engines": { "vscode": "^1.41.0" }, diff --git a/extensions/iceworks-component-builder/web/src/pages/Home/index.tsx b/extensions/iceworks-component-builder/web/src/pages/Home/index.tsx index fca4d59f6..762f8f4a9 100644 --- a/extensions/iceworks-component-builder/web/src/pages/Home/index.tsx +++ b/extensions/iceworks-component-builder/web/src/pages/Home/index.tsx @@ -6,7 +6,7 @@ import styles from './index.module.scss'; async function onSettingsClick() { try { - await callService('common', 'executeCommand', 'workbench.action.openSettings', 'iceworks.materialSources'); + await callService('common', 'executeCommand', 'iceworksApp.configHelper.start'); } catch (e) { Notification.error({ content: e.message }); } diff --git a/extensions/iceworks-page-builder/CHANGELOG.md b/extensions/iceworks-page-builder/CHANGELOG.md index 296425d6f..44ff41874 100644 --- a/extensions/iceworks-page-builder/CHANGELOG.md +++ b/extensions/iceworks-page-builder/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.1.10 + +Change the material setting entry to Iceworks setting. + ## 0.1.9 Use webpack to build this extension. diff --git a/extensions/iceworks-page-builder/package.json b/extensions/iceworks-page-builder/package.json index 753663d1b..9f2fa9600 100644 --- a/extensions/iceworks-page-builder/package.json +++ b/extensions/iceworks-page-builder/package.json @@ -3,7 +3,7 @@ "displayName": "Iceworks Page Builder", "description": "Build Page UI by low-code way", "publisher": "iceworks-team", - "version": "0.1.9", + "version": "0.1.10", "repository": { "type": "git", "url": "https://github.com/ice-lab/iceworks.git" diff --git a/extensions/iceworks-page-builder/web/src/pages/Home/index.tsx b/extensions/iceworks-page-builder/web/src/pages/Home/index.tsx index 87a81fbac..9551f458f 100644 --- a/extensions/iceworks-page-builder/web/src/pages/Home/index.tsx +++ b/extensions/iceworks-page-builder/web/src/pages/Home/index.tsx @@ -46,7 +46,7 @@ const Home = () => { async function onSettingsClick() { try { - await callService('common', 'executeCommand', 'workbench.action.openSettings', 'iceworks.materialSources'); + await callService('common', 'executeCommand', 'iceworksApp.configHelper.start'); } catch (e) { Notification.error({ content: e.message }); } From c2fbc9b9602093c9c0ec114ac4822060f0ae8c16 Mon Sep 17 00:00:00 2001 From: yangfan <18767120422@163.com> Date: Wed, 15 Jul 2020 14:25:17 +0800 Subject: [PATCH 19/53] feat: add ice config --- .../iceworks-config-helper/CHANGELOG.md | 4 + .../iceworks-config-helper/package.json | 74 +-- .../schemas/ice.build.json | 506 ++++++++++++++++++ .../schemas/{build.json => rax.build.json} | 2 +- 4 files changed, 548 insertions(+), 38 deletions(-) create mode 100644 extensions/iceworks-config-helper/schemas/ice.build.json rename extensions/iceworks-config-helper/schemas/{build.json => rax.build.json} (99%) diff --git a/extensions/iceworks-config-helper/CHANGELOG.md b/extensions/iceworks-config-helper/CHANGELOG.md index 8a8408d2a..b7fe4f4e6 100644 --- a/extensions/iceworks-config-helper/CHANGELOG.md +++ b/extensions/iceworks-config-helper/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.2.0 + +- feat: add ICE APP build.json validation + ## 0.1.0 - feat: add build.json validation diff --git a/extensions/iceworks-config-helper/package.json b/extensions/iceworks-config-helper/package.json index bfd43e36f..22c97ab82 100644 --- a/extensions/iceworks-config-helper/package.json +++ b/extensions/iceworks-config-helper/package.json @@ -1,38 +1,38 @@ { - "name": "iceworks-config-helper", - "displayName": "Iceworks Config Helper", - "description": "Easily write Config files in icejs && raxapp", - "publisher": "iceworks-team", - "version": "0.1.1", - "engines": { - "vscode": "^1.41.0" - }, - "categories": [ - "Other" - ], - "keywords": [ - "ICE", - "Rax", - "config", - "raxjs", - "icejs" - ], - "icon": "assets/logo.png", - "contributes": { - "jsonValidation": [ - { - "fileMatch": "build.json", - "url": "./schemas/build.json" - } - ] - }, - "repository": { - "type": "git", - "url": "https://github.com/ice-lab/iceworks.git" - }, - "homepage": "https://github.com/ice-lab/iceworks/blob/master/extensions/iceworks-config-helper/README.md", - "bugs": { - "url": "https://github.com/ice-lab/iceworks/issues", - "email": "iceworksteam@163.com" - } -} + "name": "iceworks-config-helper", + "displayName": "Iceworks Config Helper", + "description": "Easily write Config files in icejs && raxapp", + "publisher": "iceworks-team", + "version": "0.2.0", + "engines": { + "vscode": "^1.41.0" + }, + "categories": [ + "Other" + ], + "keywords": [ + "ICE", + "Rax", + "config", + "raxjs", + "icejs" + ], + "icon": "assets/logo.png", + "contributes": { + "jsonValidation": [ + { + "fileMatch": "build.json", + "url": "./schemas/ice.build.json" + } + ] + }, + "repository": { + "type": "git", + "url": "https://github.com/ice-lab/iceworks.git" + }, + "homepage": "https://github.com/ice-lab/iceworks/blob/master/extensions/iceworks-config-helper/README.md", + "bugs": { + "url": "https://github.com/ice-lab/iceworks/issues", + "email": "iceworksteam@163.com" + } +} \ No newline at end of file diff --git a/extensions/iceworks-config-helper/schemas/ice.build.json b/extensions/iceworks-config-helper/schemas/ice.build.json new file mode 100644 index 000000000..47d3ff4e8 --- /dev/null +++ b/extensions/iceworks-config-helper/schemas/ice.build.json @@ -0,0 +1,506 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "type": "object", + "title": "The ICE APP build.json Schema", + "description": "The root schema comprises the entire JSON document.", + "default": {}, + "examples": [ + {} + ], + "required": [], + "properties": { + "alias": { + "type": "object", + "description": "Create aliases to import or require certain modules more easily.", + "default": {}, + "examples": [ + { + "@components": "src/components/" + } + ] + }, + "publicPath": { + "type": "string", + "description": "The public URL of the output directory.", + "default": "", + "examples": [ + "/" + ] + }, + "devPublicPath": { + "type": "string", + "description": "The public URL of the dev server output directory.", + "default": "", + "examples": [ + "/" + ] + }, + "sourceMap": { + "type": "boolean", + "description": "Whether to generate sourceMap", + "default": false, + "examples": [ + false + ] + }, + "externals": { + "type": "object", + "description": "This feature is typically most useful to library developers, see https://webpack.js.org/configuration/externals .", + "default": {}, + "examples": [ + {} + ], + "additionalProperties": true + }, + "hash": { + "type": [ + "boolean", + "string" + ], + "description": "If you want the hashed version of the built resource, you can set hash to true.", + "default": false, + "examples": [ + "contenthash" + ] + }, + "injectBabel": { + "type": [ + "boolean", + "string" + ], + "description": "Whether to inject core-js/stable and regenerator-runtime/runtime.", + "default": false, + "examples": [ + false + ] + }, + "minify": { + "type": "boolean", + "description": "The resources after construction will be compressed.", + "default": false, + "examples": [ + false + ] + }, + "outputAssetsPath": { + "type": "object", + "description": "Modify the built css/js file directory.", + "default": {}, + "examples": [ + { + "js": "js", + "css": "css" + } + ], + "additionalProperties": true + }, + "outputDir": { + "type": "string", + "description": "Modify the built file directory.", + "default": "", + "examples": [ + "build" + ] + }, + "devServer": { + "type": "object", + "description": "This set of options is picked up by webpack-dev-server and can be used to change its behavior in various ways.", + "default": {}, + "examples": [ + { + "compress": true, + "disableHostCheck": true, + "clientLogLevel": "error", + "hot": true, + "quiet": true, + "overlay": false, + "port": 9999 + } + ], + "additionalProperties": true, + "properties": { + "compress": { + "type": "boolean", + "description": "Enable gzip compression for everything served", + "default": false + }, + "disableHostCheck": { + "type": "boolean", + "description": "When set to true this option bypasses host checking. THIS IS NOT RECOMMENDED as apps that do not check the host are vulnerable to DNS rebinding attacks.", + "default": false + }, + "clientLogLevel": { + "type": "string", + "description": "The the console in your DevTools will show different level messages.", + "default": "error", + "pattern": "^(info|silent|trace|debug|info|warn|error|none|warning)$" + }, + "hot": { + "type": "boolean", + "description": "Enable webpack's Hot Module Replacement feature", + "default": false + }, + "quiet": { + "type": "boolean", + "description": "With devServer.quiet enabled, nothing except the initial startup information will be written to the console.", + "default": false + }, + "overlay": { + "type": "boolean", + "description": "Shows a full-screen overlay in the browser when there are compiler errors or warnings. If you want to show only compiler errors.", + "default": false + }, + "port": { + "type": "integer", + "description": "Specify a port number to listen for requests on.", + "default": 9999 + } + } + }, + "proxy": { + "type": "object", + "description": "Configure webpack's devServer.proxy attribute.", + "default": {}, + "examples": [ + { + "/**": { + "enable": true, + "target": "http://127.0.0.1:6001" + } + } + ], + "additionalProperties": true + }, + "vendor": { + "type": "boolean", + "description": "Configure whether to generate vendor.", + "default": false, + "examples": [ + true + ] + }, + "libraryTarget": { + "type": "string", + "description": "Configure webpack's output.libraryTarget attribute.", + "default": "", + "examples": [ + "" + ] + }, + "library": { + "type": "string", + "description": "Configure webpack's output.library attribute.", + "default": "", + "examples": [ + "" + ] + }, + "libraryExport": { + "type": "string", + "description": "Configure webpack's output.libraryExport attribute.", + "default": "", + "examples": [ + "" + ] + }, + "compileDependencies": { + "type": "array", + "description": "y default, babel-loader will compile relevant modules to be compatible with IE11. If you need babel to compile the specified file under node_modules, you can quickly add it in this configuration.", + "default": [], + "examples": [ + [ + "@alifd/next" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "type": "string", + "description": "Compile module dependencies under node_modules.", + "default": "", + "examples": [ + "@alifd/next" + ] + } + ] + } + }, + "cssLoaderOptions": { + "type": "object", + "description": "css-loader params, see https://webpack.js.org/loaders/css-loader/#options .", + "default": {}, + "examples": [ + {} + ], + "required": [], + "additionalProperties": true, + "properties": {} + }, + "lessLoaderOptions": { + "type": "object", + "description": "less-loader params, see https://webpack.js.org/loaders/less-loader/#options .", + "default": {}, + "examples": [ + {} + ], + "required": [], + "additionalProperties": true, + "properties": {} + }, + "sassLoaderOptions": { + "type": "object", + "description": "sass-loader params, see https://webpack.js.org/loaders/sass-loader/#options .", + "default": {}, + "examples": [ + {} + ], + "required": [], + "additionalProperties": true, + "properties": {} + }, + "postcssrc": { + "type": "boolean", + "description": "After opening the configuration item, the project will clear the built-in postcss configuration and read the configuration in the postcss configuration file postcssrc.js or postcss.config.js", + "default": false, + "examples": [ + false + ] + }, + "terserOptions": { + "type": "object", + "description": "terserPlugin params, see https://webpack.js.org/plugins/terser-webpack-plugin/ .", + "default": {}, + "examples": [ + {} + ], + "required": [], + "additionalProperties": true, + "properties": {} + }, + "babelPlugins": { + "type": "array", + "description": "Add an additional babel plugin to the babel-loader configuration.", + "default": [], + "examples": [ + [] + ], + "additionalItems": true, + "items": { + "anyOf": [] + } + }, + "babelPresets": { + "type": "array", + "description": "Add an additional babel preset to the configuration of babel-loader. If the preset is the same as the built-in preset, the configuration content in babelPresets will be used first.", + "default": [], + "examples": [ + [] + ], + "additionalItems": true, + "items": { + "anyOf": [] + } + }, + "ignoreHtmlTemplate": { + "type": "boolean", + "description": "After it is turned on, all built-in html-webpack-plugin settings will be removed when the build is built, and html files will no longer be generated.", + "default": false, + "examples": [ + false + ] + }, + "eslint": { + "type": [ + "object", + "boolean" + ], + "description": "The eslint code detection is disabled by default. If you need to enable it, set it to true. Configure eslint related options see https://github.com/webpack-contrib/eslint-loader .", + "default": {}, + "examples": [ + {} + ], + "required": [], + "additionalProperties": true, + "properties": {} + }, + "targets": { + "type": "object", + "description": "Configure the targets of @babel/preset-env, configure the minimum version of the browser, the newly configured targets will override the default values.", + "default": {}, + "examples": [ + { + "chrome": 49, + "ie": 11 + } + ], + "required": [], + "additionalProperties": true + }, + "disableRuntime": { + "type": "boolean", + "description": "Disable the ability to run time, if you need to close the configuration to true.", + "default": false, + "examples": [ + false + ] + }, + "tsChecker": { + "type": "boolean", + "description": "TypeScript type detection is turned off by default. If you need to enable it, set it to true.", + "default": false, + "examples": [ + false + ] + }, + "plugins": { + "type": "array", + "description": "Compiler plugins.", + "default": [], + "examples": [ + [ + [ + "build-plugin-fusion", + { + "themePackage": "@alifd/theme-design-pro" + } + ], + [ + "build-plugin-moment-locales", + { + "locales": [ + "zh-cn" + ] + } + ] + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "type": "array", + "description": "See https://ice.work/docs/guide/advance/fusion .", + "default": [], + "examples": [ + [ + "build-plugin-fusion", + { + "themePackage": "@alifd/theme-design-pro" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "type": "string", + "description": "See https://ice.work/docs/guide/advance/fusion .", + "default": "", + "examples": [ + "build-plugin-fusion" + ] + }, + { + "type": "object", + "description": "build-plugin-fusion config.", + "default": {}, + "examples": [ + { + "themePackage": "@alifd/theme-design-pro" + } + ], + "additionalProperties": true, + "properties": { + "themePackage": { + "type": "string", + "description": "themePackage example: @alifd/theme-design-pro .", + "default": "", + "examples": [ + "@alifd/theme-design-pro" + ] + } + } + } + ] + } + }, + { + "type": "array", + "description": "See https://ice.work/docs/guide/develop/plugin-list .", + "default": [], + "examples": [ + [ + "build-plugin-moment-locales", + { + "locales": [ + "zh-cn" + ] + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "type": "string", + "description": "See https://ice.work/docs/guide/develop/plugin-list .", + "default": "", + "examples": [ + "build-plugin-moment-locales" + ] + }, + { + "type": "object", + "description": "build-plugin-moment-locales config.", + "default": {}, + "examples": [ + { + "locales": [ + "zh-cn" + ] + } + ], + "additionalProperties": true, + "properties": { + "locales": { + "type": "array", + "description": "build-plugin-moment-locales config locales.", + "default": [], + "examples": [ + [ + "zh-cn" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "type": "string", + "description": "build-plugin-moment-locales config locales.", + "default": "", + "examples": [ + "zh-cn" + ] + } + ] + } + } + } + } + ] + } + }, + { + "type": "string", + "description": "See https://ice.work/docs/guide/develop/plugin-list .", + "default": "", + "examples": [ + "@ali/build-plugin-ice-def" + ] + } + ] + } + } + } +} \ No newline at end of file diff --git a/extensions/iceworks-config-helper/schemas/build.json b/extensions/iceworks-config-helper/schemas/rax.build.json similarity index 99% rename from extensions/iceworks-config-helper/schemas/build.json rename to extensions/iceworks-config-helper/schemas/rax.build.json index 4e2e0624b..30c3ffadc 100644 --- a/extensions/iceworks-config-helper/schemas/build.json +++ b/extensions/iceworks-config-helper/schemas/rax.build.json @@ -2,7 +2,7 @@ "definitions": {}, "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", - "title": "The build.json Schema", + "title": "The Rax APP build.json Schema", "required": [ "plugins" ], From 46b442f14105a5d8db711edb8c24643600f7f9ac Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 14:46:48 +0800 Subject: [PATCH 20/53] =?UTF-8?q?docs:=20=E4=BF=AE=E5=A4=8D=E4=BA=86?= =?UTF-8?q?=E6=96=87=E5=AD=97=E6=80=A7=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-app/README.en.md | 26 ++++++++----------- extensions/iceworks-app/README.md | 38 +++++++++++++--------------- 2 files changed, 28 insertions(+), 36 deletions(-) diff --git a/extensions/iceworks-app/README.en.md b/extensions/iceworks-app/README.en.md index 84bd877a2..8c25a70e4 100644 --- a/extensions/iceworks-app/README.en.md +++ b/extensions/iceworks-app/README.en.md @@ -11,9 +11,7 @@ It helps you preview your Universal Application, including the information of np ### npm Scripts -#### Support viewing the executable npm scripts of your app - -#### Support execute or break off the npm scripts +#### View and excute the executable npm scripts of your app ![demo](https://user-images.githubusercontent.com/56879942/87393980-9f59d700-c5e1-11ea-9e07-0244926f54cc.gif) @@ -23,40 +21,38 @@ It helps you preview your Universal Application, including the information of np ### Pages and Components -#### Support jumping to corresponding pages and components +#### Jump into corresponding pages and components ![使用示例](https://user-images.githubusercontent.com/56879942/87393958-9963f600-c5e1-11ea-9c96-94fc10492577.gif) 1. Click items in PAGES and COMPONENTS on the left panel. 2. Jump into files of selected projects. -#### Support waking up create pages and generate components( [Create Pages](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-page-builder)|[Generate Components](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) ) +#### Wake up create pages and generate components( [Create Pages](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-page-builder)|[Generate Components](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) ) ![demo](https://user-images.githubusercontent.com/56879942/87393958-9963f600-c5e1-11ea-9c96-94fc10492577.gif) -1. Click '+' in PAGES header to jump into GENERATE PAGES page. -2. Click '+' in COMPONENTS header to jump into CREATE COMPONENT page. +1. Click `+` in PAGES header to jump into GENERATE PAGES page. +2. Click `+` in COMPONENTS header to jump into CREATE COMPONENT page. ### Node Dependencies -#### Support viewing the application dependency information -#### Support installing new dependencies and reinstalling all dependencies +#### View the application dependency information and install new dependencies ![demo](https://user-images.githubusercontent.com/56879942/87393973-9cf77d00-c5e1-11ea-8baa-96c8c41229cf.gif) 1. View all installed dependencies in the project in NODE DEPENDENCIES in the bottom of ICE panel. -2. Click ` ⬆` button next to dependency item, you can update the dependency to the latest version . +2. Click `⬆` button next to dependency item, you can update the dependency to the latest version. 3. Click `Reinstall Dependencies` button on NODE DEPENDENCIES header to reinstall all the dependencisce of the project. -#### Support installing and reinstalling dependencies +#### Install and reinstall dependencies ![demo](https://user-images.githubusercontent.com/56879942/87393970-9bc65000-c5e1-11ea-9724-3bd47c4b21ed.gif) 1. Click the `+` button on the NODE DEPENDENCIES header. -2. Select Install product Dependency or Debug Devdependency on the command panel that appears, -3. Type the NPM package name and version information to be installed, such as'`typescript@latest `. -4. The NPM package will be installed automatically . - +2. Select Install product Dependency or Debug Devdependency on the command panel that appears. +3. Type the NPM package name and version information to be installed, such as' `typescript@latest`. +4. The NPM package will be installed automatically. NOTE: If the package was installed, it will be reinstalled. ## More diff --git a/extensions/iceworks-app/README.md b/extensions/iceworks-app/README.md index 1e67fc34a..d95dbf1b5 100644 --- a/extensions/iceworks-app/README.md +++ b/extensions/iceworks-app/README.md @@ -5,25 +5,23 @@ # Iceworks 应用大纲树 -它可以帮助你预览你的前端应用,包括 npm 脚本,页面,组件和依赖信息。它还支持快速安装或升级依赖,添加新页面和组件等等。 +从框架视角预览和管理您应用的组织,包括 npm 脚本、页面、组件和依赖信息。 ## 功能 ### npm 脚本信息 -#### 查看应用可执行的 npm 脚本 - -#### 立即执行和中断 npm 脚本 +#### 查看和执行应用的 npm 脚本 ![使用示例](https://user-images.githubusercontent.com/56879942/87393980-9f59d700-c5e1-11ea-9e07-0244926f54cc.gif) -1. 在左侧的面板处查看可执行的脚本信息。 -2. 点击 `播放按钮` ,立即在终端执行脚本。 -3. 点击 `终止按钮`, 结束在终端执行的对应脚本。 +1. 在左侧的面板处查看可执行的脚本信息; +2. 点击 `播放按钮` ,立即在终端执行脚本; +3. 点击 `终止按钮` ,结束在终端执行的对应脚本。 ### 页面和组件信息 -#### 支持快速跳转至对应的页面和组件 +#### 快速跳转至对应页面和组件的源码 ![使用示例](https://user-images.githubusercontent.com/56879942/87393958-9963f600-c5e1-11ea-9c96-94fc10492577.gif) @@ -34,29 +32,27 @@ ![使用示例](https://user-images.githubusercontent.com/56879942/87393953-949f4200-c5e1-11ea-896a-fd2d592050e0.gif) -1. 点击页面列表标题栏的 `+` 进入生成页面界面 -2. 点击组件列表标题栏的 `+` 进入创建组件界面 +1. 点击页面列表标题栏的 `+` 进入生成页面界面; +2. 点击组件列表标题栏的 `+` 进入创建组件界面。 ### 应用依赖信息 -#### 支持查看应用的依赖信息 - -#### 支持单独升级和整体重装依赖 +#### 查看依赖信息、升级依赖包或重装应用依赖 ![使用示例](https://user-images.githubusercontent.com/56879942/87393973-9cf77d00-c5e1-11ea-8baa-96c8c41229cf.gif) -1. 在左下角依赖库中查看项目安装的所有依赖。 -2. 点击依赖项目旁边的 `⬆️` 按钮,即可更新到最新依赖。 -3. 点击依赖列表标题框上的 `重装依赖` 按钮,即可重装项目整体依赖。 +1. 在左下角依赖库中查看应用安装的所有依赖; +2. 点击依赖项目旁边的 `⬆️` 按钮,即可更新到最新依赖; +3. 点击依赖列表标题框上的 `重装依赖` 按钮,即可重装应用的所有依赖包。 -#### 支持一键安装或重装指定依赖 +#### 一键安装或重装指定依赖 ![使用示例](https://user-images.githubusercontent.com/56879942/87393970-9bc65000-c5e1-11ea-9724-3bd47c4b21ed.gif) -1. 点击依赖列表标题框上面的 `+` 按钮。 -2. 在出现的命令面板上选择安装为 产品依赖(Dependency) 或 调试依赖(Devdependency)。 -3. 输入需要安装的npm包及版本信息,例如`typescript@latest`。 -4. npm包将会自动安装, 如果这个包已经添加到了依赖中,那么将会重新安装。 +1. 点击依赖列表标题框上面的 `+` 按钮; +2. 在出现的命令面板上选择安装为 Dependencies (生产环境的依赖)或 devDependencies (开发环境的依赖); +3. 输入需要安装的npm包及版本信息,例如 `typescript@latest` ; +4. npm包将会自动安装,如果这个包已经添加到了依赖中,那么将会重新安装。 ## 更多 From ea4f8af431203b4ad57f72c346193b2b1a766db8 Mon Sep 17 00:00:00 2001 From: yangfan <18767120422@163.com> Date: Wed, 15 Jul 2020 15:02:03 +0800 Subject: [PATCH 21/53] feat: update --- .../.vscode/launch.json | 14 ++++++++-- .../iceworks-config-helper/.vscode/tasks.json | 20 +++++++++++++ .../iceworks-config-helper/README.en.md | 2 +- extensions/iceworks-config-helper/README.md | 2 +- .../iceworks-config-helper/package.json | 17 +++++++++++ .../iceworks-config-helper/src/index.ts | 28 +++++++++++++++++++ .../iceworks-config-helper/tsconfig.json | 14 ++++++++++ 7 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 extensions/iceworks-config-helper/.vscode/tasks.json create mode 100644 extensions/iceworks-config-helper/src/index.ts create mode 100644 extensions/iceworks-config-helper/tsconfig.json diff --git a/extensions/iceworks-config-helper/.vscode/launch.json b/extensions/iceworks-config-helper/.vscode/launch.json index 86c4b6662..0795ba906 100644 --- a/extensions/iceworks-config-helper/.vscode/launch.json +++ b/extensions/iceworks-config-helper/.vscode/launch.json @@ -12,7 +12,11 @@ "runtimeExecutable": "${execPath}", "args": [ "--extensionDevelopmentPath=${workspaceFolder}" - ] + ], + "outFiles": [ + "${workspaceFolder}/out/**/*.js" + ], + "preLaunchTask": "${defaultBuildTask}" }, { "name": "Extension Tests", @@ -22,7 +26,11 @@ "args": [ "--extensionDevelopmentPath=${workspaceFolder}", "--extensionTestsPath=${workspaceFolder}/test/suite/index" - ] + ], + "outFiles": [ + "${workspaceFolder}/out/test/**/*.js" + ], + "preLaunchTask": "${defaultBuildTask}" } ] -} +} \ No newline at end of file diff --git a/extensions/iceworks-config-helper/.vscode/tasks.json b/extensions/iceworks-config-helper/.vscode/tasks.json new file mode 100644 index 000000000..078ff7e01 --- /dev/null +++ b/extensions/iceworks-config-helper/.vscode/tasks.json @@ -0,0 +1,20 @@ +// See https://go.microsoft.com/fwlink/?LinkId=733558 +// for the documentation about the tasks.json format +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "watch", + "problemMatcher": "$tsc-watch", + "isBackground": true, + "presentation": { + "reveal": "never" + }, + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} diff --git a/extensions/iceworks-config-helper/README.en.md b/extensions/iceworks-config-helper/README.en.md index e8dfdf2d7..c0a017de5 100644 --- a/extensions/iceworks-config-helper/README.en.md +++ b/extensions/iceworks-config-helper/README.en.md @@ -19,7 +19,7 @@ Whenever you hover over some JSON key, shows the description in a Hover widget. When you input it will show key suggestions related to your config. -![img02](https://img.alicdn.com/tfs/TB188ZZvrj1gK0jSZFuXXcrHpXa-1132-774.gif) +![img02](https://img.alicdn.com/tfs/TB1zgVMXsieb18jSZFvXXaI3FXa-900-526.gif) ### Snippets diff --git a/extensions/iceworks-config-helper/README.md b/extensions/iceworks-config-helper/README.md index 494dfca5d..c42b9941d 100644 --- a/extensions/iceworks-config-helper/README.md +++ b/extensions/iceworks-config-helper/README.md @@ -19,7 +19,7 @@ 当您在输入时,显示与您的配置相关的建议: -![img02](https://img.alicdn.com/tfs/TB188ZZvrj1gK0jSZFuXXcrHpXa-1132-774.gif) +![img02](https://img.alicdn.com/tfs/TB1zgVMXsieb18jSZFvXXaI3FXa-900-526.gif) ### 代码片段 diff --git a/extensions/iceworks-config-helper/package.json b/extensions/iceworks-config-helper/package.json index 22c97ab82..03a055f79 100644 --- a/extensions/iceworks-config-helper/package.json +++ b/extensions/iceworks-config-helper/package.json @@ -18,6 +18,10 @@ "icejs" ], "icon": "assets/logo.png", + "activationEvents": [ + "*" + ], + "main": "./build/index.js", "contributes": { "jsonValidation": [ { @@ -34,5 +38,18 @@ "bugs": { "url": "https://github.com/ice-lab/iceworks/issues", "email": "iceworksteam@163.com" + }, + "scripts": { + "vscode:prepublish": "rm -rf build && npm run compile", + "compile": "tsc -p ./", + "watch": "tsc -watch -p ./tsconfig.json" + }, + "devDependencies": { + "@types/node": "^12.11.7", + "@types/vscode": "^1.41.0", + "typescript": "^3.6.4" + }, + "dependencies": { + "@iceworks/project-service": "^0.1.6" } } \ No newline at end of file diff --git a/extensions/iceworks-config-helper/src/index.ts b/extensions/iceworks-config-helper/src/index.ts new file mode 100644 index 000000000..612152d31 --- /dev/null +++ b/extensions/iceworks-config-helper/src/index.ts @@ -0,0 +1,28 @@ +import * as vscode from 'vscode'; +import { getProjectFramework } from '@iceworks/project-service'; + +async function activate() { + + try { + const projectFramework = await getProjectFramework(); + + vscode.extensions.all.forEach(extension => { + if (extension.id !== 'iceworks-team.iceworks-config-helper') { + return; + } + + const packageJSON = extension.packageJSON; + if ( + packageJSON && packageJSON.contributes && + (projectFramework === 'rax-app' || projectFramework === 'icejs') + ) { + const jsonValidation = packageJSON.contributes.jsonValidation; + jsonValidation[0].url = `./schemas/${projectFramework === 'icejs' ? 'ice' : 'rax'}.build.json`; + } + }); + } catch (e) { + // ignore + } +}; + +exports.activate = activate; diff --git a/extensions/iceworks-config-helper/tsconfig.json b/extensions/iceworks-config-helper/tsconfig.json new file mode 100644 index 000000000..e0108d774 --- /dev/null +++ b/extensions/iceworks-config-helper/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.extension.json", + "compilerOptions": { + "outDir": "build", + "rootDir": "src", + "noImplicitAny": false, + "module": "commonjs", + "resolveJsonModule": true, + "esModuleInterop": true + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file From c2b3479a78a1327ae76a51f2da0f988d0875ad41 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 15:04:02 +0800 Subject: [PATCH 22/53] =?UTF-8?q?docs:=20=E6=96=87=E5=AD=97=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-component-builder/README.en.md | 10 +++++++--- extensions/iceworks-component-builder/README.md | 14 +++++++++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/extensions/iceworks-component-builder/README.en.md b/extensions/iceworks-component-builder/README.en.md index 3884bdbb8..0ca644e82 100644 --- a/extensions/iceworks-component-builder/README.en.md +++ b/extensions/iceworks-component-builder/README.en.md @@ -5,14 +5,18 @@ English | [简体中文](./README.md) # Iceworks Component Builder -Create a component in a low-code way. +Create components quickly from materials. ## Usage +Iceworks provides a huge amount of high-quality materials for React and [Rax](https://rax.js.org/) apps that can be added to your app with one click. + ![demo](https://user-images.githubusercontent.com/56879942/87396941-2c069400-c5e6-11ea-8df8-f0ff5879da3b.gif) -1. Enter the component name (to be used as component folder name). -2. Select a component. +1. Through `⇧⌘P` evoke command panel; +2. In the command panel, type 'Iceworks: Generate component', click the selected item or press enter to arouse the plugin; +3. Fill in the component name (also the folder name of the componenent) +2. Select a material. 3. Click `生成组件(Generate components)` button to generate component code. ## More diff --git a/extensions/iceworks-component-builder/README.md b/extensions/iceworks-component-builder/README.md index ebe4dcb84..950eb1cbf 100644 --- a/extensions/iceworks-component-builder/README.md +++ b/extensions/iceworks-component-builder/README.md @@ -5,21 +5,25 @@ # Iceworks 组件创建插件 -使用低代码的方式创建前端组件。 +通过物料快速创建前端组件。 ## 功能 ### 创建前端组件 +Iceworks 为 React 和 [Rax](https://rax.js.org/) 应用提供了海量的高质量物料,可一键添加到您的应用中。 + ![使用说明](https://user-images.githubusercontent.com/56879942/87396941-2c069400-c5e6-11ea-8df8-f0ff5879da3b.gif) -1. 输入组件名(将用作文件夹名)。 -2. 选择一个使用的区块。 -3. 点击 `生成组件` 按钮,生成组件代码。 +1. 通过 `⇧⌘P` 快捷键唤起命令面板; +2. 在命令面板中输入 `Iceworks: 生成组件` ,点击选中的项目或按下键盘回车键,唤起组件创建插件; +3. 填写组件名(同时也是组件所在文件夹的名称); +4. 选择一个使用的区块; +5. 点击 `生成组件` 按钮,生成组件代码。 ## 更多 -访问 [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) 了解更多 Iceworks 相关功能。 +访问 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks)获取更多功能。 ## License From 43c3ed464b4f30318ca68a9b2f6f6bc1a710ae85 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 15:14:30 +0800 Subject: [PATCH 23/53] =?UTF-8?q?docs:=20=E4=BF=AE=E6=94=B9=E4=BA=86?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E7=9A=84=E6=96=87=E5=AD=97=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-material-helper/README.en.md | 3 +++ extensions/iceworks-material-helper/README.md | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/extensions/iceworks-material-helper/README.en.md b/extensions/iceworks-material-helper/README.en.md index 35ef0403c..fffb9c63a 100644 --- a/extensions/iceworks-material-helper/README.en.md +++ b/extensions/iceworks-material-helper/README.en.md @@ -15,6 +15,9 @@ When editing the props of a component in a JSX file, an automatic completion rem ![demo](https://user-images.githubusercontent.com/56879942/87399599-2dd25680-c5ea-11ea-9402-5e36ba7b8f98.gif) +1. Use materials in JSX files (such as View). +2. Enter part of attributes in the material tag, it will arouse automatic completion. + ## More See the [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) to know more features. diff --git a/extensions/iceworks-material-helper/README.md b/extensions/iceworks-material-helper/README.md index 5f87e1af2..608eddf30 100644 --- a/extensions/iceworks-material-helper/README.md +++ b/extensions/iceworks-material-helper/README.md @@ -17,9 +17,12 @@ ![使用说明](https://user-images.githubusercontent.com/56879942/87399599-2dd25680-c5ea-11ea-9402-5e36ba7b8f98.gif) +1. 在jsx文件中使用物料(如 View ); +2. 在物料标签内输入属性的部分内容,将会唤起自动补全提醒。 + ## 更多 -访问 [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) 了解更多 Iceworks 相关功能。 +访问 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks)获取更多功能。 ## License From c7a8f2486d3dfe1df74fac8bee0ccb5323d2b3b9 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 16:11:56 +0800 Subject: [PATCH 24/53] =?UTF-8?q?docs:=20=E5=88=A0=E9=99=A4=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E9=83=A8=E5=88=86=E8=AF=B4=E6=98=8E=EF=BC=8C=E6=8C=89?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E4=BF=AE=E6=94=B9iceworks=E5=A5=97=E4=BB=B6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-config-helper/README.en.md | 4 ---- extensions/iceworks-config-helper/README.md | 6 +----- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/extensions/iceworks-config-helper/README.en.md b/extensions/iceworks-config-helper/README.en.md index 68ab8bff0..9743ade83 100644 --- a/extensions/iceworks-config-helper/README.en.md +++ b/extensions/iceworks-config-helper/README.en.md @@ -27,10 +27,6 @@ Use code snippets for quick configuration: ![demo](https://user-images.githubusercontent.com/56879942/87398223-2d38c080-c5e8-11ea-8eef-2f208f498210.gif) -### Validator - -Checks the config file setting accurately. - ## More See the [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) to know more features. diff --git a/extensions/iceworks-config-helper/README.md b/extensions/iceworks-config-helper/README.md index b9852dd13..13cbc05dc 100644 --- a/extensions/iceworks-config-helper/README.md +++ b/extensions/iceworks-config-helper/README.md @@ -27,13 +27,9 @@ ![使用说明](https://user-images.githubusercontent.com/56879942/87398223-2d38c080-c5e8-11ea-8eef-2f208f498210.gif) -### 校验 - -即将到来 - ## 更多 -访问 [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) 了解更多 Iceworks 相关功能。 +访问 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks)获取更多功能。 ## License From d3a6e43beb0643e11af265aab03efd025a72d2f1 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 16:47:04 +0800 Subject: [PATCH 25/53] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-style-helper/README.en.md | 4 ++-- extensions/iceworks-style-helper/README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/iceworks-style-helper/README.en.md b/extensions/iceworks-style-helper/README.en.md index 8a27300ff..476a124d1 100644 --- a/extensions/iceworks-style-helper/README.en.md +++ b/extensions/iceworks-style-helper/README.en.md @@ -5,7 +5,7 @@ English | [简体中文](./README.md) # Iceworks Style Helper -Write styles easier in [JSX](https://reactjs.org/docs/introducing-jsx.html), friendly for React and [Rax](https://rax.js.org/). +Write styles easier in [JSX](https://reactjs.org/docs/introducing-jsx.html), provide a powerful auxiliary development functions in style files like CSS, SASS. Friendly for React and [Rax](https://rax.js.org/). ## Usage @@ -58,7 +58,7 @@ When editing the 'class' name of a CSS, LESS or SASS file, an automatic completi When a variable is entered in an SASS file, code completion is provided based on the reference file -![demo](https://user-images.githubusercontent.com/56879942/87409692-e3f06d00-c5f7-11ea-970c-76b0cf829851.gif) +![demo](https://user-images.githubusercontent.com/56879942/87523081-026a6d00-c6b9-11ea-8e8a-5d62688c020d.gif) #### Show the variable value when hover it. diff --git a/extensions/iceworks-style-helper/README.md b/extensions/iceworks-style-helper/README.md index 71b1cd059..adead87fe 100644 --- a/extensions/iceworks-style-helper/README.md +++ b/extensions/iceworks-style-helper/README.md @@ -5,7 +5,7 @@ # Iceworks 样式开发辅助插件 -在 [JSX](https://zh-hans.reactjs.org/docs/introducing-jsx.html) 中更快速地编写内联样式,对 React 和 [Rax](https://rax.js.org/) 应用友好。 +方便您在 [JSX](https://zh-hans.reactjs.org/docs/introducing-jsx.html) 中更快速地编写内联样式,并对 CSS 、SASS 等样式文件提供强大的辅助开发功能。对 React 和 [Rax](https://rax.js.org/) 应用友好。 ## 用法 @@ -62,7 +62,7 @@ 在 SASS 文件内输入变量时,根据引用文件进行代码自动补全: -![使用示例](https://user-images.githubusercontent.com/56879942/87409692-e3f06d00-c5f7-11ea-970c-76b0cf829851.gif) +![使用示例](https://user-images.githubusercontent.com/56879942/87523081-026a6d00-c6b9-11ea-8e8a-5d62688c020d.gif) #### 变量预览值 @@ -84,7 +84,7 @@ ## 更多 -访问 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) 获取更多功能。 +访问 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks)获取更多功能。 ## License From df571c35042232ad574104f49b624330cbbc5095 Mon Sep 17 00:00:00 2001 From: luhc228 Date: Wed, 15 Jul 2020 17:50:55 +0800 Subject: [PATCH 26/53] fix: vue template --- packages/page-service/src/index.ts | 28 ++++++------------- .../src/templates/template.react.ts | 17 +++++++++++ .../src/templates/template.vue.ts | 25 +++++++++++++++++ packages/project-service/src/index.ts | 3 ++ 4 files changed, 54 insertions(+), 19 deletions(-) create mode 100644 packages/page-service/src/templates/template.react.ts create mode 100644 packages/page-service/src/templates/template.vue.ts diff --git a/packages/page-service/src/index.ts b/packages/page-service/src/index.ts index da80937a0..8165b8a09 100644 --- a/packages/page-service/src/index.ts +++ b/packages/page-service/src/index.ts @@ -2,11 +2,12 @@ import * as path from 'path'; import * as fsExtra from 'fs-extra'; import * as prettier from 'prettier'; import { IMaterialBlock } from '@iceworks/material-utils'; -import { pagesPath, COMPONENT_DIR_NAME, getProjectLanguageType } from '@iceworks/project-service'; +import { pagesPath, COMPONENT_DIR_NAME, getProjectLanguageType, getProjectFramework } from '@iceworks/project-service'; import { bulkGenerate } from '@iceworks/block-service'; import * as upperCamelCase from 'uppercamelcase'; import * as ejs from 'ejs'; - +import reactPageTemplate from './templates/template.react'; +import vuePageTemplate from './templates/template.vue'; /** * Generate page code based on blocks * @@ -27,22 +28,10 @@ export const generate = async function ({ pageName: name, blocks = [] }: { pageN try { await addBlocks(blocks, pageName); + const projectFramework = await getProjectFramework(); + const isVueProjectFramework = projectFramework === 'vue'; + const fileStr = isVueProjectFramework ? vuePageTemplate : reactPageTemplate; - const fileStr = `import React, { Component } from 'react'; -<% for(var i = 0; i < blocks.length; i++) { -%> -import <%= blocks[i].className %> from '<%= blocks[i].relativePath -%>'; -<% } -%> - -export default function () { - return ( -
- <% for(var i = 0; i < blocks.length; i++){ -%> - <% if (blocks[i].description) { %>{/* <%= blocks[i].description -%> */}<% } %> - <<%= blocks[i].className -%> /> - <% } -%> -
- ); -}` const fileContent = ejs.compile(fileStr)({ blocks: blocks.map((block: any) => { const blockName = upperCamelCase(block.name); @@ -56,12 +45,13 @@ export default function () { pageName, }); const projectLanguageType = await getProjectLanguageType(); - const fileName = `index.${projectLanguageType}${projectLanguageType === 'ts' ? 'x' : ''}`; + const fileName = isVueProjectFramework ? 'index.vue' : `index.${projectLanguageType}x`; const dist = path.join(pagePath, fileName); + const prettierParserType = isVueProjectFramework ? 'vue' : 'babel'; const rendered = prettier.format(fileContent, { singleQuote: true, trailingComma: 'es5', - parser: 'babel', + parser: prettierParserType, }); await fsExtra.writeFile(dist, rendered, 'utf-8'); diff --git a/packages/page-service/src/templates/template.react.ts b/packages/page-service/src/templates/template.react.ts new file mode 100644 index 000000000..c77aa4bfa --- /dev/null +++ b/packages/page-service/src/templates/template.react.ts @@ -0,0 +1,17 @@ +const templateStr = `import React, { Component } from 'react'; +<% for(var i = 0; i < blocks.length; i++) { -%> +import <%= blocks[i].className %> from '<%= blocks[i].relativePath -%>'; +<% } -%> + +export default function () { + return ( +
+ <% for(var i = 0; i < blocks.length; i++){ -%> + <% if (blocks[i].description) { %>{/* <%= blocks[i].description -%> */}<% } %> + <<%= blocks[i].className -%> /> + <% } -%> +
+ ); +} +` +export default templateStr; \ No newline at end of file diff --git a/packages/page-service/src/templates/template.vue.ts b/packages/page-service/src/templates/template.vue.ts new file mode 100644 index 000000000..e0b9db83b --- /dev/null +++ b/packages/page-service/src/templates/template.vue.ts @@ -0,0 +1,25 @@ +const template = ` + +` + +export default template; diff --git a/packages/project-service/src/index.ts b/packages/project-service/src/index.ts index 91c45a0cd..5a9d320f6 100644 --- a/packages/project-service/src/index.ts +++ b/packages/project-service/src/index.ts @@ -61,6 +61,9 @@ export async function getProjectFramework() { if (devDependencies['ice.js'] || dependencies['ice.js']) { return 'icejs'; } + if (dependencies.vue) { + return 'vue'; + } return 'unknown'; } From 0555fb2fefe0003913a413f193328ff45c3b05d5 Mon Sep 17 00:00:00 2001 From: luhc228 Date: Wed, 15 Jul 2020 17:53:30 +0800 Subject: [PATCH 27/53] chore: version --- extensions/iceworks-page-builder/CHANGELOG.md | 4 ++++ extensions/iceworks-page-builder/package.json | 2 +- packages/page-service/package.json | 2 +- packages/project-service/package.json | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/extensions/iceworks-page-builder/CHANGELOG.md b/extensions/iceworks-page-builder/CHANGELOG.md index 296425d6f..e8059030a 100644 --- a/extensions/iceworks-page-builder/CHANGELOG.md +++ b/extensions/iceworks-page-builder/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.1.10 + +Fix create vue page. + ## 0.1.9 Use webpack to build this extension. diff --git a/extensions/iceworks-page-builder/package.json b/extensions/iceworks-page-builder/package.json index 753663d1b..9f2fa9600 100644 --- a/extensions/iceworks-page-builder/package.json +++ b/extensions/iceworks-page-builder/package.json @@ -3,7 +3,7 @@ "displayName": "Iceworks Page Builder", "description": "Build Page UI by low-code way", "publisher": "iceworks-team", - "version": "0.1.9", + "version": "0.1.10", "repository": { "type": "git", "url": "https://github.com/ice-lab/iceworks.git" diff --git a/packages/page-service/package.json b/packages/page-service/package.json index 33025add5..9082dd731 100644 --- a/packages/page-service/package.json +++ b/packages/page-service/package.json @@ -1,6 +1,6 @@ { "name": "@iceworks/page-service", - "version": "0.1.8", + "version": "0.1.9", "description": "Iceworks page service for VSCode extension.", "files": [ "lib" diff --git a/packages/project-service/package.json b/packages/project-service/package.json index ca29418b7..3f0cefa30 100644 --- a/packages/project-service/package.json +++ b/packages/project-service/package.json @@ -1,6 +1,6 @@ { "name": "@iceworks/project-service", - "version": "0.1.11", + "version": "0.1.12", "description": "Iceworks project service for VSCode extension.", "files": [ "lib" From c15d4a146a35350fff9d6f598cbbeca82216ddaf Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 18:24:29 +0800 Subject: [PATCH 28/53] =?UTF-8?q?docs:=20=E5=A2=9E=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E5=94=A4=E9=86=92=E3=80=81=E5=88=9B=E5=BB=BA=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E3=80=81=E8=AE=BE=E7=BD=AE=E6=9C=89=E5=85=B3=E7=9A=84=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B=EF=BC=8C=20=E6=A0=B9=E6=8D=AE=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E4=BF=AE=E6=94=B9=E4=BA=86ICEWORK=E7=AE=80?= =?UTF-8?q?=E4=BB=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-app/README.en.md | 29 +++++++++++++++++++++++++++- extensions/iceworks-app/README.md | 29 +++++++++++++++++++++++++++- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/extensions/iceworks-app/README.en.md b/extensions/iceworks-app/README.en.md index 8c25a70e4..25bae6416 100644 --- a/extensions/iceworks-app/README.en.md +++ b/extensions/iceworks-app/README.en.md @@ -9,7 +9,34 @@ It helps you preview your Universal Application, including the information of np ## Usage -### npm Scripts +### Activate Extension + +After you install the Iceworks-APP plugin, an ICEWORK icon will be added to your toolbar. Click it to enter ICEWORK. + +![demo](https://user-images.githubusercontent.com/56879942/87531784-cb01bd80-c6c4-11ea-816b-fff4336016fd.gif) + +## VSCode command palette + +If you install [Iceworks suite] (https://marketplace.visualstudio.com/items?ItemName=iceWorks-team.iceWorks), you can activate other extensions in vscode command palette. + +![demo](https://user-images.githubusercontent.com/56879942/87531795-d05f0800-c6c4-11ea-84d3-8e5fcfc32348.gif) + +### Create a new project + +When you open an empty folder, you can create projects by ICEWORK panel: + +![demo](https://user-images.githubusercontent.com/56879942/87407459-c4a41080-c5f4-11ea-882e-d198afc35413.png) + +#### Set up npm + +![demo](https://user-images.githubusercontent.com/56879942/87531798-d1903500-c6c4-11ea-9c6d-e19d6241c91a.gif) + +1. Click Settings to enter the Settings page +2. Configure package management tools (default: NPM) +3. Configure default image source (default: Taobao image) +4. Set up custom repositories (default: null) + +### Npm Scripts #### View and excute the executable npm scripts of your app diff --git a/extensions/iceworks-app/README.md b/extensions/iceworks-app/README.md index d95dbf1b5..0ce98db96 100644 --- a/extensions/iceworks-app/README.md +++ b/extensions/iceworks-app/README.md @@ -9,6 +9,33 @@ ## 功能 +### 唤醒 + +当您安装了 Iceworks-APP 插件之后,您的工具栏上会增加 ICEWORKS 图标,单击它以进入应用大纲树组件。 + +![使用示例](https://user-images.githubusercontent.com/56879942/87531784-cb01bd80-c6c4-11ea-816b-fff4336016fd.gif) + +### 命令板 + +如果您安装了 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) ,您可以通过命令板唤起套件中的其他插件。 + +![使用示例](https://user-images.githubusercontent.com/56879942/87531795-d05f0800-c6c4-11ea-84d3-8e5fcfc32348.gif) + +### 创建项目 + +当您打开一个空文件夹时,您可以通过 ICEWORK 面板创建项目: + +![使用示例](https://user-images.githubusercontent.com/56879942/87407459-c4a41080-c5f4-11ea-882e-d198afc35413.png) + +#### 设置 npm + +![使用示例](https://user-images.githubusercontent.com/56879942/87531798-d1903500-c6c4-11ea-9c6d-e19d6241c91a.gif) + +1. 点击设置,进入设置页面 +2. 配置包管理工具(默认为 npm ) +3. 配置默认镜像源(默认为淘宝网镜像) +4. 选择自定义物料库 (无默认外部物料库) + ### npm 脚本信息 #### 查看和执行应用的 npm 脚本 @@ -56,7 +83,7 @@ ## 更多 -访问 [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) 了解更多 Iceworks 相关功能。 +访问 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks)获取更多功能。 ## License From 261a5fb9bec423357ff27b43e38c57412d8e2cd1 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 18:46:54 +0800 Subject: [PATCH 29/53] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E5=94=A4?= =?UTF-8?q?=E9=86=92=E5=BD=95=E5=B1=8F=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=BD=95=E5=B1=8F=EF=BC=8C=20=E5=B9=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=8F=8F=E8=BF=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iceworks-component-builder/README.en.md | 15 +++++++++++---- extensions/iceworks-component-builder/README.md | 17 +++++++++++------ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/extensions/iceworks-component-builder/README.en.md b/extensions/iceworks-component-builder/README.en.md index 0ca644e82..db2137b1d 100644 --- a/extensions/iceworks-component-builder/README.en.md +++ b/extensions/iceworks-component-builder/README.en.md @@ -11,12 +11,19 @@ Create components quickly from materials. Iceworks provides a huge amount of high-quality materials for React and [Rax](https://rax.js.org/) apps that can be added to your app with one click. +### Activate Extension + +![demo](https://user-images.githubusercontent.com/56879942/87535699-77926e00-c6ca-11ea-9e21-65fad2e95e0f.gif) + +1. Through `⇧⌘P` evoke vscode command palette +2. In the vscode command palette, enter 'Iceworks: Generate component', click the selected item or press enter to arouse the plugin; + +### Create components + ![demo](https://user-images.githubusercontent.com/56879942/87396941-2c069400-c5e6-11ea-8df8-f0ff5879da3b.gif) -1. Through `⇧⌘P` evoke command panel; -2. In the command panel, type 'Iceworks: Generate component', click the selected item or press enter to arouse the plugin; -3. Fill in the component name (also the folder name of the componenent) -2. Select a material. +1. Fill in the component name (also the folder name of the componenent) +2. Select a material below. 3. Click `生成组件(Generate components)` button to generate component code. ## More diff --git a/extensions/iceworks-component-builder/README.md b/extensions/iceworks-component-builder/README.md index 950eb1cbf..a1fd1083a 100644 --- a/extensions/iceworks-component-builder/README.md +++ b/extensions/iceworks-component-builder/README.md @@ -9,17 +9,22 @@ ## 功能 +### 唤醒 + +![使用示例](https://user-images.githubusercontent.com/56879942/87535699-77926e00-c6ca-11ea-9e21-65fad2e95e0f.gif) + +1. 通过 `⇧⌘P` 快捷键唤起命令面板; +2. 输入 `Iceworks:Generate Component` ,点击选中的项目或按下键盘回车键,唤醒插件 + ### 创建前端组件 Iceworks 为 React 和 [Rax](https://rax.js.org/) 应用提供了海量的高质量物料,可一键添加到您的应用中。 -![使用说明](https://user-images.githubusercontent.com/56879942/87396941-2c069400-c5e6-11ea-8df8-f0ff5879da3b.gif) +![使用示例](https://user-images.githubusercontent.com/56879942/87535673-6f3a3300-c6ca-11ea-852e-f3a2bb3eb7bc.gif) -1. 通过 `⇧⌘P` 快捷键唤起命令面板; -2. 在命令面板中输入 `Iceworks: 生成组件` ,点击选中的项目或按下键盘回车键,唤起组件创建插件; -3. 填写组件名(同时也是组件所在文件夹的名称); -4. 选择一个使用的区块; -5. 点击 `生成组件` 按钮,生成组件代码。 +1. 填写组件名(同时也是组件所在文件夹的名称); +2. 组件名输入框下方选择一个使用的区块,; +3. 点击 `生成组件` 按钮,生成组件代码。 ## 更多 From 8a17e16ebe6a625b440c0ba29f5d2ccf079ef0f5 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 19:04:09 +0800 Subject: [PATCH 30/53] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E7=89=A9=E6=96=99=E6=8F=92=E4=BB=B6=20(Component-Builder)=20?= =?UTF-8?q?=E7=9A=84=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-material-helper/README.en.md | 4 ++-- extensions/iceworks-material-helper/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/iceworks-material-helper/README.en.md b/extensions/iceworks-material-helper/README.en.md index fffb9c63a..8f1bfcb31 100644 --- a/extensions/iceworks-material-helper/README.en.md +++ b/extensions/iceworks-material-helper/README.en.md @@ -15,8 +15,8 @@ When editing the props of a component in a JSX file, an automatic completion rem ![demo](https://user-images.githubusercontent.com/56879942/87399599-2dd25680-c5ea-11ea-9402-5e36ba7b8f98.gif) -1. Use materials in JSX files (such as View). -2. Enter part of attributes in the material tag, it will arouse automatic completion. +1. Use materials in JSX files (such as View). [How to use materials?](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) +2. Enter part of props in the material tag, it will arouse automatic completion. ## More diff --git a/extensions/iceworks-material-helper/README.md b/extensions/iceworks-material-helper/README.md index 608eddf30..8460a9084 100644 --- a/extensions/iceworks-material-helper/README.md +++ b/extensions/iceworks-material-helper/README.md @@ -17,7 +17,7 @@ ![使用说明](https://user-images.githubusercontent.com/56879942/87399599-2dd25680-c5ea-11ea-9402-5e36ba7b8f98.gif) -1. 在jsx文件中使用物料(如 View ); +1. 在jsx文件中使用物料(如 View )[如何使用物料?](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) 2. 在物料标签内输入属性的部分内容,将会唤起自动补全提醒。 ## 更多 From 53dcbced7544887f253d8c326f56cf2199455be5 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 19:54:43 +0800 Subject: [PATCH 31/53] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E4=BA=86?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=80=BC=E6=9B=BF=E6=8D=A2=E7=9A=84=E5=BD=95?= =?UTF-8?q?=E5=B1=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-style-helper/README.en.md | 2 +- extensions/iceworks-style-helper/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/iceworks-style-helper/README.en.md b/extensions/iceworks-style-helper/README.en.md index 476a124d1..989c98dd0 100644 --- a/extensions/iceworks-style-helper/README.en.md +++ b/extensions/iceworks-style-helper/README.en.md @@ -68,7 +68,7 @@ When a variable is entered in an SASS file, code completion is provided based on When the attribute value is entered, if it is found that variables can be replaced as standard value,variable replacement suggestions will appear: -![demo](https://user-images.githubusercontent.com/56879942/87412960-3a5faa80-c5fc-11ea-87f9-cda6cdc2f530.gif) +![demo](https://user-images.githubusercontent.com/56879942/87531943-04d2c400-c6c5-11ea-9f74-be6721353e46.gif) #### variable identifier and link diff --git a/extensions/iceworks-style-helper/README.md b/extensions/iceworks-style-helper/README.md index adead87fe..154105a51 100644 --- a/extensions/iceworks-style-helper/README.md +++ b/extensions/iceworks-style-helper/README.md @@ -74,7 +74,7 @@ 输入属性值时,如发现可使用变量进行替换,则出现变量替换提醒列表: -![使用示例](https://user-images.githubusercontent.com/56879942/87412960-3a5faa80-c5fc-11ea-87f9-cda6cdc2f530.gif) +![使用示例](https://user-images.githubusercontent.com/56879942/87531943-04d2c400-c6c5-11ea-9f74-be6721353e46.gif) #### 变量的定义跳转 From 3fd39dda9f03164f4b40165bde8390072e429e0d Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 20:34:54 +0800 Subject: [PATCH 32/53] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E4=BA=86?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E6=9D=BF=E7=9A=84=E5=BD=95=E5=B1=8F=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E4=BD=BF=E7=94=A8=E6=8F=8F=E8=BF=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-app/README.en.md | 8 ++++++-- extensions/iceworks-app/README.md | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/extensions/iceworks-app/README.en.md b/extensions/iceworks-app/README.en.md index 25bae6416..7de983ab5 100644 --- a/extensions/iceworks-app/README.en.md +++ b/extensions/iceworks-app/README.en.md @@ -15,11 +15,15 @@ After you install the Iceworks-APP plugin, an ICEWORK icon will be added to you ![demo](https://user-images.githubusercontent.com/56879942/87531784-cb01bd80-c6c4-11ea-816b-fff4336016fd.gif) -## VSCode command palette +## Iceworks command palette If you install [Iceworks suite] (https://marketplace.visualstudio.com/items?ItemName=iceWorks-team.iceWorks), you can activate other extensions in vscode command palette. -![demo](https://user-images.githubusercontent.com/56879942/87531795-d05f0800-c6c4-11ea-84d3-8e5fcfc32348.gif) +![demo](https://user-images.githubusercontent.com/56879942/87544740-8d5b5f80-c6d9-11ea-85ff-bc31501911e1.gif) + +1. Find Iceworks in the bottom right of Vscode. +> NOTE: if you do not find the Iceworks icon, Activate Extension the Iceworks plugin by following the action in 'Activate Extension'. +2. Click the Iceworks plugin icon to enter the command board. ### Create a new project diff --git a/extensions/iceworks-app/README.md b/extensions/iceworks-app/README.md index 0ce98db96..d37932c3f 100644 --- a/extensions/iceworks-app/README.md +++ b/extensions/iceworks-app/README.md @@ -19,7 +19,11 @@ 如果您安装了 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) ,您可以通过命令板唤起套件中的其他插件。 -![使用示例](https://user-images.githubusercontent.com/56879942/87531795-d05f0800-c6c4-11ea-84d3-8e5fcfc32348.gif) +![使用示例](https://user-images.githubusercontent.com/56879942/87544740-8d5b5f80-c6d9-11ea-85ff-bc31501911e1.gif) + +1. 找到 vscode 右下角的 Iceworks。 +> NOTE: 如果没有Iceworks图标,请按照 `唤醒` 中的操作唤醒Iceworks插件。 +2. 点击 Iceworks 插件,进入命令板 ### 创建项目 From d4888c317b4e6b8da8e62298de201149f7f2719d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=96=87=E6=B6=9B?= Date: Wed, 15 Jul 2020 21:32:19 +0800 Subject: [PATCH 33/53] docs: new logo (#267) * refactor: logo * docs: small size for logo --- extensions/iceworks-app/assets/logo.png | Bin 18915 -> 2547 bytes .../assets/logo.png | Bin 18915 -> 2595 bytes .../iceworks-config-helper/assets/logo.png | Bin 18915 -> 2079 bytes .../iceworks-material-helper/assets/logo.png | Bin 18915 -> 2016 bytes .../iceworks-material-import/assets/logo.png | Bin 18915 -> 2118 bytes .../iceworks-page-builder/assets/logo.png | Bin 18915 -> 2048 bytes .../iceworks-project-creator/assets/logo.png | Bin 18915 -> 2565 bytes .../iceworks-style-helper/assets/logo.png | Bin 18915 -> 2248 bytes extensions/iceworks/assets/logo.png | Bin 18915 -> 2587 bytes 9 files changed, 0 insertions(+), 0 deletions(-) diff --git a/extensions/iceworks-app/assets/logo.png b/extensions/iceworks-app/assets/logo.png index 2004c78ce15dcab916fb461ddc2c7aca22eb628a..bc5de7d9bf7044d826cd0f0de32f0a1289141567 100644 GIT binary patch literal 2547 zcmVPx#Do{*RMMrQG=8i`5%Yf zJC@<%?e?I`?t!}M!QAqZt|Z6+000McQchC<`_`RxLluV|;*$Ndh1HY(4cN-AfxY$N#>J{JB2Vwo5XP8*s9obfjc(#72IV|I0=cQO|Aa?0FO=fFY z`)rh?m~SAGHRZR>54)S+?`NYWhr*|%?zWP<;RJoPl_DG z)gu1FjTt_)EPYbsAncE~Hgd1_kSIuzKpbCgzt}AxaZr3~X_R6I@n+-O+b@E&syMA3 z!tx6c8>6!KvcyhNKZA8yfQY|G1;~?{ttyEM1BAF&-!e`Q6NI=?e{yVxvA69~Ol;EQ zdrPMjlYDmUAb!-4p|liN$Fxr*5U=W9ISNu(@1wGP4t3ZBC52_LSP&Q7uIUh^!Wws+OVxgipO#R5G&H$9M>be#NS0Tvdjkmfwyd zh(TqDU=J}?l^{`7h>(8mu2u>n5tk#^QY!_iI)9_IJFHL&G(^9&Ek>ObXowyS;aN(h zAQEwz^vTsVP0$dzqHw6Te}sjw^G^zD`$wb#@JPLJ@2*T_;!>S)@1!7=Tt&TcZ>7LO ztcv@kR7!z`NDW)LamPMLs>S6S<;EQkBt%+FEPdt1jfY5!iSlASxZ+wsE`M zGUD z1Wa@6!N%<&*{~2H^KO0ExM#>&!a^8K-3L75?lVKh5i}D>bA z&9+CNaZefF8_GgB+?u+(Rx@MTi~> z!evgPTSyL179v7HaEyDMPmZN5gn@%#8+RwqG?#?1aSR;ezTnJGMFa&%-NR)V+Uf>z0bPL72vgfG}WBWRU$=;W{@ zAqK+t(QvEef=Z65EQBfCGXl3tCe)v2vJiprC2Ry5_mEP>lZ6O{ucLdgaZ`FOWg)~n zssyc)#a_?3B*Z|xMM2Oi>13ja_F53p#~dP_2-wCw&cb6N3(-StTY+08lPo#LvJeqs z0}tFP8D`1Rk%cf2Tba0>#4H?5)SfINDkj#LB9v|1i&0k=v}d;XaaRsOYCC@}7|B!pAtpHBob+X1UI*maE-qJ?N7T8I{+g=isKh!&!S zXdzmN7NUh{AzFwQ;y@s5eMe{T$Fmk9gE(y-;<>IPcA)V>*I`4@c&X{wC2;(p=>RHl z+|qLt7d-B0Ih0H=&d34yww{CPL^eU1&(W7U4lfiZhlXPuMdO}^11-hNmxiM~#VZGC zJ}7Q!IPMi=RitUBc&_0HVBz?jkml#(to~!6k-1Up0oj;ky!NBQ(P7!B6qFF;=(Kqu z8k6Eq4x*U^d68!z*Be+%pPdyT$W#3gUy;&ysGH$4!Wj4UGJMKnAV>FgGaQu}2zjKB z;Y$_*c@qCRzpDq~lgBKC1mx)G{K4&-ll9r{FCK61wEfu0_zy^+oOJ9`p2`3K002ov JPDHLkV1i&yqZ0rC literal 18915 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 diff --git a/extensions/iceworks-component-builder/assets/logo.png b/extensions/iceworks-component-builder/assets/logo.png index 2004c78ce15dcab916fb461ddc2c7aca22eb628a..32844c049f2303894284bfbe2d118409b81fa4c3 100644 GIT binary patch literal 2595 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 FV1ires4)Nl literal 18915 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 diff --git a/extensions/iceworks-config-helper/assets/logo.png b/extensions/iceworks-config-helper/assets/logo.png index 2004c78ce15dcab916fb461ddc2c7aca22eb628a..f30b0eed98e758765301298ffdfc0bebaa7e2393 100644 GIT binary patch literal 2079 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 diff --git a/extensions/iceworks-material-helper/assets/logo.png b/extensions/iceworks-material-helper/assets/logo.png index 2004c78ce15dcab916fb461ddc2c7aca22eb628a..1c952a4672945f4c27499b283b1546cc38d23cd3 100644 GIT binary patch literal 2016 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 diff --git a/extensions/iceworks-material-import/assets/logo.png b/extensions/iceworks-material-import/assets/logo.png index 2004c78ce15dcab916fb461ddc2c7aca22eb628a..bf25d7ce4700fed8f8e4ed8fa71f228052843ee6 100644 GIT binary patch literal 2118 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 diff --git a/extensions/iceworks-page-builder/assets/logo.png b/extensions/iceworks-page-builder/assets/logo.png index 2004c78ce15dcab916fb461ddc2c7aca22eb628a..3a383242a82f5fffa41eb0c27e7b1a5a6ab3ff7f 100644 GIT binary patch literal 2048 zcmV+b2>Px#El^BUMMrQ<;qCT6nBn;N_}S_9@AUZ8==Nl*=lJ;e zABWv#tmgm!|A)TnzT5Jk%kH_G%4+}s00?waPE!E-{-JC`5yMBWGC=?U2VF@-K~#9! z?cL358%GoX@C~VTww<)Bl295`TFcZShPL?V5GX!61VWE0#n598r9H2cma!}eyoAOp zWPyE>L>utUV%tD-k|FIuCyB;^_GHJje?wQ=U1>jORy#9q2C{>}lEK!Gw=-{M-mV!% z@wd&pD=K2pPK>ywFMR)nf@_;Ah*7H=xb`uIaUZd3=U9dDZJgl_LjxfcRxkhz#85;l z?y)rxLt%UvHhhg(H&Q5!?}COIl{un9Lg*U-#5!W%1|-E(zu__mLwqReb51UM=tHdX zK*WWjcHKN`*{_ORdnG0m`d_ALKDS?g#61u(q3Bu$^L)7%=oOba86rb*Ff{ZUmc!pG z)_EaNK4cgS4cBTrrg?ng4aE#M1F94PhGxey{A%}$QSWqf#aH|gXx?vVm=@x}raP!qA-Ux3f9K^x3 z(HnaL8Fq>17IJDff|9i+%P zRXMGNMXd3g#=WhCMLgs`IDDbF9?>VP;qeWE3`N5~I&8#G03*~JieA&3Cmh5R-ZMua z6y`sJaQb`-ktRH$Fpp0}B1+EZ9=Ux~AGipe_Z%81Ann+TyU|46u@^O8FJY)AS__P(;<8Kumk`5Q1=PX$STQ5rlBdiof45#35qJiol4f42bAZ zKqIO$AR_O^fFsH>AfiG6k0{H4hzNxML`eq3WM?W8QIY`>3WX3vNd`nP6k-r184!U` z2tsVhfItNq5L+@Je4!AAn3n-@RFDAS4TU&_r}!@p;R!`FqVh7n{dYRYIuuI6#gG4% z`!khkC{iI9F~*@ti7<>h1I2(AVbuEcp`b>vPzY%6^gkq1V^K=OBO*WI{TEETrWJ}5 z2!w8UqOr&z6sZv2Y9xKCKN(_5u zYQ%VzS`&zvbWM?nJiDBk9x?6|U4e-4AZ-dnAa;p@0@0EQu_qF7!YpM{AkJk#44AFB znIbezoeO;NM&v_?e8h5mq5TJJB=RwvlfU^Rc1Z}sxCJ;mViCqN?>w=W0D&)MFhDFO zL0~tn6o|q!2<)acJwgjl<@uER_w5tCa-HAF@@$+gQCp-r9;+D(Eu!S9k%AvDipe9a_?JbsL(K~%j@Kd4C% z+xQL2^oZ9lV(a{|h%Fj~Zyp%U1q;Fd|4f7^Q6Y#;l>o7ira&xmLNw77eS#CBj;290 z`5?Lp5!?9MFBPJJ5+crN<_5#1^5Lk{)pjB}Nb? z(e#LCC^4c;+Wn+N{M<*05zYc=A2CGeOYJ}VxUEP(dI8i;zxh$M;1_W}}cD5@NF^_*}5(MGiMePejxJAU8z#UlSg!JqJZ-jRG zhWuX`fc1&STUR8RzLW`vIFkUeEJ5|IER5E3F(@dix}#Hx72BRLT3;t`Lb4jaO? zAApWs!nPlQ4xqxeS(u}^@a;Ctp=9{B0dhPWp%oSJiQ*B+k$uDws)!#Rvk=EPlG+-; zftKVs6yRu2^30)#?-a8D$Gs*#@QASm=afgX;m=Nv3h` zM};TumK+aFpDGYaZdH6Bg!PKsK7^P7^4M=sW(3To+C~5&qHlh#gxWo5!@D7Zwc@=4 zYq)9+%5W%hpo*)-Vwh00Soh%!pDB@nuzptDT!A56d63H~#Ylsa%jGuju5cc#+Lccq eDAu*`82$&+Flv1FUz$h&0000Tt literal 18915 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 diff --git a/extensions/iceworks-project-creator/assets/logo.png b/extensions/iceworks-project-creator/assets/logo.png index 2004c78ce15dcab916fb461ddc2c7aca22eb628a..46b338115bfdb17e67e665113c9fce6b9d192bc4 100644 GIT binary patch literal 2565 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 brT70ILSmaZC_3dX00000NkvXXu0mjf@cgh* literal 18915 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 diff --git a/extensions/iceworks-style-helper/assets/logo.png b/extensions/iceworks-style-helper/assets/logo.png index 2004c78ce15dcab916fb461ddc2c7aca22eb628a..1f48dfb387ebac7e066eef66af92d9ff34e7977f 100644 GIT binary patch literal 2248 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 diff --git a/extensions/iceworks/assets/logo.png b/extensions/iceworks/assets/logo.png index 2004c78ce15dcab916fb461ddc2c7aca22eb628a..ec1f07e3a198b6f06f418d3a66fac3b209d25e07 100644 GIT binary patch literal 2587 zcmaJ@c{tPy7oHiz{7lCD$Y^L{7>VK9Doe!thC%jiP$a3)wUbP?%nW8MH%sESGb&>& zaa}iAO1N@Gk!~rnMG3itjIn+0_x=B!=Q-y+@B6&Z`RhFAITVlmd+#y*q#mf*c_jtTt!Y#%b{#4v%rOp~9+P629&b3l|3unoXp`+S-~> zD75R^7X3GN=>L?Rx;JL~#f&KV-R9KdTGN22dUE~b%}w@i8a!V~z~&r_t4RTe}~kQTxwIqtrfh7(4K~*8ICOkS3w| z{7kh^VRH>~8J$0y_rEP?@rSgz7)RgC)H8mB*lyy?q)ql}Ua8YwtJ}K+uF1yE5NFKJ zYD-*EXAAGx|9;)lHIdoSxkW1Q=!bmIc%>^Uy&C#vXg;5`{DEs6*tO1B-;<*<-_UQ} zlRl){Y12^|{7Ewa9}y8%w5TR?{=|EW@V&(FM=JTo6~@&Ct3!TfpZL6t@$PzpF`st@ z7Qh&hR%MZ=A%|$=D|x=SdVdn<8ks+9+1Gu#`8cYUtN|^*y6Harw+*W%zx@R6E{ggw zBDdH*ZS25~ZxY3fyw+|Ya)zrY<9Dg$E`+=N3;#f2>Sss@?rI#?-C+Z=pRg?Xq zb59;G6jc&?utU-@nk#9iGo9|pBAuk`-q-7F)5@Gsyyuwf4@dn9v--Xu#=WEuX>>?V z)?`xz3)ldLsHh#Cb_C8Hd6#&iFuiXWN-bzNPzwP!x%q5^7b=zHW)|M8x6Hm`p#rT= z44nd@hA9HWc&O2C% zxLo0l>ga(WeTJf4+8!xAFl%LR25h|49O)??3C`k<{-VOH#xk#o$#uL95$UL+nGewb z_x63WvYPHRsedNz$m{Kt&_^B{!?R86AX-QCK>sJe2d~;HU6hd znkn#jd-))767<0#v`~9MoiO$r0VovIh>th4=2Yakr6ErXhom8xyfCURe4ljcSEC~c zxX)P81vOvFh5d5K<}!RKS^-GaVG>=cqVRM+k?0{Q#tbh^t>EoKP}?cO>8*aG=4mW1 zHD#fGoPt`tzo53@2r8`yG6evPYRX<1K8A5i`;O(sh>t&g}jsHKMuyOBcWjkLQTEg)&yA;gy`%-U`q=N8RH=$n(LS3ea9dfvpOu z(xYSm7UipKfCFt-@*J!Qe{&pw)LQckZbYe-JWp%9%Plggpy(^#?2`4yM!~{^yIU*q z-gk{jehQc{(bu3|5(%4H8<2LgWmO6>aP~!nhEtx5?3R}<)N_i}HE^z@@C#fpJ?fdi zTy8);@9b!?nc(%>M_Ky}==Ygr55~}&Gq1#1+n&PO*@H{&^UIP36T+m-EV8JD7Swx` zR5?=fzJfOz=AZbjY#eBdcch9zJzno0$ez6+8TQ44}QHqLsx;N*KM<-d2hTB6vuFJtYns-fY&f4mp$w??XCk1Bd$YCOk z=^wlzP9Fl(O|kciYM;00AC>2>J$B1__-U}y7Hc*1DuYGVH!3Q1y{ z7~fYlO->~cD9AzCD(gY|AbipvJ8@iy8rPA$EO1$G(QGN}jy$i6^xK_tH#WrbQNDsz z?h9_QCNqgr)VWnZ;!bTyadFm@Y#?7bqUcCeqT#_b!ZTuV-F&-}ml(GUEzX;MrsglG znU0@N>J1ncY5y$-wb60i53o<3J6Ed^A4saJYx<5%mAB8E?gmz&p_V0ib4CNdjVBqU zjO^%5@!=(SBzc#&34V&*gA5M9HX0=|RBZ`QU(|(qjKJZEZ`dEz9!fa45#(yZW<~12 zLbe}l+ccY;{m=I~Q=t)sI6|<5is>a|(Szd5OEVlcMf$!^U|dsq1O~C%jTdWsL?*-u zwIP4yRq=TX8v*sit1>KQtms-U@xfE%;Q~7@VFY4$2V1dQ`4iQYXm9qyZ+9l)RweUY z`f?Xh%esJbFVOa4n`RCQ3eN2u#gN|jSRja=EhZq_F_aU7!2y>eZhtY202JMSs&!xL zRAs_NjD&=kP^5|m4F&i_5An}bEk)2q!01hM!56P50T4du?F3JuxHtF+ic0f>L3dPQ!Z*}LDe$cR<1d7#;G*+=$b5{?!o8+=1txK{d zEFt4^9%+O|4z_sdiQBjKBmmlE-Z(|yNa2@TEDF=CkWw^9?1U}uWWj(2FGa7MmlZSJ zisWT1J-gvdPqZNkyp=!dx4Fn&Yp`CQt0y=9YGZPews&#hi-5bIGa5`I_&n)+T|L`f zJ&=d}AxPt%v-j(FAXY217pYo#9IMGVCiB=ZS<8}ZFA=pSArm(|2CiT^jH~uKuA3~| zqx-jHRo4oHMPNo*hn9-0va!xVQ1jLP8z!iJbss`(6D%)0%D00oyU&EYDDNn5)u?7@ z!ZkFJb<{GD6yv-Rl***r2G8+R^>s3ODrd6b)SFi{q~aO1!i{@ECk{#O)HZdcUt^{l z(e50}{So8(hQ7Y~Q<%4d`1ic(V4W=8OWXiaP-e)I>m^sCcYkcIMHk}z%+&GQhhvkX nl?L_%Z#5-v{;mr|Xm6pkS_6{{i?vO6zA)G^nv+#E)t~hrbi0?9 literal 18915 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 From 7b44b415aa71b007f1049b5feb8e3837236107a1 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Wed, 15 Jul 2020 23:17:19 +0800 Subject: [PATCH 34/53] =?UTF-8?q?docs:=20=E8=B0=83=E6=95=B4=E4=BA=86?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E5=8D=B3=E6=A0=87=E9=A2=98=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=EF=BC=8C=E9=87=8D=E5=81=9A=E4=BA=86=E4=BE=A7=E8=BE=B9=E6=A0=8F?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=BD=95=E5=B1=8F=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BA=86=E8=8B=B1=E6=96=87=E6=A0=BC=E5=BC=8F=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-app/README.en.md | 36 ++++++++++---------- extensions/iceworks-app/README.md | 51 +++++++++++++++------------- 2 files changed, 46 insertions(+), 41 deletions(-) diff --git a/extensions/iceworks-app/README.en.md b/extensions/iceworks-app/README.en.md index 7de983ab5..8a1a849b6 100644 --- a/extensions/iceworks-app/README.en.md +++ b/extensions/iceworks-app/README.en.md @@ -11,27 +11,19 @@ It helps you preview your Universal Application, including the information of np ### Activate Extension -After you install the Iceworks-APP plugin, an ICEWORK icon will be added to your toolbar. Click it to enter ICEWORK. +### Initialize panel -![demo](https://user-images.githubusercontent.com/56879942/87531784-cb01bd80-c6c4-11ea-816b-fff4336016fd.gif) +After you install the Iceworks-APP plugin, an `Iceworks` icon will be added to your toolbar. Click it to enter Iceworks panel. -## Iceworks command palette - -If you install [Iceworks suite] (https://marketplace.visualstudio.com/items?ItemName=iceWorks-team.iceWorks), you can activate other extensions in vscode command palette. - -![demo](https://user-images.githubusercontent.com/56879942/87544740-8d5b5f80-c6d9-11ea-85ff-bc31501911e1.gif) - -1. Find Iceworks in the bottom right of Vscode. -> NOTE: if you do not find the Iceworks icon, Activate Extension the Iceworks plugin by following the action in 'Activate Extension'. -2. Click the Iceworks plugin icon to enter the command board. +![demo](https://user-images.githubusercontent.com/56879942/87553484-8e928980-c6e5-11ea-8183-a6ba7f4eae95.gif) ### Create a new project -When you open an empty folder, you can create projects by ICEWORK panel: +When you open an empty folder, you can create projects by Iceworks panel: ![demo](https://user-images.githubusercontent.com/56879942/87407459-c4a41080-c5f4-11ea-882e-d198afc35413.png) -#### Set up npm +#### Setting ![demo](https://user-images.githubusercontent.com/56879942/87531798-d1903500-c6c4-11ea-9c6d-e19d6241c91a.gif) @@ -40,9 +32,9 @@ When you open an empty folder, you can create projects by ICEWORK panel: 3. Configure default image source (default: Taobao image) 4. Set up custom repositories (default: null) -### Npm Scripts +### Iceworks panel -#### View and excute the executable npm scripts of your app +#### View and execute npm Scripts ![demo](https://user-images.githubusercontent.com/56879942/87393980-9f59d700-c5e1-11ea-9e07-0244926f54cc.gif) @@ -50,7 +42,7 @@ When you open an empty folder, you can create projects by ICEWORK panel: 2. Click the `Play` button to execute the script at terminal immediately. 3. Click the `Stop` button to end the corresponding script executed at terminal. -### Pages and Components +### Pages and Components #### Jump into corresponding pages and components @@ -68,7 +60,7 @@ When you open an empty folder, you can create projects by ICEWORK panel: ### Node Dependencies -#### View the application dependency information and install new dependencies +#### View the application dependency information and install new dependencies ![demo](https://user-images.githubusercontent.com/56879942/87393973-9cf77d00-c5e1-11ea-8baa-96c8c41229cf.gif) @@ -86,6 +78,16 @@ When you open an empty folder, you can create projects by ICEWORK panel: 4. The NPM package will be installed automatically. NOTE: If the package was installed, it will be reinstalled. +## Iceworks command palette + +If you install [Iceworks suite] (https://marketplace.visualstudio.com/items?ItemName=iceWorks-team.iceWorks), you can activate other extensions in VS Code command palette. + +![demo](https://user-images.githubusercontent.com/56879942/87544740-8d5b5f80-c6d9-11ea-85ff-bc31501911e1.gif) + +1. Find Iceworks in the bottom right of VS Code. + > NOTE: if you do not find the Iceworks icon, Activate Extension the Iceworks plugin by following the action in 'Activate Extension'. +2. Click the Iceworks plugin icon to enter the Iceworks command palette. + ## More See the [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) to know more features. diff --git a/extensions/iceworks-app/README.md b/extensions/iceworks-app/README.md index d37932c3f..2abdda593 100644 --- a/extensions/iceworks-app/README.md +++ b/extensions/iceworks-app/README.md @@ -9,29 +9,21 @@ ## 功能 -### 唤醒 +### 激活 -当您安装了 Iceworks-APP 插件之后,您的工具栏上会增加 ICEWORKS 图标,单击它以进入应用大纲树组件。 +### 侧边栏 - 初始化 -![使用示例](https://user-images.githubusercontent.com/56879942/87531784-cb01bd80-c6c4-11ea-816b-fff4336016fd.gif) +当您安装了应用大纲树插件之后,您的工具栏上会增加 Iceworks 图标,单击此图标进入应用大纲树侧边栏。 -### 命令板 +![使用示例](https://user-images.githubusercontent.com/56879942/87553484-8e928980-c6e5-11ea-8183-a6ba7f4eae95.gif) -如果您安装了 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) ,您可以通过命令板唤起套件中的其他插件。 +#### 创建项目、 -![使用示例](https://user-images.githubusercontent.com/56879942/87544740-8d5b5f80-c6d9-11ea-85ff-bc31501911e1.gif) - -1. 找到 vscode 右下角的 Iceworks。 -> NOTE: 如果没有Iceworks图标,请按照 `唤醒` 中的操作唤醒Iceworks插件。 -2. 点击 Iceworks 插件,进入命令板 - -### 创建项目 - -当您打开一个空文件夹时,您可以通过 ICEWORK 面板创建项目: +当您打开一个空文件夹时,您可以通过 Iceworks 面板创建项目: ![使用示例](https://user-images.githubusercontent.com/56879942/87407459-c4a41080-c5f4-11ea-882e-d198afc35413.png) -#### 设置 npm +#### 设置 ![使用示例](https://user-images.githubusercontent.com/56879942/87531798-d1903500-c6c4-11ea-9c6d-e19d6241c91a.gif) @@ -40,7 +32,7 @@ 3. 配置默认镜像源(默认为淘宝网镜像) 4. 选择自定义物料库 (无默认外部物料库) -### npm 脚本信息 +### 侧边栏 - 大纲树 #### 查看和执行应用的 npm 脚本 @@ -50,25 +42,25 @@ 2. 点击 `播放按钮` ,立即在终端执行脚本; 3. 点击 `终止按钮` ,结束在终端执行的对应脚本。 -### 页面和组件信息 +#### 页面和组件信息 -#### 快速跳转至对应页面和组件的源码 +##### 快速跳转至对应页面和组件的源码 ![使用示例](https://user-images.githubusercontent.com/56879942/87393958-9963f600-c5e1-11ea-9c96-94fc10492577.gif) 1. 点击左侧面板中页面列表和组件列表中的选项。 2. 跳转到所选项目所在的源码文件 -#### 支持唤醒添加页面和组件功能 (使用方法参照 [生成页面](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-page-builder)|[创建组件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) ) +##### 支持唤醒添加页面和组件功能 (使用方法参照 [生成页面](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-page-builder)|[创建组件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) ) ![使用示例](https://user-images.githubusercontent.com/56879942/87393953-949f4200-c5e1-11ea-896a-fd2d592050e0.gif) 1. 点击页面列表标题栏的 `+` 进入生成页面界面; 2. 点击组件列表标题栏的 `+` 进入创建组件界面。 -### 应用依赖信息 +#### 应用依赖信息 -#### 查看依赖信息、升级依赖包或重装应用依赖 +##### 查看依赖信息、升级依赖包或重装应用依赖 ![使用示例](https://user-images.githubusercontent.com/56879942/87393973-9cf77d00-c5e1-11ea-8baa-96c8c41229cf.gif) @@ -76,14 +68,25 @@ 2. 点击依赖项目旁边的 `⬆️` 按钮,即可更新到最新依赖; 3. 点击依赖列表标题框上的 `重装依赖` 按钮,即可重装应用的所有依赖包。 -#### 一键安装或重装指定依赖 +##### 一键安装或重装指定依赖 ![使用示例](https://user-images.githubusercontent.com/56879942/87393970-9bc65000-c5e1-11ea-9724-3bd47c4b21ed.gif) 1. 点击依赖列表标题框上面的 `+` 按钮; 2. 在出现的命令面板上选择安装为 Dependencies (生产环境的依赖)或 devDependencies (开发环境的依赖); -3. 输入需要安装的npm包及版本信息,例如 `typescript@latest` ; -4. npm包将会自动安装,如果这个包已经添加到了依赖中,那么将会重新安装。 +3. 输入需要安装的 npm 包及版本信息,例如 `typescript@latest` ; +4. npm 包将会自动安装,如果这个包已经添加到了依赖中,那么将会重新安装。 + + +### 命令面板 + +您可以通过点击窗口右下角状态栏上的「Iceworks」按钮激活 Iceworks 命令面板。 + +![使用示例](https://user-images.githubusercontent.com/56879942/87544740-8d5b5f80-c6d9-11ea-85ff-bc31501911e1.gif) + +1. 找到 VS Code 右下角的 Iceworks 。 + > 注意 : 如果没有 Iceworks 图标,请按照 `激活` 章节的内容来激活此按钮。 +2. 点击 Iceworks 按钮,打开命令面板。 ## 更多 From c76cf5fe452037a0c458409f233404d93d13dfca Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Thu, 16 Jul 2020 08:46:40 +0800 Subject: [PATCH 35/53] =?UTF-8?q?docs:=20=E4=BF=AE=E6=94=B9=E4=BA=86?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99=E4=BB=A5=E5=8F=8A=E7=BC=A9=E8=BF=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-app/README.en.md | 6 +++--- extensions/iceworks-app/README.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/iceworks-app/README.en.md b/extensions/iceworks-app/README.en.md index 8a1a849b6..c7448ae7c 100644 --- a/extensions/iceworks-app/README.en.md +++ b/extensions/iceworks-app/README.en.md @@ -28,7 +28,7 @@ When you open an empty folder, you can create projects by Iceworks panel: ![demo](https://user-images.githubusercontent.com/56879942/87531798-d1903500-c6c4-11ea-9c6d-e19d6241c91a.gif) 1. Click Settings to enter the Settings page -2. Configure package management tools (default: NPM) +2. Configure package management tools (default: npm) 3. Configure default image source (default: Taobao image) 4. Set up custom repositories (default: null) @@ -74,8 +74,8 @@ When you open an empty folder, you can create projects by Iceworks panel: 1. Click the `+` button on the NODE DEPENDENCIES header. 2. Select Install product Dependency or Debug Devdependency on the command panel that appears. -3. Type the NPM package name and version information to be installed, such as' `typescript@latest`. -4. The NPM package will be installed automatically. +3. Type the npm package name and version information to be installed, such as' `typescript@latest`. +4. The npm package will be installed automatically. NOTE: If the package was installed, it will be reinstalled. ## Iceworks command palette diff --git a/extensions/iceworks-app/README.md b/extensions/iceworks-app/README.md index 2abdda593..f899ab874 100644 --- a/extensions/iceworks-app/README.md +++ b/extensions/iceworks-app/README.md @@ -51,7 +51,7 @@ 1. 点击左侧面板中页面列表和组件列表中的选项。 2. 跳转到所选项目所在的源码文件 -##### 支持唤醒添加页面和组件功能 (使用方法参照 [生成页面](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-page-builder)|[创建组件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) ) +##### 支持激活添加页面和组件功能 (使用方法参照 [生成页面](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-page-builder)|[创建组件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) ) ![使用示例](https://user-images.githubusercontent.com/56879942/87393953-949f4200-c5e1-11ea-896a-fd2d592050e0.gif) @@ -72,7 +72,7 @@ ![使用示例](https://user-images.githubusercontent.com/56879942/87393970-9bc65000-c5e1-11ea-9724-3bd47c4b21ed.gif) -1. 点击依赖列表标题框上面的 `+` 按钮; +1. 点击依赖列表标题框上面的 `+` 按钮; 2. 在出现的命令面板上选择安装为 Dependencies (生产环境的依赖)或 devDependencies (开发环境的依赖); 3. 输入需要安装的 npm 包及版本信息,例如 `typescript@latest` ; 4. npm 包将会自动安装,如果这个包已经添加到了依赖中,那么将会重新安装。 From a5498c7924b5126e790b5d72297f97f7fe1088be Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Thu, 16 Jul 2020 09:04:25 +0800 Subject: [PATCH 36/53] =?UTF-8?q?docs:=20=E6=9B=BF=E6=8D=A2=E5=94=A4?= =?UTF-8?q?=E9=86=92=E4=B8=BA=E6=BF=80=E6=B4=BB=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?win=E6=BF=80=E6=B4=BB=E5=91=BD=E4=BB=A4=E8=A1=8C=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=A0=87=E7=82=B9=E7=AC=A6?= =?UTF-8?q?=E5=8F=B7=E6=A0=BC=E5=BC=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-component-builder/README.en.md | 2 +- extensions/iceworks-component-builder/README.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/iceworks-component-builder/README.en.md b/extensions/iceworks-component-builder/README.en.md index db2137b1d..1aad4d7cc 100644 --- a/extensions/iceworks-component-builder/README.en.md +++ b/extensions/iceworks-component-builder/README.en.md @@ -15,7 +15,7 @@ Iceworks provides a huge amount of high-quality materials for React and [Rax](ht ![demo](https://user-images.githubusercontent.com/56879942/87535699-77926e00-c6ca-11ea-9e21-65fad2e95e0f.gif) -1. Through `⇧⌘P` evoke vscode command palette +1. Through (Ctrl+Shift+P or ⇧⌘P) evoke vscode command palette 2. In the vscode command palette, enter 'Iceworks: Generate component', click the selected item or press enter to arouse the plugin; ### Create components diff --git a/extensions/iceworks-component-builder/README.md b/extensions/iceworks-component-builder/README.md index a1fd1083a..8fb5a358b 100644 --- a/extensions/iceworks-component-builder/README.md +++ b/extensions/iceworks-component-builder/README.md @@ -9,12 +9,12 @@ ## 功能 -### 唤醒 +### 激活 ![使用示例](https://user-images.githubusercontent.com/56879942/87535699-77926e00-c6ca-11ea-9e21-65fad2e95e0f.gif) -1. 通过 `⇧⌘P` 快捷键唤起命令面板; -2. 输入 `Iceworks:Generate Component` ,点击选中的项目或按下键盘回车键,唤醒插件 +1. 通过 `⇧⌘P` ( MacOS ) 或 `Ctrl+Shift+p` ( Windows ) 快捷键唤起命令面板; +2. 输入 `Iceworks:Generate Component` ,点击选中的项目或按下键盘回车键,激活插件 ### 创建前端组件 @@ -23,7 +23,7 @@ Iceworks 为 React 和 [Rax](https://rax.js.org/) 应用提供了海量的高质 ![使用示例](https://user-images.githubusercontent.com/56879942/87535673-6f3a3300-c6ca-11ea-852e-f3a2bb3eb7bc.gif) 1. 填写组件名(同时也是组件所在文件夹的名称); -2. 组件名输入框下方选择一个使用的区块,; +2. 组件名输入框下方选择一个使用的区块; 3. 点击 `生成组件` 按钮,生成组件代码。 ## 更多 From 84b1e3b9cd111bb451448bec994958ddeab3ef6b Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Thu, 16 Jul 2020 09:54:08 +0800 Subject: [PATCH 37/53] =?UTF-8?q?docs:=20=E4=BF=AE=E6=94=B9=E5=94=A4?= =?UTF-8?q?=E8=B5=B7=E4=B8=BA=E6=BF=80=E6=B4=BB=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=89=A9=E6=96=99=E5=BC=95=E7=94=A8=E6=A0=B7=E5=BC=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-material-helper/README.en.md | 3 ++- extensions/iceworks-material-helper/README.md | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/extensions/iceworks-material-helper/README.en.md b/extensions/iceworks-material-helper/README.en.md index 8f1bfcb31..353fb28dd 100644 --- a/extensions/iceworks-material-helper/README.en.md +++ b/extensions/iceworks-material-helper/README.en.md @@ -15,7 +15,8 @@ When editing the props of a component in a JSX file, an automatic completion rem ![demo](https://user-images.githubusercontent.com/56879942/87399599-2dd25680-c5ea-11ea-9402-5e36ba7b8f98.gif) -1. Use materials in JSX files (such as View). [How to use materials?](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) +1. Use materials in JSX files (such as View). + > What is [material](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder)? 2. Enter part of props in the material tag, it will arouse automatic completion. ## More diff --git a/extensions/iceworks-material-helper/README.md b/extensions/iceworks-material-helper/README.md index 8460a9084..1237f812d 100644 --- a/extensions/iceworks-material-helper/README.md +++ b/extensions/iceworks-material-helper/README.md @@ -17,8 +17,9 @@ ![使用说明](https://user-images.githubusercontent.com/56879942/87399599-2dd25680-c5ea-11ea-9402-5e36ba7b8f98.gif) -1. 在jsx文件中使用物料(如 View )[如何使用物料?](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder) -2. 在物料标签内输入属性的部分内容,将会唤起自动补全提醒。 +1. 在jsx文件中使用物料(如 View ) + > 什么是[物料](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder)? +2. 在物料标签内输入属性的部分内容,将会激活自动补全提醒。 ## 更多 From 3543c6b5f5c2c55366497c34a729ffbc8c9bb4ee Mon Sep 17 00:00:00 2001 From: luhc228 Date: Thu, 16 Jul 2020 10:58:04 +0800 Subject: [PATCH 38/53] feat: add build entry in editor title --- extensions/iceworks-app/assets/dark/build.svg | 1 + .../iceworks-app/assets/dark/publish.svg | 2 +- .../iceworks-app/assets/dark/setting.svg | 2 +- .../iceworks-app/assets/light/build.svg | 1 + .../iceworks-app/assets/light/publish.svg | 2 +- .../iceworks-app/assets/light/setting.svg | 2 +- extensions/iceworks-app/package.json | 31 ++++++++++++++----- extensions/iceworks-app/package.nls.json | 1 + .../iceworks-app/package.nls.zh-cn.json | 1 + extensions/iceworks-app/src/extension.ts | 4 +-- .../iceworks-app/src/views/npmScriptsView.ts | 20 ++++++++++-- extensions/iceworks-app/webpack.config.js | 1 + 12 files changed, 53 insertions(+), 15 deletions(-) create mode 100644 extensions/iceworks-app/assets/dark/build.svg create mode 100644 extensions/iceworks-app/assets/light/build.svg diff --git a/extensions/iceworks-app/assets/dark/build.svg b/extensions/iceworks-app/assets/dark/build.svg new file mode 100644 index 000000000..f4586f0cf --- /dev/null +++ b/extensions/iceworks-app/assets/dark/build.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/iceworks-app/assets/dark/publish.svg b/extensions/iceworks-app/assets/dark/publish.svg index 4a9bbb467..b4a1dcf9c 100644 --- a/extensions/iceworks-app/assets/dark/publish.svg +++ b/extensions/iceworks-app/assets/dark/publish.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/extensions/iceworks-app/assets/dark/setting.svg b/extensions/iceworks-app/assets/dark/setting.svg index 3f9ec0504..296b1eedd 100644 --- a/extensions/iceworks-app/assets/dark/setting.svg +++ b/extensions/iceworks-app/assets/dark/setting.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/extensions/iceworks-app/assets/light/build.svg b/extensions/iceworks-app/assets/light/build.svg new file mode 100644 index 000000000..10777ab04 --- /dev/null +++ b/extensions/iceworks-app/assets/light/build.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions/iceworks-app/assets/light/publish.svg b/extensions/iceworks-app/assets/light/publish.svg index 3ae57e807..5e4471ec3 100644 --- a/extensions/iceworks-app/assets/light/publish.svg +++ b/extensions/iceworks-app/assets/light/publish.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/extensions/iceworks-app/assets/light/setting.svg b/extensions/iceworks-app/assets/light/setting.svg index 752c478b8..729b9d2a8 100644 --- a/extensions/iceworks-app/assets/light/setting.svg +++ b/extensions/iceworks-app/assets/light/setting.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/extensions/iceworks-app/package.json b/extensions/iceworks-app/package.json index 17a76539b..2f1ac0f9a 100644 --- a/extensions/iceworks-app/package.json +++ b/extensions/iceworks-app/package.json @@ -90,7 +90,11 @@ "commands": [ { "command": "iceworksApp.configHelper.start", - "title": "%iceworksApp.command.configHelper.start.title%" + "title": "%iceworksApp.command.configHelper.start.title%", + "icon": { + "light": "assets/light/setting.svg", + "dark": "assets/dark/setting.svg" + } }, { "command": "iceworksApp.DefPublish", @@ -132,6 +136,14 @@ "dark": "assets/dark/runDev.svg" } }, + { + "command": "iceworksApp.npmScripts.runBuild", + "title": "%iceworksApp.command.npmScripts.runBuild.title%", + "icon": { + "light": "assets/light/build.svg", + "dark": "assets/dark/build.svg" + } + }, { "command": "iceworksApp.pages.add", "title": "%iceworksApp.command.pages.add.title%", @@ -234,19 +246,24 @@ ], "editor/title": [ { - "command": "iceworksApp.nodeDependencies.reinstall", + "command": "iceworksApp.npmScripts.runDev", "group": "navigation@01", "when": "iceworks:showScriptIconInEditorTitleMenu" }, { - "command": "iceworksApp.npmScripts.runDev", + "command": "iceworksApp.DefPublish", "group": "navigation@02", - "when": "iceworks:showScriptIconInEditorTitleMenu" + "when": "iceworks:showScriptIconInEditorTitleMenu && iceworks:isAliInternal" }, { - "command": "iceworksApp.DefPublish", + "command": "iceworksApp.npmScripts.runBuild", + "group": "navigation@02", + "when": "iceworks:showScriptIconInEditorTitleMenu && !iceworks:isAliInternal" + }, + { + "command": "iceworksApp.configHelper.start", "group": "navigation@03", - "when": "iceworks:showScriptIconInEditorTitleMenu && iceworks:isAliInternal" + "when": "iceworks:showScriptIconInEditorTitleMenu" } ], "view/title": [ @@ -353,7 +370,7 @@ "vscode:prepublish": "rm -rf build && npm run build:web && webpack --mode production", "build:web": "cd web && npm run build", "watch:web": "cd web && npm run start", - "webpack": "webpack --mode development", + "webpack": "rm -rf ./build/extension.js && webpack --mode development", "webpack-dev": "webpack --mode development --watch", "compile": "tsc -p ./tsconfig.json" }, diff --git a/extensions/iceworks-app/package.nls.json b/extensions/iceworks-app/package.nls.json index 938218cca..c68b0a051 100644 --- a/extensions/iceworks-app/package.nls.json +++ b/extensions/iceworks-app/package.nls.json @@ -14,6 +14,7 @@ "iceworksApp.command.npmScripts.run.title": "Run Script", "iceworksApp.command.npmScripts.stop.title": "Stop Script", "iceworksApp.command.npmScripts.runDev.title": "IceWorks: Run Dev", + "iceworksApp.command.npmScripts.runBuild.title": "IceWorks: Run Build", "iceworksApp.command.pages.add.title": "Add Pages", "iceworksApp.command.pages.refresh.title": "Refresh", "iceworksApp.command.pages.openFile.title": "Open File", diff --git a/extensions/iceworks-app/package.nls.zh-cn.json b/extensions/iceworks-app/package.nls.zh-cn.json index 5eec84275..4f8ebc8df 100644 --- a/extensions/iceworks-app/package.nls.zh-cn.json +++ b/extensions/iceworks-app/package.nls.zh-cn.json @@ -14,6 +14,7 @@ "iceworksApp.command.npmScripts.run.title": "运行脚本", "iceworksApp.command.npmScripts.stop.title": "停止脚本", "iceworksApp.command.npmScripts.runDev.title": "Iceworks: 本地调试", + "iceworksApp.command.npmScripts.runBuild.title": "Iceworks: 本地构建", "iceworksApp.command.pages.add.title": "添加页面", "iceworksApp.command.pages.refresh.title": "刷新", "iceworksApp.command.pages.openFile.title": "打开文件", diff --git a/extensions/iceworks-app/src/extension.ts b/extensions/iceworks-app/src/extension.ts index 1da61c3a2..f5f2040bb 100644 --- a/extensions/iceworks-app/src/extension.ts +++ b/extensions/iceworks-app/src/extension.ts @@ -74,9 +74,9 @@ export async function activate(context: vscode.ExtensionContext) { // show script icons in editor title menu vscode.commands.executeCommand('setContext', 'iceworks:showScriptIconInEditorTitleMenu', true); const isAliInternal = await checkIsAliInternal(); + // DEF publish command in editor title + vscode.commands.executeCommand('setContext', 'iceworks:isAliInternal', isAliInternal); if (isAliInternal) { - // DEF publish command in editor title - vscode.commands.executeCommand('setContext', 'iceworks:isAliInternal', true); context.subscriptions.push(vscode.commands.registerCommand('iceworksApp.DefPublish', () => showDefPublishEnvQuickPick(terminals, rootPath))); } } diff --git a/extensions/iceworks-app/src/views/npmScriptsView.ts b/extensions/iceworks-app/src/views/npmScriptsView.ts index b5969c0b1..a43274f47 100644 --- a/extensions/iceworks-app/src/views/npmScriptsView.ts +++ b/extensions/iceworks-app/src/views/npmScriptsView.ts @@ -110,10 +110,26 @@ export function createNpmScriptsTreeProvider(context: vscode.ExtensionContext, r const pathExists = await checkPathExists(rootPath, dependencyDir); const command: vscode.Command = { command: 'iceworksApp.npmScripts.runDev', - title: 'Run DEV', + title: 'Run Dev', arguments: [rootPath, createNpmCommand('run', 'start')] }; - const commandId = 'npmScripts-runDev'; + const commandId = 'npmScripts-editor-title-run-dev'; + if (!pathExists) { + command.arguments = [rootPath, `${createNpmCommand('install')} && ${command.arguments![1]}`]; + executeCommand(terminals, command, commandId); + return; + } + executeCommand(terminals, command, commandId) + }); + // run build command in editor title + vscode.commands.registerCommand('iceworksApp.npmScripts.runBuild', async () => { + const pathExists = await checkPathExists(rootPath, dependencyDir); + const command: vscode.Command = { + command: 'iceworksApp.npmScripts.runBuild', + title: 'Run Build', + arguments: [rootPath, createNpmCommand('run', 'build')] + }; + const commandId = 'npmScripts-editor-title-run-build'; if (!pathExists) { command.arguments = [rootPath, `${createNpmCommand('install')} && ${command.arguments![1]}`]; executeCommand(terminals, command, commandId); diff --git a/extensions/iceworks-app/webpack.config.js b/extensions/iceworks-app/webpack.config.js index e02f53e26..1801fabb8 100644 --- a/extensions/iceworks-app/webpack.config.js +++ b/extensions/iceworks-app/webpack.config.js @@ -13,6 +13,7 @@ const config = { externals: { vscode: 'commonjs vscode' }, + devtool: 'source-map', resolve: { extensions: ['.ts', '.js'] }, From 52caf5c54c3d64ecaafd21304f93878491476491 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Thu, 16 Jul 2020 11:18:21 +0800 Subject: [PATCH 39/53] =?UTF-8?q?docs:=20=E6=94=B9=E5=8F=98=08JSX=20?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99=E5=B7=B2=E7=BB=8F=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E7=A9=BA=E6=A0=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-material-helper/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/iceworks-material-helper/README.md b/extensions/iceworks-material-helper/README.md index 1237f812d..aadfa63b0 100644 --- a/extensions/iceworks-material-helper/README.md +++ b/extensions/iceworks-material-helper/README.md @@ -17,7 +17,7 @@ ![使用说明](https://user-images.githubusercontent.com/56879942/87399599-2dd25680-c5ea-11ea-9402-5e36ba7b8f98.gif) -1. 在jsx文件中使用物料(如 View ) +1. 在 JSX 文件中使用物料(如 View ) > 什么是[物料](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-component-builder)? 2. 在物料标签内输入属性的部分内容,将会激活自动补全提醒。 From 3660fd7ad0e04b1e5876a084a0214425e344516b Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Thu, 16 Jul 2020 11:39:48 +0800 Subject: [PATCH 40/53] =?UTF-8?q?docs:=20=E4=BF=AE=E6=94=B9=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E8=AF=B4=E6=98=8E=EF=BC=8C=E5=8E=BB=E6=8E=89=E6=BF=80?= =?UTF-8?q?=E6=B4=BB=E6=A0=87=E9=A2=98=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E9=A1=B9=E7=9B=AE=E8=AF=B4=E6=98=8E=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=AE=BE=E7=BD=AE=E6=B3=A8=E9=87=8A=EF=BC=8C=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E8=8B=B1=E6=96=87=E6=96=87=E6=A1=A3=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-app/README.en.md | 14 +++++++------- extensions/iceworks-app/README.md | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/extensions/iceworks-app/README.en.md b/extensions/iceworks-app/README.en.md index c7448ae7c..0c23be590 100644 --- a/extensions/iceworks-app/README.en.md +++ b/extensions/iceworks-app/README.en.md @@ -5,21 +5,21 @@ English | [简体中文](./README.md) # Iceworks Application Viewer -It helps you preview your Universal Application, including the information of npm scripts, pages, components and node dependencies. It also supports quick installation or upgrade dependencies, adding new pages and components, and much more. +Preview and manage your application from a framework perspective, including npm scripts, pages, components and dependencies, friendly for React and [Rax](https://rax.js.org/). ## Usage -### Activate Extension - ### Initialize panel -After you install the Iceworks-APP plugin, an `Iceworks` icon will be added to your toolbar. Click it to enter Iceworks panel. +After you install the Iceworks-APP plugin, an `Iceworks` icon will be added to your activity bar. Click it to enter Iceworks panel. + +The initialization panel appears if your current workspace is empty or ** isn't React/Rax application **. ![demo](https://user-images.githubusercontent.com/56879942/87553484-8e928980-c6e5-11ea-8183-a6ba7f4eae95.gif) ### Create a new project -When you open an empty folder, you can create projects by Iceworks panel: +When you open an empty folder, the initialization panel automatically invokes the create application process, which you can also invoke by clicking the Create Application button on the panel. ![demo](https://user-images.githubusercontent.com/56879942/87407459-c4a41080-c5f4-11ea-882e-d198afc35413.png) @@ -31,7 +31,7 @@ When you open an empty folder, you can create projects by Iceworks panel: 2. Configure package management tools (default: npm) 3. Configure default image source (default: Taobao image) 4. Set up custom repositories (default: null) - + > When your workspace is a React or Rax application, the Iceworks panel appears. ### Iceworks panel #### View and execute npm Scripts @@ -46,7 +46,7 @@ When you open an empty folder, you can create projects by Iceworks panel: #### Jump into corresponding pages and components -![使用示例](https://user-images.githubusercontent.com/56879942/87393958-9963f600-c5e1-11ea-9c96-94fc10492577.gif) +![demo](https://user-images.githubusercontent.com/56879942/87393958-9963f600-c5e1-11ea-9c96-94fc10492577.gif) 1. Click items in PAGES and COMPONENTS on the left panel. 2. Jump into files of selected projects. diff --git a/extensions/iceworks-app/README.md b/extensions/iceworks-app/README.md index f899ab874..eef5738ad 100644 --- a/extensions/iceworks-app/README.md +++ b/extensions/iceworks-app/README.md @@ -5,21 +5,21 @@ # Iceworks 应用大纲树 -从框架视角预览和管理您应用的组织,包括 npm 脚本、页面、组件和依赖信息。 +从框架视角预览和管理您应用的组织,包括 npm 脚本、页面、组件和依赖信息。对 React 和 [Rax](https://rax.js.org/) 应用友好。 ## 功能 -### 激活 - ### 侧边栏 - 初始化 -当您安装了应用大纲树插件之后,您的工具栏上会增加 Iceworks 图标,单击此图标进入应用大纲树侧边栏。 +当您安装了插件之后,VS Code 的活动栏上会增加 Iceworks 图标,单击此图标进入应用大纲树插件。 + +如您当前的**工作区为空**或**非 React/Rax 应用**,则会出现初始化侧边栏。 ![使用示例](https://user-images.githubusercontent.com/56879942/87553484-8e928980-c6e5-11ea-8183-a6ba7f4eae95.gif) -#### 创建项目、 +#### 创建项目 -当您打开一个空文件夹时,您可以通过 Iceworks 面板创建项目: +当您打开一个空文件夹时,初始化侧边栏将自动唤起创建应用流程,您也可以通过点击侧边栏上的「创建应用」按钮来唤起该流程。 ![使用示例](https://user-images.githubusercontent.com/56879942/87407459-c4a41080-c5f4-11ea-882e-d198afc35413.png) @@ -31,7 +31,7 @@ 2. 配置包管理工具(默认为 npm ) 3. 配置默认镜像源(默认为淘宝网镜像) 4. 选择自定义物料库 (无默认外部物料库) - + > 当您的工作区是一个 React 或 Rax 应用,则会出现大纲树侧边栏。 ### 侧边栏 - 大纲树 #### 查看和执行应用的 npm 脚本 From 10d543d3f4c0495877584478f5163cb8abf411e1 Mon Sep 17 00:00:00 2001 From: luhc228 Date: Thu, 16 Jul 2020 12:18:33 +0800 Subject: [PATCH 41/53] feat: add stop command --- extensions/iceworks-app/package.json | 15 ++++++++++++++- extensions/iceworks-app/package.nls.json | 1 + extensions/iceworks-app/package.nls.zh-cn.json | 3 ++- extensions/iceworks-app/src/constants.ts | 3 +++ .../iceworks-app/src/views/npmScriptsView.ts | 18 +++++++++++++----- extensions/iceworks-app/webpack.config.js | 1 - 6 files changed, 33 insertions(+), 8 deletions(-) diff --git a/extensions/iceworks-app/package.json b/extensions/iceworks-app/package.json index 2f1ac0f9a..9e60685f8 100644 --- a/extensions/iceworks-app/package.json +++ b/extensions/iceworks-app/package.json @@ -136,6 +136,14 @@ "dark": "assets/dark/runDev.svg" } }, + { + "command": "iceworksApp.npmScripts.stopDev", + "title": "%iceworksApp.command.npmScripts.stopDev.title%", + "icon": { + "light": "assets/light/stop.svg", + "dark": "assets/dark/stop.svg" + } + }, { "command": "iceworksApp.npmScripts.runBuild", "title": "%iceworksApp.command.npmScripts.runBuild.title%", @@ -248,7 +256,12 @@ { "command": "iceworksApp.npmScripts.runDev", "group": "navigation@01", - "when": "iceworks:showScriptIconInEditorTitleMenu" + "when": "iceworks:showScriptIconInEditorTitleMenu && !iceworks:isRunningDev" + }, + { + "command": "iceworksApp.npmScripts.stopDev", + "group": "navigation@01", + "when": "iceworks:showScriptIconInEditorTitleMenu && iceworks:isRunningDev" }, { "command": "iceworksApp.DefPublish", diff --git a/extensions/iceworks-app/package.nls.json b/extensions/iceworks-app/package.nls.json index c68b0a051..b8813db7b 100644 --- a/extensions/iceworks-app/package.nls.json +++ b/extensions/iceworks-app/package.nls.json @@ -14,6 +14,7 @@ "iceworksApp.command.npmScripts.run.title": "Run Script", "iceworksApp.command.npmScripts.stop.title": "Stop Script", "iceworksApp.command.npmScripts.runDev.title": "IceWorks: Run Dev", + "iceworksApp.command.npmScripts.stopDev.title": "IceWorks: Stop Dev", "iceworksApp.command.npmScripts.runBuild.title": "IceWorks: Run Build", "iceworksApp.command.pages.add.title": "Add Pages", "iceworksApp.command.pages.refresh.title": "Refresh", diff --git a/extensions/iceworks-app/package.nls.zh-cn.json b/extensions/iceworks-app/package.nls.zh-cn.json index 4f8ebc8df..0713116d7 100644 --- a/extensions/iceworks-app/package.nls.zh-cn.json +++ b/extensions/iceworks-app/package.nls.zh-cn.json @@ -13,7 +13,8 @@ "iceworksApp.command.npmScripts.refresh.title": "刷新", "iceworksApp.command.npmScripts.run.title": "运行脚本", "iceworksApp.command.npmScripts.stop.title": "停止脚本", - "iceworksApp.command.npmScripts.runDev.title": "Iceworks: 本地调试", + "iceworksApp.command.npmScripts.runDev.title": "Iceworks: 开始本地调试", + "iceworksApp.command.npmScripts.stopDev.title": "Iceworks: 停止本地调试", "iceworksApp.command.npmScripts.runBuild.title": "Iceworks: 本地构建", "iceworksApp.command.pages.add.title": "添加页面", "iceworksApp.command.pages.refresh.title": "刷新", diff --git a/extensions/iceworks-app/src/constants.ts b/extensions/iceworks-app/src/constants.ts index a82ac4134..bf6da3499 100644 --- a/extensions/iceworks-app/src/constants.ts +++ b/extensions/iceworks-app/src/constants.ts @@ -13,3 +13,6 @@ export const nodeDepTypes: NodeDepTypes[] = [ ]; export const showExtensionsQuickPickCommandId = 'iceworksApp.showExtensionsQuickPick'; + +export const editorTitleRunDevCommandId = 'npmScripts-editor-title-run-dev'; +export const editorTitleRunBuildCommandId = 'npmScripts-editor-title-run-build'; diff --git a/extensions/iceworks-app/src/views/npmScriptsView.ts b/extensions/iceworks-app/src/views/npmScriptsView.ts index a43274f47..561bc78e2 100644 --- a/extensions/iceworks-app/src/views/npmScriptsView.ts +++ b/extensions/iceworks-app/src/views/npmScriptsView.ts @@ -6,6 +6,7 @@ import { dependencyDir, packageJSONFilename } from '@iceworks/project-service'; import executeCommand from '../commands/executeCommand'; import stopCommand from '../commands/stopCommand'; import { ITerminalMap } from '../types'; +import { editorTitleRunDevCommandId, editorTitleRunBuildCommandId } from '../constants'; export class NpmScriptsProvider implements vscode.TreeDataProvider { private workspaceRoot: string; @@ -105,7 +106,8 @@ export function createNpmScriptsTreeProvider(context: vscode.ExtensionContext, r }); vscode.commands.registerCommand('iceworksApp.npmScripts.stop', (script: ScriptTreeItem) => stopCommand(terminals, script.id)); vscode.commands.registerCommand('iceworksApp.npmScripts.refresh', () => npmScriptsProvider.refresh()); - // run dev command in editor title + + // commands in editor title vscode.commands.registerCommand('iceworksApp.npmScripts.runDev', async () => { const pathExists = await checkPathExists(rootPath, dependencyDir); const command: vscode.Command = { @@ -113,15 +115,21 @@ export function createNpmScriptsTreeProvider(context: vscode.ExtensionContext, r title: 'Run Dev', arguments: [rootPath, createNpmCommand('run', 'start')] }; - const commandId = 'npmScripts-editor-title-run-dev'; + const commandId = editorTitleRunDevCommandId; if (!pathExists) { command.arguments = [rootPath, `${createNpmCommand('install')} && ${command.arguments![1]}`]; executeCommand(terminals, command, commandId); return; } - executeCommand(terminals, command, commandId) + executeCommand(terminals, command, commandId); + vscode.commands.executeCommand('setContext', 'iceworks:isRunningDev', true); }); - // run build command in editor title + + vscode.commands.registerCommand('iceworksApp.npmScripts.stopDev', () => { + stopCommand(terminals, editorTitleRunDevCommandId); + vscode.commands.executeCommand('setContext', 'iceworks:isRunningDev', false); + }); + vscode.commands.registerCommand('iceworksApp.npmScripts.runBuild', async () => { const pathExists = await checkPathExists(rootPath, dependencyDir); const command: vscode.Command = { @@ -129,7 +137,7 @@ export function createNpmScriptsTreeProvider(context: vscode.ExtensionContext, r title: 'Run Build', arguments: [rootPath, createNpmCommand('run', 'build')] }; - const commandId = 'npmScripts-editor-title-run-build'; + const commandId = editorTitleRunBuildCommandId; if (!pathExists) { command.arguments = [rootPath, `${createNpmCommand('install')} && ${command.arguments![1]}`]; executeCommand(terminals, command, commandId); diff --git a/extensions/iceworks-app/webpack.config.js b/extensions/iceworks-app/webpack.config.js index 1801fabb8..e02f53e26 100644 --- a/extensions/iceworks-app/webpack.config.js +++ b/extensions/iceworks-app/webpack.config.js @@ -13,7 +13,6 @@ const config = { externals: { vscode: 'commonjs vscode' }, - devtool: 'source-map', resolve: { extensions: ['.ts', '.js'] }, From fab95c4526c502edc250c65057001afb0fce3c43 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu <56879942+sspku-yqLiu@users.noreply.github.com> Date: Thu, 16 Jul 2020 12:25:16 +0800 Subject: [PATCH 42/53] docs: update iceworks-page-builder docs (#256) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: update iceworks-page-builder docs * docs: 统一图片文件名 * docs: 更新文档与示例图片 * docs: 修改使用的示例,在操作步骤中添加刷新以显示新界面。 * docs: 更新唤起为激活,增加 win 唤醒方式 * docs: 已修改激活英文与 命令行英文板式 * docs: 修改部分英文文档的翻译,修改生成目录,减少刷新步骤, * docs: 修改唤起命令面板文档 --- extensions/iceworks-page-builder/README.en.md | 20 ++++++++++++----- extensions/iceworks-page-builder/README.md | 22 ++++++++++++++----- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/extensions/iceworks-page-builder/README.en.md b/extensions/iceworks-page-builder/README.en.md index 4f0498be9..3fad918b0 100644 --- a/extensions/iceworks-page-builder/README.en.md +++ b/extensions/iceworks-page-builder/README.en.md @@ -5,15 +5,25 @@ English | [简体中文](./README.md) # Iceworks Page Builder -Create a web page view in a low-code way. +Through GUI, you can quickly assemble pages with materials. ## Usage -![create-page](https://img.alicdn.com/tfs/TB1mdpDJKT2gK0jSZFvXXXnFXXa-960-600.gif) +### Activate Extension -1. Enter the page name (to be used as the folder name) -2. Select the block to be used for the page from the block list on the right, click to add it to the page preview area on the left -3. Click "generate page" button to generate page code +![demo](https://user-images.githubusercontent.com/56879942/87402315-f49be580-c5ed-11ea-87a8-4143a461124f.gif) + +1. Open vscode command palette by `Ctrl+Shift+P` or `⇧⌘P` . +2. In the command palette, type 'Iceworks: Create page' and click on the selected item or press enter on the keyboard to evoke page-builder extension. + +### Usage + +![demo](https://user-images.githubusercontent.com/56879942/87402326-f82f6c80-c5ed-11ea-8ffe-34263e8dd0be.gif) + +1. Enter the page name (to be used as the folder name). +2. Select the block to be used for the page from the block list on the right, click to add it to the page preview area on the left. +3. Rearrange blocks by dragging and dropping the order of the blocks in the left page preview area, or delete blocks by clicking icons in the upper right corner. +4. Click `生成界面(generate page)` button to generate page code. The page code will be generated into 'src /pages/' ## More diff --git a/extensions/iceworks-page-builder/README.md b/extensions/iceworks-page-builder/README.md index 5c58523e8..3d6919e06 100644 --- a/extensions/iceworks-page-builder/README.md +++ b/extensions/iceworks-page-builder/README.md @@ -5,19 +5,29 @@ # Iceworks 页面生成插件 -使用低代码的方式创建网页视图。 +通过可视化操作,以区块拼装的方式快速生成页面。 -## 用法 +## 功能 -![创建页面](https://img.alicdn.com/tfs/TB1mdpDJKT2gK0jSZFvXXXnFXXa-960-600.gif) +### 激活 + +![使用示例](https://user-images.githubusercontent.com/56879942/87402315-f49be580-c5ed-11ea-87a8-4143a461124f.gif) + +1. 通过 `⇧⌘P` 或 `Ctrl+Shift+P` 快捷键唤醒命令面板 +2. 在命令面板中输入 `Iceworks: 创建页面` ,点击选中的项目或按下键盘回车键,激活页面生成插件 + +### 使用 + +![使用示例](https://user-images.githubusercontent.com/56879942/87531900-f5ec1180-c6c4-11ea-8753-ad269d5768d5.gif) 1. 输入页面名称(将用作文件夹名) -2. 从右侧区块列表中选择页面需要使用的区块,添加到左侧页面预览区 -3. 点击“生成页面”按钮,生成页面代码 +2. 从右侧的区块列表中选择页面需要使用的区块,点击添加到左侧页面预览区 +3. 在左侧页面预览区可通过拖拽排序区块的顺序,或点击右上角的删除图标移除区块 +4. 点击“生成页面”按钮,生成页面代码,页面代码将生成到 `src/pages/` 目录下 ## 更多 -访问 [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) 了解更多 Iceworks 相关功能。 +访问 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks)获取更多功能。 ## License From e4defc5b5a1fad321707f174629c02f926812341 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Thu, 16 Jul 2020 12:29:42 +0800 Subject: [PATCH 43/53] =?UTF-8?q?docs:=20=E5=88=A0=E9=99=A4=E5=86=97?= =?UTF-8?q?=E4=BD=99=E7=9A=84=E7=89=A9=E6=96=99=E6=BA=90=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-material-helper/README.en.md | 2 -- extensions/iceworks-material-helper/README.md | 2 -- 2 files changed, 4 deletions(-) diff --git a/extensions/iceworks-material-helper/README.en.md b/extensions/iceworks-material-helper/README.en.md index 353fb28dd..27ab29e9c 100644 --- a/extensions/iceworks-material-helper/README.en.md +++ b/extensions/iceworks-material-helper/README.en.md @@ -7,8 +7,6 @@ English | [简体中文](./README.md) Write props easier in [JSX](https://reactjs.org/docs/introducing-jsx.html), friendly for React and [Rax](https://rax.js.org/). -> What is [material](https://ice.alibaba-inc.com/docs/materials/about)? - ## Usage When editing the props of a component in a JSX file, an automatic completion reminder will be given: diff --git a/extensions/iceworks-material-helper/README.md b/extensions/iceworks-material-helper/README.md index aadfa63b0..02ea75ac3 100644 --- a/extensions/iceworks-material-helper/README.md +++ b/extensions/iceworks-material-helper/README.md @@ -7,8 +7,6 @@ 在 [JSX](https://zh-hans.reactjs.org/docs/introducing-jsx.html) 中更快速地编写组件属性,对 React 和 [Rax](https://rax.js.org/) 应用友好。 -> 什么是[物料](https://ice.alibaba-inc.com/docs/materials/about)? - ## 功能 ### 属性自动补全 From 3dab3c6922f976cc75e1012ed603c5f03225b648 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu <56879942+sspku-yqLiu@users.noreply.github.com> Date: Thu, 16 Jul 2020 12:31:41 +0800 Subject: [PATCH 44/53] docs: update iceworks-material-import docs (#257) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: update iceworks-material-import docs * docs: 统一图片文件名 * docs: 更新图片与部分文档 * docs: 添加唤醒录屏,修改使用录屏。添加唤醒功能说明 * docs: 更新了文档部分 * docs: 修改了图片,大小写 以及关于命令行的描述。更新了图片 * docs: 修改英文打开命令板文字 --- .../iceworks-material-import/README.en.md | 27 ++++++++++++++-- extensions/iceworks-material-import/README.md | 31 ++++++++++++++++--- 2 files changed, 50 insertions(+), 8 deletions(-) diff --git a/extensions/iceworks-material-import/README.en.md b/extensions/iceworks-material-import/README.en.md index 5ceb2f077..2a6955a03 100644 --- a/extensions/iceworks-material-import/README.en.md +++ b/extensions/iceworks-material-import/README.en.md @@ -9,10 +9,31 @@ Add materials to the application in a visual way. ## Usage -![import-materials](https://img.alicdn.com/tfs/TB1wvG5aAcx_u4jSZFlXXXnUFXa-1279-904.gif) +### Activate Extension -1. Right click the location where you want to insert the material and select「iceworks: import material」, or click iceworks in the status bar of VSCode and select 「iceworks: import material」 -2. Click the block or the component and the code will be added to your code +![demo](https://user-images.githubusercontent.com/56879942/87401390-a63a1700-c5ec-11ea-91a6-f7d81ac5fd77.gif) + +1. Open vscode command palette through `Ctrl+Shift+P` or `⇧⌘P`. +2. Enter `Iceworks:Import Material` to activate this extension. + +### Use in pages + +![demo](https://user-images.githubusercontent.com/56879942/87619860-ba4a5980-c74f-11ea-84c1-9ef69ef17b18.gif) + +1. Click src/pages/*/index.tsx in the resource panel to open a page. +2. Activate the material-import extension. +3. Move cursor to a position for materials +4. Search the block materials, click the material to be used, and the material code will be automatically added to the corresponding position. +5. Search for component materials. Click the material to be used, and the material code will be automatically added to the corresponding position. + +### Use in components + +![demo](https://user-images.githubusercontent.com/56879942/87619875-c2a29480-c74f-11ea-945e-788a32e65881.gif) + +1. Click src/components/*/index.tsx in the resource panel to open a page. +2. Activate the material-import extension. +3. Move cursor to a position for materials +4. Search for component materials. Click the material to be used, and the material code will be automatically added to the corresponding position. ## More diff --git a/extensions/iceworks-material-import/README.md b/extensions/iceworks-material-import/README.md index 9c879b5b2..b0d3216e3 100644 --- a/extensions/iceworks-material-import/README.md +++ b/extensions/iceworks-material-import/README.md @@ -7,16 +7,37 @@ 使用可视化的方式添加物料到应用中。 -## 用法 +## 功能 -![使用物料](https://img.alicdn.com/tfs/TB1wvG5aAcx_u4jSZFlXXXnUFXa-1279-904.gif) +### 激活 -1. 在需要插入物料的位置点击右键,选择「Iceworks: 使用物料」,或者点击 VS Code 状态栏的「Iceworks」选择「Iceworks: 使用物料」 -2. 点击区块或者组件,物料代码将自动添加到相应的位置中 +![使用示例](https://user-images.githubusercontent.com/56879942/87538941-a19a5f00-c6cf-11ea-92f2-b8ed100792fc.gif) + +1. 通过 `⇧⌘P` 或 `Ctrl+Shift+P` 快捷键唤醒命令面板 +2. 输入 `Iceworks:Import Material` 激活物料添加插件 + +### 在页面中使用 + +![使用示例](https://user-images.githubusercontent.com/56879942/87619860-ba4a5980-c74f-11ea-84c1-9ef69ef17b18.gif) + +1. 在资源面板中点击 src/pages/*/index.tsx 打开页面源码 +2. 激活物料添加面板 +3. 选择需要插入物料的代码位置 +4. 搜索区块,点击需要使用的区块,物料代码将自动添加到相应的位置中 +5. 搜索组件,点击需要使用的组件,物料代码将自动添加到相应的位置中 + +### 在组件中使用 + +![使用示例](https://user-images.githubusercontent.com/56879942/87619875-c2a29480-c74f-11ea-945e-788a32e65881.gif) + +1. 在资源面板中点击 src/components/*/index.tsx 打开页面源码 +2. 激活物料添加面板 +3. 选择需要插入物料的代码位置 +4. 搜索组件,点击需要使用的组件,物料代码将自动添加到相应的位置中 ## 更多 -访问 [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) 了解更多 Iceworks 相关功能。 +访问 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks)获取更多功能。 ## License From 2b2a0869c678c1388345d0b767cc64b4a9c96a18 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu <56879942+sspku-yqLiu@users.noreply.github.com> Date: Thu, 16 Jul 2020 12:33:35 +0800 Subject: [PATCH 45/53] docs: update iceworks-project-creator docs (#259) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update: iceworks-project-creator docs * docs:根据模板修改 ICE 套件部分 * docs: 更新文档 * docs: 更新了唤醒,设置, 以及创建应用的录屏。增加了设置物料源的提示。 * docs: 修改了文字部分,以及英文文档中图片错误的问题 * docs: 更新所有录屏,调整文章顺序 * docs: 删除设置相关内容,同步标题 --- .../iceworks-project-creator/README.en.md | 22 ++++++++++++++----- extensions/iceworks-project-creator/README.md | 17 ++++++++++---- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/extensions/iceworks-project-creator/README.en.md b/extensions/iceworks-project-creator/README.en.md index a0e35f50e..1d86a2baa 100644 --- a/extensions/iceworks-project-creator/README.en.md +++ b/extensions/iceworks-project-creator/README.en.md @@ -5,15 +5,25 @@ English | [简体中文](./README.md) # Iceworks Application Creator -Quick create a Universal Application(React/Rax/Vue, etc). +Create a Universal Application(React/Rax/Vue, etc) quickly. -## Quick Start +## Usage -1. Select a scaffold -2. Input your application Infomation -3. Create your application and open application automatically in a few seconds +### Activate Extension + +![demo](https://user-images.githubusercontent.com/56879942/87621232-e61b0e80-c752-11ea-852c-77bb164d2dab.gif) + +1. Open vscode command palette through `Ctrl+Shift+P` or `⇧⌘P`. +2. Enter `Iceworks: create Application` to activate the extension. + +### Create a new application + +![demo](https://user-images.githubusercontent.com/56879942/87621825-41013580-c754-11ea-8da8-e49e71397d08.gif) + +1. Select a scaffold. +2. Input your application Infomation. +3. Create your application and open application automatically. -![application-creator](https://img.alicdn.com/tfs/TB15ZmPXypE_u4jSZKbXXbCUVXa-1090-774.gif) ## More diff --git a/extensions/iceworks-project-creator/README.md b/extensions/iceworks-project-creator/README.md index 37bcc114c..81bc9f407 100644 --- a/extensions/iceworks-project-creator/README.md +++ b/extensions/iceworks-project-creator/README.md @@ -7,17 +7,26 @@ 快速创建多端应用(例如:React/Rax/Vue...) -## 快速开始 +## 功能 + +### 激活 + +![使用示例](https://user-images.githubusercontent.com/56879942/87621232-e61b0e80-c752-11ea-852c-77bb164d2dab.gif) + +1. 通过 `⇧⌘P` 或 `Ctrl+Shift+P` 快捷键唤醒命令面板 +2. 输入 `Iceworks: createApplication` 激活插件 + +### 创建应用 + +![使用示例](https://user-images.githubusercontent.com/56879942/87621825-41013580-c754-11ea-8da8-e49e71397d08.gif) 1. 选择模板 2. 输入应用信息 3. 创建应用并自动打开应用 -![application-creator](https://img.alicdn.com/tfs/TB15ZmPXypE_u4jSZKbXXbCUVXa-1090-774.gif) - ## 更多 -访问 [Iceworks Pack](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) 了解更多 Iceworks 相关功能。 +访问 [Iceworks 套件](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks)获取更多功能。 ## License From 8fb54015f090ce7629ded5d7393af4620f3787e5 Mon Sep 17 00:00:00 2001 From: sspku-yqLiu Date: Thu, 16 Jul 2020 12:34:29 +0800 Subject: [PATCH 46/53] =?UTF-8?q?docs:=20=E4=BF=AE=E6=94=B9=E5=A4=A7?= =?UTF-8?q?=E7=BA=B2=E6=A0=91-=E4=BE=A7=E8=BE=B9=E6=A0=8F=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/iceworks-app/README.en.md | 4 +++- extensions/iceworks-app/README.md | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/extensions/iceworks-app/README.en.md b/extensions/iceworks-app/README.en.md index 0c23be590..e753b9002 100644 --- a/extensions/iceworks-app/README.en.md +++ b/extensions/iceworks-app/README.en.md @@ -31,9 +31,11 @@ When you open an empty folder, the initialization panel automatically invokes th 2. Configure package management tools (default: npm) 3. Configure default image source (default: Taobao image) 4. Set up custom repositories (default: null) - > When your workspace is a React or Rax application, the Iceworks panel appears. + ### Iceworks panel +When your workspace is a React or Rax application, the Iceworks panel appears. + #### View and execute npm Scripts ![demo](https://user-images.githubusercontent.com/56879942/87393980-9f59d700-c5e1-11ea-9e07-0244926f54cc.gif) diff --git a/extensions/iceworks-app/README.md b/extensions/iceworks-app/README.md index eef5738ad..b940bbca5 100644 --- a/extensions/iceworks-app/README.md +++ b/extensions/iceworks-app/README.md @@ -31,9 +31,11 @@ 2. 配置包管理工具(默认为 npm ) 3. 配置默认镜像源(默认为淘宝网镜像) 4. 选择自定义物料库 (无默认外部物料库) - > 当您的工作区是一个 React 或 Rax 应用,则会出现大纲树侧边栏。 + ### 侧边栏 - 大纲树 +当您的工作区是一个 React 或 Rax 应用,则会出现大纲树侧边栏。 + #### 查看和执行应用的 npm 脚本 ![使用示例](https://user-images.githubusercontent.com/56879942/87393980-9f59d700-c5e1-11ea-9e07-0244926f54cc.gif) From 7dd76029f39b4616ec4920925ef2141db0bc527f Mon Sep 17 00:00:00 2001 From: luhc228 Date: Thu, 16 Jul 2020 13:36:17 +0800 Subject: [PATCH 47/53] feat: add loading --- .../src/pages/CreateProject/index.module.scss | 47 ++++++----- .../web/src/pages/CreateProject/index.tsx | 84 ++++++++++--------- 2 files changed, 73 insertions(+), 58 deletions(-) diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.module.scss b/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.module.scss index 3654fc3c2..6b4cc59f9 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.module.scss +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.module.scss @@ -1,26 +1,35 @@ -.cardContent { - margin: 0 20px; +.container { + width: 100%; - .header { - display: flex; - justify-content: space-between; - margin: 30px 0 50px; + .loading { + width: 100%; + height: 60vh; + } + + .cardContent { + margin: 0 20px; - .title { - font-size: 24px; - margin-bottom: 10px; - color: white; + .header { + display: flex; + justify-content: space-between; + margin: 30px 0 50px; + + .title { + font-size: 24px; + margin-bottom: 10px; + color: white; + } } - } - .content { - width: 100%; - display: flex; - justify-content: center; - margin: 0 auto; + .content { + width: 100%; + display: flex; + justify-content: center; + margin: 0 auto; + } } -} -.btn { - margin-right: 10px; + .btn { + margin-right: 10px; + } } diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx b/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx index e4c06d7cb..b315c46bf 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect, useRef } from 'react'; -import { Card, Form, Button, Notification, Icon } from '@alifd/next'; +import { Card, Form, Button, Notification, Icon, Loading } from '@alifd/next'; import callService from '@/callService'; import { IProjectField, IDEFProjectField, IGitLabExistProject } from '@/types'; import { IMaterialSource } from '@iceworks/material-utils'; @@ -23,6 +23,7 @@ const CreateProject: React.FC = () => { const [DEFFormErrorMsg, setDEFFormErrorMsg] = useState(''); const [groupDataSource, setGroupDataSource] = useState([]); const [materialSources, setMaterialSources] = useState>([]); + const [loading, setLoading] = useState(false); const existProjectsRef = useRef([]); const steps = [ @@ -205,56 +206,61 @@ const CreateProject: React.FC = () => { useEffect(() => { async function checkAliInternal() { - try { - const isAliInternal = await callService('common', 'checkIsAliInternal') as boolean; - setIsAliInternal(isAliInternal); - return isAliInternal; - } catch (e) { - Notification.error({ content: e.message }) - } - return false + const isAliInternal = await callService('common', 'checkIsAliInternal') as boolean; + setIsAliInternal(isAliInternal); + return isAliInternal; } async function setDefaultFields(isAliInternal) { - try { - const userData = await callService('common', 'getDataFromSettingJson', 'user') || {}; - const workspace = await callService('common', 'getDataFromSettingJson', 'workspace') || ''; - const { empId, account, gitlabToken } = userData; - setCurProjectField({ ...curProjectField, projectPath: workspace }) - if (isAliInternal) { - setCurDEFProjectField({ ...curDEFProjectField, empId, account, gitlabToken }); - const dataSource = await callService('common', 'getGitLabGroups', gitlabToken); - setGroupDataSource(dataSource); - existProjectsRef.current = await callService('common', 'getExistProjects', gitlabToken); - } - } catch (e) { - // ignore + const userData = await callService('common', 'getDataFromSettingJson', 'user') || {}; + const workspace = await callService('common', 'getDataFromSettingJson', 'workspace') || ''; + const { empId, account, gitlabToken } = userData; + setCurProjectField({ ...curProjectField, projectPath: workspace }) + if (isAliInternal) { + setCurDEFProjectField({ ...curDEFProjectField, empId, account, gitlabToken }); + const dataSource = await callService('common', 'getGitLabGroups', gitlabToken); + setGroupDataSource(dataSource); + existProjectsRef.current = await callService('common', 'getExistProjects', gitlabToken); } } async function initMaterialSources() { const materialSources = await getMaterialSources(); setMaterialSources(materialSources); } - const isAliInternal = checkAliInternal(); - initMaterialSources(); - setDefaultFields(isAliInternal); + async function initData() { + try { + setLoading(true); + const isAliInternal = await checkAliInternal(); + await initMaterialSources(); + await setDefaultFields(isAliInternal); + } catch (e) { + Notification.error({ content: e.message }) + } finally { + setLoading(false); + } + } + initData(); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); return ( - - -
-
-
创建应用
-
海量可复用物料,搭配研发框架极速构建多端应用。
-
-
- - {currentStep === 0 && } +
+ + +
+
+
创建应用
+
海量可复用物料,搭配研发框架极速构建多端应用。
+
+
+ + {currentStep === 0 && } +
-
-
{steps[currentStep]}
- - + {loading ? : ( +
{steps[currentStep]}
+ )} + + +
); }; From 8a224a9437a52f6f3c8461f531f5081d8534910e Mon Sep 17 00:00:00 2001 From: luhc228 Date: Thu, 16 Jul 2020 14:14:46 +0800 Subject: [PATCH 48/53] feat: support searching gitGroup --- .../CreateProject/components/CreateDEFProjectForm/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx index 01701cf41..6a02a51ee 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx @@ -62,6 +62,7 @@ const CreateDEFProjectForm: React.FC = ({ name="group" fillProps="name" key="name" + showSearch={true} > {dataSource.map(item => ( {item.name} From a932f7e37b230c5cc345ca54cbc0733a1ecd65ae Mon Sep 17 00:00:00 2001 From: luhc228 Date: Thu, 16 Jul 2020 14:22:29 +0800 Subject: [PATCH 49/53] fix: error catch --- .../components/CreateDEFProjectForm/index.tsx | 2 +- .../web/src/pages/CreateProject/index.tsx | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx index 6a02a51ee..ae586837d 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx @@ -62,7 +62,7 @@ const CreateDEFProjectForm: React.FC = ({ name="group" fillProps="name" key="name" - showSearch={true} + showSearch > {dataSource.map(item => ( {item.name} diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx b/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx index b315c46bf..28804f984 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx @@ -206,9 +206,14 @@ const CreateProject: React.FC = () => { useEffect(() => { async function checkAliInternal() { - const isAliInternal = await callService('common', 'checkIsAliInternal') as boolean; - setIsAliInternal(isAliInternal); - return isAliInternal; + try { + const isAliInternal = await callService('common', 'checkIsAliInternal') as boolean; + setIsAliInternal(isAliInternal); + return isAliInternal; + } catch (e) { + Notification.error({ content: e.message }); + return false; + } } async function setDefaultFields(isAliInternal) { const userData = await callService('common', 'getDataFromSettingJson', 'user') || {}; @@ -233,7 +238,7 @@ const CreateProject: React.FC = () => { await initMaterialSources(); await setDefaultFields(isAliInternal); } catch (e) { - Notification.error({ content: e.message }) + Notification.error({ content: e.message }); } finally { setLoading(false); } From 73715d7fb52dd3b002b3e65e50ea242b77cd19cd Mon Sep 17 00:00:00 2001 From: alvinhui Date: Thu, 16 Jul 2020 19:56:02 +0800 Subject: [PATCH 50/53] dcos: rename extension name --- extensions/iceworks-material-import/package.json | 2 +- extensions/iceworks-style-helper/package.json | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/extensions/iceworks-material-import/package.json b/extensions/iceworks-material-import/package.json index 4128ede4d..e25451dc8 100644 --- a/extensions/iceworks-material-import/package.json +++ b/extensions/iceworks-material-import/package.json @@ -1,6 +1,6 @@ { "name": "iceworks-material-import", - "displayName": "Iceworks Material Import", + "displayName": "Iceworks Material Importer", "description": "Quick import material in a visual way.", "publisher": "iceworks-team", "version": "0.1.2", diff --git a/extensions/iceworks-style-helper/package.json b/extensions/iceworks-style-helper/package.json index 779e08b46..d79ad5ebe 100644 --- a/extensions/iceworks-style-helper/package.json +++ b/extensions/iceworks-style-helper/package.json @@ -1,7 +1,7 @@ { "name": "iceworks-style-helper", - "displayName": "Iceworks Style Helper", - "description": "Easily write styles in JSX.", + "displayName": "React Style Helper", + "description": "Easily write styles(CSS/Less/SASS).", "publisher": "iceworks-team", "version": "0.3.2", "engines": { @@ -17,8 +17,11 @@ "JSX", "Inline Style", "Style", + "SASS", + "Less", "CSS", - "ClassName" + "ClassName", + "iceworks" ], "icon": "assets/logo.png", "activationEvents": [ From d7da2029bf4473aa3673b44cc7b1976e20130740 Mon Sep 17 00:00:00 2001 From: alvinhui Date: Thu, 16 Jul 2020 20:17:15 +0800 Subject: [PATCH 51/53] docs: update version and add changlog --- extensions/iceworks-material-import/CHANGELOG.md | 6 +++++- extensions/iceworks-material-import/package.json | 4 ++-- extensions/iceworks-project-creator/CHANGELOG.md | 5 +++++ extensions/iceworks-project-creator/package.json | 4 ++-- extensions/iceworks/CHANGELOG.md | 4 ++++ extensions/iceworks/package.json | 4 ++-- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/extensions/iceworks-material-import/CHANGELOG.md b/extensions/iceworks-material-import/CHANGELOG.md index 25c634440..bb08d0e27 100644 --- a/extensions/iceworks-material-import/CHANGELOG.md +++ b/extensions/iceworks-material-import/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.1.3 + +- docs: change logo + ## 0.1.2 - feat: quick activate iceworks-material-import extensions by editor context @@ -10,4 +14,4 @@ ## 0.1.0 -- Initial release \ No newline at end of file +- Initial release diff --git a/extensions/iceworks-material-import/package.json b/extensions/iceworks-material-import/package.json index e25451dc8..090ed4df2 100644 --- a/extensions/iceworks-material-import/package.json +++ b/extensions/iceworks-material-import/package.json @@ -3,7 +3,7 @@ "displayName": "Iceworks Material Importer", "description": "Quick import material in a visual way.", "publisher": "iceworks-team", - "version": "0.1.2", + "version": "0.1.3", "engines": { "vscode": "^1.41.0" }, @@ -72,4 +72,4 @@ "url": "https://github.com/ice-lab/iceworks/issues", "email": "iceworksteam@163.com" } -} \ No newline at end of file +} diff --git a/extensions/iceworks-project-creator/CHANGELOG.md b/extensions/iceworks-project-creator/CHANGELOG.md index d1593636a..1cfd57601 100644 --- a/extensions/iceworks-project-creator/CHANGELOG.md +++ b/extensions/iceworks-project-creator/CHANGELOG.md @@ -1,5 +1,10 @@ # Change Log +## 0.2.1 + +- docs: better docs +- feat: git group search and loading + ## 0.2.0 - feat: default select a scaffold diff --git a/extensions/iceworks-project-creator/package.json b/extensions/iceworks-project-creator/package.json index 90cfd085f..a9d297925 100644 --- a/extensions/iceworks-project-creator/package.json +++ b/extensions/iceworks-project-creator/package.json @@ -3,7 +3,7 @@ "displayName": "Iceworks Application Creator", "description": "Quick create a Universal Application(React/Rax/Vue, etc).", "publisher": "iceworks-team", - "version": "0.2.0", + "version": "0.2.1", "engines": { "vscode": "^1.41.0" }, @@ -99,4 +99,4 @@ "url": "https://github.com/ice-lab/iceworks/issues", "email": "iceworksteam@163.com" } -} \ No newline at end of file +} diff --git a/extensions/iceworks/CHANGELOG.md b/extensions/iceworks/CHANGELOG.md index 0c71dd938..8f1090212 100644 --- a/extensions/iceworks/CHANGELOG.md +++ b/extensions/iceworks/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.2.0 + +- docs: new logo and document + ## 0.1.7 - docs: update sample image diff --git a/extensions/iceworks/package.json b/extensions/iceworks/package.json index 002b7e8f2..fbb34fd62 100644 --- a/extensions/iceworks/package.json +++ b/extensions/iceworks/package.json @@ -1,9 +1,9 @@ { "name": "iceworks", "displayName": "Iceworks", - "description": "Universal Application Development Pack, using low-code technology.", + "description": "Universal Application Development Pack based on icejs and rax-app framework, provide visualization and intelligent technology to build Universal Application.", "publisher": "iceworks-team", - "version": "0.1.7", + "version": "0.2.0", "engines": { "vscode": "^1.41.0" }, From 06ca62b019ec81a0d63c46daee4a677546f55430 Mon Sep 17 00:00:00 2001 From: yangfan <18767120422@163.com> Date: Fri, 17 Jul 2020 10:28:28 +0800 Subject: [PATCH 52/53] fix: css-flatten error (#275) --- extensions/iceworks-style-helper/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/iceworks-style-helper/tsconfig.json b/extensions/iceworks-style-helper/tsconfig.json index ca734a741..be6e7d0be 100644 --- a/extensions/iceworks-style-helper/tsconfig.json +++ b/extensions/iceworks-style-helper/tsconfig.json @@ -6,7 +6,8 @@ "noImplicitAny": false, "module": "commonjs", "resolveJsonModule": true, - "esModuleInterop": true + "esModuleInterop": true, + "skipLibCheck": true }, "exclude": [ From f2a535995f7e83665c4ea126aa8bf19fa15dcd5b Mon Sep 17 00:00:00 2001 From: luhc228 Date: Fri, 17 Jul 2020 11:13:29 +0800 Subject: [PATCH 53/53] fix: fail to open vue file --- extensions/iceworks-app/src/constants.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/iceworks-app/src/constants.ts b/extensions/iceworks-app/src/constants.ts index bf6da3499..89a21291b 100644 --- a/extensions/iceworks-app/src/constants.ts +++ b/extensions/iceworks-app/src/constants.ts @@ -4,7 +4,8 @@ export const entryFileSuffix = [ '.jsx', '.js', '.tsx', - '.rml' + '.rml', + '.vue' ]; export const nodeDepTypes: NodeDepTypes[] = [