YAPF/extensions/vscode
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Claude 0ba1f0af17
JavaScript port decodes YAPF 2; VS Code and Figma open every file
yapf.js: decodeTexture (container, yapf-sum checks, code books with
context decoding, 16-bit / float planes, GPU block tiles), BC1-BC7 /
BC6H block decoding and textureToRGBA for display. Matches the C library
on 417 generated files (surfaces bit-exact) and survives fuzzing with
clean YapfErrors; fixtures in bindings/js/test-data keep it checked.

VS Code preview: pickers for mip, face, layer, frame and slice; storage,
normal-map convention and version in the info bar. Figma import:
textures converted to 8-bit, 8-bit images stay exact.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DVrVthWN8GsmgHGUhhsCYm
2026-10-11 09:57:52 +00:00
..
media JavaScript port decodes YAPF 2; VS Code and Figma open every file 2026-10-11 09:57:52 +00:00
scripts YAPF v1: fast byte-aligned format, SIMD, tools and plugins 2026-10-03 14:17:59 +02:00
extension.js YAPF v1: fast byte-aligned format, SIMD, tools and plugins 2026-10-03 14:17:59 +02:00
package.json YAPF v1: fast byte-aligned format, SIMD, tools and plugins 2026-10-03 14:17:59 +02:00
README.md JavaScript port decodes YAPF 2; VS Code and Figma open every file 2026-10-11 09:57:52 +00:00

YAPF Image Preview for VS Code

Click any .yapf file in VS Code to see the image.

  • Checkerboard behind transparent pixels.
  • Click to switch between fit to window and 100 %; Ctrl + scroll to zoom (pixels stay sharp when enlarged).
  • Opens every YAPF file, version 1 and 2: GPU blocks (BC1–BC7, BC6H) decoded, 16-bit and float textures shown in 8-bit (floats sRGB encoded).
  • Pickers for mip level, cube face, array layer, animation frame and volume slice.
  • Info bar: size, shape, storage (e.g. GPU BC7, RGB half float), sRGB / linear, normal-map convention, format version, file size, decode time. Damaged files say so (checksum mismatch).
  • Reloads automatically when the file changes on disk.

Decoding runs in plain JavaScript inside the preview; no native code.

Install

  • From a release: download yapf-preview.vsix, then in VS Code run Extensions: Install from VSIX… (or code --install-extension yapf-preview.vsix).

  • From source (needs Node.js):

    cd extensions/vscode
    npm run package          # → yapf-preview-1.0.0.vsix
    code --install-extension yapf-preview-1.0.0.vsix
    

Should work in VS Code 1.75+ and VS Code–based editors such as VSCodium.

Status

The .vsix packages cleanly, and the preview code was tested in a browser engine (headless Chromium) with real files: correct pixels, mip picker, error message for corrupt files; the YAPF 2 preview was tested the same way (BC7, BC5, BC6H, half float, 16-bit, cube, animation, damaged and non-YAPF files). It has not yet been run inside VS Code itself.