Metadata-Version: 2.5
Name: jupyterlab_vscode_icons_extension
Version: 1.2.23
Summary: Jupyterlab extension with a shameless rip-off of the vscode-icons into our beloved environment
Project-URL: Homepage, https://github.com/stellarshenson/jupyterlab_vscode_icons_extension
Project-URL: Bug Tracker, https://github.com/stellarshenson/jupyterlab_vscode_icons_extension/issues
Project-URL: Repository, https://github.com/stellarshenson/jupyterlab_vscode_icons_extension.git
Author-email: Stellars Henson <konrad.jelen@gmail.com>
License-Expression: BSD-3-Clause
License-File: LICENSE
Keywords: jupyter,jupyterlab,jupyterlab-extension
Classifier: Framework :: Jupyter
Classifier: Framework :: Jupyter :: JupyterLab
Classifier: Framework :: Jupyter :: JupyterLab :: 4
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.11
Provides-Extra: dev
Requires-Dist: jupyter-builder>=1.2.0; extra == 'dev'
Requires-Dist: jupyter-server<3,>=2; extra == 'dev'
Requires-Dist: jupyterlab>=4; extra == 'dev'
Requires-Dist: pytest<10,>=9; extra == 'dev'
Provides-Extra: test
Requires-Dist: jupyter-server<3,>=2; extra == 'test'
Requires-Dist: pytest<10,>=9; extra == 'test'
Description-Content-Type: text/markdown

# JupyterLab VSCode Icons Extension

