<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.mutigeraffe.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maintenance+script</id>
	<title>MutigerAffe Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mutigeraffe.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maintenance+script"/>
	<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/wiki/Special:Contributions/Maintenance_script"/>
	<updated>2026-10-21T02:33:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=MediaWiki:Sidebar&amp;diff=2559</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=MediaWiki:Sidebar&amp;diff=2559"/>
		<updated>2026-10-20T21:30:08Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: System&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
* Hytale&lt;br /&gt;
** BlockFactory:Main Page|Block Factory&lt;br /&gt;
** BetterBiomes:Main Page|Better Biomes&lt;br /&gt;
** BetterStorage:Main Page|Better Storage&lt;br /&gt;
** AcidGrounds:Main Page|Acid Grounds&lt;br /&gt;
** PocketBots:Main Page|Pocket Bots&lt;br /&gt;
** AnotherBackpackContent:Main Page|Another Backpack Content&lt;br /&gt;
* Libraries&lt;br /&gt;
** UtilityBiome:Main Page|Utility Biome&lt;br /&gt;
** UtilityConnect:Main Page|Utility Connect&lt;br /&gt;
* Minecraft&lt;br /&gt;
** TimeChecker:Main Page|Time Checker&lt;br /&gt;
* Terraria&lt;br /&gt;
** NewRanch:Main Page|New Ranch&lt;br /&gt;
* VS Code&lt;br /&gt;
** BlockyRenderer:Main Page|Blocky Renderer&lt;br /&gt;
** PrefabRenderer:Main Page|Prefab Renderer&lt;br /&gt;
** StudioZip:Main Page|Studio ZIP&lt;br /&gt;
** TaskDeck:Main Page|Task Deck&lt;br /&gt;
** StatLens:Main Page|Stat Lens&lt;br /&gt;
** LightweightWhiteboard:Main Page|Lightweight Whiteboard&lt;br /&gt;
* Links&lt;br /&gt;
** https://mutigeraffe.com/|mutigeraffe.com&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=Main_Page&amp;diff=2558</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=Main_Page&amp;diff=2558"/>
		<updated>2026-10-20T21:30:04Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: Hauptseiten&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MA Box start|title=Welcome to the MutigerAffe Wiki}}&lt;br /&gt;
&lt;br /&gt;
The documentation for the mods and VS Code extensions by MutigerAffe. Every project has its own wiki here, with guides and reference pages checked against the project&#039;s code. The wiki currently has &#039;&#039;&#039;{{NUMBEROFARTICLES}}&#039;&#039;&#039; articles.&lt;br /&gt;
&lt;br /&gt;
All projects and downloads are listed on [https://mutigeraffe.com/ mutigeraffe.com].&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
{{MA Box start|title=Hytale}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles ma-tiles-large&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=BlockFactory_Icon.png|size=x96px|link=BlockFactory:Main Page|label=Block Factory}}&lt;br /&gt;
{{MA Tile|image=BetterBiomes_Icon.png|size=x96px|link=BetterBiomes:Main Page|label=Better Biomes}}&lt;br /&gt;
{{MA Tile|image=BetterStorage_Icon.png|size=x96px|link=BetterStorage:Main Page|label=Better Storage}}&lt;br /&gt;
{{MA Tile|image=AcidGrounds_Icon.png|size=x96px|link=AcidGrounds:Main Page|label=Acid Grounds}}&lt;br /&gt;
{{MA Tile|image=PocketBots_Icon.png|size=x96px|link=PocketBots:Main Page|label=Pocket Bots}}&lt;br /&gt;
{{MA Tile|image=AnotherBackpackContent_Icon.png|size=x96px|link=AnotherBackpackContent:Main Page|label=Another Backpack Content}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-subtitle&amp;quot; style=&amp;quot;margin-top:0.9em&amp;quot;&amp;gt;Libraries&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles ma-tiles-large&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=UtilityBiome_Icon.png|size=x96px|link=UtilityBiome:Main Page|label=Utility Biome}}&lt;br /&gt;
{{MA Tile|image=UtilityConnect_Icon.png|size=x96px|link=UtilityConnect:Main Page|label=Utility Connect}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-columns&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Minecraft}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles ma-tiles-large&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=TimeChecker_Icon.png|size=x96px|link=TimeChecker:Main Page|label=Time Checker}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Terraria|class=ma-pixel}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles ma-tiles-large&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=NewRanch_Icon.png|size=x96px|link=NewRanch:Main Page|label=New Ranch}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box start|title=VS Code}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles ma-tiles-large&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=BlockyRenderer_Icon.png|size=x96px|link=BlockyRenderer:Main Page|label=Blocky Renderer}}&lt;br /&gt;
{{MA Tile|image=PrefabRenderer_Icon.png|size=x96px|link=PrefabRenderer:Main Page|label=Prefab Renderer}}&lt;br /&gt;
{{MA Tile|image=StudioZip_Icon.png|size=x96px|link=StudioZip:Main Page|label=Studio ZIP}}&lt;br /&gt;
{{MA Tile|image=TaskDeck_Icon.png|size=x96px|link=TaskDeck:Main Page|label=Task Deck}}&lt;br /&gt;
{{MA Tile|image=StatLens_Icon.png|size=x96px|link=StatLens:Main Page|label=Stat Lens}}&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|size=x96px|link=LightweightWhiteboard:Main Page|label=Lightweight Whiteboard}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Zoom_and_Pan&amp;diff=2557</id>
		<title>LightweightWhiteboard:Zoom and Pan</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Zoom_and_Pan&amp;diff=2557"/>
		<updated>2026-10-20T21:30:00Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zooming and panning only change the view. They do not change the board and are not part of the history.&lt;br /&gt;
&lt;br /&gt;
== Zoom ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! How&lt;br /&gt;
|-&lt;br /&gt;
| Zoom at the pointer || Hold &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt; and turn the mouse wheel. The point under the pointer stays in place.&lt;br /&gt;
|-&lt;br /&gt;
| Zoom in, zoom out || The magnifier buttons in the toolbar. Each click changes the zoom by a factor of 1.25, centered on the middle of the view.&lt;br /&gt;
|-&lt;br /&gt;
| Back to 100 % || Click the zoom level between the magnifier buttons.&lt;br /&gt;
|-&lt;br /&gt;
| Fit to window || The &#039;&#039;Fit to window&#039;&#039; button. The whole board fits into the view. Small boards are enlarged.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The zoom level ranges from 5 % to 1600 %.&lt;br /&gt;
* The toolbar shows the current zoom level, for example &amp;lt;code&amp;gt;89 %&amp;lt;/code&amp;gt;.&lt;br /&gt;
* When a board is opened or reverted, it is fitted into the view. A board that is smaller than the view is shown at 100 % and is not enlarged.&lt;br /&gt;
* From 200 % on, pixels are shown as sharp squares, so you can see single pixels.&lt;br /&gt;
* All sizes on the board, such as the pen size or the pointer position in the status bar, are in board pixels and do not depend on the zoom level.&lt;br /&gt;
&lt;br /&gt;
== Pan ==&lt;br /&gt;
When the board is larger than the view, you can move the view:&lt;br /&gt;
* drag with the &#039;&#039;&#039;middle mouse button&#039;&#039;&#039;&lt;br /&gt;
* hold &amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt; and drag with the left mouse button. The pointer turns into a hand.&lt;br /&gt;
* use the mouse wheel without &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;, or the scroll bars&lt;br /&gt;
&lt;br /&gt;
Panning works everywhere on the board, also over a floating image.&lt;br /&gt;
&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Version_History&amp;diff=2556</id>
		<title>LightweightWhiteboard:Version History</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Version_History&amp;diff=2556"/>
		<updated>2026-10-20T21:30:00Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1.1.0 (2026-10-18) ==&lt;br /&gt;
* The extension is now published as &#039;&#039;&#039;Lightweight Whiteboard&#039;&#039;&#039; by MutigerAffe. The extension ID is &amp;lt;code&amp;gt;MutigerAffe.vsc-whiteboard&amp;lt;/code&amp;gt;. Version 1.0.0 was called &#039;&#039;VSC Whiteboard&#039;&#039; and had the publisher name &amp;lt;code&amp;gt;fxbixn03&amp;lt;/code&amp;gt;.&lt;br /&gt;
* New extension icon.&lt;br /&gt;
* The UI is now English only. The German translation was removed.&lt;br /&gt;
* The extension is now under a proprietary license.&lt;br /&gt;
&lt;br /&gt;
== 1.0.0 (2026-09-29) ==&lt;br /&gt;
The first version, released as &#039;&#039;VSC Whiteboard&#039;&#039;.&lt;br /&gt;
* Board editor for &amp;lt;code&amp;gt;*.whiteboard&amp;lt;/code&amp;gt; files, which are stored as PNG, and the command &amp;lt;code&amp;gt;Whiteboard: New Whiteboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Pen, eraser, line, arrow, rectangle, ellipse and triangle (outline or filled), fill bucket with tolerance, color picker.&lt;br /&gt;
* Color palette plus &#039;&#039;My colors&#039;&#039;: define colors via RGB or hex and save them in the settings.&lt;br /&gt;
* Insert images by drag and drop (desktop, Explorer, browser), paste or file dialog. Move and resize them before placing.&lt;br /&gt;
* Undo, redo, save, revert and hot exit through VS Code. Zoom and pan.&lt;br /&gt;
* Optional &#039;&#039;Whiteboard (edit PNG)&#039;&#039; editor for regular PNG files.&lt;br /&gt;
* English and German UI.&lt;br /&gt;
&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Main_Page&amp;diff=2555</id>
		<title>LightweightWhiteboard:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Main_Page&amp;diff=2555"/>
		<updated>2026-10-20T21:29:59Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Lightweight Whiteboard Wiki}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-columns&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col-wide&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Lightweight Whiteboard}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-intro&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;ma-intro-icon&amp;quot;&amp;gt;[[File:LightweightWhiteboard_Icon.png|112px|link=|alt=Lightweight Whiteboard]]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;ma-intro-text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lightweight Whiteboard&#039;&#039;&#039; is a Visual Studio Code extension that opens a simple drawing board inside the editor. You can sketch with a pen, draw lines, arrows and shapes, fill areas with a paint bucket and drop images onto the board.&lt;br /&gt;
