$ show QL-Win/QuickLook
QL-Win/QuickLook is a Windows desktop application that replicates the macOS Quick Look feature: pressing the Space bar instantly previews the currently selected file in a floating overlay window, without opening a separate application. The system is built with a plugin architecture, where each file format is handled by a dedicated viewer plugin (e.g., images, PDFs, archives, code, 3D models, executable metadata). The main WPF application provides the preview window, keyboard hooks, system tray integration, and dynamic discovery of plugins. It also includes a native C++ component to retrieve the current file selection from Windows Explorer, Open/Save dialogs, and third-party file managers like Everything and Director Opus. The architecture is modular: the core library (QuickLook.Common) defines the plugin interface (IViewer, ContextObject, IMoreMenu) and shared utilities (translation, settings, helper methods). Over 30 built-in plugins each implement this interface and produce WPF UI or WebView2-based content for file preview. The system handles over 150 file formats, including compound archives, binary formats, certificate chains, minidumps, font files, Markdown/AsciiDoc, animated images (GIF, SVG, SVGA, Lottie), and even Google Chrome PAK files. Plugins can also add context menu items to invoke alternative viewers, such as viewing a PDF as text or opening a package file as an archive. Data flows: the user selects a file in Explorer, the native hook detects the focused window and retrieves the file path, the main app loads the appropriate plugin via PluginManager, passes a ContextObject to set size and title, and the plugin populates a content control (could be an ImagePanel, TextViewer panel, WebPagePanel, etc.). The preview window is displayed with acrylic/blur effects and supports fullscreen, pinning, zoom, and rotation. The user closes the preview by pressing Space again or clicking outside. The system is single-instance and communicates via named pipes for toggling and switching.
The LLM identified 4 files worth highlighting for reuse:
Defines the core plugin contract (IViewer) with lifecycle methods: Init, CanHandle, Prepare, View, Cleanup. Also includes ContextObject for passing preview parameters (size, title, content, busy state) and IMoreMenu for adding context menu items. This interface is implemented by all plugins and could be extracted as a standalone library for building any file-preview extension system.
Contains a large collection of .xshd syntax highlighting definitions covering over 60 programming languages, each with dark and light themes. The files are self-contained XML-based rule sets for AvalonEdit (or any editor supporting the XSHD format) and can be reused directly in other projects requiring syntax highlighting. Notable inclusions: JSON, XML, Python, Java, C#, Rust, YAML, GraphQL, VHDL, and many more.
A generic WPF pagination user control that provides page navigation (first, previous, next, last), page size selector, and quick jump to page. The control is parameterized via dependency properties and can be reused in any WPF data grid or list view that requires pagination. It handles null/empty states and raises events for page changes.
A self-contained parser for Windows registry (.reg) files. It reads the file line by line, parsing registry keys, values, and data types (strings, dwords, binary) into an in-memory structure. The parser handles version detection, comments, escape sequences, and nested keys. It can be extracted and used in any tool that needs to inspect or process .reg files without invoking the Windows Registry API.