{ "name": "objdiff", "displayName": "objdiff", "description": "A local diffing tool for decompilation projects", "publisher": "decomp-dev", "version": "3.2.0", "repository": { "type": "git", "url": "https://github.com/encounter/objdiff-web" }, "license": "MIT", "scripts": { "check": "biome check --write", "format": "biome format --write", "web:build": "rsbuild build", "web:dev": "rsbuild dev", "extension:build": "rsbuild build --env-mode extension", "extension:dev": "rsbuild build -w -m development --env-mode extension", "extension:package": "pnpm run extension:build && vsce package --no-dependencies", "extension:publish": "pnpm run extension:build && vsce publish --no-dependencies", "postinstall": "tsx update-config.ts" }, "dependencies": { "@vscode/codicons": "^0.0.36", "clsx": "^2.1.1", "memoize-one": "^6.0.0", "objdiff-wasm": "3.2.0", "picomatch": "^4.0.2", "react": "^18.3.1", "react-dom": "^18.3.1", "react-tooltip": "^5.28.1", "react-virtualized-auto-sizer": "^1.0.26", "react-window": "^1.8.11", "shescape": "^2.1.3", "zustand": "^5.0.4" }, "devDependencies": { "@biomejs/biome": "^1.9.4", "@rsbuild/core": "^1.3.20", "@rsbuild/plugin-react": "^1.3.1", "@rsbuild/plugin-type-check": "^1.2.2", "@rsbuild/plugin-typed-css-modules": "^1.0.2", "@types/node": "^22.15.18", "@types/picomatch": "^3.0.2", "@types/react": "^18.3.21", "@types/react-dom": "^18.3.7", "@types/react-window": "^1.8.8", "@types/vscode": "^1.96.0", "@types/vscode-webview": "^1.57.5", "@vscode/test-cli": "^0.0.10", "@vscode/test-electron": "^2.5.2", "@vscode/vsce": "^3.4.0", "tsx": "^4.19.4", "typescript": "^5.8.3" }, "main": "./dist/extension.js", "files": [ "LICENSE", "README.md", "package.json", "dist", "media" ], "engines": { "node": ">=20.0.0", "vscode": "^1.96.0" }, "packageManager": "pnpm@10.6.1", "browserslist": [ "chrome 128" ], "categories": [ "Other" ], "activationEvents": [ "onWebviewPanel:objdiff" ], "contributes": { "commands": [ { "command": "objdiff.build", "title": "objdiff: Build" }, { "command": "objdiff.chooseUnit", "title": "objdiff: Choose Unit" }, { "command": "objdiff.clearUnit", "title": "objdiff: Clear Current Unit" }, { "command": "objdiff.chooseCurrentFile", "title": "objdiff: Switch To Current File" }, { "command": "objdiff.settings", "title": "objdiff: Settings" }, { "command": "objdiff.copySymbolName", "title": "Copy name", "enablement": "webviewId == 'objdiff' && contextType == 'symbol'" }, { "command": "objdiff.copySymbolDemangledName", "title": "Copy demangled name", "enablement": "webviewId == 'objdiff' && contextType == 'symbol' && symbolDemangledName" } ], "configuration": [ { "title": "General", "properties": { "objdiff.functionRelocDiffs": { "type": "string", "description": "How relocation targets will be diffed in the function view.", "default": "name_address", "enum": [ "none", "name_address", "data_value", "all" ], "enumItemLabels": [ "None", "Name or address", "Data value", "Name or address, data value" ], "enumDescriptions": [ null, null, null, null ] }, "objdiff.spaceBetweenArgs": { "type": "boolean", "description": "Adds a space between arguments in the diff output.", "default": true }, "objdiff.combineDataSections": { "type": "boolean", "description": "Combines data sections with equal names.", "default": false }, "objdiff.combineTextSections": { "type": "boolean", "description": "Combines all text sections into one.", "default": false } } }, { "title": "ARM", "properties": { "objdiff.arm.archVersion": { "type": "string", "description": "ARM architecture version to use for disassembly.", "default": "auto", "enum": [ "auto", "v4t", "v5te", "v6k" ], "enumItemLabels": [ "Auto", "ARMv4T (GBA)", "ARMv5TE (DS)", "ARMv6K (3DS)" ], "enumDescriptions": [ null, null, null, null ] }, "objdiff.arm.unifiedSyntax": { "type": "boolean", "description": "Disassemble as unified assembly language (UAL).", "default": false }, "objdiff.arm.avRegisters": { "type": "boolean", "description": "Display R0-R3 as A1-A4 and R4-R11 as V1-V8.", "default": false }, "objdiff.arm.r9Usage": { "type": "string", "default": "generalPurpose", "enum": [ "generalPurpose", "sb", "tr" ], "enumItemLabels": [ "R9 or V6", "SB (static base)", "TR (TLS register)" ], "enumDescriptions": [ "Use R9 as a general-purpose register.", "Used for position-independent data (PID).", "Used for thread-local storage." ] }, "objdiff.arm.slUsage": { "type": "boolean", "description": "Used for explicit stack limits.", "default": false }, "objdiff.arm.fpUsage": { "type": "boolean", "description": "Used for frame pointers.", "default": false }, "objdiff.arm.ipUsage": { "type": "boolean", "description": "Used for interworking and long branches.", "default": false } } }, { "title": "MIPS", "properties": { "objdiff.mips.abi": { "type": "string", "description": "MIPS ABI to use for disassembly.", "default": "auto", "enum": [ "auto", "o32", "n32", "n64" ], "enumItemLabels": [ "Auto", "O32", "N32", "N64" ], "enumDescriptions": [ null, null, null, null ] }, "objdiff.mips.instrCategory": { "type": "string", "description": "MIPS instruction category to use for disassembly.", "default": "auto", "enum": [ "auto", "cpu", "rsp", "r3000gte", "r4000allegrex", "r5900" ], "enumItemLabels": [ "Auto", "CPU", "RSP (N64)", "R3000 GTE (PS1)", "R4000 ALLEGREX (PSP)", "R5900 EE (PS2)" ], "enumDescriptions": [ null, null, null, null, null, null ] }, "objdiff.mips.registerPrefix": { "type": "boolean", "description": "Display MIPS register names with a '$' prefix.", "default": false } } }, { "title": "PowerPC", "properties": { "objdiff.ppc.calculatePoolRelocations": { "type": "boolean", "description": "Display pooled data references in functions as fake relocations.", "default": true }, "objdiff.analyzeDataFlow": { "type": "boolean", "description": "Use data flow analysis to display known information about register contents where possible", "default": false } } }, { "title": "x86", "properties": { "objdiff.x86.formatter": { "type": "string", "description": "x86 disassembly syntax.", "default": "intel", "enum": [ "intel", "gas", "nasm", "masm" ], "enumItemLabels": [ "Intel", "AT&T", "NASM", "MASM" ], "enumDescriptions": [ null, null, null, null ] } } } ], "menus": { "webview/context": [ { "command": "objdiff.copySymbolName", "when": "webviewId == 'objdiff' && contextType == 'symbol'" }, { "command": "objdiff.copySymbolDemangledName", "when": "webviewId == 'objdiff' && contextType == 'symbol'" } ] }, "taskDefinitions": [ { "type": "objdiff" } ], "viewsContainers": { "panel": [ { "id": "objdiff", "title": "objdiff", "icon": "media/icon.svg" } ] }, "views": { "objdiff": [ { "id": "objdiff", "name": "objdiff", "type": "webview" } ] }, "viewsWelcome": [ { "view": "objdiff", "contents": "Loading..." } ] }, "pnpm": { "onlyBuiltDependencies": [ "@biomejs/biome", "@vscode/vsce-sign", "core-js", "esbuild", "keytar" ], "overrides": {} } }