[![GitHub Actions](https://github.com/stellarshenson/jupyterlab_vscode_icons_extension/actions/workflows/build.yml/badge.svg)](https://github.com/stellarshenson/jupyterlab_vscode_icons_extension/actions/workflows/build.yml)
[![npm version](https://img.shields.io/npm/v/jupyterlab_vscode_icons_extension.svg)](https://www.npmjs.com/package/jupyterlab_vscode_icons_extension)
[![PyPI version](https://img.shields.io/pypi/v/jupyterlab-vscode-icons-extension.svg)](https://pypi.org/project/jupyterlab-vscode-icons-extension/)
[![Total PyPI downloads](https://static.pepy.tech/badge/jupyterlab-vscode-icons-extension)](https://pepy.tech/project/jupyterlab-vscode-icons-extension)
[![JupyterLab 4](https://img.shields.io/badge/JupyterLab-4-orange.svg)](https://jupyterlab.readthedocs.io/en/stable/)
[![Brought To You By KOLOMOLO](https://img.shields.io/badge/Brought%20To%20You%20By-KOLOMOLO-00ffff?style=flat)](https://kolomolo.com)
[![Donate PayPal](https://img.shields.io/badge/Donate-PayPal-blue?style=flat)](https://www.paypal.com/donate/?hosted_button_id=B4KPBJDLLXTSA)

> [!TIP]
> This extension is part of the [stellars_jupyterlab_extensions](https://github.com/stellarshenson/stellars_jupyterlab_extensions) metapackage. Install all Stellars extensions at once: `pip install stellars_jupyterlab_extensions`

A shameless, unapologetic, and utterly brazen ripoff of the excellent VSCode file icons for JupyterLab. Because why should VS Code users have all the fun?

This extension brings 1414 beautiful file type icons from the vscode-icons project directly into your JupyterLab file browser. We saw those pretty icons, we wanted them, and now you can have them too - no permission asked, no apologies given (well, we did use the MIT license, so it's all legally kosher)

## Features

![VSCode Icons in JupyterLab](.resources/screenshot-icons.png)

- 1414 file type icons covering virtually every language, framework, and config file you can think of
- One hexagon family for C, C++, Objective-C++, Rust, CUDA and Java, with C# on its own green hexagon; `.hh`, `.hxx`, `.h++`, `.cu`, `.cuh` and `.mm` are mapped too
- Automatic icon detection based on file extensions and names
- Zero configuration required - just install and enjoy
- Lightweight integration using Iconify's JSON icon format
- Compatible with Jupytext - properly displays Python and Markdown icons for .py and .md notebook files; includes hotfix for jupytext 1.19.1 catch-all pattern bug that breaks standard file icons
- Python package folder detection - folders declared in `pyproject.toml` or `setup.py` get a special Python package icon; a manifest is read only when the folder contains it
- Fast in large folders - rows are painted once per screen frame, so a 5,000-file folder opens about as fast as it does without the extension
- Symbolic link badges - a link to a file or folder carries a small square arrow badge on its row icon
- Executable file badges - an optional group, off by default, that marks files with the execute bit
- Document tab icons matching the file browser - an open file carries the same glyph on its tab as on its row, including the files JupyterLab claims (.md, .py, .json, .yaml, .csv, images)
- One icon per file whichever extensions are installed - where this extension has an icon for a file, it shows on the row and the tab even when another extension registered that file type with its own icon; the file type is left alone, so the other extension still opens the file
- Readable on both themes - a tab glyph that cannot be seen against its tab is recoloured to clear 3:1 while keeping its internal colours distinct, and a file-browser glyph gets a thin outline; both are re-decided when the background changes
- Web page tabs - a tab showing a web page in a frame (a jupyter-server-proxy service, for example) carries a globe: the brand colour for a page the lab or localhost serves, the accent colour for any other site
- No empty icon space on tabs - a tab without an icon shows its label at the left edge instead of after an empty icon box; a setting turns this off
- Tab tooltip - keeping the pointer on a tab for 0.8 seconds shows its full name, the file path, page address or terminal working directory, shown relative to the workspace root and left out when the terminal sits outside it, the time of its last activity, and JupyterLab's own details such as Last Saved or Kernel; a right-click, a key press or leaving the tab hides it

## Requirements

- JupyterLab 4.0+
- A sense of humor about intellectual property (kidding - it's MIT licensed)
- Appreciation for pretty icons

## Installation

```bash
pip install jupyterlab_vscode_icons_extension
```

That's it. Restart JupyterLab and watch your bland, iconless file browser transform into a colorful, VSCode-inspired masterpiece

## Supported File Types

The extension recognizes hundreds of file types including:

- **Languages**: Python, JavaScript, TypeScript, Java, C/C++, Rust, Go, Ruby, PHP, R, Julia, and many more
- **Web**: HTML, CSS, SCSS, Vue, Svelte, React components
- **Data**: JSON, YAML, CSV, XML, TOML
- **Documentation**: Markdown, RST, PDF
- **Config**: Dockerfile, .gitignore, .env, Makefile, package.json
- **Notebooks**: Jupyter notebooks (.ipynb)

For the complete list of 1414 icons, see the [vscode-icons project](https://github.com/vscode-icons/vscode-icons)

## Configuration

Customize which icon groups to display via JupyterLab Settings:

1. Open JupyterLab Settings (Settings -> Settings Editor)
2. Search for "VSCode Icons"
3. Toggle icon groups on/off:
   - Programming Language Icons (Python, JS, TS, Java, C++, Rust, Go, etc.)
   - Web Development Icons (HTML, CSS, Vue, Svelte)
   - Data Format Icons (JSON, TOML, XML, CSV, ML models)
   - Configuration File Icons (Dockerfile, .gitignore, Makefile, package.json)
   - Documentation Icons (Markdown, RST, PDF)
   - Image File Icons (PNG, JPG, SVG)
   - Executable File Icons (play badge on files with the execute bit; off by default)
4. Collapse Empty Tab Icon Space - remove the empty icon box JupyterLab keeps on a tab without an icon (on by default)

Changes require a page refresh to take effect.

## Uninstallation

If you somehow tire of beautiful icons (we can't imagine why):

```bash
pip uninstall jupyterlab_vscode_icons_extension
```

## Credits

This extension shamelessly borrows icons from the excellent [vscode-icons](https://github.com/vscode-icons/vscode-icons) project by Roberto Huertas. Icons are delivered via [Iconify](https://iconify.design/), because we believe in standing on the shoulders of giants.

All icon assets remain under their original licenses (MIT for code, CC BY-SA for branded icons). We just wrapped them in a JupyterLab extension and called it a day.

The C, C++, Rust, CUDA and Java hexagons use the vscode-icons `file-type-cpp3` shape. The C and CUDA glyphs are vscode-icons artwork, the Rust gear is from [skill-icons](https://github.com/tandpfun/skill-icons), and the Java J is drawn for this extension. Both source sets are MIT.

**Custom Icons**: A few icons (Python, Markdown, README) were hand-crafted in Inkscape - because sometimes you need that perfect shade of purple and the exact right amount of snake eyes.

## Why This Exists

Because JupyterLab deserves pretty icons too. That's it. That's the whole justification

## Contributing

If you would like to contribute to this extension, please refer to the [Contributing Guide](CONTRIBUTING.md).
