diff --git a/.gitignore b/.gitignore index 7edc371..ea49971 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ cc-inspector/node_modules/ cc-inspector/yalc.lock cc-inspector/chrome/ cc-inspector/dist/ +cc-inspector/yarn-error.log diff --git a/cc-inspector/.vscode/settings.json b/cc-inspector/.vscode/settings.json new file mode 100644 index 0000000..41ddf0d --- /dev/null +++ b/cc-inspector/.vscode/settings.json @@ -0,0 +1,14 @@ +{ + "editor.formatOnSave": true, + "editor.formatOnSaveMode": "modifications", + "files.autoSave": "onFocusChange", + "[typescript]": { + "editor.tabSize": 2, + "editor.formatOnSave": true, + "editor.defaultFormatter": "vscode.typescript-language-features" + }, + "[vue]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "files.refactoring.autoSave": false +} diff --git a/cc-inspector/package.json b/cc-inspector/package.json index 6913281..f08d8b8 100644 --- a/cc-inspector/package.json +++ b/cc-inspector/package.json @@ -26,6 +26,7 @@ "version": "1.0.0", "dependencies": { "uuid": "^8.3.2", + "tiny-emitter": "2.1.0", "lodash": "^4.17.21" } } diff --git a/cc-inspector/src/views/devtools/bus.ts b/cc-inspector/src/views/devtools/bus.ts index 70f414a..7a1352b 100644 --- a/cc-inspector/src/views/devtools/bus.ts +++ b/cc-inspector/src/views/devtools/bus.ts @@ -1,4 +1,4 @@ -import Vue from "vue" +import { TinyEmitter } from 'tiny-emitter'; export enum BusMsg { ShowPlace = "ShowPlace", @@ -7,4 +7,4 @@ export enum BusMsg { FoldAllGroup = "FoldAllGroup" } -export default new Vue(); +export default new TinyEmitter(); diff --git a/cc-inspector/src/views/devtools/connectBackground.ts b/cc-inspector/src/views/devtools/connectBackground.ts index 82d4202..da81f60 100644 --- a/cc-inspector/src/views/devtools/connectBackground.ts +++ b/cc-inspector/src/views/devtools/connectBackground.ts @@ -1,4 +1,4 @@ -import {PluginEvent, Page, Msg} from "@/core/types"; +import {PluginEvent, Page, Msg} from "../../core/types"; class ConnectBackground { connect: chrome.runtime.Port | null = null; diff --git a/cc-inspector/src/views/devtools/data.ts b/cc-inspector/src/views/devtools/data.ts index 8f3fd2d..2936554 100644 --- a/cc-inspector/src/views/devtools/data.ts +++ b/cc-inspector/src/views/devtools/data.ts @@ -1,21 +1,20 @@ -// @ts-ignore -import {v4} from "uuid" +import { v4 } from "uuid" export enum DataType { - Number, - String, - Text, - Vec2, - Vec3, - Enum, - Bool, - Color, - Invalid, - Array, // 暂时在控制台打印下 - Object, - ObjectItem, - Image, // 图片 - Engine,// 引擎的类型:cc.Node, cc.Sprite, cc.Label等。。。 + Number = 'Number', + String = 'String', + Text = 'Text', + Vec2 = 'Vec2', + Vec3 = 'Vec3', + Enum = 'Enum', + Bool = 'Bool', + Color = 'Color', + Invalid = 'Invalid', + Array = 'Array', // 暂时在控制台打印下 + Object = 'Object', + ObjectItem = 'ObjectItem', + Image = 'Image', // 图片 + Engine = 'Engine',// 引擎的类型:cc.Node, cc.Sprite, cc.Label等。。。 } export class Info { @@ -27,6 +26,9 @@ export class Info { constructor() { this.id = v4(); } + public isEnum(): boolean { + return false; + } } export class TextData extends Info { @@ -169,10 +171,14 @@ export class ImageData extends Info { } export class EnumData extends Info { + public values: Array<{ name: string, value: any }> = []; constructor() { super(); this.type = DataType.Enum; } + public isEnum(): boolean { + return this.type === DataType.Enum; + } } export class TreeData { @@ -197,9 +203,9 @@ export class Group { public name: string = "group"; public data: Array = []; - constructor(name: string,id?:string) { + constructor(name: string, id?: string) { this.name = name; - this.id=id||''; + this.id = id || ''; } addProperty(property: Property) { diff --git a/cc-inspector/src/views/devtools/index.vue b/cc-inspector/src/views/devtools/index.vue index 186c3ea..8b02897 100644 --- a/cc-inspector/src/views/devtools/index.vue +++ b/cc-inspector/src/views/devtools/index.vue @@ -1,20 +1,656 @@ - - \ No newline at end of file + + .no-find { + display: flex; + flex: 1; + flex-direction: row; + align-items: center; + justify-content: center; + + span { + margin-right: 20px; + } + } + + .find { + display: flex; + flex: 1; + flex-direction: row; + overflow: auto; + + .left { + display: flex; + flex-direction: column; + width: 300px; + + .tool-btn { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + } + + .matchCase { + width: 30px; + height: 26px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + } + + .treeList { + margin-top: 3px; + height: 100%; + border-radius: 4px; + min-height: 20px; + overflow: auto; + width: 100%; + + .leaf { + width: 100%; + } + + .leaf-show { + color: black; + } + + .leaf-hide { + color: #c7bbbb; + text-decoration: line-through; + } + + &::-webkit-scrollbar { + width: 6px; + height: 6px; + background: #999; + border-radius: 2px; + } + + &::-webkit-scrollbar-thumb { + background-color: #333; + border-radius: 2px; + } + } + } + + .right { + flex: 1; + background: #e5e9f2; + overflow-x: hidden; + overflow-y: overlay; + + &::-webkit-scrollbar { + width: 6px; + background: #999; + border-radius: 2px; + height: 6px; + } + + &::-webkit-scrollbar-thumb { + background-color: #333; + border-radius: 2px; + } + } + } +} + diff --git a/cc-inspector/src/views/devtools/register-panel.ts b/cc-inspector/src/views/devtools/register-panel.ts index 04cf9ae..e55a88d 100644 --- a/cc-inspector/src/views/devtools/register-panel.ts +++ b/cc-inspector/src/views/devtools/register-panel.ts @@ -1,33 +1,31 @@ -import Manifest from '../manifest.json' -import {connectBackground} from "@/devtools/connectBackground"; -import {PluginEvent, Msg, Page} from "@/core/types"; +import { ChromeConst } from "cc-plugin/src/chrome/const"; +import { connectBackground } from "./connectBackground"; +import { PluginEvent, Msg, Page } from "../../core/types"; export function init() { - if (chrome && chrome.devtools) { + if (chrome && chrome.devtools) { // 对应的是Elements面板的边栏 chrome.devtools.panels.elements.createSidebarPane('Cocos', function (sidebar) { - sidebar.setObject({some_data: "some data to show!"}); + sidebar.setObject({ some_data: "some data to show!" }); }); // 创建devtools-panel - chrome.devtools.panels.create("Cocos", "icons/48.png", Manifest.devtools_page, (panel: chrome.devtools.panels.ExtensionPanel) => { - console.log("[CC-Inspector] Dev Panel Created!"); - panel.onShown.addListener((window) => { - // 面板显示,查询是否是cocos游戏 - console.log("panel show"); - // connectBackground.postMessageToBackground(Msg.Support, null) - }); - panel.onHidden.addListener(() => { - // 面板隐藏 - console.log("panel hide"); - }); - panel.onSearch.addListener(function (action, query) { - // ctrl+f 查找触发 - console.log("panel search!"); - }); - } + chrome.devtools.panels.create("Cocos", "icons/48.png", ChromeConst.html.devtools, (panel: chrome.devtools.panels.ExtensionPanel) => { + console.log("[CC-Inspector] Dev Panel Created!"); + panel.onShown.addListener((window) => { + // 面板显示,查询是否是cocos游戏 + console.log("panel show"); + // connectBackground.postMessageToBackground(Msg.Support, null) + }); + panel.onHidden.addListener(() => { + // 面板隐藏 + console.log("panel hide"); + }); + panel.onSearch.addListener(function (action, query) { + // ctrl+f 查找触发 + console.log("panel search!"); + }); + } ); } - -} - +} \ No newline at end of file diff --git a/cc-inspector/src/views/devtools/settings.ts b/cc-inspector/src/views/devtools/settings.ts index 4e6c009..d32526c 100644 --- a/cc-inspector/src/views/devtools/settings.ts +++ b/cc-inspector/src/views/devtools/settings.ts @@ -1,7 +1,9 @@ const Key = "settings"; -export const RefreshManual = "manual"; -export const RefreshAuto = "auto"; +export const enum RefreshType{ + Auto = "auto", + Manual = "manual", +} interface SettingsData { refreshType: string; @@ -10,7 +12,7 @@ interface SettingsData { let defaultData: SettingsData = { refreshTime: 500, - refreshType: RefreshManual, + refreshType: RefreshType.Manual, } class Settings { @@ -33,7 +35,7 @@ class Settings { } isManualRefresh() { - return this.data?.refreshType === RefreshManual; + return this.data?.refreshType === RefreshType.Manual; } save() { diff --git a/cc-inspector/src/views/devtools/ui/index.vue b/cc-inspector/src/views/devtools/ui/index.vue deleted file mode 100644 index baa1f12..0000000 --- a/cc-inspector/src/views/devtools/ui/index.vue +++ /dev/null @@ -1,631 +0,0 @@ - - - - - diff --git a/cc-inspector/src/views/devtools/ui/property-group.vue b/cc-inspector/src/views/devtools/ui/property-group.vue index 6c939a2..c028dc9 100644 --- a/cc-inspector/src/views/devtools/ui/property-group.vue +++ b/cc-inspector/src/views/devtools/ui/property-group.vue @@ -1,67 +1,75 @@ diff --git a/cc-inspector/src/views/devtools/ui/settings-prop.vue b/cc-inspector/src/views/devtools/ui/settings-prop.vue index a29e4b0..d631f79 100644 --- a/cc-inspector/src/views/devtools/ui/settings-prop.vue +++ b/cc-inspector/src/views/devtools/ui/settings-prop.vue @@ -6,24 +6,17 @@ diff --git a/cc-inspector/src/views/devtools/ui/ui-divider.vue b/cc-inspector/src/views/devtools/ui/ui-divider.vue index bb8088e..e15ffac 100644 --- a/cc-inspector/src/views/devtools/ui/ui-divider.vue +++ b/cc-inspector/src/views/devtools/ui/ui-divider.vue @@ -1,47 +1,38 @@