&lt;br /&gt;
Each board is a &amp;lt;code&amp;gt;*.whiteboard&amp;lt;/code&amp;gt; file that contains a normal PNG image, so it can live in your project like any other file. Saving, undo, redo and revert work like in any other VS Code editor. Existing PNG files can be opened in the board as well.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Latest version}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;ma-facts&amp;quot;&lt;br /&gt;
! Extension&lt;br /&gt;
| 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
! VS Code&lt;br /&gt;
| 1.90 or newer&lt;br /&gt;
|-&lt;br /&gt;
! Requires&lt;br /&gt;
| No other extensions&lt;br /&gt;
|-&lt;br /&gt;
! Download&lt;br /&gt;
| [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.vsc-whiteboard VS Code Marketplace]&lt;br /&gt;
|}&lt;br /&gt;
The information in this wiki is taken from version 1.1.0.&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box start|title=Quick start}}&lt;br /&gt;
&lt;br /&gt;
# Install the extension from the Marketplace. See [[LightweightWhiteboard:Installation|Installation]].&lt;br /&gt;
# Open the Command Palette (&amp;lt;code&amp;gt;Ctrl+Shift+P&amp;lt;/code&amp;gt;) and run &amp;lt;code&amp;gt;Whiteboard: New Whiteboard&amp;lt;/code&amp;gt;. A blank board opens.&lt;br /&gt;
# Draw with the pen (&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;), pick a color from the color bar and try the shapes. See [[LightweightWhiteboard:Drawing Tools|Drawing Tools]].&lt;br /&gt;
# Press &amp;lt;code&amp;gt;Ctrl+S&amp;lt;/code&amp;gt; and choose a name. The board is saved as a &amp;lt;code&amp;gt;.whiteboard&amp;lt;/code&amp;gt; file. See [[LightweightWhiteboard:Files and Saving|Files and Saving]].&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
{{MA Box start|title=Screenshot}}&lt;br /&gt;
[[File:LightweightWhiteboard_Screenshot_01.png|800px|center|A new board with the toolbar, the color bar and the status bar]]&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-columns&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Getting started}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|link=LightweightWhiteboard:Installation|label=Installation}}&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|link=LightweightWhiteboard:Getting Started|label=Getting Started}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Features}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|link=LightweightWhiteboard:Drawing Tools|label=Drawing Tools}}&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|link=LightweightWhiteboard:Colors|label=Colors}}&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|link=LightweightWhiteboard:Images|label=Images}}&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|link=LightweightWhiteboard:Zoom and Pan|label=Zoom and Pan}}&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|link=LightweightWhiteboard:Files and Saving|label=Files and Saving}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box start|title=Reference}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|link=LightweightWhiteboard:Commands and Settings|label=Commands and Settings}}&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|link=LightweightWhiteboard:FAQ and Troubleshooting|label=FAQ and Troubleshooting}}&lt;br /&gt;
{{MA Tile|image=LightweightWhiteboard_Icon.png|link=LightweightWhiteboard:Version History|label=Version History}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Installation&amp;diff=2554</id>
		<title>LightweightWhiteboard:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Installation&amp;diff=2554"/>
		<updated>2026-10-20T21:29:59Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! VS Code&lt;br /&gt;
| 1.90 or newer (&amp;lt;code&amp;gt;engines.vscode&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;^1.90.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
! Other extensions&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! Operating system&lt;br /&gt;
| Any system that runs VS Code. The board runs in a VS Code webview and needs no external programs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
=== From the Marketplace ===&lt;br /&gt;
# Open the [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.vsc-whiteboard Lightweight Whiteboard page on the VS Code Marketplace] and click &#039;&#039;Install&#039;&#039;.&lt;br /&gt;
# Or open the &#039;&#039;Extensions&#039;&#039; view in VS Code (&amp;lt;code&amp;gt;Ctrl+Shift+X&amp;lt;/code&amp;gt;), search for &#039;&#039;Lightweight Whiteboard&#039;&#039; and click &#039;&#039;Install&#039;&#039;.&lt;br /&gt;
# Or open &#039;&#039;Quick Open&#039;&#039; (&amp;lt;code&amp;gt;Ctrl+P&amp;lt;/code&amp;gt;) and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ext install MutigerAffe.vsc-whiteboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The extension ID is &amp;lt;code&amp;gt;MutigerAffe.vsc-whiteboard&amp;lt;/code&amp;gt;. The display name is &#039;&#039;Lightweight Whiteboard&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== From a .vsix file ===&lt;br /&gt;
If you have a &amp;lt;code&amp;gt;.vsix&amp;lt;/code&amp;gt; file, install it with &#039;&#039;Extensions → ... → Install from VSIX...&#039;&#039; or on the command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension vsc-whiteboard_1.1.0.vsix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activation ==&lt;br /&gt;
The extension has no startup activation. VS Code loads it the first time you run &amp;lt;code&amp;gt;Whiteboard: New Whiteboard&amp;lt;/code&amp;gt; or open a file in one of its editors.&lt;br /&gt;
&lt;br /&gt;
== After installing ==&lt;br /&gt;
* Files ending in &amp;lt;code&amp;gt;.whiteboard&amp;lt;/code&amp;gt; open in the board automatically.&lt;br /&gt;
* PNG files still open in the normal VS Code image preview. To draw on one, use &#039;&#039;View: Reopen Editor With...&#039;&#039; and choose &#039;&#039;Whiteboard (edit PNG)&#039;&#039;. See [[LightweightWhiteboard:Files and Saving|Files and Saving]].&lt;br /&gt;
&lt;br /&gt;
== Workspace Trust ==&lt;br /&gt;
The extension does not declare support for untrusted workspaces in its &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt;. In a workspace opened in Restricted Mode, VS Code may keep it disabled until you trust the workspace.&lt;br /&gt;
&lt;br /&gt;
== Uninstalling ==&lt;br /&gt;
Uninstall it in the &#039;&#039;Extensions&#039;&#039; view. Your &amp;lt;code&amp;gt;.whiteboard&amp;lt;/code&amp;gt; files stay where they are. They are PNG images and can still be opened with any image viewer after renaming them to &amp;lt;code&amp;gt;.png&amp;lt;/code&amp;gt;. The setting &amp;lt;code&amp;gt;vscWhiteboard.customColors&amp;lt;/code&amp;gt; stays in your user settings until you remove it.&lt;br /&gt;
&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Images&amp;diff=2553</id>
		<title>LightweightWhiteboard:Images</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Images&amp;diff=2553"/>
		<updated>2026-10-20T21:29:59Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can put images onto the board, for example a screenshot to mark up. An inserted image first floats above the board. You can move and resize it until you place it. Once placed, it is part of the board pixels.&lt;br /&gt;
&lt;br /&gt;
== Supported formats ==&lt;br /&gt;
PNG, JPEG (&amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.jpeg&amp;lt;/code&amp;gt;), GIF, BMP, WebP, SVG, ICO, AVIF and &amp;lt;code&amp;gt;.whiteboard&amp;lt;/code&amp;gt; files. An animated GIF is inserted as a still image.&lt;br /&gt;
&lt;br /&gt;
Files and web images that the extension reads for the board may be at most 50 MB.&lt;br /&gt;
&lt;br /&gt;
== Inserting an image ==&lt;br /&gt;
=== File dialog ===&lt;br /&gt;
Click &#039;&#039;Insert image...&#039;&#039; in the toolbar. A file dialog opens. You can select several files at once. The images appear in the middle of the visible part of the board.&lt;br /&gt;
&lt;br /&gt;
=== Drag and drop ===&lt;br /&gt;
Drag an image onto the board. It appears centered on the drop point. If you drop several files, each further image is shifted by 24 pixels so they do not cover each other completely.&lt;br /&gt;
&lt;br /&gt;
You can drop:&lt;br /&gt;
* &#039;&#039;&#039;files from the desktop or your file manager&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;files from the VS Code Explorer&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;images or image links from a web browser.&#039;&#039;&#039; The extension downloads the image. The server must send it with an image content type.&lt;br /&gt;
&lt;br /&gt;
VS Code only passes a drop to the board while you hold &amp;lt;code&amp;gt;Shift&amp;lt;/code&amp;gt;. The hint in the status bar reminds you of this. While you drag over the board it is highlighted as a drop target.&lt;br /&gt;
&lt;br /&gt;
=== Paste ===&lt;br /&gt;
Copy an image file or a screenshot to the clipboard and press &amp;lt;code&amp;gt;Ctrl+V&amp;lt;/code&amp;gt; on the board. The image appears in the middle of the visible part of the board. If the clipboard holds several image files, only the first one is inserted.&lt;br /&gt;
&lt;br /&gt;
== Size of a new image ==&lt;br /&gt;
* An image that is larger than 90 % of the board width or height is scaled down to fit. Smaller images keep their size. Images are never enlarged.&lt;br /&gt;
* An SVG without its own size is inserted at 300 × 300 pixels.&lt;br /&gt;
* The image is moved so that it starts inside the board.&lt;br /&gt;
&lt;br /&gt;
== Moving and resizing ==&lt;br /&gt;
While the image floats, it has a dashed outline and a handle in each corner. The status bar shows a hint.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! How&lt;br /&gt;
|-&lt;br /&gt;
| Move || Drag the image.&lt;br /&gt;
|-&lt;br /&gt;
| Resize || Drag a corner handle. The aspect ratio is kept.&lt;br /&gt;
|-&lt;br /&gt;
| Resize freely || Hold &amp;lt;code&amp;gt;Shift&amp;lt;/code&amp;gt; while you drag a corner handle.&lt;br /&gt;
|-&lt;br /&gt;
| Place || Press &amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt;, click on the board next to the image, or choose another tool.&lt;br /&gt;
|-&lt;br /&gt;
| Discard || Press &amp;lt;code&amp;gt;Esc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Backspace&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The smallest size is 4 × 4 pixels. Parts of the image that are moved outside the board are cut off when you place it.&lt;br /&gt;
&lt;br /&gt;
A floating image is also placed when you insert another image, clear the board, undo or redo. Undo right after inserting places the image and takes it back in one step.&lt;br /&gt;
&lt;br /&gt;
Panning with the middle mouse button or &amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt; + drag also works while the pointer is over the image. See [[LightweightWhiteboard:Zoom and Pan|Zoom and Pan]].&lt;br /&gt;
&lt;br /&gt;
== Saving with a floating image ==&lt;br /&gt;
If you save while an image still floats, the saved file contains the image at its current position. On the board it keeps floating, so you can still move it.&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
If an image cannot be inserted, a message appears at the top of the board and disappears after a few seconds. You can also close it with its &#039;&#039;&#039;×&#039;&#039;&#039; button. Typical messages:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Message !! Cause&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;This is not an image that can be inserted.&#039;&#039; || The file or the dropped data could not be decoded as an image, or the drop contained no image at all.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Not a supported image: &amp;lt;name&amp;gt;&#039;&#039; || A file from the Explorer or the file dialog has an extension that is not in the list above.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Not an image: &amp;lt;address&amp;gt;&#039;&#039; || A web address did not return an image.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Image is too large: &amp;lt;name&amp;gt;&#039;&#039; || The file or download is larger than 50 MB.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Getting_Started&amp;diff=2552</id>
		<title>LightweightWhiteboard:Getting Started</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Getting_Started&amp;diff=2552"/>
		<updated>2026-10-20T21:29:58Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows how to open a board and what the parts of the board are.&lt;br /&gt;
&lt;br /&gt;
== Opening a board ==&lt;br /&gt;
There are three ways to get a board:&lt;br /&gt;
* &#039;&#039;&#039;New board:&#039;&#039;&#039; run &amp;lt;code&amp;gt;Whiteboard: New Whiteboard&amp;lt;/code&amp;gt; from the Command Palette (&amp;lt;code&amp;gt;Ctrl+Shift+P&amp;lt;/code&amp;gt;). An unsaved board named &amp;lt;code&amp;gt;whiteboard-1.whiteboard&amp;lt;/code&amp;gt; opens. Each further new board in the same session gets the next number.&lt;br /&gt;
* &#039;&#039;&#039;Existing board:&#039;&#039;&#039; open any &amp;lt;code&amp;gt;.whiteboard&amp;lt;/code&amp;gt; file, for example from the Explorer. It opens in the board directly.&lt;br /&gt;
* &#039;&#039;&#039;PNG image:&#039;&#039;&#039; open a &amp;lt;code&amp;gt;.png&amp;lt;/code&amp;gt; file, then run &#039;&#039;View: Reopen Editor With...&#039;&#039; and choose &#039;&#039;Whiteboard (edit PNG)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A new board is white and has the size from the settings &amp;lt;code&amp;gt;vscWhiteboard.defaultWidth&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;vscWhiteboard.defaultHeight&amp;lt;/code&amp;gt; (default 1920 × 1080 pixels). See [[LightweightWhiteboard:Commands and Settings|Commands and Settings]].&lt;br /&gt;
&lt;br /&gt;
[[File:LightweightWhiteboard_Screenshot_01.png|800px|center|The board with toolbar, color bar and status bar]]&lt;br /&gt;
&lt;br /&gt;
== The parts of the board ==&lt;br /&gt;
=== Toolbar ===&lt;br /&gt;
The top row holds the tools and actions, from left to right:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Group !! Buttons&lt;br /&gt;
|-&lt;br /&gt;
| Freehand || Pen, Eraser&lt;br /&gt;
|-&lt;br /&gt;
| Shapes || Line, Arrow, Rectangle, Ellipse, Triangle&lt;br /&gt;
|-&lt;br /&gt;
| Color tools || Fill bucket, Pick color&lt;br /&gt;
|-&lt;br /&gt;
| Images || &#039;&#039;Insert image...&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Tool options || &#039;&#039;Size&#039;&#039; slider, &#039;&#039;Outline&#039;&#039; and &#039;&#039;Filled&#039;&#039; buttons, &#039;&#039;Tolerance&#039;&#039; slider. Only the options that fit the current tool are shown.&lt;br /&gt;
|-&lt;br /&gt;
| History || Undo, Redo, &#039;&#039;Clear board&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Zoom || Zoom out, current zoom level, Zoom in, &#039;&#039;Fit to window&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hover over a button to see its name and its key. See [[LightweightWhiteboard:Drawing Tools|Drawing Tools]] and [[LightweightWhiteboard:Zoom and Pan|Zoom and Pan]].&lt;br /&gt;
&lt;br /&gt;
=== Color bar ===&lt;br /&gt;
The second row shows the current color, a fixed palette of 16 colors and your own colors under &#039;&#039;My colors&#039;&#039;. See [[LightweightWhiteboard:Colors|Colors]].&lt;br /&gt;
&lt;br /&gt;
=== Board ===&lt;br /&gt;
The white area in the middle is the board. Around it is a margin in the background color of your VS Code theme. Transparent areas of an opened PNG are shown with a light gray checkerboard. You can drop images onto the board. See [[LightweightWhiteboard:Images|Images]].&lt;br /&gt;
&lt;br /&gt;
=== Status bar ===&lt;br /&gt;
The bottom row shows, from left to right:&lt;br /&gt;
* a short hint for the current tool or for an image that is not placed yet&lt;br /&gt;
* the pointer position in board pixels, while the pointer is over the board&lt;br /&gt;
* the size of the board in pixels, for example &amp;lt;code&amp;gt;1920 × 1080 px&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What the board remembers ==&lt;br /&gt;
Each open board remembers its tool, color, size, fill mode and tolerance while the tab is open. A board that you open for the first time starts with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option !! Start value&lt;br /&gt;
|-&lt;br /&gt;
| Tool || Pen&lt;br /&gt;
|-&lt;br /&gt;
| Color || Black (&amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Size || 4 px&lt;br /&gt;
|-&lt;br /&gt;
| Fill mode || Outline&lt;br /&gt;
|-&lt;br /&gt;
| Tolerance || 20 %&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The color picker tool is never remembered. If it was active, the board comes back with the pen.&lt;br /&gt;
&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Files_and_Saving&amp;diff=2551</id>
		<title>LightweightWhiteboard:Files and Saving</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Files_and_Saving&amp;diff=2551"/>
		<updated>2026-10-20T21:29:58Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A board is stored as a single image file. There is no separate project format and no layers. What you see on the board is what is saved.&lt;br /&gt;
&lt;br /&gt;
== The .whiteboard format ==&lt;br /&gt;
A &amp;lt;code&amp;gt;.whiteboard&amp;lt;/code&amp;gt; file is a normal PNG image with a different file extension. VS Code opens these files in the board automatically.&lt;br /&gt;
* To view a board in another program, copy or rename it to &amp;lt;code&amp;gt;.png&amp;lt;/code&amp;gt;.&lt;br /&gt;
* You can also rename a PNG to &amp;lt;code&amp;gt;.whiteboard&amp;lt;/code&amp;gt; to open it in the board by default.&lt;br /&gt;
* In version control the file behaves like any other PNG image.&lt;br /&gt;
&lt;br /&gt;
The size of a board is the size of its image. A new board gets the size from &amp;lt;code&amp;gt;vscWhiteboard.defaultWidth&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;vscWhiteboard.defaultHeight&amp;lt;/code&amp;gt; (default 1920 × 1080 pixels). The size of an existing board cannot be changed in the board. See [[LightweightWhiteboard:Commands and Settings|Commands and Settings]].&lt;br /&gt;
&lt;br /&gt;
== Editing PNG files ==&lt;br /&gt;
The extension has a second editor, &#039;&#039;Whiteboard (edit PNG)&#039;&#039;, for normal &amp;lt;code&amp;gt;.png&amp;lt;/code&amp;gt; files. It is not the default, so PNG files still open in the VS Code image preview. To draw on a PNG:&lt;br /&gt;
# Open the PNG.&lt;br /&gt;
# Run &#039;&#039;View: Reopen Editor With...&#039;&#039; from the Command Palette, or right-click the file in the Explorer and choose &#039;&#039;Open With...&#039;&#039;.&lt;br /&gt;
# Choose &#039;&#039;Whiteboard (edit PNG)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
It works exactly like the normal board. Saving overwrites the PNG file.&lt;br /&gt;
* Transparent areas are shown with a checkerboard and stay transparent until you draw on them.&lt;br /&gt;
* The eraser and &#039;&#039;Clear board&#039;&#039; paint white, they do not restore transparency.&lt;br /&gt;
* The board encodes the image again when you save. Extra data stored in the original file, such as text metadata, may not be kept.&lt;br /&gt;
&lt;br /&gt;
Other image formats such as JPEG cannot be opened as a board. You can insert them into a board instead. See [[LightweightWhiteboard:Images|Images]].&lt;br /&gt;
&lt;br /&gt;
== Saving ==&lt;br /&gt;
Every change marks the file as modified, like in a text editor.&lt;br /&gt;
* &#039;&#039;File → Save&#039;&#039; (&amp;lt;code&amp;gt;Ctrl+S&amp;lt;/code&amp;gt;) writes the board to the file.&lt;br /&gt;
* &#039;&#039;File → Save As...&#039;&#039; writes it to a new file. The content is always PNG, whatever name you choose.&lt;br /&gt;
* A new board from &amp;lt;code&amp;gt;Whiteboard: New Whiteboard&amp;lt;/code&amp;gt; has no file yet. Saving it opens the save dialog. If a folder is open, the dialog starts in the first workspace folder with the name &amp;lt;code&amp;gt;whiteboard-1.whiteboard&amp;lt;/code&amp;gt; (or the next number).&lt;br /&gt;
&lt;br /&gt;
If the board does not answer within 30 seconds while saving, VS Code shows the error &#039;&#039;The whiteboard did not respond in time.&#039;&#039; and the file is not written.&lt;br /&gt;
&lt;br /&gt;
== Revert ==&lt;br /&gt;
&#039;&#039;File → Revert File&#039;&#039; reloads the board from disk. All unsaved changes and the undo history are discarded. Reverting a new, unsaved board makes it blank again.&lt;br /&gt;
&lt;br /&gt;
== Unsaved boards and hot exit ==&lt;br /&gt;
Unsaved boards take part in the VS Code backup. If you close VS Code with unsaved boards and hot exit is enabled (VS Code setting &amp;lt;code&amp;gt;files.hotExit&amp;lt;/code&amp;gt;), the boards come back with their changes on the next start. This also works for new boards that were never saved.&lt;br /&gt;
&lt;br /&gt;
== Tabs ==&lt;br /&gt;
* A board can only be open in one editor at a time.&lt;br /&gt;
* A board keeps its state while its tab is in the background, including a floating image and the undo history.&lt;br /&gt;
&lt;br /&gt;
== Files that cannot be read ==&lt;br /&gt;
If a file is not a valid image, the board shows a blank board with the default size and the message &#039;&#039;The file could not be read as an image. Saving will overwrite it with the board shown here.&#039;&#039; This message stays until you close it. Do not save if you want to keep the original file.&lt;br /&gt;
&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:FAQ_and_Troubleshooting&amp;diff=2550</id>
		<title>LightweightWhiteboard:FAQ and Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:FAQ_and_Troubleshooting&amp;diff=2550"/>
		<updated>2026-10-20T21:29:58Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FAQ ==&lt;br /&gt;
;Can I open a board without the extension?&lt;br /&gt;
:Yes. A &amp;lt;code&amp;gt;.whiteboard&amp;lt;/code&amp;gt; file is a PNG image. Rename it or a copy of it to &amp;lt;code&amp;gt;.png&amp;lt;/code&amp;gt; and open it in any image viewer. See [[LightweightWhiteboard:Files and Saving|Files and Saving]].&lt;br /&gt;
&lt;br /&gt;
;Can I move a line or shape after drawing it?&lt;br /&gt;
:No. Everything you draw goes straight into the image pixels. There are no objects or layers. Use undo to take a step back. Only an inserted image can be moved and resized, and only until it is placed. See [[LightweightWhiteboard:Images|Images]].&lt;br /&gt;
&lt;br /&gt;
;Can I change the size of a board?&lt;br /&gt;
:Not in the board. New boards get their size from &amp;lt;code&amp;gt;vscWhiteboard.defaultWidth&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;vscWhiteboard.defaultHeight&amp;lt;/code&amp;gt;. Change these settings before you create the board. See [[LightweightWhiteboard:Commands and Settings|Commands and Settings]].&lt;br /&gt;
&lt;br /&gt;
;Why does the eraser paint white on my PNG?&lt;br /&gt;
:The eraser always paints white. It does not make pixels transparent. The same applies to &#039;&#039;Clear board&#039;&#039;. See [[LightweightWhiteboard:Drawing Tools#Eraser|Drawing Tools]].&lt;br /&gt;
&lt;br /&gt;
;Can I write text on the board?&lt;br /&gt;
:There is no text tool. You can write with the pen or insert an image that contains text.&lt;br /&gt;
&lt;br /&gt;
;Where are my own colors stored?&lt;br /&gt;
:In the user setting &amp;lt;code&amp;gt;vscWhiteboard.customColors&amp;lt;/code&amp;gt;. They are not stored in the board file and are the same in every workspace. See [[LightweightWhiteboard:Colors|Colors]].&lt;br /&gt;
&lt;br /&gt;
;Is the UI available in other languages?&lt;br /&gt;
:No. Since version 1.1.0 the board is in English only. Version 1.0.0 also had a German UI.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
;Dropping an image from the Explorer or the desktop does nothing.&lt;br /&gt;
:Hold &amp;lt;code&amp;gt;Shift&amp;lt;/code&amp;gt; while you drop. Without it VS Code handles the drop itself and opens the file in a new editor instead of passing it to the board. See [[LightweightWhiteboard:Images#Drag and drop|Images]].&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;This is not an image that can be inserted.&#039;&#039;&lt;br /&gt;
:The dropped or pasted data could not be read as an image. Check the format against the list on the [[LightweightWhiteboard:Images#Supported formats|Images]] page. When dragging from a web browser, try dragging the image itself instead of a link to a page.&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;Not an image&#039;&#039; when dropping from a browser.&lt;br /&gt;
:The web server did not return an image for that address, for example because the link points to a web page or a login is required. Save the image to disk first and insert the file.&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;The file could not be read as an image.&#039;&#039;&lt;br /&gt;
:The file is not a valid PNG. The board shows a blank board instead. Saving would overwrite the file with that blank board. Close the tab without saving if you want to keep the file.&lt;br /&gt;
&lt;br /&gt;
;The keys for the tools do not work.&lt;br /&gt;
:Click on the board first. The keys do nothing while a text field, for example the hex field in the color dialog, has the focus.&lt;br /&gt;
&lt;br /&gt;
;A PNG still opens in the normal image preview.&lt;br /&gt;
:That is the default. Use &#039;&#039;View: Reopen Editor With...&#039;&#039; and choose &#039;&#039;Whiteboard (edit PNG)&#039;&#039;, or set &amp;lt;code&amp;gt;workbench.editorAssociations&amp;lt;/code&amp;gt;. See [[LightweightWhiteboard:Commands and Settings#Editors and file types|Commands and Settings]].&lt;br /&gt;
&lt;br /&gt;
;Undo does nothing on a very large board.&lt;br /&gt;
:The history keeps up to about 384 MB of image data per board. Older steps are dropped when it gets larger. After &#039;&#039;Revert File&#039;&#039; the history starts empty, so steps from before the revert cannot be undone.&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;The whiteboard did not respond in time.&#039;&#039;&lt;br /&gt;
:Saving waited 30 seconds for the board to hand over its image and got no answer. The file was not written. Try to save again.&lt;br /&gt;
&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Drawing_Tools&amp;diff=2549</id>
		<title>LightweightWhiteboard:Drawing Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Drawing_Tools&amp;diff=2549"/>
		<updated>2026-10-20T21:29:58Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All tools draw with the left mouse button. The right mouse button has no function on the board. Every tool also has a key, shown in the button tooltip.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tool !! Key !! Options&lt;br /&gt;
|-&lt;br /&gt;
| [[#Pen|Pen]] || &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || Size&lt;br /&gt;
|-&lt;br /&gt;
| [[#Eraser|Eraser]] || &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt; || Size&lt;br /&gt;
|-&lt;br /&gt;
| [[#Shapes|Line]] || &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; || Size&lt;br /&gt;
|-&lt;br /&gt;
| [[#Shapes|Arrow]] || &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || Size&lt;br /&gt;
|-&lt;br /&gt;
| [[#Shapes|Rectangle]] || &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || Size, Outline or Filled&lt;br /&gt;
|-&lt;br /&gt;
| [[#Shapes|Ellipse]] || &amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt; || Size, Outline or Filled&lt;br /&gt;
|-&lt;br /&gt;
| [[#Shapes|Triangle]] || &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || Size, Outline or Filled&lt;br /&gt;
|-&lt;br /&gt;
| [[#Fill bucket|Fill bucket]] || &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt; || Tolerance&lt;br /&gt;
|-&lt;br /&gt;
| [[#Pick color|Pick color]] || &amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt; || None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The keys work in upper and lower case. They do nothing while you type in a text field, for example in the color dialog, or while &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Alt&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Cmd&amp;lt;/code&amp;gt; is held.&lt;br /&gt;
&lt;br /&gt;
== Size ==&lt;br /&gt;
The &#039;&#039;Size&#039;&#039; slider sets the line width for the pen, the eraser and all shapes. The range is 1 to 100 pixels. The size is measured in board pixels, so it does not change with the zoom level.&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; to make the size smaller and &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt; to make it larger. Each step changes the size by about 15 % of the current value, but at least by 1 pixel.&lt;br /&gt;
&lt;br /&gt;
The slider is hidden for the fill bucket and the color picker.&lt;br /&gt;
&lt;br /&gt;
== Pen ==&lt;br /&gt;
The pen draws a smooth freehand line in the current color. A single click draws a dot. While the pen is active, the mouse pointer is a circle that shows the size of the pen.&lt;br /&gt;
&lt;br /&gt;
== Eraser ==&lt;br /&gt;
The eraser works like the pen but paints white (&amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt;). It does not make pixels transparent. On a PNG with transparent areas, erased parts become white.&lt;br /&gt;
&lt;br /&gt;
== Shapes ==&lt;br /&gt;
Press the mouse button at the start point, drag and release at the end point. A preview follows the mouse while you drag.&lt;br /&gt;
* &#039;&#039;&#039;Line&#039;&#039;&#039; draws a straight line.&lt;br /&gt;
* &#039;&#039;&#039;Arrow&#039;&#039;&#039; draws a line with a filled arrowhead at the end point. The head grows with the size.&lt;br /&gt;
* &#039;&#039;&#039;Rectangle&#039;&#039;&#039; and &#039;&#039;&#039;Ellipse&#039;&#039;&#039; fill the box between start and end point.&lt;br /&gt;
* &#039;&#039;&#039;Triangle&#039;&#039;&#039; draws a triangle in the box between start and end point. If you drag downwards, the tip points up. If you drag upwards, the tip points down.&lt;br /&gt;
&lt;br /&gt;
A drag shorter than one pixel draws nothing.&lt;br /&gt;
&lt;br /&gt;
=== Outline or filled ===&lt;br /&gt;
For rectangle, ellipse and triangle the toolbar shows the buttons &#039;&#039;Outline&#039;&#039; and &#039;&#039;Filled&#039;&#039;. &#039;&#039;Outline&#039;&#039; draws only the border with the current size. &#039;&#039;Filled&#039;&#039; fills the whole shape with the current color. Lines and arrows have no fill mode.&lt;br /&gt;
&lt;br /&gt;
=== Holding Shift ===&lt;br /&gt;
Hold &amp;lt;code&amp;gt;Shift&amp;lt;/code&amp;gt; while you drag to constrain the shape:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Shape !! With Shift&lt;br /&gt;
|-&lt;br /&gt;
| Line, Arrow || The angle snaps to steps of 45°.&lt;br /&gt;
|-&lt;br /&gt;
| Rectangle || Square&lt;br /&gt;
|-&lt;br /&gt;
| Ellipse || Circle&lt;br /&gt;
|-&lt;br /&gt;
| Triangle || Equilateral triangle&lt;br /&gt;
|}&lt;br /&gt;
You can press or release &amp;lt;code&amp;gt;Shift&amp;lt;/code&amp;gt; during the drag. The preview updates right away.&lt;br /&gt;
&lt;br /&gt;
=== Cancelling ===&lt;br /&gt;
Press &amp;lt;code&amp;gt;Esc&amp;lt;/code&amp;gt; during a drag to cancel the stroke or shape. Nothing is drawn.&lt;br /&gt;
&lt;br /&gt;
== Fill bucket ==&lt;br /&gt;
Click on the board to fill the connected area around that point with the current color. The fill spreads to the left, right, top and bottom, not diagonally.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Tolerance&#039;&#039; slider (0 to 100 %) sets how much a pixel may differ from the clicked pixel and still be filled. At 0 % only pixels with exactly the same color are filled. Higher values also fill similar colors, which helps with anti-aliased edges. The tolerance applies to each color channel and to transparency.&lt;br /&gt;
&lt;br /&gt;
The filled pixels are always fully opaque. Clicking an area that already has the current color changes nothing.&lt;br /&gt;
&lt;br /&gt;
== Pick color ==&lt;br /&gt;
Click on the board to take the color of that pixel as the current color. You can also hold the button and drag to pick continuously. When you release the button, the board switches back to the tool you used before.&lt;br /&gt;
&lt;br /&gt;
Transparent pixels are picked as they look on the white board. A fully transparent pixel gives white.&lt;br /&gt;
&lt;br /&gt;
== Clear board ==&lt;br /&gt;
The &#039;&#039;Clear board&#039;&#039; button in the toolbar fills the whole board with white. Clearing is one step in the history and can be undone.&lt;br /&gt;
&lt;br /&gt;
== Undo and redo ==&lt;br /&gt;
Every stroke, shape, fill, inserted image and clear is one step. Undo and redo use the normal VS Code commands, so the toolbar buttons and the usual keyboard shortcuts (&amp;lt;code&amp;gt;Ctrl+Z&amp;lt;/code&amp;gt; for undo) both work. The extension adds no shortcuts of its own for this. Which key does redo depends on your VS Code key bindings.&lt;br /&gt;
&lt;br /&gt;
The history keeps up to about 384 MB of image data per board. When it gets larger, the oldest steps are dropped and can no longer be undone. Reverting the file also clears the history. See [[LightweightWhiteboard:Files and Saving|Files and Saving]].&lt;br /&gt;
&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Commands_and_Settings&amp;diff=2548</id>
		<title>LightweightWhiteboard:Commands and Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Commands_and_Settings&amp;diff=2548"/>
		<updated>2026-10-20T21:29:58Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists everything the extension adds to VS Code, taken from its &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt;, and the keys that work on the board.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command Palette !! Command ID !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Whiteboard: New Whiteboard&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vscWhiteboard.new&amp;lt;/code&amp;gt; || Opens a new, unsaved board named &amp;lt;code&amp;gt;whiteboard-&amp;lt;n&amp;gt;.whiteboard&amp;lt;/code&amp;gt;. See [[LightweightWhiteboard:Getting Started|Getting Started]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The extension adds no menu entries. To open a PNG in the board, use the built-in VS Code command &#039;&#039;View: Reopen Editor With...&#039;&#039; or &#039;&#039;Open With...&#039;&#039; in the Explorer context menu.&lt;br /&gt;
&lt;br /&gt;
== Editors and file types ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Editor !! View type !! Files !! Priority&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Whiteboard&#039;&#039; || &amp;lt;code&amp;gt;vscWhiteboard.editor&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*.whiteboard&amp;lt;/code&amp;gt; || Default. These files open in the board automatically.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Whiteboard (edit PNG)&#039;&#039; || &amp;lt;code&amp;gt;vscWhiteboard.pngEditor&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;*.png&amp;lt;/code&amp;gt; || Option. Only used when you choose it with &#039;&#039;Reopen Editor With...&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The extension adds no languages. To open all PNG files in the board by default, you can use the VS Code setting &amp;lt;code&amp;gt;workbench.editorAssociations&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;workbench.editorAssociations&amp;quot;: {&lt;br /&gt;
    &amp;quot;*.png&amp;quot;: &amp;quot;vscWhiteboard.pngEditor&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
All settings are in the section &#039;&#039;Whiteboard&#039;&#039; of the settings editor.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Type !! Default !! Values !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vscWhiteboard.customColors&amp;lt;/code&amp;gt; || list of strings || &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; || hex colors like &amp;lt;code&amp;gt;#1e90ff&amp;lt;/code&amp;gt; || Your saved colors from the color dialog (&#039;&#039;My colors&#039;&#039;). Shared by all boards. See [[LightweightWhiteboard:Colors|Colors]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vscWhiteboard.defaultWidth&amp;lt;/code&amp;gt; || integer || &amp;lt;code&amp;gt;1920&amp;lt;/code&amp;gt; || 100 to 8000 || Width in pixels of new boards.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vscWhiteboard.defaultHeight&amp;lt;/code&amp;gt; || integer || &amp;lt;code&amp;gt;1080&amp;lt;/code&amp;gt; || 100 to 8000 || Height in pixels of new boards.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The board writes &amp;lt;code&amp;gt;vscWhiteboard.customColors&amp;lt;/code&amp;gt; to your &#039;&#039;&#039;user&#039;&#039;&#039; settings when you save or remove a color in the color dialog. Changes to the setting reach all open boards at once.&lt;br /&gt;
* &amp;lt;code&amp;gt;defaultWidth&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;defaultHeight&amp;lt;/code&amp;gt; are read when a board is opened. They only apply to boards without an image: new boards, reverted new boards and files that could not be read. Existing boards keep the size of their image.&lt;br /&gt;
* The ranges are part of the setting definition. The settings editor warns about values outside the range. The board itself does not check them.&lt;br /&gt;
&lt;br /&gt;
Example for &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;vscWhiteboard.defaultWidth&amp;quot;: 1280,&lt;br /&gt;
&amp;quot;vscWhiteboard.defaultHeight&amp;quot;: 720,&lt;br /&gt;
&amp;quot;vscWhiteboard.customColors&amp;quot;: [&amp;quot;#1e90ff&amp;quot;, &amp;quot;#ff8800&amp;quot;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
The extension adds no VS Code key bindings. The following keys only work while the board has the focus and you are not typing in a text field.&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Tool&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; || Pen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt; || Eraser&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; || Line&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || Arrow&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || Rectangle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt; || Ellipse&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; || Triangle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;F&amp;lt;/code&amp;gt; || Fill bucket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt; || Pick color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Other keys ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Action&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt; || Smaller / larger size&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Shift&amp;lt;/code&amp;gt; (while drawing a shape) || Square, circle, equilateral triangle, lines in 45° steps&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Shift&amp;lt;/code&amp;gt; (while resizing an image) || Ignore the aspect ratio&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Esc&amp;lt;/code&amp;gt; || Cancel the stroke or shape you are drawing, or discard a floating image&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Backspace&amp;lt;/code&amp;gt; || Discard a floating image&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt; || Place a floating image&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt; + drag || Pan the view&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt; + mouse wheel || Zoom at the pointer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Ctrl+V&amp;lt;/code&amp;gt; || Paste an image from the clipboard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Undo, redo and save ===&lt;br /&gt;
Undo, redo, save and revert are normal VS Code commands and use your VS Code key bindings, for example &amp;lt;code&amp;gt;Ctrl+Z&amp;lt;/code&amp;gt; for undo and &amp;lt;code&amp;gt;Ctrl+S&amp;lt;/code&amp;gt; for save.&lt;br /&gt;
&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Colors&amp;diff=2547</id>
		<title>LightweightWhiteboard:Colors</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=LightweightWhiteboard:Colors&amp;diff=2547"/>
		<updated>2026-10-20T21:29:58Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The color bar below the toolbar sets the color for the pen, the shapes and the fill bucket. The eraser always paints white.&lt;br /&gt;
&lt;br /&gt;
== Color bar ==&lt;br /&gt;
From left to right the color bar shows:&lt;br /&gt;
* the &#039;&#039;&#039;current color&#039;&#039;&#039;. Click it to open the [[#Color dialog|color dialog]].&lt;br /&gt;
* the &#039;&#039;&#039;palette&#039;&#039;&#039; with 16 fixed colors&lt;br /&gt;
* &#039;&#039;&#039;My colors&#039;&#039;&#039;: your own saved colors, followed by a &#039;&#039;&#039;+&#039;&#039;&#039; button (&#039;&#039;New color...&#039;&#039;) that also opens the color dialog&lt;br /&gt;
&lt;br /&gt;
Click a swatch to make it the current color. The swatch that matches the current color is highlighted. Hover over a swatch to see its hex value.&lt;br /&gt;
&lt;br /&gt;
== Palette ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Row !! Colors&lt;br /&gt;
|-&lt;br /&gt;
| Grays || &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; (black), &amp;lt;code&amp;gt;#595959&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#a6a6a6&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt; (white)&lt;br /&gt;
|-&lt;br /&gt;
| Colors || &amp;lt;code&amp;gt;#e53935&amp;lt;/code&amp;gt; (red), &amp;lt;code&amp;gt;#fb8c00&amp;lt;/code&amp;gt; (orange), &amp;lt;code&amp;gt;#fdd835&amp;lt;/code&amp;gt; (yellow), &amp;lt;code&amp;gt;#43a047&amp;lt;/code&amp;gt; (green), &amp;lt;code&amp;gt;#00acc1&amp;lt;/code&amp;gt; (cyan), &amp;lt;code&amp;gt;#1e88e5&amp;lt;/code&amp;gt; (blue), &amp;lt;code&amp;gt;#283593&amp;lt;/code&amp;gt; (dark blue), &amp;lt;code&amp;gt;#8e24aa&amp;lt;/code&amp;gt; (purple), &amp;lt;code&amp;gt;#d81b60&amp;lt;/code&amp;gt; (pink), &amp;lt;code&amp;gt;#6d4c41&amp;lt;/code&amp;gt; (brown)&lt;br /&gt;
|-&lt;br /&gt;
| Light || &amp;lt;code&amp;gt;#fff59d&amp;lt;/code&amp;gt; (light yellow), &amp;lt;code&amp;gt;#90caf9&amp;lt;/code&amp;gt; (light blue)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The palette cannot be changed. Use &#039;&#039;My colors&#039;&#039; for your own colors.&lt;br /&gt;
&lt;br /&gt;
== Color dialog ==&lt;br /&gt;
The dialog &#039;&#039;Choose color&#039;&#039; opens below the swatch or button you clicked. It contains:&lt;br /&gt;
* a preview of the color and a color field that opens the standard color picker of the webview&lt;br /&gt;
* sliders and number fields for &#039;&#039;&#039;R&#039;&#039;&#039;, &#039;&#039;&#039;G&#039;&#039;&#039; and &#039;&#039;&#039;B&#039;&#039;&#039;, each from 0 to 255&lt;br /&gt;
* a &#039;&#039;&#039;Hex&#039;&#039;&#039; field&lt;br /&gt;
&lt;br /&gt;
All fields stay in sync. The hex field accepts &amp;lt;code&amp;gt;#rrggbb&amp;lt;/code&amp;gt; and the short form &amp;lt;code&amp;gt;#rgb&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; is optional and upper and lower case don&#039;t matter. If the value is not valid, the dialog shows &#039;&#039;Enter a hex value like #1e90ff or #19f.&#039;&#039; and the buttons &#039;&#039;Save to my colors&#039;&#039; and &#039;&#039;Use&#039;&#039; are disabled.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Button !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Save to my colors&#039;&#039; || Adds the color to &#039;&#039;My colors&#039;&#039; and makes it the current color&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Use&#039;&#039; || Makes it the current color without saving it&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Cancel&#039;&#039; || Closes the dialog without changes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt; works like &#039;&#039;Use&#039;&#039;. &amp;lt;code&amp;gt;Esc&amp;lt;/code&amp;gt; closes the dialog. Clicking anywhere outside the dialog closes it as well. Keys typed in the dialog don&#039;t switch tools on the board.&lt;br /&gt;
&lt;br /&gt;
== My colors ==&lt;br /&gt;
Saved colors are stored in the user setting &amp;lt;code&amp;gt;vscWhiteboard.customColors&amp;lt;/code&amp;gt;, not in the board file. They are shared by all boards in all workspaces.&lt;br /&gt;
* To remove a color, click the small &#039;&#039;&#039;×&#039;&#039;&#039; on its swatch.&lt;br /&gt;
* A color that is already saved is not added a second time.&lt;br /&gt;
* When the setting changes, for example because you edit &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt; by hand, all open boards update their list right away.&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt; the colors are a list of hex values:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;vscWhiteboard.customColors&amp;quot;: [&amp;quot;#1e90ff&amp;quot;, &amp;quot;#ff8800&amp;quot;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The extension writes values as lowercase &amp;lt;code&amp;gt;#rrggbb&amp;lt;/code&amp;gt;. Entries it cannot read are ignored. See [[LightweightWhiteboard:Commands and Settings|Commands and Settings]].&lt;br /&gt;
&lt;br /&gt;
== Picking a color from the board ==&lt;br /&gt;
The &#039;&#039;Pick color&#039;&#039; tool (&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;) takes the color of a pixel on the board. See [[LightweightWhiteboard:Drawing Tools#Pick color|Drawing Tools]].&lt;br /&gt;
&lt;br /&gt;
{{LightweightWhiteboard Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=Category:LightweightWhiteboard&amp;diff=2546</id>
		<title>Category:LightweightWhiteboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=Category:LightweightWhiteboard&amp;diff=2546"/>
		<updated>2026-10-20T21:29:57Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All pages about &#039;&#039;&#039;Lightweight Whiteboard&#039;&#039;&#039;, the Visual Studio Code extension that adds a simple drawing board to the editor. Start at [[LightweightWhiteboard:Main Page]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=Template:LightweightWhiteboard_Nav&amp;diff=2545</id>
		<title>Template:LightweightWhiteboard Nav</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=Template:LightweightWhiteboard_Nav&amp;diff=2545"/>
		<updated>2026-10-20T21:29:57Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: LightweightWhiteboard wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{| class=&amp;quot;wikitable ma-navbox lightweightwhiteboard-nav&amp;quot; style=&amp;quot;width:100%; margin-top:2em; text-align:center;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | [[LightweightWhiteboard:Main Page|Lightweight Whiteboard]]&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
| [[LightweightWhiteboard:Installation|Installation]] · [[LightweightWhiteboard:Getting Started|Getting Started]]&lt;br /&gt;
|-&lt;br /&gt;
! Features&lt;br /&gt;
| [[LightweightWhiteboard:Drawing Tools|Drawing Tools]] · [[LightweightWhiteboard:Colors|Colors]] · [[LightweightWhiteboard:Images|Images]] · [[LightweightWhiteboard:Zoom and Pan|Zoom and Pan]] · [[LightweightWhiteboard:Files and Saving|Files and Saving]]&lt;br /&gt;
|-&lt;br /&gt;
! Reference&lt;br /&gt;
| [[LightweightWhiteboard:Commands and Settings|Commands and Settings]] · [[LightweightWhiteboard:FAQ and Troubleshooting|FAQ and Troubleshooting]] · [[LightweightWhiteboard:Version History|Version History]]&lt;br /&gt;
|-&lt;br /&gt;
! Links&lt;br /&gt;
| [https://mutigeraffe.com/vscode/whiteboard/ Project page on mutigeraffe.com] · [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.vsc-whiteboard Download on the VS Code Marketplace]&lt;br /&gt;
|}&lt;br /&gt;
[[Category:LightweightWhiteboard]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Navigation box for all Lightweight Whiteboard pages. Add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LightweightWhiteboard Nav}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; at the bottom of every page in the LightweightWhiteboard namespace. It also adds the page to [[:Category:LightweightWhiteboard]].&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=File:LightweightWhiteboard_Icon.png&amp;diff=2544</id>
		<title>File:LightweightWhiteboard Icon.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=File:LightweightWhiteboard_Icon.png&amp;diff=2544"/>
		<updated>2026-10-20T21:29:57Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: == Summary ==
LightweightWhiteboard wiki images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
LightweightWhiteboard wiki images&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=File:LightweightWhiteboard_Screenshot_01.png&amp;diff=2543</id>
		<title>File:LightweightWhiteboard Screenshot 01.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=File:LightweightWhiteboard_Screenshot_01.png&amp;diff=2543"/>
		<updated>2026-10-20T21:29:57Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: == Summary ==
LightweightWhiteboard wiki images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
LightweightWhiteboard wiki images&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Version_History&amp;diff=2542</id>
		<title>TaskDeck:Version History</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Version_History&amp;diff=2542"/>
		<updated>2026-10-20T21:29:53Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The version numbers on this page are the ones in the extension&#039;s &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt;. Versions before 4.0.0 were called &#039;&#039;&#039;Quick Tasks&#039;&#039;&#039; and had a different extension id.&lt;br /&gt;
&lt;br /&gt;
== 4.0.0 (2026-10-18) ==&lt;br /&gt;
* The extension is now published as &#039;&#039;&#039;Task Deck&#039;&#039;&#039; by MutigerAffe. The extension id is &amp;lt;code&amp;gt;MutigerAffe.task-deck&amp;lt;/code&amp;gt;. An earlier version installed under the old id has to be removed by hand. See [[TaskDeck:Installation|Installation]].&lt;br /&gt;
* The license is now a proprietary license.&lt;br /&gt;
&lt;br /&gt;
== 1.2.0 (2026-10-18) ==&lt;br /&gt;
* New extension icon.&lt;br /&gt;
* New monochrome icon in the Activity Bar that follows the current theme.&lt;br /&gt;
&lt;br /&gt;
== 1.1.0 (2026-09-16) ==&lt;br /&gt;
* Icon and color of a source are now set only in the Settings editor. &amp;lt;code&amp;gt;quickTasks.sourceIcons&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;quickTasks.sourceColors&amp;lt;/code&amp;gt; offer dropdowns with suggested values. The &#039;&#039;Configure Source&#039;&#039; wizard was removed.&lt;br /&gt;
* Hiding a source now removes it and its tasks from the view completely, instead of leaving a dimmed row. New command &#039;&#039;&#039;Show Hidden Source…&#039;&#039;&#039; in the Command Palette to show it again.&lt;br /&gt;
&lt;br /&gt;
== 1.0.0 (2026-09-11) ==&lt;br /&gt;
The first version.&lt;br /&gt;
* Sidebar view with all tasks VS Code knows about, grouped by source. Click a task to run it.&lt;br /&gt;
* Settings for each source: visibility, icon, color and include and exclude name patterns. Sources that are no longer found keep their settings and are marked in the view.&lt;br /&gt;
* The stored task list is shown at once on startup. The current list is collected in the background.&lt;br /&gt;
* Clicking a task that is still loading shows a status bar message.&lt;br /&gt;
* &#039;&#039;&#039;Pinned&#039;&#039;&#039; group at the top of the view.&lt;br /&gt;
* Run state on the task icons: a spinner while the task runs, a warning triangle with the exit code after a failed run.&lt;br /&gt;
* Search across all visible tasks from the view title.&lt;br /&gt;
* Setting &amp;lt;code&amp;gt;quickTasks.sourceSaveToUser&amp;lt;/code&amp;gt; to save a source&#039;s settings to the user settings.&lt;br /&gt;
* Hidden sources stayed in the view as dimmed rows and could be shown again from there.&lt;br /&gt;
* A &#039;&#039;Configure Source&#039;&#039; wizard for icon, color, filters and save location.&lt;br /&gt;
&lt;br /&gt;
{{TaskDeck Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Task_View&amp;diff=2541</id>
		<title>TaskDeck:Task View</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Task_View&amp;diff=2541"/>
		<updated>2026-10-20T21:29:53Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Task Deck adds its own container to the Activity Bar. It holds one view, &#039;&#039;Tasks&#039;&#039;, with all tasks VS Code knows about.&lt;br /&gt;
&lt;br /&gt;
[[File:TaskDeck_Screenshot_01.png|frame|none|The Tasks view with two sources and one task each]]&lt;br /&gt;
&lt;br /&gt;
== What is listed ==&lt;br /&gt;
The view asks VS Code for all available tasks. These are the tasks from &amp;lt;code&amp;gt;.vscode/tasks.json&amp;lt;/code&amp;gt; and the tasks of every installed task provider, for example npm scripts or Gulp and Grunt tasks.&lt;br /&gt;
&lt;br /&gt;
Each task belongs to a &#039;&#039;&#039;source&#039;&#039;&#039;. The source is the name VS Code gives the task provider, for example &amp;lt;code&amp;gt;Workspace&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;tasks.json&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;npm&amp;lt;/code&amp;gt;. Tasks without a source are listed under &amp;lt;code&amp;gt;Unknown&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Layout ==&lt;br /&gt;
* Every source is a group that you can expand and collapse. Groups start expanded.&lt;br /&gt;
* The groups are sorted alphabetically by source name.&lt;br /&gt;
* The number next to a source is the number of tasks of that source. Tasks hidden by a name filter are included in this number.&lt;br /&gt;
* Tasks are listed in the order VS Code returns them.&lt;br /&gt;
* If you pinned tasks, the &#039;&#039;&#039;Pinned&#039;&#039;&#039; group comes first. See [[TaskDeck:Pinned Tasks|Pinned Tasks]].&lt;br /&gt;
* If there is only one visible source and nothing is pinned, the tasks are shown directly, without a source group above them.&lt;br /&gt;
&lt;br /&gt;
== Running a task ==&lt;br /&gt;
Click a task to run it. Task Deck starts the task through VS Code, just like &#039;&#039;Terminal → Run Task&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The row of a task shows:&lt;br /&gt;
* the task name&lt;br /&gt;
* the task&#039;s detail text next to the name, if the task has one&lt;br /&gt;
* the detail text or the name as tooltip&lt;br /&gt;
&lt;br /&gt;
The task icon is tinted in the color of its source. See [[TaskDeck:Sources|Sources]].&lt;br /&gt;
&lt;br /&gt;
== Run state ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Icon !! Text next to the name !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| play icon || detail text || Ready to run&lt;br /&gt;
|-&lt;br /&gt;
| spinning icon || &amp;lt;code&amp;gt;running…&amp;lt;/code&amp;gt; || The task is running&lt;br /&gt;
|-&lt;br /&gt;
| warning triangle || &amp;lt;code&amp;gt;exit 1&amp;lt;/code&amp;gt; (the exit code) || The last run ended with an exit code other than 0&lt;br /&gt;
|-&lt;br /&gt;
| spinning icon || &amp;lt;code&amp;gt;loading…&amp;lt;/code&amp;gt; || The entry comes from the stored list and is not confirmed yet (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The warning stays until the task runs again and ends with exit code 0. The exit code is only known for tasks that start a process, for example shell and process tasks. The run state is not saved and is gone after a restart of VS Code.&lt;br /&gt;
&lt;br /&gt;
== Loading and refreshing ==&lt;br /&gt;
Collecting all tasks can take a while, for example when task providers scan the workspace. Task Deck therefore stores the last task list for each workspace.&lt;br /&gt;
* When you open the view, it shows the stored list at once. These entries show &amp;lt;code&amp;gt;loading…&amp;lt;/code&amp;gt; and can&#039;t be run yet. Clicking one shows &#039;&#039;Task Deck: still refreshing the task list…&#039;&#039; in the status bar for a few seconds.&lt;br /&gt;
* At the same time the current list is collected in the background. Once it is there, the entries become runnable. The view is only redrawn if the list has changed.&lt;br /&gt;
* On the very first start in a workspace there is no stored list, so the view stays empty until the list is ready.&lt;br /&gt;
&lt;br /&gt;
The list is collected again when:&lt;br /&gt;
* you click the refresh icon in the view title (&amp;lt;code&amp;gt;Refresh&amp;lt;/code&amp;gt;)&lt;br /&gt;
* a &amp;lt;code&amp;gt;.vscode/tasks.json&amp;lt;/code&amp;gt; file in the workspace is created, changed or deleted&lt;br /&gt;
* one of the Task Deck settings changes&lt;br /&gt;
&lt;br /&gt;
Other changes, for example a new script in &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt;, are only picked up after a refresh.&lt;br /&gt;
&lt;br /&gt;
== View title buttons ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Icon !! Command !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| search || &amp;lt;code&amp;gt;Task Deck: Find Task…&amp;lt;/code&amp;gt; || Opens a search across all visible tasks. See [[TaskDeck:Find Task|Find Task]].&lt;br /&gt;
|-&lt;br /&gt;
| refresh || &amp;lt;code&amp;gt;Refresh&amp;lt;/code&amp;gt; || Collects the task list again.&lt;br /&gt;
|-&lt;br /&gt;
| gear || &amp;lt;code&amp;gt;Open Settings&amp;lt;/code&amp;gt; || Opens the Settings editor filtered to the Task Deck settings. See [[TaskDeck:Sources|Sources]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{TaskDeck Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Sources&amp;diff=2540</id>
		<title>TaskDeck:Sources</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Sources&amp;diff=2540"/>
		<updated>2026-10-20T21:29:53Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A &#039;&#039;&#039;source&#039;&#039;&#039; is the group a task belongs to, for example &amp;lt;code&amp;gt;Workspace&amp;lt;/code&amp;gt; for the tasks in &amp;lt;code&amp;gt;tasks.json&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;npm&amp;lt;/code&amp;gt; for npm scripts. Task Deck lets you set for each source:&lt;br /&gt;
* whether it is shown&lt;br /&gt;
* its icon&lt;br /&gt;
* its color&lt;br /&gt;
* which of its tasks are shown&lt;br /&gt;
&lt;br /&gt;
All of this is stored in the regular VS Code settings. Each setting is an object with the source name as key. Click the gear icon in the view title to open the Settings editor with only the Task Deck settings. The full list is on [[TaskDeck:Commands and Settings|Commands and Settings]].&lt;br /&gt;
&lt;br /&gt;
== Hiding and showing a source ==&lt;br /&gt;
Hover a source and click the eye icon (&#039;&#039;Hide Source&#039;&#039;). The source and all its tasks disappear from the view. Task Deck saves this as &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;quickTasks.sourceEnabled&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To show a hidden source again, use one of these:&lt;br /&gt;
* Run &#039;&#039;&#039;Task Deck: Show Hidden Source…&#039;&#039;&#039; from the Command Palette and pick the source. If no source is hidden, a message says so.&lt;br /&gt;
* Set its entry in &amp;lt;code&amp;gt;quickTasks.sourceEnabled&amp;lt;/code&amp;gt; back to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, or remove the entry.&lt;br /&gt;
&lt;br /&gt;
Sources that are not listed in &amp;lt;code&amp;gt;quickTasks.sourceEnabled&amp;lt;/code&amp;gt; are shown.&lt;br /&gt;
&lt;br /&gt;
Hidden sources and their tasks are also left out of [[TaskDeck:Find Task|Find Task]]. Pinned tasks of a hidden source stay in the &#039;&#039;&#039;Pinned&#039;&#039;&#039; group. See [[TaskDeck:Pinned Tasks|Pinned Tasks]].&lt;br /&gt;
&lt;br /&gt;
=== Where the setting is saved ===&lt;br /&gt;
&#039;&#039;Hide Source&#039;&#039; and &#039;&#039;Show Hidden Source&#039;&#039; write to the &#039;&#039;&#039;workspace settings&#039;&#039;&#039; by default, so the choice only applies to the current project.&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;code&amp;gt;quickTasks.sourceSaveToUser&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; for a source to save its visibility to your &#039;&#039;&#039;user settings&#039;&#039;&#039; instead. It then applies to all projects. When Task Deck writes the value, it removes the entry for that source from the other scope, so there is only one value left.&lt;br /&gt;
&lt;br /&gt;
This only affects the two commands above. When you edit a setting yourself in the Settings editor, it is saved to the scope (&#039;&#039;User&#039;&#039; or &#039;&#039;Workspace&#039;&#039;) you have selected there.&lt;br /&gt;
&lt;br /&gt;
== Icon ==&lt;br /&gt;
&amp;lt;code&amp;gt;quickTasks.sourceIcons&amp;lt;/code&amp;gt; sets the icon of the source group. Without an entry the source uses &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The Settings editor offers these icons in a dropdown:&lt;br /&gt;
&amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tools&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;checklist&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gear&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rocket&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;beaker&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;file-code&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;database&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cloud&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;symbol-event&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;briefcase&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;combine&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Any other id from the [https://microsoft.github.io/vscode-codicons/dist/codicon.html Codicon list] works too. Enter it with &#039;&#039;Edit in settings.json&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Color ==&lt;br /&gt;
&amp;lt;code&amp;gt;quickTasks.sourceColors&amp;lt;/code&amp;gt; tints the source icon and the icons of its tasks. Without an entry the default color of your theme is used.&lt;br /&gt;
&lt;br /&gt;
The Settings editor offers these colors in a dropdown:&lt;br /&gt;
&amp;lt;code&amp;gt;charts.blue&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;charts.green&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;charts.orange&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;charts.red&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;charts.purple&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;charts.yellow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiBlue&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiGreen&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiRed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiYellow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiCyan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiMagenta&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Any other id from the [https://code.visualstudio.com/api/references/theme-color Theme Color reference] works too. Enter it with &#039;&#039;Edit in settings.json&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The warning triangle of a failed task always uses the warning color of the theme.&lt;br /&gt;
&lt;br /&gt;
== Filtering tasks by name ==&lt;br /&gt;
Two settings decide which tasks of a source are shown. Both take a list of name patterns and are edited with &#039;&#039;Edit in settings.json&#039;&#039;.&lt;br /&gt;
* &amp;lt;code&amp;gt;quickTasks.sourceInclude&amp;lt;/code&amp;gt;: if the list is not empty, only tasks that match one of the patterns are shown.&lt;br /&gt;
* &amp;lt;code&amp;gt;quickTasks.sourceExclude&amp;lt;/code&amp;gt;: tasks that match one of the patterns are hidden. This also applies to tasks that match an include pattern.&lt;br /&gt;
&lt;br /&gt;
Pattern rules:&lt;br /&gt;
* &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; stands for any number of characters, &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; for exactly one character.&lt;br /&gt;
* A pattern has to match the &#039;&#039;&#039;whole&#039;&#039;&#039; task name. &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; only matches a task named &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;build*&amp;lt;/code&amp;gt; also matches &amp;lt;code&amp;gt;build:prod&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Upper and lower case don&#039;t matter.&lt;br /&gt;
&lt;br /&gt;
The filters apply to the view and to [[TaskDeck:Find Task|Find Task]], but not to the &#039;&#039;&#039;Pinned&#039;&#039;&#039; group. The task count next to the source still counts all its tasks.&lt;br /&gt;
&lt;br /&gt;
== Sources that are no longer found ==&lt;br /&gt;
A source can have settings even though it no longer exists, for example after you removed a task provider or deleted the last task from &amp;lt;code&amp;gt;tasks.json&amp;lt;/code&amp;gt;. Task Deck keeps such a source in the view:&lt;br /&gt;
* It shows a warning triangle and the text &amp;lt;code&amp;gt;not found&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The tooltip explains that its stored settings are kept in case the source comes back.&lt;br /&gt;
* It has no tasks and can&#039;t be expanded.&lt;br /&gt;
&lt;br /&gt;
This also applies to a hidden source. Once it is no longer found, it is shown again with the warning.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t need the settings any more, right-click the source and choose &#039;&#039;&#039;Remove Source Configuration&#039;&#039;&#039;. After you confirm, Task Deck deletes the entries for this source from all Task Deck settings, in the user settings and in the workspace settings. An entry in the old &amp;lt;code&amp;gt;quickTasks.sources&amp;lt;/code&amp;gt; setting is only removed from the workspace settings. Once no entry is left, the source disappears from the view.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;quickTasks.sourceIcons&amp;quot;: {&lt;br /&gt;
  &amp;quot;Workspace&amp;quot;: &amp;quot;checklist&amp;quot;,&lt;br /&gt;
  &amp;quot;npm&amp;quot;: &amp;quot;package&amp;quot;&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;quickTasks.sourceColors&amp;quot;: {&lt;br /&gt;
  &amp;quot;Workspace&amp;quot;: &amp;quot;charts.blue&amp;quot;,&lt;br /&gt;
  &amp;quot;npm&amp;quot;: &amp;quot;charts.green&amp;quot;&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;quickTasks.sourceExclude&amp;quot;: {&lt;br /&gt;
  &amp;quot;npm&amp;quot;: [&amp;quot;pre*&amp;quot;, &amp;quot;post*&amp;quot;]&lt;br /&gt;
},&lt;br /&gt;
&amp;quot;quickTasks.sourceEnabled&amp;quot;: {&lt;br /&gt;
  &amp;quot;Gulp&amp;quot;: false&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This gives &amp;lt;code&amp;gt;tasks.json&amp;lt;/code&amp;gt; tasks a blue checklist icon and npm scripts a green package icon, hides the npm scripts whose names start with &amp;lt;code&amp;gt;pre&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;post&amp;lt;/code&amp;gt; and hides the Gulp source.&lt;br /&gt;
&lt;br /&gt;
== Old setting ==&lt;br /&gt;
Older versions stored all of this in a single setting, &amp;lt;code&amp;gt;quickTasks.sources&amp;lt;/code&amp;gt;. It is deprecated, but Task Deck still reads it. A value in the new settings wins. For a source that has no entry in a new setting, the value from &amp;lt;code&amp;gt;quickTasks.sources&amp;lt;/code&amp;gt; is used.&lt;br /&gt;
&lt;br /&gt;
{{TaskDeck Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Pinned_Tasks&amp;diff=2539</id>
		<title>TaskDeck:Pinned Tasks</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Pinned_Tasks&amp;diff=2539"/>
		<updated>2026-10-20T21:29:53Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pin the tasks you use most to keep them at the top of the view.&lt;br /&gt;
&lt;br /&gt;
== Pinning a task ==&lt;br /&gt;
Hover a task and click the pin icon (&#039;&#039;Pin Task&#039;&#039;). The task now also appears in the &#039;&#039;&#039;Pinned&#039;&#039;&#039; group at the top of the view. It stays in its own source group as well.&lt;br /&gt;
&lt;br /&gt;
A task that still shows &amp;lt;code&amp;gt;loading…&amp;lt;/code&amp;gt; can&#039;t be pinned yet. Wait until the task list is refreshed. See [[TaskDeck:Task View|Task View]].&lt;br /&gt;
&lt;br /&gt;
== The Pinned group ==&lt;br /&gt;
* It is shown above all sources and starts expanded.&lt;br /&gt;
* The number next to it is the number of pinned tasks it shows.&lt;br /&gt;
* Pinned tasks have a yellow pin icon. Next to the name the group shows the source the task belongs to.&lt;br /&gt;
* Click a pinned task to run it. The run state (running, exit code) is shown here too.&lt;br /&gt;
* Pinned tasks stay in the group even if their source is hidden or a name filter hides them in their source group. See [[TaskDeck:Sources|Sources]].&lt;br /&gt;
* If none of the pinned tasks is found any more, the group is not shown.&lt;br /&gt;
&lt;br /&gt;
== Unpinning a task ==&lt;br /&gt;
Hover the task &#039;&#039;&#039;in the Pinned group&#039;&#039;&#039; and click the pin icon (&#039;&#039;Unpin Task&#039;&#039;). The task stays in its source group.&lt;br /&gt;
&lt;br /&gt;
== Where pins are stored ==&lt;br /&gt;
Pins are stored for each workspace, so every project has its own pinned tasks. They are not part of your settings and are not shared through &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A task is recognized by its source, its name and its task type. If you rename a task, pin it again.&lt;br /&gt;
&lt;br /&gt;
{{TaskDeck Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Main_Page&amp;diff=2538</id>
		<title>TaskDeck:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Main_Page&amp;diff=2538"/>
		<updated>2026-10-20T21:29:52Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Task Deck Wiki}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-columns&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col-wide&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Task Deck}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-intro&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;ma-intro-icon&amp;quot;&amp;gt;[[File:TaskDeck_Icon.png|112px|link=|alt=Task Deck]]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;ma-intro-text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Task Deck&#039;&#039;&#039; is a VS Code extension that lists every task VS Code knows about in its own sidebar view. This includes the tasks from &amp;lt;code&amp;gt;tasks.json&amp;lt;/code&amp;gt; and the tasks that other extensions provide, for example npm scripts, Gulp or Grunt.&lt;br /&gt;
&lt;br /&gt;
The tasks are grouped by their source. Click a task to run it. You can pin tasks to the top, hide sources, give each source its own icon and color and filter its tasks by name.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Latest version}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;ma-facts&amp;quot;&lt;br /&gt;
! Extension&lt;br /&gt;
| 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
! VS Code&lt;br /&gt;
| 1.85.0 or newer&lt;br /&gt;
|-&lt;br /&gt;
! Extension id&lt;br /&gt;
| &amp;lt;code&amp;gt;MutigerAffe.task-deck&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Requires&lt;br /&gt;
| No other extensions&lt;br /&gt;
|-&lt;br /&gt;
! Download&lt;br /&gt;
| [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.task-deck VS Code Marketplace]&lt;br /&gt;
|}&lt;br /&gt;
The information in this wiki is taken from version 4.0.0.&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box start|title=Quick start}}&lt;br /&gt;
&lt;br /&gt;
# Install Task Deck from the VS Code Marketplace. See [[TaskDeck:Installation|Installation]].&lt;br /&gt;
# Click the Task Deck icon in the Activity Bar. The &#039;&#039;Tasks&#039;&#039; view lists all tasks, grouped by source. See [[TaskDeck:Task View|Task View]].&lt;br /&gt;
# Click a task to run it. While it runs, its icon spins.&lt;br /&gt;
# Hover a task and click the pin icon to put it into the &#039;&#039;&#039;Pinned&#039;&#039;&#039; group at the top. See [[TaskDeck:Pinned Tasks|Pinned Tasks]].&lt;br /&gt;
# Click the gear icon in the view title to set icons, colors and filters for your sources. See [[TaskDeck:Sources|Sources]].&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-columns&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Features}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|link=TaskDeck:Task View|label=Task View}}&lt;br /&gt;
{{MA Tile|link=TaskDeck:Sources|label=Sources}}&lt;br /&gt;
{{MA Tile|link=TaskDeck:Pinned Tasks|label=Pinned Tasks}}&lt;br /&gt;
{{MA Tile|link=TaskDeck:Find Task|label=Find Task}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Reference}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=TaskDeck_Icon.png|link=TaskDeck:Installation|label=Installation}}&lt;br /&gt;
{{MA Tile|link=TaskDeck:Commands and Settings|label=Commands and Settings}}&lt;br /&gt;
{{MA Tile|link=TaskDeck:FAQ|label=FAQ}}&lt;br /&gt;
{{MA Tile|link=TaskDeck:Version History|label=Version History}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{{TaskDeck Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Installation&amp;diff=2537</id>
		<title>TaskDeck:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Installation&amp;diff=2537"/>
		<updated>2026-10-20T21:29:52Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Task Deck !! VS Code&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.0 || 1.85.0 or newer (&amp;lt;code&amp;gt;^1.85.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Task Deck needs no other extensions. It shows the tasks that VS Code and your installed extensions already provide. Without a task provider for npm, Gulp or Grunt, those sources do not appear.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
=== From the Marketplace ===&lt;br /&gt;
# Open the [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.task-deck Task Deck page on the VS Code Marketplace].&lt;br /&gt;
# Click &#039;&#039;&#039;Install&#039;&#039;&#039;. VS Code opens and installs the extension.&lt;br /&gt;
&lt;br /&gt;
=== From inside VS Code ===&lt;br /&gt;
# Open the Extensions view (&amp;lt;code&amp;gt;Ctrl+Shift+X&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Search for &amp;lt;code&amp;gt;Task Deck&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Click &#039;&#039;&#039;Install&#039;&#039;&#039; on the entry by MutigerAffe.&lt;br /&gt;
&lt;br /&gt;
=== With a command ===&lt;br /&gt;
Open Quick Open (&amp;lt;code&amp;gt;Ctrl+P&amp;lt;/code&amp;gt;), paste the following line and press Enter:&lt;br /&gt;
&amp;lt;pre&amp;gt;ext install MutigerAffe.task-deck&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== First start ==&lt;br /&gt;
After the installation a new icon appears in the Activity Bar. Click it to open the &#039;&#039;Tasks&#039;&#039; view. The extension starts when you open the view or run one of its commands.&lt;br /&gt;
&lt;br /&gt;
On the first start in a workspace the view stays empty until VS Code has collected the task list. After that Task Deck keeps a copy of the list and shows it right away the next time. See [[TaskDeck:Task View|Task View]].&lt;br /&gt;
&lt;br /&gt;
== Updating from Quick Tasks ==&lt;br /&gt;
Before version 4.0.0 the extension was called &#039;&#039;&#039;Quick Tasks&#039;&#039;&#039; and had a different extension id. VS Code does not update it to Task Deck by itself.&lt;br /&gt;
* Uninstall Quick Tasks and install Task Deck. Don&#039;t keep both installed, because they use the same command and setting ids.&lt;br /&gt;
* Your settings carry over. Both versions use the same &amp;lt;code&amp;gt;quickTasks.*&amp;lt;/code&amp;gt; settings.&lt;br /&gt;
* Pinned tasks are stored per extension, so pin them again in Task Deck.&lt;br /&gt;
&lt;br /&gt;
== Uninstalling ==&lt;br /&gt;
Uninstall Task Deck in the Extensions view. Your &amp;lt;code&amp;gt;quickTasks.*&amp;lt;/code&amp;gt; settings stay in your user and workspace &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt; files. Delete them there if you no longer need them.&lt;br /&gt;
&lt;br /&gt;
{{TaskDeck Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Find_Task&amp;diff=2536</id>
		<title>TaskDeck:Find Task</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Find_Task&amp;diff=2536"/>
		<updated>2026-10-20T21:29:52Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In a workspace with many sources and tasks, searching is often faster than scrolling.&lt;br /&gt;
&lt;br /&gt;
== Opening the search ==&lt;br /&gt;
* Click the search icon in the view title, or&lt;br /&gt;
* run &#039;&#039;&#039;Task Deck: Find Task…&#039;&#039;&#039; from the Command Palette.&lt;br /&gt;
&lt;br /&gt;
A list titled &#039;&#039;Run Task&#039;&#039; opens. Type part of a task name to narrow it down. The filtering is done by VS Code, the same way as in other quick pick lists. The source name is shown next to each task and is searched as well. Press Enter to run the selected task.&lt;br /&gt;
&lt;br /&gt;
== Which tasks are listed ==&lt;br /&gt;
The list contains the same tasks as the source groups in the view:&lt;br /&gt;
* Hidden sources and their tasks are left out.&lt;br /&gt;
* Tasks hidden by a name filter of their source are left out.&lt;br /&gt;
* Sources that are no longer found have no tasks and add nothing.&lt;br /&gt;
* Tasks that still show &amp;lt;code&amp;gt;loading…&amp;lt;/code&amp;gt; are left out until the task list is refreshed.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Pinned&#039;&#039;&#039; group is not searched separately. A pinned task is listed through its source, so a pinned task of a hidden source does not appear.&lt;br /&gt;
&lt;br /&gt;
If no task is left, the message &#039;&#039;Task Deck: no runnable tasks found.&#039;&#039; appears.&lt;br /&gt;
&lt;br /&gt;
{{TaskDeck Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=TaskDeck:FAQ&amp;diff=2535</id>
		<title>TaskDeck:FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=TaskDeck:FAQ&amp;diff=2535"/>
		<updated>2026-10-20T21:29:52Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Where does Task Deck get its tasks from?&lt;br /&gt;
:From VS Code. It lists the same tasks as &#039;&#039;Terminal → Run Task&#039;&#039;: the tasks from &amp;lt;code&amp;gt;tasks.json&amp;lt;/code&amp;gt; and the tasks of all installed task providers. Task Deck does not read &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; or other build files itself.&lt;br /&gt;
&lt;br /&gt;
;My npm scripts or Gulp tasks are missing.&lt;br /&gt;
:Task Deck only shows tasks that a task provider returns. Check that the extension for that tool is installed and that its task detection is turned on, for example the VS Code setting &amp;lt;code&amp;gt;npm.autoDetect&amp;lt;/code&amp;gt;. Then click the refresh icon.&lt;br /&gt;
&lt;br /&gt;
;I added a script, but it does not show up.&lt;br /&gt;
:Task Deck refreshes the list by itself only when a &amp;lt;code&amp;gt;tasks.json&amp;lt;/code&amp;gt; file or a Task Deck setting changes. For other changes click the refresh icon in the view title.&lt;br /&gt;
&lt;br /&gt;
;The tasks show &amp;quot;loading…&amp;quot; and do nothing when I click them.&lt;br /&gt;
:These entries come from the list stored at the last start. They become runnable once VS Code has collected the current list. Until then, clicking one only shows a message in the status bar. See [[TaskDeck:Task View|Task View]].&lt;br /&gt;
&lt;br /&gt;
;I don&#039;t see any source groups, only tasks.&lt;br /&gt;
:If there is only one visible source and nothing is pinned, Task Deck lists the tasks directly. The groups come back as soon as a second source is visible or a task is pinned.&lt;br /&gt;
&lt;br /&gt;
;How do I hide the source when there is no source row?&lt;br /&gt;
:Without a source row there is no eye icon. Set the source to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;quickTasks.sourceEnabled&amp;lt;/code&amp;gt; in the Settings editor. See [[TaskDeck:Sources|Sources]].&lt;br /&gt;
&lt;br /&gt;
;A source disappeared after I clicked the eye icon. How do I get it back?&lt;br /&gt;
:Run &#039;&#039;&#039;Task Deck: Show Hidden Source…&#039;&#039;&#039; from the Command Palette, or set its entry in &amp;lt;code&amp;gt;quickTasks.sourceEnabled&amp;lt;/code&amp;gt; back to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;I hid a source in one project and it is still shown in another.&lt;br /&gt;
:&#039;&#039;Hide Source&#039;&#039; saves to the workspace settings by default. Set &amp;lt;code&amp;gt;quickTasks.sourceSaveToUser&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; for that source to save its visibility to the user settings, then hide it again.&lt;br /&gt;
&lt;br /&gt;
;A source shows a warning triangle and &amp;quot;not found&amp;quot;.&lt;br /&gt;
:The source has stored settings but no longer delivers tasks. Right-click it and choose &#039;&#039;&#039;Remove Source Configuration&#039;&#039;&#039; to delete the settings. See [[TaskDeck:Sources|Sources]].&lt;br /&gt;
&lt;br /&gt;
;A task shows a warning triangle and &amp;quot;exit 1&amp;quot;.&lt;br /&gt;
:The last run of the task ended with that exit code. Open the terminal of the task to see what went wrong. The warning goes away once the task runs again without an error.&lt;br /&gt;
&lt;br /&gt;
;The number next to a source is higher than the number of tasks I see.&lt;br /&gt;
:The number counts all tasks of the source, including the ones hidden by &amp;lt;code&amp;gt;quickTasks.sourceInclude&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;quickTasks.sourceExclude&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;Why does a filter pattern not match?&lt;br /&gt;
:A pattern has to match the whole task name. Use &amp;lt;code&amp;gt;*build*&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; to match every task that contains &amp;quot;build&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
;Are my pinned tasks shared with my team?&lt;br /&gt;
:No. Pins are stored in the workspace storage of your VS Code and not in &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt;. Icons, colors, filters and hidden sources are settings, so they can be shared through the workspace &amp;lt;code&amp;gt;.vscode/settings.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;I used Quick Tasks before. What do I have to do?&lt;br /&gt;
:Uninstall Quick Tasks and install Task Deck. Your settings carry over, pinned tasks have to be pinned again. See [[TaskDeck:Installation|Installation]].&lt;br /&gt;
&lt;br /&gt;
{{TaskDeck Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Commands_and_Settings&amp;diff=2534</id>
		<title>TaskDeck:Commands and Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=TaskDeck:Commands_and_Settings&amp;diff=2534"/>
		<updated>2026-10-20T21:29:52Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists everything Task Deck adds to VS Code.&lt;br /&gt;
&lt;br /&gt;
== View ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Item !! Id !! Name&lt;br /&gt;
|-&lt;br /&gt;
| Activity Bar container || &amp;lt;code&amp;gt;quickTasks&amp;lt;/code&amp;gt; || Task Deck&lt;br /&gt;
|-&lt;br /&gt;
| View || &amp;lt;code&amp;gt;quickTasks.tasksView&amp;lt;/code&amp;gt; || Tasks&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Id !! Where !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Task Deck: Find Task…&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;quickTasks.findTask&amp;lt;/code&amp;gt; || View title (search icon), Command Palette || Opens a search across all visible tasks and runs the selected one. See [[TaskDeck:Find Task|Find Task]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Refresh&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;quickTasks.refresh&amp;lt;/code&amp;gt; || View title (refresh icon), Command Palette || Collects the task list again.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Open Settings&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;quickTasks.manageSources&amp;lt;/code&amp;gt; || View title (gear icon), Command Palette || Opens the Settings editor filtered to the Task Deck settings (&amp;lt;code&amp;gt;@ext:MutigerAffe.task-deck&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Task Deck: Show Hidden Source…&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;quickTasks.showSource&amp;lt;/code&amp;gt; || Command Palette || Lets you pick a hidden source and shows it again.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Hide Source&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;quickTasks.hideSource&amp;lt;/code&amp;gt; || Source row (eye icon) || Hides the source and its tasks. See [[TaskDeck:Sources|Sources]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Remove Source Configuration&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;quickTasks.forgetSource&amp;lt;/code&amp;gt; || Right-click on a source shown as &amp;lt;code&amp;gt;not found&amp;lt;/code&amp;gt; || Deletes all stored settings of that source after a confirmation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Pin Task&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;quickTasks.pinTask&amp;lt;/code&amp;gt; || Task row (pin icon) || Adds the task to the &#039;&#039;&#039;Pinned&#039;&#039;&#039; group. See [[TaskDeck:Pinned Tasks|Pinned Tasks]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Unpin Task&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;quickTasks.unpinTask&amp;lt;/code&amp;gt; || Task row in the Pinned group (pin icon) || Removes the task from the &#039;&#039;&#039;Pinned&#039;&#039;&#039; group.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Run Task&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;quickTasks.runTask&amp;lt;/code&amp;gt; || Click on a task || Runs the task.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Task Deck: Task List Refreshing&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;quickTasks.taskLoading&amp;lt;/code&amp;gt; || Click on a task that shows &amp;lt;code&amp;gt;loading…&amp;lt;/code&amp;gt; || Shows a status bar message that the list is still being refreshed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Hide Source&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Remove Source Configuration&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Run Task&amp;lt;/code&amp;gt; also appear in the Command Palette. They need a row in the view to work on, so started from the Command Palette they do not do anything useful. &amp;lt;code&amp;gt;Pin Task&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Unpin Task&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Task Deck: Task List Refreshing&amp;lt;/code&amp;gt; are hidden from the Command Palette.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Refresh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Open Settings&amp;lt;/code&amp;gt; appear in the Command Palette without the &amp;lt;code&amp;gt;Task Deck:&amp;lt;/code&amp;gt; prefix.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
Task Deck does not add keyboard shortcuts. You can assign your own to the commands above under &#039;&#039;File → Preferences → Keyboard Shortcuts&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
All settings are objects with the source name as key, for example &amp;lt;code&amp;gt;Workspace&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;tasks.json&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;npm&amp;lt;/code&amp;gt;. The default is always an empty object. A source without an entry uses the value in the column &#039;&#039;Without an entry&#039;&#039;. Details and an example are on [[TaskDeck:Sources|Sources]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value per source !! Without an entry !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;quickTasks.sourceEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || shown || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; hides the source and its tasks. Set by &#039;&#039;Hide Source&#039;&#039; and &#039;&#039;Show Hidden Source&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;quickTasks.sourceIcons&amp;lt;/code&amp;gt; || Codicon id || &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; || Icon of the source group. The Settings editor offers 14 icons, any other Codicon id works in &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;quickTasks.sourceColors&amp;lt;/code&amp;gt; || Theme color id || theme default || Tints the source icon and its task icons. The Settings editor offers 12 colors, any other theme color id works in &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;quickTasks.sourceInclude&amp;lt;/code&amp;gt; || list of name patterns || all tasks || If not empty, only tasks that match one of the patterns are shown.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;quickTasks.sourceExclude&amp;lt;/code&amp;gt; || list of name patterns || no task hidden || Tasks that match one of the patterns are hidden, even if they match an include pattern.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;quickTasks.sourceSaveToUser&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; makes &#039;&#039;Hide Source&#039;&#039; and &#039;&#039;Show Hidden Source&#039;&#039; save &amp;lt;code&amp;gt;quickTasks.sourceEnabled&amp;lt;/code&amp;gt; for this source to the user settings instead of the workspace settings.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;quickTasks.sources&amp;lt;/code&amp;gt; || object with &amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;color&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; || none || &#039;&#039;&#039;Deprecated.&#039;&#039;&#039; Still read as a fallback for sources that have no entry in the new settings.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Name patterns use &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; for any number of characters and &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; for one character. A pattern has to match the whole task name. Upper and lower case don&#039;t matter.&lt;br /&gt;
&lt;br /&gt;
=== Suggested icons ===&lt;br /&gt;
&amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tools&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;checklist&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gear&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rocket&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;beaker&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;file-code&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;database&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cloud&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;symbol-event&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;briefcase&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;combine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Suggested colors ===&lt;br /&gt;
&amp;lt;code&amp;gt;charts.blue&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;charts.green&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;charts.orange&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;charts.red&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;charts.purple&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;charts.yellow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiBlue&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiGreen&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiRed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiYellow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiCyan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;terminal.ansiMagenta&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stored data ==&lt;br /&gt;
Besides the settings, Task Deck stores two things for each workspace in the VS Code workspace storage:&lt;br /&gt;
* the pinned tasks&lt;br /&gt;
* the last task list, which is shown at once on the next start&lt;br /&gt;
&lt;br /&gt;
Neither is written to &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== File types ==&lt;br /&gt;
Task Deck adds no languages, file types or editors. It watches &amp;lt;code&amp;gt;.vscode/tasks.json&amp;lt;/code&amp;gt; files in the workspace and refreshes the list when one of them changes.&lt;br /&gt;
&lt;br /&gt;
{{TaskDeck Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=Category:TaskDeck&amp;diff=2533</id>
		<title>Category:TaskDeck</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=Category:TaskDeck&amp;diff=2533"/>
		<updated>2026-10-20T21:29:51Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All pages about &#039;&#039;&#039;Task Deck&#039;&#039;&#039;, the VS Code extension that lists all available tasks, grouped by source, in the sidebar. Start at [[TaskDeck:Main Page]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=Template:TaskDeck_Nav&amp;diff=2532</id>
		<title>Template:TaskDeck Nav</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=Template:TaskDeck_Nav&amp;diff=2532"/>
		<updated>2026-10-20T21:29:51Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: TaskDeck wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{| class=&amp;quot;wikitable ma-navbox taskdeck-nav&amp;quot; style=&amp;quot;width:100%; margin-top:2em; text-align:center;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | [[TaskDeck:Main Page|Task Deck]]&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
| [[TaskDeck:Installation|Installation]]&lt;br /&gt;
|-&lt;br /&gt;
! Features&lt;br /&gt;
| [[TaskDeck:Task View|Task View]] · [[TaskDeck:Sources|Sources]] · [[TaskDeck:Pinned Tasks|Pinned Tasks]] · [[TaskDeck:Find Task|Find Task]]&lt;br /&gt;
|-&lt;br /&gt;
! Reference&lt;br /&gt;
| [[TaskDeck:Commands and Settings|Commands and Settings]] · [[TaskDeck:FAQ|FAQ]] · [[TaskDeck:Version History|Version History]]&lt;br /&gt;
|-&lt;br /&gt;
! Links&lt;br /&gt;
| [https://mutigeraffe.com/vscode/task-deck/ Project page on mutigeraffe.com] · [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.task-deck Install from the VS Code Marketplace]&lt;br /&gt;
|}&lt;br /&gt;
[[Category:TaskDeck]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Navigation box for all Task Deck pages. Add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TaskDeck Nav}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; at the bottom of every page in the TaskDeck namespace. It also adds the page to [[:Category:TaskDeck]].&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=File:TaskDeck_Icon.png&amp;diff=2531</id>
		<title>File:TaskDeck Icon.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=File:TaskDeck_Icon.png&amp;diff=2531"/>
		<updated>2026-10-20T21:29:51Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: == Summary ==
TaskDeck wiki images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
TaskDeck wiki images&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=File:TaskDeck_Screenshot_01.png&amp;diff=2530</id>
		<title>File:TaskDeck Screenshot 01.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=File:TaskDeck_Screenshot_01.png&amp;diff=2530"/>
		<updated>2026-10-20T21:29:50Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: == Summary ==
TaskDeck wiki images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
TaskDeck wiki images&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StudioZip:Version_History&amp;diff=2529</id>
		<title>StudioZip:Version History</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StudioZip:Version_History&amp;diff=2529"/>
		<updated>2026-10-20T21:29:47Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are no versions 2.x or 3.x. The version number went from 1.1.0 straight to 4.0.0.&lt;br /&gt;
&lt;br /&gt;
== 4.0.0 (2026-10-18) ==&lt;br /&gt;
* The extension is now published as &#039;&#039;&#039;Studio ZIP&#039;&#039;&#039; by MutigerAffe. Earlier versions were called &amp;quot;Studio-Zip&amp;quot; and used the publisher &amp;lt;code&amp;gt;fxbixn03&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The extension id changed to &amp;lt;code&amp;gt;MutigerAffe.studio-zip&amp;lt;/code&amp;gt;. An earlier version installed under the old id is not updated and has to be uninstalled by hand.&lt;br /&gt;
* Commands and the editor title now use the name &amp;quot;Studio ZIP&amp;quot;.&lt;br /&gt;
* The license changed from GPL 3.0 or later to a proprietary license. Third-party components are listed in &amp;lt;code&amp;gt;THIRD_PARTY_NOTICES.md&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 1.1.0 (2026-10-18) ==&lt;br /&gt;
* New extension icon.&lt;br /&gt;
&lt;br /&gt;
== 1.0.0 (2026-08-29) ==&lt;br /&gt;
* Read support for the tar family: &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tar.xz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tar.bz2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tar.zst&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tgz&amp;lt;/code&amp;gt; and more.&lt;br /&gt;
* Read support for single compressed files: &amp;lt;code&amp;gt;.gz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.xz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.bz2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.zst&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.br&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Read support for packages: &amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.rpm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.cpio&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Read support for &amp;lt;code&amp;gt;.7z&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.rar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.cab&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; through libarchive.&lt;br /&gt;
* Read support for &amp;lt;code&amp;gt;.asar&amp;lt;/code&amp;gt; (Electron bundles).&lt;br /&gt;
* Encrypted ZIP entries (WinZip AES, ZipCrypto) can be read. The extension asks for the password.&lt;br /&gt;
* Nested archives such as &amp;lt;code&amp;gt;data.tar.zst&amp;lt;/code&amp;gt; inside a &amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Preview in the tab for text (Monaco), images and PDF.&lt;br /&gt;
* More file extensions open in Studio ZIP, for example &amp;lt;code&amp;gt;.unitypackage&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.crate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.gem&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;.msix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.appx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.aab&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.love&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.xlsm&amp;lt;/code&amp;gt; as ZIP archives.&lt;br /&gt;
&lt;br /&gt;
== 0.0.1 (2026-08-28) ==&lt;br /&gt;
The first version.&lt;br /&gt;
* Read and write the ZIP family (&amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.vsix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.epub&amp;lt;/code&amp;gt; and more) without unpacking.&lt;br /&gt;
* Studio ZIP tab with the archive tree on the left and a file preview on the right.&lt;br /&gt;
* &amp;lt;code&amp;gt;zipfs:&amp;lt;/code&amp;gt; file system, so every file in an archive can be opened as a regular editor tab.&lt;br /&gt;
* Nested archives, such as a &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt; inside a &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt;, can be read and written.&lt;br /&gt;
* Saving replaces the archive atomically and keeps compression method, modification time and the executable bit.&lt;br /&gt;
* Commands to mount an archive as a workspace folder and to unmount it again.&lt;br /&gt;
* Extension icon.&lt;br /&gt;
&lt;br /&gt;
{{StudioZip Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StudioZip:Supported_Formats&amp;diff=2528</id>
		<title>StudioZip:Supported Formats</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StudioZip:Supported_Formats&amp;diff=2528"/>
		<updated>2026-10-20T21:29:47Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Studio ZIP reads many archive formats. Only the ZIP family can also be written.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Group !! Formats !! Read !! Write&lt;br /&gt;
|-&lt;br /&gt;
| ZIP family || &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.apk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.vsix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.epub&amp;lt;/code&amp;gt; and more, see below || yes || yes&lt;br /&gt;
|-&lt;br /&gt;
| tar || &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.gem&amp;lt;/code&amp;gt; || yes || no&lt;br /&gt;
|-&lt;br /&gt;
| Compressed tar || &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tgz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.taz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tar.bz2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tbz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tbz2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tar.xz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.txz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tar.zst&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tzst&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.unitypackage&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.crate&amp;lt;/code&amp;gt; || yes || no&lt;br /&gt;
|-&lt;br /&gt;
| Single compressed files || &amp;lt;code&amp;gt;.gz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.bz2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.xz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.zst&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.br&amp;lt;/code&amp;gt; || yes || no&lt;br /&gt;
|-&lt;br /&gt;
| Packages || &amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.udeb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.rpm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.cpio&amp;lt;/code&amp;gt; || yes || no&lt;br /&gt;
|-&lt;br /&gt;
| Other archives || &amp;lt;code&amp;gt;.7z&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.rar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.cab&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt; || yes || no&lt;br /&gt;
|-&lt;br /&gt;
| Electron bundles || &amp;lt;code&amp;gt;.asar&amp;lt;/code&amp;gt; || yes || no&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Not supported: &amp;lt;code&amp;gt;.msi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.dmg&amp;lt;/code&amp;gt;, squashfs and &amp;lt;code&amp;gt;.AppImage&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.pkg&amp;lt;/code&amp;gt; (xar), lha, &amp;lt;code&amp;gt;.lz4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.lz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.lzo&amp;lt;/code&amp;gt; and old Unix &amp;lt;code&amp;gt;.Z&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
== Opens on click ==&lt;br /&gt;
Studio ZIP is the default editor for these file name patterns. Clicking such a file in the Explorer opens the [[StudioZip:Archive Tab|Studio ZIP tab]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Group !! Extensions&lt;br /&gt;
|-&lt;br /&gt;
| ZIP || &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.zipx&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Java and Android || &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ear&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.aar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.jmod&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.apk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.aab&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.apks&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Apps and plugins || &amp;lt;code&amp;gt;.ipa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.vsix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.xpi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.crx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.oxt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.msix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.msixbundle&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.appx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.appxbundle&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Package managers || &amp;lt;code&amp;gt;.nupkg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.snupkg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.whl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.egg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.pyz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.conda&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.crate&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.gem&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.unitypackage&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Documents || &amp;lt;code&amp;gt;.epub&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.docm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.xlsm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.pptm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.dotx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.xltx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.potx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.vsdx&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Games || &amp;lt;code&amp;gt;.love&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.mcaddon&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.mcworld&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.mcpack&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tar and compressed || &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tgz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.taz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.gz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.bz2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tbz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tbz2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.xz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.txz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.zst&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tzst&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.br&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Packages || &amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.udeb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.rpm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.cpio&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Other || &amp;lt;code&amp;gt;.7z&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.rar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.iso&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.cab&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.asar&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; matches &amp;lt;code&amp;gt;*.gz&amp;lt;/code&amp;gt;, a &amp;lt;code&amp;gt;.tar.xz&amp;lt;/code&amp;gt; matches &amp;lt;code&amp;gt;*.xz&amp;lt;/code&amp;gt; and so on.&lt;br /&gt;
&lt;br /&gt;
Two exceptions:&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;.asar&amp;lt;/code&amp;gt;&#039;&#039;&#039; is in the list, but VS Code itself treats an &amp;lt;code&amp;gt;.asar&amp;lt;/code&amp;gt; file as a folder, so a click never reaches Studio ZIP. Use &amp;lt;code&amp;gt;Studio ZIP: Mount Archive as Workspace Folder&amp;lt;/code&amp;gt; from the Command Palette instead. An &amp;lt;code&amp;gt;.asar&amp;lt;/code&amp;gt; inside another archive opens normally.&lt;br /&gt;
* &#039;&#039;&#039;Office files&#039;&#039;&#039; &amp;lt;code&amp;gt;.docx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.xlsx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.pptx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.odt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ods&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.odp&amp;lt;/code&amp;gt; are not in the list, so clicking them in the Explorer does not open Studio ZIP. Studio ZIP still recognizes them as ZIP archives when they are inside another archive. There they get the archive icon and open in their own Studio ZIP tab.&lt;br /&gt;
&lt;br /&gt;
== Format detection ==&lt;br /&gt;
File extensions are often wrong, for example a &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt; that is really a 7z file. By default Studio ZIP reads the first bytes of the file and picks the format from its signature. Only if no signature matches does it use the file extension.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format !! Signature&lt;br /&gt;
|-&lt;br /&gt;
| ZIP || &amp;lt;code&amp;gt;PK\x03\x04&amp;lt;/code&amp;gt;, also &amp;lt;code&amp;gt;PK\x05\x06&amp;lt;/code&amp;gt; (empty archive) and &amp;lt;code&amp;gt;PK\x07\x08&amp;lt;/code&amp;gt; (spanned)&lt;br /&gt;
|-&lt;br /&gt;
| tar || &amp;lt;code&amp;gt;ustar&amp;lt;/code&amp;gt; at byte 257&lt;br /&gt;
|-&lt;br /&gt;
| gzip || &amp;lt;code&amp;gt;1F 8B&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bzip2 || &amp;lt;code&amp;gt;BZh&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| xz || &amp;lt;code&amp;gt;FD 37 7A 58 5A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| zstd || &amp;lt;code&amp;gt;28 B5 2F FD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 7z || &amp;lt;code&amp;gt;37 7A BC AF 27 1C&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RAR || &amp;lt;code&amp;gt;Rar!&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ar (&amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.a&amp;lt;/code&amp;gt;) || &amp;lt;code&amp;gt;!&amp;amp;lt;arch&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RPM || &amp;lt;code&amp;gt;ED AB EE DB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| cpio || &amp;lt;code&amp;gt;070701&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;070702&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;070707&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CAB || &amp;lt;code&amp;gt;MSCF&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Brotli (&amp;lt;code&amp;gt;.br&amp;lt;/code&amp;gt;), ISO and asar files are always detected by their extension.&lt;br /&gt;
&lt;br /&gt;
To trust only the file extension, set &amp;lt;code&amp;gt;studioZip.detection.useMagicBytes&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. See [[StudioZip:Commands and Settings|Commands and Settings]].&lt;br /&gt;
&lt;br /&gt;
== Notes per format ==&lt;br /&gt;
=== ZIP family ===&lt;br /&gt;
Read with random access, so opening a file does not unpack the rest. Archives larger than 2 GB work. Saving rewrites the archive, see [[StudioZip:Editing Archives|Editing Archives]].&lt;br /&gt;
&lt;br /&gt;
=== Compressed files ===&lt;br /&gt;
A &amp;lt;code&amp;gt;.gz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.bz2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.xz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.zst&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.br&amp;lt;/code&amp;gt; file is unpacked once when it is opened.&lt;br /&gt;
* If the content is a tar archive, the tab shows the full tar listing.&lt;br /&gt;
* Otherwise the tab shows a single file named after the archive without the compression suffix. &amp;lt;code&amp;gt;notes.txt.gz&amp;lt;/code&amp;gt; contains &amp;lt;code&amp;gt;notes.txt&amp;lt;/code&amp;gt;. A &amp;lt;code&amp;gt;.tgz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.txz&amp;lt;/code&amp;gt; that holds no tar contains &amp;lt;code&amp;gt;&amp;amp;lt;name&amp;amp;gt;.tar&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
zstd uses the decoder built into newer VS Code versions. Older versions fall back to a decoder bundled with the extension.&lt;br /&gt;
&lt;br /&gt;
=== tar ===&lt;br /&gt;
GNU and PAX long file names are supported. A plain &amp;lt;code&amp;gt;.tar&amp;lt;/code&amp;gt; on disk is not copied or unpacked, only its headers are read. Links and device files are listed as empty files.&lt;br /&gt;
&lt;br /&gt;
=== Packages ===&lt;br /&gt;
* A &#039;&#039;&#039;&amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt;&#039;&#039;&#039; shows its three parts as they are: &amp;lt;code&amp;gt;debian-binary&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;control.tar.*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;data.tar.*&amp;lt;/code&amp;gt;. Open &amp;lt;code&amp;gt;data.tar.zst&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;data.tar.xz&amp;lt;/code&amp;gt; like any nested archive to see the packaged files.&lt;br /&gt;
* An &#039;&#039;&#039;&amp;lt;code&amp;gt;.rpm&amp;lt;/code&amp;gt;&#039;&#039;&#039; shows the files of its cpio payload. The payload may be compressed with gzip, xz, zstd or bzip2, or not at all.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;.cpio&amp;lt;/code&amp;gt;&#039;&#039;&#039; archives in the &amp;lt;code&amp;gt;newc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;crc&amp;lt;/code&amp;gt; and portable ASCII (&amp;lt;code&amp;gt;odc&amp;lt;/code&amp;gt;) formats are supported.&lt;br /&gt;
&lt;br /&gt;
=== 7z, RAR, CAB and ISO ===&lt;br /&gt;
These are read with a WebAssembly build of libarchive that ships with the extension. It is loaded only when you open such a file. RAR and RAR5 are supported. Password protected 7z and RAR archives cannot be read.&lt;br /&gt;
&lt;br /&gt;
=== asar ===&lt;br /&gt;
Read with random access. Files that the app keeps outside the bundle (&amp;lt;code&amp;gt;.unpacked&amp;lt;/code&amp;gt;) and symbolic links are listed, but they have no content inside the archive and show as empty.&lt;br /&gt;
&lt;br /&gt;
=== Memory use ===&lt;br /&gt;
Formats that must be unpacked as a whole (compressed tar, single compressed files, RPM, 7z, RAR, CAB, ISO) are unpacked once into memory when they are opened. Above 64 MB the unpacked data goes to a temporary file in the extension&#039;s storage folder instead. The file is deleted when the archive is closed.&lt;br /&gt;
&lt;br /&gt;
== Nested archives ==&lt;br /&gt;
A file inside an archive that has one of the archive extensions is treated as a nested archive. It gets an archive icon in the tree, and &#039;&#039;Open in editor&#039;&#039; opens it in its own Studio ZIP tab. Nesting has no depth limit, for example &amp;lt;code&amp;gt;data.tar.zst&amp;lt;/code&amp;gt; inside a &amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt;, or a &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt; inside a &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt; inside a &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The bytes of a nested archive are taken from the outer archive and kept in memory while it is open. Writing works when every archive in the chain is a ZIP. See [[StudioZip:Editing Archives#Which archives can be written|Which archives can be written]].&lt;br /&gt;
&lt;br /&gt;
== Encrypted archives ==&lt;br /&gt;
Encrypted ZIP entries can be read. Both WinZip AES (128, 192 and 256 bit) and the older ZipCrypto method are supported.&lt;br /&gt;
* Encrypted files have a lock icon in the tree. The archive listing itself is never encrypted, so the tree always opens without a password.&lt;br /&gt;
* The preview does not show encrypted files. Use &#039;&#039;Open in editor&#039;&#039; or &#039;&#039;Extract…&#039;&#039;.&lt;br /&gt;
* The first time an encrypted file is read, Studio ZIP asks for the password in an input box titled &amp;lt;code&amp;gt;Password for &amp;amp;lt;archive&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The password is kept in memory for this VS Code window only. It is not saved anywhere. After a reload you are asked again.&lt;br /&gt;
* A wrong password shows &amp;lt;code&amp;gt;Wrong password.&amp;lt;/code&amp;gt; The next attempt asks again.&lt;br /&gt;
* An archive with encrypted entries cannot be written. See [[StudioZip:Editing Archives|Editing Archives]].&lt;br /&gt;
&lt;br /&gt;
Encrypted entries in 7z and RAR archives are listed with a lock icon, but their content cannot be read.&lt;br /&gt;
&lt;br /&gt;
{{StudioZip Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StudioZip:Preview&amp;diff=2527</id>
		<title>StudioZip:Preview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StudioZip:Preview&amp;diff=2527"/>
		<updated>2026-10-20T21:29:46Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The right pane of the [[StudioZip:Archive Tab|Studio ZIP tab]] shows the file you selected in the tree. The header above it shows the path of the file inside the archive.&lt;br /&gt;
&lt;br /&gt;
== What is shown ==&lt;br /&gt;
Studio ZIP decides in this order:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! How it is detected !! Shown as&lt;br /&gt;
|-&lt;br /&gt;
| Image || File extension &amp;lt;code&amp;gt;.png&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.jpeg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.gif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.webp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.bmp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ico&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.svg&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.avif&amp;lt;/code&amp;gt; || The image&lt;br /&gt;
|-&lt;br /&gt;
| PDF || Extension &amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt;, or the file starts with &amp;lt;code&amp;gt;%PDF-&amp;lt;/code&amp;gt; || PDF viewer, see below&lt;br /&gt;
|-&lt;br /&gt;
| Text || Valid UTF-8 and no zero bytes in the first 8 KB || Read-only text editor, see below&lt;br /&gt;
|-&lt;br /&gt;
| Anything else || || &amp;lt;code&amp;gt;Binary file · &amp;amp;lt;size&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The preview never changes the archive. To edit a file, use &#039;&#039;Open in editor&#039;&#039;. See [[StudioZip:Editing Archives|Editing Archives]].&lt;br /&gt;
&lt;br /&gt;
== Text files ==&lt;br /&gt;
Text is shown in Monaco, the editor engine that VS Code itself uses, bundled into the extension. The editor in the preview is read-only.&lt;br /&gt;
* Syntax highlighting, chosen from the file extension or name (for example &amp;lt;code&amp;gt;.java&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.json&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.py&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Dockerfile&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MANIFEST.MF&amp;lt;/code&amp;gt;). Unknown types are shown as plain text.&lt;br /&gt;
* Code folding, the find widget (&amp;lt;code&amp;gt;Ctrl+F&amp;lt;/code&amp;gt;) and a minimap.&lt;br /&gt;
* Light or dark colors to match the current VS Code theme. The colors change when you switch the theme.&lt;br /&gt;
&lt;br /&gt;
There is no IntelliSense, no error checking and no link detection in the preview. Open the file in an editor tab to get the language features of VS Code.&lt;br /&gt;
&lt;br /&gt;
== Images ==&lt;br /&gt;
Images are shown at their own size. Images wider than the pane are scaled down to fit its width. Scaled images are not smoothed, so pixel art stays sharp.&lt;br /&gt;
&lt;br /&gt;
== PDF files ==&lt;br /&gt;
PDF files are rendered with pdf.js, bundled into the extension. It works offline.&lt;br /&gt;
* A toolbar shows the current page and the zoom level.&lt;br /&gt;
* &#039;&#039;Zoom out&#039;&#039; and &#039;&#039;Zoom in&#039;&#039; step through 25, 50, 75, 100, 125, 150, 200, 300 and 400 %.&lt;br /&gt;
* &#039;&#039;Fit width&#039;&#039; scales the pages to the width of the pane. This is the default. It follows when the pane is resized.&lt;br /&gt;
* Pages are rendered only near the visible area, so long documents stay fast.&lt;br /&gt;
* The text in a PDF cannot be selected.&lt;br /&gt;
&lt;br /&gt;
== Large files ==&lt;br /&gt;
Files larger than &amp;lt;code&amp;gt;studioZip.preview.maxFileSizeBytes&amp;lt;/code&amp;gt; (default 5 MB) are not loaded automatically. The pane shows a message such as &amp;lt;code&amp;gt;12.0 MB exceeds the 5.0 MB preview limit.&amp;lt;/code&amp;gt; and a &#039;&#039;Show anyway&#039;&#039; button. Click it to load the file.&lt;br /&gt;
&lt;br /&gt;
The size check uses the uncompressed size and happens before anything is unpacked. Set the value to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to turn the limit off. See [[StudioZip:Commands and Settings|Commands and Settings]].&lt;br /&gt;
&lt;br /&gt;
== Encrypted files ==&lt;br /&gt;
Encrypted files are not previewed. The pane shows &amp;lt;code&amp;gt;This entry is encrypted.&amp;lt;/code&amp;gt; To read an encrypted ZIP entry, use &#039;&#039;Open in editor&#039;&#039; or &#039;&#039;Extract…&#039;&#039;. Studio ZIP then asks for the password. See [[StudioZip:Supported Formats#Encrypted archives|Encrypted archives]].&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
If a file cannot be read, the pane shows the error message in place of the preview, for example when the archive is damaged.&lt;br /&gt;
&lt;br /&gt;
{{StudioZip Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StudioZip:Main_Page&amp;diff=2526</id>
		<title>StudioZip:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StudioZip:Main_Page&amp;diff=2526"/>
		<updated>2026-10-20T21:29:46Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Studio ZIP Wiki}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-columns&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col-wide&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Studio ZIP}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-intro&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;ma-intro-icon&amp;quot;&amp;gt;[[File:StudioZip_Icon.png|112px|link=|alt=Studio ZIP]]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;ma-intro-text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Studio ZIP&#039;&#039;&#039; is a Visual Studio Code extension for archives. When you click a &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.7z&amp;lt;/code&amp;gt; or one of many other archive files, VS Code opens a Studio ZIP tab instead of the &amp;quot;binary file&amp;quot; message. The tab shows the file tree on the left and a preview of the selected file on the right.&lt;br /&gt;
&lt;br /&gt;
Every file in an archive can also be opened as a regular editor tab. Archives of the ZIP family can be edited and saved this way without unpacking them. All other formats are read-only.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Latest version}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;ma-facts&amp;quot;&lt;br /&gt;
! Extension&lt;br /&gt;
| 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
! VS Code&lt;br /&gt;
| 1.90 or newer&lt;br /&gt;
|-&lt;br /&gt;
! Requires&lt;br /&gt;
| No other extensions&lt;br /&gt;
|-&lt;br /&gt;
! Download&lt;br /&gt;
| [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.studio-zip VS Code Marketplace]&lt;br /&gt;
|}&lt;br /&gt;
The information in this wiki is taken from version 4.0.0.&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box start|title=Quick start}}&lt;br /&gt;
&lt;br /&gt;
# Install the extension from the Marketplace. See [[StudioZip:Installation|Installation]].&lt;br /&gt;
# Click an archive in the Explorer, for example a &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;. A Studio ZIP tab opens. See [[StudioZip:Archive Tab|Archive Tab]].&lt;br /&gt;
# Click a file in the tree to see it on the right. Text, images and PDF files are shown directly. See [[StudioZip:Preview|Preview]].&lt;br /&gt;
# Hover a file and click &#039;&#039;Open in editor&#039;&#039; to edit it in a normal tab. Press &amp;lt;code&amp;gt;Ctrl+S&amp;lt;/code&amp;gt; to write the change into the archive. See [[StudioZip:Editing Archives|Editing Archives]].&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
{{MA Box start|title=Screenshot}}&lt;br /&gt;
[[File:StudioZip_Screenshot_01.png|800px|center|A ZIP archive in the Studio ZIP tab, with the file tree on the left and the preview on the right]]&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-columns&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Getting started}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=StudioZip_Icon.png|link=StudioZip:Installation|label=Installation}}&lt;br /&gt;
{{MA Tile|link=StudioZip:Archive Tab|label=Archive Tab}}&lt;br /&gt;
{{MA Tile|link=StudioZip:Preview|label=Preview}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Working with archives}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|link=StudioZip:Editing Archives|label=Editing Archives}}&lt;br /&gt;
{{MA Tile|link=StudioZip:Supported Formats|label=Supported Formats}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box start|title=Reference}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|link=StudioZip:Commands and Settings|label=Commands and Settings}}&lt;br /&gt;
{{MA Tile|link=StudioZip:FAQ|label=FAQ}}&lt;br /&gt;
{{MA Tile|link=StudioZip:Version History|label=Version History}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{{StudioZip Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StudioZip:Installation&amp;diff=2525</id>
		<title>StudioZip:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StudioZip:Installation&amp;diff=2525"/>
		<updated>2026-10-20T21:29:46Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! VS Code&lt;br /&gt;
| 1.90 or newer (&amp;lt;code&amp;gt;engines.vscode&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;^1.90.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
! Other extensions&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
! Platforms&lt;br /&gt;
| One package for all platforms. The extension has no native modules. Its decoders are plain JavaScript or WebAssembly.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
=== From the Marketplace ===&lt;br /&gt;
# Open the Extensions view in VS Code (&amp;lt;code&amp;gt;Ctrl+Shift+X&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Search for &#039;&#039;&#039;Studio ZIP&#039;&#039;&#039; by MutigerAffe.&lt;br /&gt;
# Click &#039;&#039;Install&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
You can also open the [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.studio-zip Marketplace page] in the browser and click &#039;&#039;Install&#039;&#039; there.&lt;br /&gt;
&lt;br /&gt;
=== From the Quick Open box ===&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctrl+P&amp;lt;/code&amp;gt;, paste the following line and press &amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;ext install MutigerAffe.studio-zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== After installing ==&lt;br /&gt;
Nothing has to be set up. Click an archive in the Explorer and it opens in a Studio ZIP tab. See [[StudioZip:Archive Tab|Archive Tab]].&lt;br /&gt;
&lt;br /&gt;
Whether one click or a double click opens a file depends on the VS Code setting &amp;lt;code&amp;gt;workbench.list.openMode&amp;lt;/code&amp;gt;, not on Studio ZIP.&lt;br /&gt;
&lt;br /&gt;
== Updating from an older version ==&lt;br /&gt;
Versions before 4.0.0 used a different extension id. VS Code does not replace the old extension with 4.0.0 on its own. If you have an older version installed, uninstall it in the Extensions view and install the current one. See [[StudioZip:Version History|Version History]].&lt;br /&gt;
&lt;br /&gt;
== Uninstalling ==&lt;br /&gt;
Open the Extensions view, click the gear icon next to Studio ZIP and choose &#039;&#039;Uninstall&#039;&#039;. Mounted archives are workspace folders, so remove them first with &amp;lt;code&amp;gt;Studio ZIP: Unmount Archive Workspace Folder&amp;lt;/code&amp;gt; or by removing the folder from the workspace.&lt;br /&gt;
&lt;br /&gt;
{{StudioZip Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StudioZip:FAQ&amp;diff=2524</id>
		<title>StudioZip:FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StudioZip:FAQ&amp;diff=2524"/>
		<updated>2026-10-20T21:29:46Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Opening archives ==&lt;br /&gt;
;Clicking an archive still shows the &amp;quot;binary file&amp;quot; message.&lt;br /&gt;
:Check that the file extension is in the list on [[StudioZip:Supported Formats#Opens on click|Supported Formats]]. If another extension or &amp;lt;code&amp;gt;workbench.editorAssociations&amp;lt;/code&amp;gt; assigns a different editor, right-click the file, choose &#039;&#039;Open With…&#039;&#039; and pick &#039;&#039;Studio ZIP&#039;&#039;. In that menu you can also make it the default.&lt;br /&gt;
&lt;br /&gt;
;A &amp;lt;code&amp;gt;.docx&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.xlsx&amp;lt;/code&amp;gt; does not open in Studio ZIP.&lt;br /&gt;
:These Office types are not registered for the Studio ZIP tab. Studio ZIP only opens them when they are inside another archive. See [[StudioZip:Supported Formats#Opens on click|Supported Formats]].&lt;br /&gt;
&lt;br /&gt;
;Clicking an &amp;lt;code&amp;gt;.asar&amp;lt;/code&amp;gt; file does nothing useful.&lt;br /&gt;
:VS Code treats &amp;lt;code&amp;gt;.asar&amp;lt;/code&amp;gt; files as folders. Run &amp;lt;code&amp;gt;Studio ZIP: Mount Archive as Workspace Folder&amp;lt;/code&amp;gt; from the Command Palette and choose the file there.&lt;br /&gt;
&lt;br /&gt;
;The tab shows &amp;lt;code&amp;gt;Not a recognised archive: &amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
:Neither the first bytes nor the file extension match a known format. The file may be damaged or of a format Studio ZIP does not support.&lt;br /&gt;
&lt;br /&gt;
;A file with the wrong extension opens as the wrong format.&lt;br /&gt;
:With &amp;lt;code&amp;gt;studioZip.detection.useMagicBytes&amp;lt;/code&amp;gt; turned on (the default), the signature of the file decides, not the extension. If you turned it off, only the extension counts. See [[StudioZip:Commands and Settings#Settings|Settings]].&lt;br /&gt;
&lt;br /&gt;
;A ZIP opens, but one file shows an error such as &amp;quot;unsupported compression method&amp;quot;.&lt;br /&gt;
:Studio ZIP reads ZIP entries that are stored or compressed with deflate. Entries that use other methods, for example LZMA or bzip2 inside a ZIP, cannot be read.&lt;br /&gt;
&lt;br /&gt;
== Preview ==&lt;br /&gt;
;The preview shows &amp;lt;code&amp;gt;Binary file&amp;lt;/code&amp;gt; for a text file.&lt;br /&gt;
:Text is only detected if the file is valid UTF-8 and has no zero bytes in its first 8 KB. Files in other encodings, such as UTF-16 or Latin-1 with special characters, count as binary. Open them with &#039;&#039;Open in editor&#039;&#039; to let VS Code pick the encoding.&lt;br /&gt;
&lt;br /&gt;
;The preview asks me to click &#039;&#039;Show anyway&#039;&#039;.&lt;br /&gt;
:The file is larger than &amp;lt;code&amp;gt;studioZip.preview.maxFileSizeBytes&amp;lt;/code&amp;gt;. Click the button, or raise or turn off the limit. See [[StudioZip:Preview#Large files|Large files]].&lt;br /&gt;
&lt;br /&gt;
;Encrypted files show &amp;lt;code&amp;gt;This entry is encrypted.&amp;lt;/code&amp;gt;&lt;br /&gt;
:The preview does not read encrypted files. Use &#039;&#039;Open in editor&#039;&#039; or &#039;&#039;Extract…&#039;&#039; and enter the password.&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
;I cannot save a file from a &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.7z&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.deb&amp;lt;/code&amp;gt;.&lt;br /&gt;
:Only the ZIP family can be written. Files from other formats open read-only. See [[StudioZip:Editing Archives#Which archives can be written|Which archives can be written]].&lt;br /&gt;
&lt;br /&gt;
;Saving fails in a ZIP with encrypted files.&lt;br /&gt;
:Saving rewrites every file in the archive, and encrypted files cannot be rewritten. Archives with encrypted entries are therefore read-only in practice.&lt;br /&gt;
&lt;br /&gt;
;I saved a change, but the Studio ZIP tab still shows the old content.&lt;br /&gt;
:The tab loads the file list once when it opens. Close the tab and open the archive again.&lt;br /&gt;
&lt;br /&gt;
;I changed the archive with another program, but VS Code still shows the old content.&lt;br /&gt;
:Studio ZIP keeps an archive open while a tab, an editor or a mounted folder uses it, and for about one minute after the last use. Changes made by other programs during that time are not picked up. Close all Studio ZIP tabs and editors of that archive, unmount it, wait a minute and open it again.&lt;br /&gt;
&lt;br /&gt;
;Saving a large archive is slow.&lt;br /&gt;
:ZIP cannot change a file in place, so every save writes the whole archive again. The time grows with the size of the archive, not with the size of your change.&lt;br /&gt;
&lt;br /&gt;
;Where do the &amp;lt;code&amp;gt;.studio-zip-….tmp&amp;lt;/code&amp;gt; files come from?&lt;br /&gt;
:Studio ZIP writes the new archive to such a file next to the original and then puts it in place. Normally the file is gone when the save is finished. A file left over after a crash can be deleted.&lt;br /&gt;
&lt;br /&gt;
== Passwords ==&lt;br /&gt;
;Is my archive password saved?&lt;br /&gt;
:No. It is kept in memory for the current VS Code window only. Reload the window to forget it.&lt;br /&gt;
&lt;br /&gt;
;I entered a wrong password.&lt;br /&gt;
:Reading fails with &amp;lt;code&amp;gt;Wrong password.&amp;lt;/code&amp;gt; The next attempt to read an encrypted file asks again.&lt;br /&gt;
&lt;br /&gt;
;Can Studio ZIP open password protected 7z or RAR archives?&lt;br /&gt;
:No. Their entries are listed, but the content cannot be read.&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
;Does Studio ZIP need an internet connection?&lt;br /&gt;
:No. All decoders, the text editor and the PDF viewer are bundled with the extension.&lt;br /&gt;
&lt;br /&gt;
;Can I search inside a mounted archive?&lt;br /&gt;
:Studio ZIP provides no search for its file system, so &#039;&#039;Search&#039;&#039; (&amp;lt;code&amp;gt;Ctrl+Shift+F&amp;lt;/code&amp;gt;) does not find text in mounted archives. Open the file and use &amp;lt;code&amp;gt;Ctrl+F&amp;lt;/code&amp;gt; in the editor instead.&lt;br /&gt;
&lt;br /&gt;
{{StudioZip Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StudioZip:Editing_Archives&amp;diff=2523</id>
		<title>StudioZip:Editing Archives</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StudioZip:Editing_Archives&amp;diff=2523"/>
		<updated>2026-10-20T21:29:46Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Studio ZIP adds a file system with the scheme &amp;lt;code&amp;gt;zipfs:&amp;lt;/code&amp;gt; to VS Code. Files inside an archive can be opened through it like normal files: in editor tabs, with syntax highlighting, find and replace and the other editor features of VS Code.&lt;br /&gt;
&lt;br /&gt;
== Opening a file in an editor tab ==&lt;br /&gt;
In the [[StudioZip:Archive Tab|Studio ZIP tab]], hover a file and click &#039;&#039;Open in editor&#039;&#039;.&lt;br /&gt;
* A normal file opens in a regular VS Code editor tab.&lt;br /&gt;
* A nested archive, for example a &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt; inside a &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt;, opens in its own Studio ZIP tab. From there you can go one level deeper in the same way.&lt;br /&gt;
&lt;br /&gt;
Files from archives that cannot be written open as read-only editors.&lt;br /&gt;
&lt;br /&gt;
== Mounting an archive ==&lt;br /&gt;
You can also add an archive to the workspace as an extra folder. It then appears in the Explorer like any other folder, and you can browse, open, create, rename and delete files there.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;From the Explorer:&#039;&#039;&#039; right-click the archive and choose &#039;&#039;Mount Archive as Workspace Folder&#039;&#039;. This menu entry is shown for &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ear&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.aar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.apk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ipa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.vsix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.nupkg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.whl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.xpi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.crx&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.epub&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;From the Command Palette:&#039;&#039;&#039; run &amp;lt;code&amp;gt;Studio ZIP: Mount Archive as Workspace Folder&amp;lt;/code&amp;gt; and choose the archive in the file dialog. This works for the other formats too, including &amp;lt;code&amp;gt;.asar&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The folder is added at the end of the workspace and named after the archive. VS Code cannot show the content under the archive file itself, so it is a separate folder at the bottom of the Explorer. If the archive is already mounted, you get the message &amp;lt;code&amp;gt;&amp;amp;lt;name&amp;amp;gt; is already mounted.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remove it again, run &amp;lt;code&amp;gt;Studio ZIP: Unmount Archive Workspace Folder&amp;lt;/code&amp;gt; and pick the archive from the list, or remove the folder from the workspace as usual. Unmounting does not change the archive.&lt;br /&gt;
&lt;br /&gt;
Searching across files (&amp;lt;code&amp;gt;Ctrl+Shift+F&amp;lt;/code&amp;gt;) does not cover mounted archives. Studio ZIP provides no search for its file system.&lt;br /&gt;
&lt;br /&gt;
== Which archives can be written ==&lt;br /&gt;
Only the &#039;&#039;&#039;ZIP family&#039;&#039;&#039; can be written: &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.apk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.vsix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.epub&amp;lt;/code&amp;gt; and every other format that is a ZIP inside. See [[StudioZip:Supported Formats|Supported Formats]].&lt;br /&gt;
&lt;br /&gt;
All other formats are read-only. Changing a single file in a &amp;lt;code&amp;gt;.tar.xz&amp;lt;/code&amp;gt; would mean compressing the whole archive again on every save. Their files open as read-only editors, and the summary line of the Studio ZIP tab shows &amp;lt;code&amp;gt;read-only&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A nested archive can be written if every archive in the chain is a ZIP, for example a &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt; inside a &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt;. Saving it writes the inner archive back into the outer one. A ZIP inside a &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; is read-only, because the outer archive cannot be written.&lt;br /&gt;
&lt;br /&gt;
An archive that contains encrypted files cannot be written at all. Saving fails with &amp;lt;code&amp;gt;Cannot write to an archive with encrypted entries (&amp;amp;lt;name&amp;amp;gt;).&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What you can change ==&lt;br /&gt;
In a writable archive, the following work from an editor tab or a mounted folder:&lt;br /&gt;
* Save changes to a file (&amp;lt;code&amp;gt;Ctrl+S&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Create new files and folders. Missing parent folders are created with them.&lt;br /&gt;
* Delete files and folders. Deleting a folder removes everything in it.&lt;br /&gt;
* Rename and move files and folders inside the same archive.&lt;br /&gt;
&lt;br /&gt;
Moving a file from one archive into another is not possible in one step. Studio ZIP refuses it with &amp;lt;code&amp;gt;Studio ZIP cannot move entries between archives.&amp;lt;/code&amp;gt; Copy the file and delete the original instead.&lt;br /&gt;
&lt;br /&gt;
== How saving works ==&lt;br /&gt;
ZIP has no way to change one file in place, so every save writes the whole archive again.&lt;br /&gt;
* The new archive is written to a temporary file next to the original (&amp;lt;code&amp;gt;&amp;amp;lt;archive&amp;amp;gt;.studio-zip-&amp;amp;lt;random&amp;amp;gt;.tmp&amp;lt;/code&amp;gt;). Only when it is complete does it replace the original. If VS Code crashes while writing, the original stays as it was.&lt;br /&gt;
* The file permissions of the archive itself are kept.&lt;br /&gt;
* Files you did not change are copied over one at a time with their compression method, modification time and Unix permissions, including the executable bit. A stored (uncompressed) file stays stored. This matters for &amp;lt;code&amp;gt;.epub&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;mimetype&amp;lt;/code&amp;gt; file must not be compressed.&lt;br /&gt;
* The order of the files is kept. New files are added at the end.&lt;br /&gt;
* Files you changed or added are compressed and get the current time.&lt;br /&gt;
* Saves to the same archive run one after another, so two quick saves cannot overwrite each other.&lt;br /&gt;
&lt;br /&gt;
Large archives are written in a stream, so saving a file in an archive of several gigabytes does not load the whole archive into memory. Saving still takes longer the larger the archive is.&lt;br /&gt;
&lt;br /&gt;
{{StudioZip Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StudioZip:Commands_and_Settings&amp;diff=2522</id>
		<title>StudioZip:Commands and Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StudioZip:Commands_and_Settings&amp;diff=2522"/>
		<updated>2026-10-20T21:29:46Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Commands ==&lt;br /&gt;
All commands are in the category &#039;&#039;Studio ZIP&#039;&#039;. Open the Command Palette with &amp;lt;code&amp;gt;Ctrl+Shift+P&amp;lt;/code&amp;gt; and type &amp;quot;Studio ZIP&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! ID !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Studio ZIP: Mount Archive as Workspace Folder&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;studioZip.mountArchive&amp;lt;/code&amp;gt; || Adds an archive to the workspace as an extra folder. From the Command Palette a file dialog asks for the archive. From the Explorer context menu it uses the file you right-clicked. See [[StudioZip:Editing Archives#Mounting an archive|Mounting an archive]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Studio ZIP: Unmount Archive Workspace Folder&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;studioZip.unmountArchive&amp;lt;/code&amp;gt; || Shows a list of the mounted archives and removes the one you pick from the workspace. If nothing is mounted, it shows &amp;lt;code&amp;gt;No archives are mounted.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Studio ZIP: Open in Studio ZIP&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;studioZip.openArchiveEditor&amp;lt;/code&amp;gt; || Opens an archive in the Studio ZIP tab. Without an argument a file dialog asks for the archive. This command is hidden from the Command Palette. You can still bind it to a key.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== File dialog ===&lt;br /&gt;
The file dialog of the commands above lists these types under &#039;&#039;Archives&#039;&#039;: &amp;lt;code&amp;gt;zip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;jar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;war&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ear&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;aar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ipa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vsix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nupkg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;whl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;xpi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;crx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;epub&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tgz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;taz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bz2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tbz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tbz2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;txz&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zst&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tzst&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;br&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7z&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;deb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;udeb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cpio&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;iso&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cab&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;asar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;unitypackage&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;crate&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gem&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;msix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;appx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;aab&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;love&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Menus ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Menu !! Entry !! Shown for&lt;br /&gt;
|-&lt;br /&gt;
| Explorer context menu || &#039;&#039;Mount Archive as Workspace Folder&#039;&#039; || &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ear&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.aar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.apk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.ipa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.vsix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.nupkg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.whl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.xpi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.crx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.epub&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other archive types can be mounted from the Command Palette.&lt;br /&gt;
&lt;br /&gt;
== Keybindings ==&lt;br /&gt;
Studio ZIP adds no keybindings of its own. To add one, open &#039;&#039;File → Preferences → Keyboard Shortcuts&#039;&#039; and search for the command ID. For example, in &amp;lt;code&amp;gt;keybindings.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{ &amp;quot;key&amp;quot;: &amp;quot;ctrl+alt+m&amp;quot;, &amp;quot;command&amp;quot;: &amp;quot;studioZip.mountArchive&amp;quot; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
Open &#039;&#039;File → Preferences → Settings&#039;&#039; and search for &amp;quot;Studio ZIP&amp;quot;, or edit &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Type !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;studioZip.preview.maxFileSizeBytes&amp;lt;/code&amp;gt; || number, 0 or more || &amp;lt;code&amp;gt;5242880&amp;lt;/code&amp;gt; (5 MB) || Files larger than this (uncompressed) are not previewed automatically in the Studio ZIP tab. The pane shows a &#039;&#039;Show anyway&#039;&#039; button instead. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; turns the limit off. See [[StudioZip:Preview#Large files|Large files]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;studioZip.detection.useMagicBytes&amp;lt;/code&amp;gt; || boolean || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Detects the archive format from the first bytes of the file. If no signature matches, the file extension is used. With &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; only the file extension counts. See [[StudioZip:Supported Formats#Format detection|Format detection]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Both settings are read when they are needed. &amp;lt;code&amp;gt;studioZip.preview.maxFileSizeBytes&amp;lt;/code&amp;gt; applies to the next file you select. &amp;lt;code&amp;gt;studioZip.detection.useMagicBytes&amp;lt;/code&amp;gt; applies to archives opened after the change. An archive that is already open keeps its format until it is closed.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;studioZip.preview.maxFileSizeBytes&amp;quot;: 20971520,&lt;br /&gt;
  &amp;quot;studioZip.detection.useMagicBytes&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Editor ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! View type !! Name !! Priority&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;studioZip.archive&amp;lt;/code&amp;gt; || Studio ZIP || default&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Studio ZIP is the default editor for all patterns listed on [[StudioZip:Supported Formats#Opens on click|Supported Formats]]. To open such a file with a different editor, right-click it and choose &#039;&#039;Open With…&#039;&#039;. To change the default for a pattern, use the VS Code setting &amp;lt;code&amp;gt;workbench.editorAssociations&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== File system ==&lt;br /&gt;
Studio ZIP registers the URI scheme &amp;lt;code&amp;gt;zipfs:&amp;lt;/code&amp;gt;. Files opened with &#039;&#039;Open in editor&#039;&#039; and mounted archives use it. The extension is activated when VS Code first needs this scheme or the Studio ZIP editor.&lt;br /&gt;
&lt;br /&gt;
{{StudioZip Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StudioZip:Archive_Tab&amp;diff=2521</id>
		<title>StudioZip:Archive Tab</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StudioZip:Archive_Tab&amp;diff=2521"/>
		<updated>2026-10-20T21:29:45Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Studio ZIP tab is the main view of the extension. It opens when you click an archive in the Explorer, and it is the default editor for all file types listed under &#039;&#039;Opens on click&#039;&#039; on the [[StudioZip:Supported Formats|Supported Formats]] page.&lt;br /&gt;
&lt;br /&gt;
[[File:StudioZip_Screenshot_01.png|800px|center|The Studio ZIP tab with the tree on the left and the preview on the right]]&lt;br /&gt;
&lt;br /&gt;
== Layout ==&lt;br /&gt;
The tab has two panes with a splitter between them.&lt;br /&gt;
* &#039;&#039;&#039;Left:&#039;&#039;&#039; the file tree of the archive.&lt;br /&gt;
* &#039;&#039;&#039;Right:&#039;&#039;&#039; the preview of the selected file. See [[StudioZip:Preview|Preview]].&lt;br /&gt;
&lt;br /&gt;
Drag the splitter to change the width of the tree. Each pane keeps at least 160 pixels.&lt;br /&gt;
&lt;br /&gt;
The tab follows the VS Code color theme, light or dark. It keeps its state while it is in the background, so the tree is not rebuilt and the scroll position stays when you switch tabs.&lt;br /&gt;
&lt;br /&gt;
== Summary line ==&lt;br /&gt;
The header above the tree shows the archive name, the number of files and the total size, for example &amp;lt;code&amp;gt;Hytale.zip · 406 files · 7.6 GB&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The size is the sum of the &#039;&#039;&#039;uncompressed&#039;&#039;&#039; sizes of all files, not the size of the archive on disk.&lt;br /&gt;
* Archives that cannot be written show &amp;lt;code&amp;gt;· read-only&amp;lt;/code&amp;gt; at the end. Only the ZIP family is writable. See [[StudioZip:Editing Archives|Editing Archives]].&lt;br /&gt;
* For an archive inside another archive the name is the name of the inner archive.&lt;br /&gt;
&lt;br /&gt;
== File tree ==&lt;br /&gt;
* Folders come first, then files. Both are sorted by name, ignoring case, with numbers in natural order (&amp;lt;code&amp;gt;2.jpeg&amp;lt;/code&amp;gt; before &amp;lt;code&amp;gt;10.jpeg&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Folders on the top level are expanded when the tab opens. Click a folder to expand or collapse it.&lt;br /&gt;
* Click a file to select it and show its preview on the right.&lt;br /&gt;
* Files show their uncompressed size on the right side of the row.&lt;br /&gt;
* Many archives store no entries for folders. Studio ZIP adds the missing folders from the file paths, so the tree is complete anyway.&lt;br /&gt;
&lt;br /&gt;
=== Icons ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Icon !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| Folder || A folder. The icon changes to an open folder when it is expanded.&lt;br /&gt;
|-&lt;br /&gt;
| Zip file || A nested archive, for example a &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt; inside a &amp;lt;code&amp;gt;.war&amp;lt;/code&amp;gt;. It can be opened in its own Studio ZIP tab.&lt;br /&gt;
|-&lt;br /&gt;
| Lock || An encrypted file.&lt;br /&gt;
|-&lt;br /&gt;
| PDF file || A &amp;lt;code&amp;gt;.pdf&amp;lt;/code&amp;gt; file.&lt;br /&gt;
|-&lt;br /&gt;
| File || Any other file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Actions on a file ===&lt;br /&gt;
When you hover a file row, two buttons appear on the right:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Button !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Open in editor&#039;&#039; || Opens the file in a regular VS Code editor tab. A nested archive opens in a new Studio ZIP tab instead. See [[StudioZip:Editing Archives|Editing Archives]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Extract…&#039;&#039; || Opens a save dialog and writes a copy of the file to the place you choose. The archive is not changed. A message &amp;lt;code&amp;gt;Extracted &amp;amp;lt;name&amp;amp;gt;.&amp;lt;/code&amp;gt; confirms it.&lt;br /&gt;
|}&lt;br /&gt;
Folders have no buttons. To extract a whole folder, mount the archive as a workspace folder and copy the folder in the Explorer. See [[StudioZip:Editing Archives#Mounting an archive|Mounting an archive]].&lt;br /&gt;
&lt;br /&gt;
== What the tab cannot do ==&lt;br /&gt;
* The tab itself is a viewer. Editing happens in a regular editor tab or in a mounted workspace folder.&lt;br /&gt;
* The tree is loaded once when the tab opens. After you change the archive, close the tab and open it again to see the new content. See [[StudioZip:FAQ|FAQ]].&lt;br /&gt;
* An archive can only have one Studio ZIP tab at a time.&lt;br /&gt;
&lt;br /&gt;
{{StudioZip Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=Category:StudioZip&amp;diff=2520</id>
		<title>Category:StudioZip</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=Category:StudioZip&amp;diff=2520"/>
		<updated>2026-10-20T21:29:44Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All pages about &#039;&#039;&#039;Studio ZIP&#039;&#039;&#039;, the Visual Studio Code extension that opens archives in a tab of their own and lets you read and edit them without unpacking. Start at [[StudioZip:Main Page]].&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=Template:StudioZip_Nav&amp;diff=2519</id>
		<title>Template:StudioZip Nav</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=Template:StudioZip_Nav&amp;diff=2519"/>
		<updated>2026-10-20T21:29:44Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StudioZip wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{| class=&amp;quot;wikitable ma-navbox studiozip-nav&amp;quot; style=&amp;quot;width:100%; margin-top:2em; text-align:center;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | [[StudioZip:Main Page|Studio ZIP]]&lt;br /&gt;
|-&lt;br /&gt;
! Start&lt;br /&gt;
| [[StudioZip:Installation|Installation]]&lt;br /&gt;
|-&lt;br /&gt;
! Features&lt;br /&gt;
| [[StudioZip:Archive Tab|Archive Tab]] · [[StudioZip:Preview|Preview]] · [[StudioZip:Editing Archives|Editing Archives]] · [[StudioZip:Supported Formats|Supported Formats]]&lt;br /&gt;
|-&lt;br /&gt;
! Reference&lt;br /&gt;
| [[StudioZip:Commands and Settings|Commands and Settings]] · [[StudioZip:FAQ|FAQ]] · [[StudioZip:Version History|Version History]]&lt;br /&gt;
|-&lt;br /&gt;
! Links&lt;br /&gt;
| [https://mutigeraffe.com/vscode/studio-zip/ Project page on mutigeraffe.com] · [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.studio-zip Download on the VS Code Marketplace]&lt;br /&gt;
|}&lt;br /&gt;
[[Category:StudioZip]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Navigation box for all Studio ZIP pages. Add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{StudioZip Nav}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; at the bottom of every page in the StudioZip namespace. It also adds the page to [[:Category:StudioZip]].&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=File:StudioZip_Screenshot_01.png&amp;diff=2518</id>
		<title>File:StudioZip Screenshot 01.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=File:StudioZip_Screenshot_01.png&amp;diff=2518"/>
		<updated>2026-10-20T21:29:44Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: == Summary ==
StudioZip wiki images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
StudioZip wiki images&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=File:StudioZip_Icon.png&amp;diff=2517</id>
		<title>File:StudioZip Icon.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=File:StudioZip_Icon.png&amp;diff=2517"/>
		<updated>2026-10-20T21:29:43Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: == Summary ==
StudioZip wiki images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
StudioZip wiki images&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StatLens:Version_History&amp;diff=2516</id>
		<title>StatLens:Version History</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StatLens:Version_History&amp;diff=2516"/>
		<updated>2026-10-20T21:29:39Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StatLens wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 4.0.0 (2026-10-18) ==&lt;br /&gt;
* The extension is now published as &#039;&#039;&#039;Stat Lens&#039;&#039;&#039; by MutigerAffe. The extension id is now &amp;lt;code&amp;gt;MutigerAffe.stat-lens&amp;lt;/code&amp;gt;. A version installed under an older id is not replaced and has to be uninstalled by hand. See [[StatLens:Installation#Updating from an earlier version|Updating from an earlier version]].&lt;br /&gt;
* New license: the extension is now proprietary. Third-party components are listed in the file &amp;lt;code&amp;gt;THIRD_PARTY_NOTICES.md&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The extension is bundled into a single file. It loads faster and the package is smaller.&lt;br /&gt;
* README and changelog are in English.&lt;br /&gt;
&lt;br /&gt;
The ids of the command, the view and the settings did not change. They still start with &amp;lt;code&amp;gt;projectStats&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 1.1.0 (2026-10-18) ==&lt;br /&gt;
* The whole user interface is in English: the view, messages, progress, the command title and the setting descriptions.&lt;br /&gt;
* New vector icon.&lt;br /&gt;
&lt;br /&gt;
== 1.0.0 (2026-09-11) ==&lt;br /&gt;
Listed as 0.2.0 in the changelog of the extension. A reworked view.&lt;br /&gt;
* Expanded and collapsed sections such as &#039;&#039;Languages&#039;&#039; and &#039;&#039;Git&#039;&#039; stay as they are when the view is refreshed or rescanned.&lt;br /&gt;
* The total lines of code are shown in the &#039;&#039;Languages&#039;&#039; row instead of a separate row.&lt;br /&gt;
* Each language shows a text bar of ten blocks next to its percentage.&lt;br /&gt;
* &#039;&#039;Project Age&#039;&#039; and &#039;&#039;Last Change&#039;&#039; show their source (Git commit or file timestamp) in the row itself.&lt;br /&gt;
* Changing &amp;lt;code&amp;gt;projectStats.ignoreComments&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;projectStats.excludeFolders&amp;lt;/code&amp;gt; starts a new scan on its own.&lt;br /&gt;
* Warning icons use the warning color of the current theme.&lt;br /&gt;
* An empty view shows &#039;&#039;No data for this project yet.&#039;&#039; with a &#039;&#039;Scan now&#039;&#039; link.&lt;br /&gt;
* The files under &#039;&#039;Dependencies&#039;&#039; can be clicked to open them, like &#039;&#039;Largest File&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== 0.1.0 (2026-09-09) ==&lt;br /&gt;
The first version.&lt;br /&gt;
* A view in the Explorer with lines of code, languages, files and size, project age, Git history and dependencies.&lt;br /&gt;
* Language colors from GitHub Linguist.&lt;br /&gt;
* Automatic rescan after file changes and a saved result per workspace.&lt;br /&gt;
&lt;br /&gt;
{{StatLens Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StatLens:Sidebar_View&amp;diff=2515</id>
		<title>StatLens:Sidebar View</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StatLens:Sidebar_View&amp;diff=2515"/>
		<updated>2026-10-20T21:29:39Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StatLens wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stat Lens adds one view to the Explorer, called &#039;&#039;&#039;Stat Lens&#039;&#039;&#039;. It is a tree with one row per figure. Some rows can be expanded. Expanded and collapsed sections stay as they are when the view is refreshed.&lt;br /&gt;
&lt;br /&gt;
[[File:StatLens_Screenshot_01.png|475px|The Stat Lens view with the Languages section expanded]]&lt;br /&gt;
&lt;br /&gt;
== Rows ==&lt;br /&gt;
The rows appear in this order. A row is left out when there is no value for it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Row !! Shows&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Languages&#039;&#039; || Total lines of code and the number of languages, for example &amp;lt;code&amp;gt;162,687 lines · 9 languages&amp;lt;/code&amp;gt;. Expand it to see each language.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Files&#039;&#039; || Number of files and folders that were scanned.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Size&#039;&#039; || Total size of all scanned files, in B, KB, MB, GB or TB (steps of 1024).&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Largest File&#039;&#039; || The file with the most lines of code, with its path and line count. Click it to open the file.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Project Age&#039;&#039; || Date of the first commit, how long ago that was, and the source.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Last Change&#039;&#039; || Date of the last commit, how long ago that was, and the source.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Git&#039;&#039; || Number of commits. Expand it for more. See [[#Git|Git]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Dependencies&#039;&#039; || Total number of dependencies in all manifest files. Expand it to see each file. See [[StatLens:Dependencies|Dependencies]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Warnings&#039;&#039; || Only shown when the scan had problems. Expand it to see them. See [[#Warnings|Warnings]].&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Last Scan&#039;&#039; || Date and time of the scan the view is showing.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Languages ==&lt;br /&gt;
Each language has its own row under &#039;&#039;Languages&#039;&#039;, sorted by lines of code, the largest first. A row shows:&lt;br /&gt;
* a colored dot in the language color used by GitHub Linguist. Languages without such a color get one from a fixed palette, always the same for the same language.&lt;br /&gt;
* a text bar of ten blocks, for example &amp;lt;code&amp;gt;████░░░░░░&amp;lt;/code&amp;gt;, as a quick visual of the share&lt;br /&gt;
* the share of all lines of code in percent, with one decimal&lt;br /&gt;
* the lines of code and the number of files in that language&lt;br /&gt;
&lt;br /&gt;
The list includes programming languages and also markup, data and prose formats, for example HTML, JSON, YAML or Markdown. How lines are counted is explained on [[StatLens:Scanning|Scanning]].&lt;br /&gt;
&lt;br /&gt;
== Project Age and Last Change ==&lt;br /&gt;
Both rows prefer Git:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Row !! With Git !! Without Git&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Project Age&#039;&#039; || date of the first commit (&amp;lt;code&amp;gt;source: first commit&amp;lt;/code&amp;gt;) || oldest creation time of a scanned file (&amp;lt;code&amp;gt;source: oldest file&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Last Change&#039;&#039; || date of the last commit (&amp;lt;code&amp;gt;source: last commit&amp;lt;/code&amp;gt;) || newest modification time of a scanned file (&amp;lt;code&amp;gt;source: most recent file change&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The relative age is rounded down: &amp;lt;code&amp;gt;today&amp;lt;/code&amp;gt;, then days, then months (30 days each), then years (365 days each).&lt;br /&gt;
&lt;br /&gt;
== Git ==&lt;br /&gt;
Expand &#039;&#039;Git&#039;&#039; to see:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Row !! Shows&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Commits&#039;&#039; || Number of commits reachable from the current &amp;lt;code&amp;gt;HEAD&amp;lt;/code&amp;gt;, so the history of the branch you have checked out.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Contributors&#039;&#039; || Number of different author e-mail addresses in that history. Upper and lower case are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;First Commit&#039;&#039; || Date of the oldest commit. If the history has more than one root commit, the oldest one counts.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Last Commit&#039;&#039; || Date of the newest commit on &amp;lt;code&amp;gt;HEAD&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the folder is not a Git repository, the &#039;&#039;Git&#039;&#039; row says &amp;lt;code&amp;gt;not a Git repository&amp;lt;/code&amp;gt; and cannot be expanded. Other notes that can appear:&lt;br /&gt;
* &amp;lt;code&amp;gt;git is not installed or not in PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;no commits yet&amp;lt;/code&amp;gt;, for a repository without commits&lt;br /&gt;
* &amp;lt;code&amp;gt;git log failed: ...&amp;lt;/code&amp;gt;, if Git returned an error&lt;br /&gt;
&lt;br /&gt;
Only the first folder of the workspace is used, so Git data comes from the repository that contains that folder.&lt;br /&gt;
&lt;br /&gt;
== Warnings ==&lt;br /&gt;
&#039;&#039;Warnings&#039;&#039; lists problems that did not stop the scan:&lt;br /&gt;
* &amp;lt;code&amp;gt;Folder not readable: ...&amp;lt;/code&amp;gt;, for a folder the extension could not open. Its contents are skipped.&lt;br /&gt;
* &amp;lt;code&amp;gt;Language detection failed: ...&amp;lt;/code&amp;gt;. In this case no lines of code are counted, but files, size, dates and dependencies are still shown.&lt;br /&gt;
&lt;br /&gt;
If the whole scan fails, a row with &amp;lt;code&amp;gt;Scan failed: ...&amp;lt;/code&amp;gt; and a warning icon appears at the top. An older result stays visible below it.&lt;br /&gt;
&lt;br /&gt;
== Other states ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! What you see !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;No data for this project yet.&#039;&#039; with a &#039;&#039;Scan now&#039;&#039; link || There is no result yet. Click &#039;&#039;Scan now&#039;&#039; to start a scan.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Scanning …&#039;&#039; with a spinning icon || A scan is running. The status bar shows the current step, for example &amp;lt;code&amp;gt;Counting lines … 120/497&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;No files found&amp;lt;/code&amp;gt; || The folder is empty or every file in it is excluded.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;No workspace folder open&amp;lt;/code&amp;gt; || Open a folder to use the view.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Number and date format ==&lt;br /&gt;
Numbers, dates and times follow the display language of VS Code. With English, a number looks like &amp;lt;code&amp;gt;69,833&amp;lt;/code&amp;gt; and a date like &amp;lt;code&amp;gt;Oct 16, 2026&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{StatLens Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StatLens:Scanning&amp;diff=2514</id>
		<title>StatLens:Scanning</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StatLens:Scanning&amp;diff=2514"/>
		<updated>2026-10-20T21:29:39Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StatLens wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains what Stat Lens scans, how it counts lines and when it scans again.&lt;br /&gt;
&lt;br /&gt;
== What is scanned ==&lt;br /&gt;
Only the &#039;&#039;&#039;first folder&#039;&#039;&#039; of the workspace is scanned. In a multi-root workspace the other folders are ignored.&lt;br /&gt;
&lt;br /&gt;
The scan walks through every folder below it and skips:&lt;br /&gt;
* every folder whose name is in &amp;lt;code&amp;gt;projectStats.excludeFolders&amp;lt;/code&amp;gt;, on any level. By default these are &amp;lt;code&amp;gt;node_modules&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;obj&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.git&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dist&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;out&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.vs&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.vscode&amp;lt;/code&amp;gt;. See [[StatLens:Commands and Settings|Commands and Settings]].&lt;br /&gt;
* everything excluded by the &amp;lt;code&amp;gt;.gitignore&amp;lt;/code&amp;gt; file in the root of the folder. Other &amp;lt;code&amp;gt;.gitignore&amp;lt;/code&amp;gt; files further down are not used for this step.&lt;br /&gt;
* symbolic links, both to files and to folders&lt;br /&gt;
&lt;br /&gt;
Every file that is left counts towards &#039;&#039;Files&#039;&#039; and &#039;&#039;Size&#039;&#039;. Every folder that is left counts towards &#039;&#039;Files&#039;&#039; as a folder. The root folder itself is not counted.&lt;br /&gt;
&lt;br /&gt;
== Lines of code ==&lt;br /&gt;
=== Which files count ===&lt;br /&gt;
Lines are only counted in files that have a language. The language comes from linguist-js, which uses the rules of GitHub Linguist. It works offline with the language data that ships with the extension.&lt;br /&gt;
&lt;br /&gt;
Files without a language add to &#039;&#039;Files&#039;&#039; and &#039;&#039;Size&#039;&#039;, but not to the lines of code. This includes:&lt;br /&gt;
* binary files, such as images or archives&lt;br /&gt;
* files that Linguist treats as vendored, for example bundled third-party libraries&lt;br /&gt;
* files Linguist leaves out for other reasons, including files marked with &amp;lt;code&amp;gt;linguist-vendored&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;linguist-generated&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;linguist-documentation&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;.gitattributes&amp;lt;/code&amp;gt;, and files excluded by a &amp;lt;code&amp;gt;.gitignore&amp;lt;/code&amp;gt; in a subfolder&lt;br /&gt;
* files larger than 20 MB. They are never read line by line.&lt;br /&gt;
&lt;br /&gt;
Programming languages, markup, data and prose formats all count. JSON, YAML, XML or Markdown files therefore add to the lines of code.&lt;br /&gt;
&lt;br /&gt;
=== How lines are counted ===&lt;br /&gt;
* A line counts if it contains anything other than spaces or tabs. Blank lines never count.&lt;br /&gt;
* Files are read as UTF-8.&lt;br /&gt;
* &#039;&#039;Largest File&#039;&#039; is the file with the most counted lines, not the file with the most bytes.&lt;br /&gt;
&lt;br /&gt;
=== Ignoring comment lines ===&lt;br /&gt;
With &amp;lt;code&amp;gt;projectStats.ignoreComments&amp;lt;/code&amp;gt; set to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, a line also does not count if it starts with one of these, after leading spaces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt; · &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; · &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; · &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; · &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; · &amp;lt;code&amp;gt;&amp;lt;!--&amp;lt;/code&amp;gt; · &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; · &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a simple check that is the same for every language. It does not understand the language itself:&lt;br /&gt;
* A line such as &amp;lt;code&amp;gt;x = 1; // note&amp;lt;/code&amp;gt; still counts, because it does not start with a comment.&lt;br /&gt;
* Lines that start with one of these characters but are code also stop counting, for example &amp;lt;code&amp;gt;#include&amp;lt;/code&amp;gt; in C, a Markdown heading with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, a list item starting with &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; or a line starting with a string in single quotes.&lt;br /&gt;
* The inner lines of a block comment only stop counting if they start with &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; or one of the other prefixes.&lt;br /&gt;
&lt;br /&gt;
== When it scans ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Event !! What happens&lt;br /&gt;
|-&lt;br /&gt;
| You open a folder for the first time || A scan starts on its own.&lt;br /&gt;
|-&lt;br /&gt;
| You open a folder that was scanned before || The saved result is shown at once, with its date in &#039;&#039;Last Scan&#039;&#039;. No new scan starts.&lt;br /&gt;
|-&lt;br /&gt;
| You click the refresh icon or run &#039;&#039;Stat Lens: Rescan&#039;&#039; || A scan starts.&lt;br /&gt;
|-&lt;br /&gt;
| Files are created, changed or deleted || A scan starts 15 seconds after the last change. Each new change restarts the 15 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| You change &amp;lt;code&amp;gt;projectStats.ignoreComments&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;projectStats.excludeFolders&amp;lt;/code&amp;gt; || A scan starts at once.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Changes inside an excluded folder, for example in &amp;lt;code&amp;gt;node_modules&amp;lt;/code&amp;gt;, do not trigger a scan. Changes to files that are only excluded by &amp;lt;code&amp;gt;.gitignore&amp;lt;/code&amp;gt; do.&lt;br /&gt;
&lt;br /&gt;
While a scan is running, a second scan is not started. Clicking refresh again simply waits for the running scan.&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
During a scan the view shows &#039;&#039;Scanning …&#039;&#039; and the status bar shows the current step:&lt;br /&gt;
# &amp;lt;code&amp;gt;Searching files …&amp;lt;/code&amp;gt;, with &amp;lt;code&amp;gt;... files found …&amp;lt;/code&amp;gt; every 500 files&lt;br /&gt;
# &amp;lt;code&amp;gt;Detecting languages …&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;Counting lines … done/total&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;Reading dependencies …&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Git figures are read at the same time as the file scan.&lt;br /&gt;
&lt;br /&gt;
== Saved results ==&lt;br /&gt;
After each scan the result is saved in the VS Code storage for this workspace. It is shown again the next time you open the same folder. Nothing is written into the project folder.&lt;br /&gt;
&lt;br /&gt;
{{StatLens Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StatLens:Main_Page&amp;diff=2513</id>
		<title>StatLens:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StatLens:Main_Page&amp;diff=2513"/>
		<updated>2026-10-20T21:29:38Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StatLens wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Stat Lens Wiki}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-columns&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col-wide&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Stat Lens}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-intro&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;ma-intro-icon&amp;quot;&amp;gt;[[File:StatLens_Icon.png|112px|link=|alt=Stat Lens]]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;ma-intro-text&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Stat Lens&#039;&#039;&#039; is an extension for Visual Studio Code. It adds a &#039;&#039;&#039;Stat Lens&#039;&#039;&#039; view to the Explorer with key figures for the open workspace: lines of code per language, files, folders and size, project age, Git history and dependencies.&lt;br /&gt;
&lt;br /&gt;
Languages are detected with linguist-js, which uses the same rules as GitHub Linguist. The result is saved per workspace and shown right away the next time you open the folder. The view rescans on its own when files change.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Latest version}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;ma-facts&amp;quot;&lt;br /&gt;
! Extension&lt;br /&gt;
| 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
! VS Code&lt;br /&gt;
| 1.100 or newer&lt;br /&gt;
|-&lt;br /&gt;
! Requires&lt;br /&gt;
| A local, trusted folder. Git in the PATH for the Git figures.&lt;br /&gt;
|-&lt;br /&gt;
! Download&lt;br /&gt;
| [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.stat-lens VS Code Marketplace]&lt;br /&gt;
|}&lt;br /&gt;
The values in this wiki are taken from version 4.0.0.&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box start|title=The view}}&lt;br /&gt;
[[File:StatLens_Screenshot_01.png|475px|The Stat Lens view in the Explorer]]&lt;br /&gt;
&lt;br /&gt;
The Stat Lens view with the &#039;&#039;Languages&#039;&#039; section expanded. See [[StatLens:Sidebar View|Sidebar View]] for what every row means.&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
{{MA Box start|title=Quick start}}&lt;br /&gt;
&lt;br /&gt;
# Install the extension from the VS Code Marketplace. See [[StatLens:Installation|Installation]].&lt;br /&gt;
# Open a folder in VS Code.&lt;br /&gt;
# Open the Explorer and expand the &#039;&#039;&#039;Stat Lens&#039;&#039;&#039; view. The first scan starts on its own.&lt;br /&gt;
# Click the refresh icon in the title bar of the view to scan again. See [[StatLens:Scanning|Scanning]].&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-columns&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Getting started}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|image=StatLens_Icon.png|link=StatLens:Installation|label=Installation}}&lt;br /&gt;
{{MA Tile|link=StatLens:Sidebar View|label=Sidebar View}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-col&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Box start|title=Features}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|link=StatLens:Scanning|label=Scanning}}&lt;br /&gt;
{{MA Tile|link=StatLens:Dependencies|label=Dependencies}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box start|title=Reference}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;ma-tiles&amp;quot;&amp;gt;&lt;br /&gt;
{{MA Tile|link=StatLens:Commands and Settings|label=Commands and Settings}}&lt;br /&gt;
{{MA Tile|link=StatLens:FAQ|label=FAQ}}&lt;br /&gt;
{{MA Tile|link=StatLens:Version History|label=Version History}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{MA Box end}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{{StatLens Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StatLens:Installation&amp;diff=2512</id>
		<title>StatLens:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StatLens:Installation&amp;diff=2512"/>
		<updated>2026-10-20T21:29:38Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StatLens wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stat Lens is a regular VS Code extension. It needs no other extensions.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Stat Lens !! VS Code&lt;br /&gt;
|-&lt;br /&gt;
| 4.0.0 || 1.100 or newer (&amp;lt;code&amp;gt;^1.100.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;A folder on the local file system.&#039;&#039;&#039; The extension does not run in virtual workspaces, for example a repository opened directly from GitHub in the browser.&lt;br /&gt;
* &#039;&#039;&#039;A trusted workspace.&#039;&#039;&#039; The extension runs &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; in the workspace and reads all files, so it is disabled in Restricted Mode. Trust the folder with &#039;&#039;Manage Workspace Trust&#039;&#039; to use it.&lt;br /&gt;
* &#039;&#039;&#039;Git&#039;&#039;&#039; (optional). The Git figures need the &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; program in the PATH. Without it, everything else still works and the view shows &amp;lt;code&amp;gt;git is not installed or not in PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
=== From the Marketplace ===&lt;br /&gt;
# Open the Extensions view in VS Code (&amp;lt;code&amp;gt;Ctrl+Shift+X&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Search for &#039;&#039;&#039;Stat Lens&#039;&#039;&#039; by MutigerAffe.&lt;br /&gt;
# Click &#039;&#039;Install&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
You can also open [https://marketplace.visualstudio.com/items?itemName=MutigerAffe.stat-lens Stat Lens on the VS Code Marketplace] and install it from there.&lt;br /&gt;
&lt;br /&gt;
=== From the command line or Quick Open ===&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctrl+P&amp;lt;/code&amp;gt; and enter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ext install MutigerAffe.stat-lens&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or install it from a terminal with the VS Code command line tool:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension MutigerAffe.stat-lens&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== First start ==&lt;br /&gt;
The extension starts shortly after VS Code has finished loading. Open the Explorer. The &#039;&#039;&#039;Stat Lens&#039;&#039;&#039; view appears as its own section there. The first scan of a folder starts on its own, see [[StatLens:Scanning|Scanning]].&lt;br /&gt;
&lt;br /&gt;
If no folder is open, the view shows &amp;lt;code&amp;gt;No workspace folder open&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Updating from an earlier version ==&lt;br /&gt;
Version 4.0.0 is published under the extension id &amp;lt;code&amp;gt;MutigerAffe.stat-lens&amp;lt;/code&amp;gt;. Earlier versions were published under the name Project Stats with a different id. VS Code treats them as separate extensions, so an old version is not replaced. Uninstall it by hand.&lt;br /&gt;
&lt;br /&gt;
== Uninstalling ==&lt;br /&gt;
Uninstall the extension in the Extensions view. Stat Lens writes nothing into your project folder. It only keeps the last scan result in the VS Code workspace storage and small color icons for the languages in its own global storage folder.&lt;br /&gt;
&lt;br /&gt;
{{StatLens Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StatLens:FAQ&amp;diff=2511</id>
		<title>StatLens:FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StatLens:FAQ&amp;diff=2511"/>
		<updated>2026-10-20T21:29:38Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StatLens wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;I don&#039;t see the Stat Lens view.&lt;br /&gt;
:Open the Explorer and look for the &#039;&#039;Stat Lens&#039;&#039; section. If it is missing, right-click the title of the Explorer and check that &#039;&#039;Stat Lens&#039;&#039; is enabled. The extension is also disabled in Restricted Mode and in virtual workspaces. Trust the folder or open it from the local disk. See [[StatLens:Installation|Installation]].&lt;br /&gt;
&lt;br /&gt;
;The view still shows old numbers.&lt;br /&gt;
:When you open a folder that was scanned before, Stat Lens shows the saved result and does not scan again on its own. The date in &#039;&#039;Last Scan&#039;&#039; tells you how old it is. Click the refresh icon to scan now. See [[StatLens:Scanning#When it scans|When it scans]].&lt;br /&gt;
&lt;br /&gt;
;Why does a scan start while I am typing?&lt;br /&gt;
:Stat Lens scans again 15 seconds after the last file change. Saving a file counts as a change. Changes in excluded folders do not.&lt;br /&gt;
&lt;br /&gt;
;Why are my JSON or Markdown files in the language list?&lt;br /&gt;
:Stat Lens counts markup, data and prose formats as well as programming languages, like GitHub Linguist does. To leave out a whole folder, add its name to &amp;lt;code&amp;gt;projectStats.excludeFolders&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;Why do the lines of code differ from GitHub?&lt;br /&gt;
:Both use the Linguist rules, but GitHub shows the share by file size in bytes. Stat Lens shows the share by lines of code. Stat Lens also only uses the &amp;lt;code&amp;gt;.gitignore&amp;lt;/code&amp;gt; in the root folder for its file list.&lt;br /&gt;
&lt;br /&gt;
;A file is counted in Files and Size, but not in the lines of code.&lt;br /&gt;
:Lines are only counted for files with a language. Binary files, vendored files, files larger than 20 MB and files that Linguist leaves out are not counted. See [[StatLens:Scanning#Which files count|Which files count]].&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;Largest File&#039;&#039; is not the biggest file on disk.&lt;br /&gt;
:&#039;&#039;Largest File&#039;&#039; is the file with the most lines of code, not the one with the most bytes.&lt;br /&gt;
&lt;br /&gt;
;With &amp;lt;code&amp;gt;ignoreComments&amp;lt;/code&amp;gt; some code lines are missing.&lt;br /&gt;
:The comment check only looks at how a line starts. Lines such as &amp;lt;code&amp;gt;#include&amp;lt;/code&amp;gt;, Markdown headings or lines starting with &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; are left out as well. See [[StatLens:Scanning#Ignoring comment lines|Ignoring comment lines]].&lt;br /&gt;
&lt;br /&gt;
;The Git row says &amp;lt;code&amp;gt;git is not installed or not in PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
:Install Git and make sure the &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; command works in a terminal. Restart VS Code and click the refresh icon.&lt;br /&gt;
&lt;br /&gt;
;The commit count is lower than expected.&lt;br /&gt;
:Only commits on the branch you have checked out are counted, not those on other branches.&lt;br /&gt;
&lt;br /&gt;
;Two contributors are counted for the same person.&lt;br /&gt;
:Contributors are counted by author e-mail address. If one person committed with two addresses, they count twice.&lt;br /&gt;
&lt;br /&gt;
;I have a multi-root workspace. Why is only one folder shown?&lt;br /&gt;
:Stat Lens only scans the first folder of the workspace.&lt;br /&gt;
&lt;br /&gt;
;Does Stat Lens send data anywhere?&lt;br /&gt;
:No. Language detection works offline with the data that ships with the extension. Git is only run locally.&lt;br /&gt;
&lt;br /&gt;
{{StatLens Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.mutigeraffe.com/index.php?title=StatLens:Dependencies&amp;diff=2510</id>
		<title>StatLens:Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.mutigeraffe.com/index.php?title=StatLens:Dependencies&amp;diff=2510"/>
		<updated>2026-10-20T21:29:38Z</updated>

		<summary type="html">&lt;p&gt;Maintenance script: StatLens wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;Dependencies&#039;&#039; row counts the entries in the manifest files of the project. Its value is the total over all manifest files. Expand it to see one row per file, with its path and its count. Click a file to open it.&lt;br /&gt;
&lt;br /&gt;
If no manifest file is found, the row says &amp;lt;code&amp;gt;no manifest file found&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Supported files ==&lt;br /&gt;
Stat Lens looks at every scanned file with one of these names. Upper and lower case in the file name do not matter. Files in excluded folders, for example in &amp;lt;code&amp;gt;node_modules&amp;lt;/code&amp;gt;, are not read. See [[StatLens:Scanning|Scanning]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File !! What is counted&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; || The keys in &amp;lt;code&amp;gt;dependencies&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;devDependencies&amp;lt;/code&amp;gt;. Other sections such as &amp;lt;code&amp;gt;peerDependencies&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;optionalDependencies&amp;lt;/code&amp;gt; are not counted.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;requirements.txt&amp;lt;/code&amp;gt; || Every line that is not empty and does not start with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;. Lines with options such as &amp;lt;code&amp;gt;-r other.txt&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;-e .&amp;lt;/code&amp;gt; are therefore not counted.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pyproject.toml&amp;lt;/code&amp;gt; || See [[#pyproject.toml|pyproject.toml]] below.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;*.csproj&amp;lt;/code&amp;gt; || Every &amp;lt;code&amp;gt;&amp;amp;lt;PackageReference&amp;amp;gt;&amp;lt;/code&amp;gt; element.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A project with several manifest files, for example a monorepo with one &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; per package, gets one row per file. The rows are sorted by path.&lt;br /&gt;
&lt;br /&gt;
== pyproject.toml ==&lt;br /&gt;
The file is read line by line without a full TOML parser. These entries are counted:&lt;br /&gt;
* PEP 621: the strings in &amp;lt;code&amp;gt;dependencies = [...]&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;[project]&amp;lt;/code&amp;gt; table, and in every group in &amp;lt;code&amp;gt;[project.optional-dependencies]&amp;lt;/code&amp;gt;. Arrays on one line and arrays over several lines both work.&lt;br /&gt;
* Poetry: every key in &amp;lt;code&amp;gt;[tool.poetry.dependencies]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[tool.poetry.dev-dependencies]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[tool.poetry.group.&amp;amp;lt;name&amp;amp;gt;.dependencies]&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; entry is not counted.&lt;br /&gt;
&lt;br /&gt;
== When a file is skipped ==&lt;br /&gt;
A manifest file that cannot be read is left out of the list without a warning. This also happens when a &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; is not valid JSON.&lt;br /&gt;
&lt;br /&gt;
{{StatLens Nav}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>