mirror of
https://github.com/tidys/cc-inspector-chrome
synced 2025-05-31 05:14:02 +00:00
点击节点的脚本文件后缀图标,直接在source面板打开源码
This commit is contained in:
parent
d9b0e90388
commit
95ae2539e7
@ -74,6 +74,12 @@ export type RequestSetPropertyData = Info;
|
||||
export type ResponseSetPropertyData = Info;
|
||||
export type RequestLogData = string[];
|
||||
export type RequestOpenNodeTouchFuntionData = { uuid: string; code: ShowCode; index: number };
|
||||
export type RequestOpenScriptData = {
|
||||
/**节点的UUID */
|
||||
uuid: string;
|
||||
/**节点的脚本名字 */
|
||||
script: string;
|
||||
};
|
||||
export type ResponseErrorData = string;
|
||||
export enum Msg {
|
||||
None = "None",
|
||||
@ -147,6 +153,7 @@ export enum Msg {
|
||||
* 请求在source面板打开节点的touch函数
|
||||
*/
|
||||
RequestOpenNodeTouchFuntion = "request-open-node-touch-funtion",
|
||||
RequestOpenScript = "request-open-script",
|
||||
}
|
||||
|
||||
export class PluginEvent {
|
||||
|
@ -1,6 +1,6 @@
|
||||
// eval 注入脚本的代码,变量尽量使用var,后来发现在import之后,let会自动变为var
|
||||
import { uniq } from "lodash";
|
||||
import { Msg, PluginEvent, RequestLogData, RequestNodeInfoData, RequestOpenNodeTouchFuntionData, RequestSetPropertyData, ResponseGameInfoData, ResponseNodeInfoData, ResponseSetPropertyData, ResponseSupportData, ResponseTreeInfoData } from "../../core/types";
|
||||
import { Msg, PluginEvent, RequestLogData, RequestNodeInfoData, RequestOpenNodeTouchFuntionData, RequestOpenScriptData, RequestSetPropertyData, ResponseGameInfoData, ResponseNodeInfoData, ResponseSetPropertyData, ResponseSupportData, ResponseTreeInfoData } from "../../core/types";
|
||||
import { CompType, getNodeIcon } from "../../views/devtools/comp";
|
||||
import { ArrayData, BoolData, ColorData, DataType, EngineData, EnumData, Group, ImageData, Info, InvalidData, NodeInfoData, NumberData, ObjectCircleData, ObjectData, Property, StringData, TreeData, Vec2Data, Vec3Data, Vec4Data } from "../../views/devtools/data";
|
||||
import { calcCodeHint, getCallbacks } from "./code-hint";
|
||||
@ -123,6 +123,25 @@ export class Inspector extends InjectEvent {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Msg.RequestOpenScript: {
|
||||
const data: RequestOpenScriptData = pluginEvent.data;
|
||||
const node = this.inspectorGameMemoryStorage[data.uuid];
|
||||
if (!node || !node.isValid) {
|
||||
return;
|
||||
}
|
||||
const comps = node._components;
|
||||
if (comps) {
|
||||
for (let i = 0; i < comps.length; i++) {
|
||||
const comp = comps[i];
|
||||
const compName = this.getCompName(comp);
|
||||
if (compName === data.script) {
|
||||
this.target = comp.constructor;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Msg.RequestOpenNodeTouchFuntion: {
|
||||
const data: RequestOpenNodeTouchFuntionData = pluginEvent.data;
|
||||
const node = this.inspectorGameMemoryStorage[data.uuid];
|
||||
|
@ -192,6 +192,11 @@ export function getSimpleProperties(typeName: string): string[] {
|
||||
"isAlignBottom",
|
||||
];
|
||||
config[CompType.Label] = [
|
||||
"color",
|
||||
"isBold",
|
||||
"isItalic",
|
||||
"isUnderline",
|
||||
"spaceX",
|
||||
"string", //
|
||||
"horizontalAlign",
|
||||
"verticalAlign",
|
||||
|
@ -11,7 +11,7 @@
|
||||
<i class="matchCase iconfont icon_font_size" @click.stop="onChangeCase" title="match case" :style="{ color: matchCase ? 'red' : '' }"></i>
|
||||
</slot>
|
||||
</CCInput>
|
||||
<CCTree :show-icon="config.showTreeIcon" @do-search="doSearch" :search="true" @node-menu="onMenu" @contextmenu.prevent.stop="onMenu" style="flex: 1" ref="elTree" :expand-keys="expandedKeys" :default-expand-all="false" :value="treeData" @node-expand="onNodeExpand" @node-collapse="onNodeCollapse" @node-click="handleNodeClick" @node-unclick="handleNodeUnclick" @node-enter="handleNodeEnter" @node-leave="handleNodeLeave"></CCTree>
|
||||
<CCTree :show-icon="config.showTreeIcon" @do-search="doSearch" :search="true" @node-menu="onMenu" @click-subfix="onClickSubfix" @contextmenu.prevent.stop="onMenu" style="flex: 1" ref="elTree" :expand-keys="expandedKeys" :default-expand-all="false" :value="treeData" @node-expand="onNodeExpand" @node-collapse="onNodeCollapse" @node-click="handleNodeClick" @node-unclick="handleNodeUnclick" @node-enter="handleNodeEnter" @node-leave="handleNodeLeave"></CCTree>
|
||||
</CCDock>
|
||||
</div>
|
||||
</template>
|
||||
@ -22,7 +22,7 @@ import { HandExpandOptions } from "@xuyanfeng/cc-ui/types/cc-tree/const";
|
||||
import Mousetrap, { MousetrapInstance } from "mousetrap";
|
||||
import { storeToRefs } from "pinia";
|
||||
import { defineComponent, nextTick, onMounted, onUnmounted, ref, toRaw, watch } from "vue";
|
||||
import { Msg, PluginEvent, RequestOpenNodeTouchFuntionData, RequestTreeInfoData, RequestUseFrameData, ResponseSetPropertyData, ResponseSupportData } from "../../core/types";
|
||||
import { Msg, PluginEvent, RequestOpenNodeTouchFuntionData, RequestOpenScriptData, RequestTreeInfoData, RequestUseFrameData, ResponseSetPropertyData, ResponseSupportData } from "../../core/types";
|
||||
import { ga } from "../../ga";
|
||||
import { GA_EventName } from "../../ga/type";
|
||||
import { ShowCode } from "../../scripts/inject/types";
|
||||
@ -34,6 +34,7 @@ import GameInfo from "./game-info.vue";
|
||||
import Refresh from "./refresh.vue";
|
||||
import { appStore } from "./store";
|
||||
import { Timer } from "./timer";
|
||||
import { execInspect } from "./util";
|
||||
const { CCTree, CCFootBar, CCDock, CCDialog, CCInput, CCButton, CCInputNumber, CCSelect, CCButtonGroup, CCCheckBox, CCColor, CCDivider } = ccui.components;
|
||||
export default defineComponent({
|
||||
name: "hierarchy",
|
||||
@ -272,14 +273,37 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
},
|
||||
onClickSubfix(event: MouseEvent, data: TreeData) {
|
||||
function inspectScript(scriptName: string) {
|
||||
bridge.send(Msg.RequestOpenScript, { uuid: data.id, script: scriptName } as RequestOpenScriptData);
|
||||
execInspect();
|
||||
}
|
||||
if (data.subfixIconTip) {
|
||||
const multiple = data.subfixIconTip.split("\n");
|
||||
if (multiple.length >= 2) {
|
||||
const menus: IUiMenuItem[] = [];
|
||||
for (let i = 0; i < multiple.length; i++) {
|
||||
const item = multiple[i];
|
||||
menus.push({
|
||||
name: item,
|
||||
callback: (item) => {
|
||||
console.log(item.name);
|
||||
inspectScript(item.name);
|
||||
},
|
||||
});
|
||||
}
|
||||
ccui.menu.showMenuByMouseEvent(event, menus);
|
||||
} else {
|
||||
inspectScript(multiple[0]);
|
||||
}
|
||||
}
|
||||
},
|
||||
onMenu(event: MouseEvent, data: TreeData) {
|
||||
const menus: IUiMenuItem[] = [];
|
||||
if (data) {
|
||||
function doInspect(type: ShowCode, index: number) {
|
||||
bridge.send(Msg.RequestOpenNodeTouchFuntion, { uuid: data.id, code: type, index } as RequestOpenNodeTouchFuntionData);
|
||||
setTimeout(() => {
|
||||
chrome.devtools.inspectedWindow.eval(`DoInspect()`);
|
||||
}, 5);
|
||||
execInspect();
|
||||
}
|
||||
function hintCode(type: ShowCode, cbArray: FunctionInfo[], event: MouseEvent) {
|
||||
if (cbArray.length === 1) {
|
||||
|
@ -4,3 +4,8 @@ import { bridge } from "./bridge";
|
||||
export function checkSupport() {
|
||||
bridge.send(Msg.RequestSupport, {} as RequestSupportData);
|
||||
}
|
||||
export function execInspect() {
|
||||
setTimeout(() => {
|
||||
chrome.devtools.inspectedWindow.eval(`DoInspect()`);
|
||||
}, 5);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user