Welcome! Type "help" for available commands.
$
Loading terminal interface...
Back to Blog

Filey - Flag Deprecated Files: A Simple VSCode Extension for Cleaner Codebases

March 24, 2025
William Callahan

Software engineer and founder with a background in finance and tech. Currently building aVenture.vc, a platform for researching private companies. Based in San Francisco.

vscodeextensiondeveloper-toolsproductivitycode-quality
Filey - Flag Deprecated Files: A Simple VSCode Extension for Cleaner Codebases

Keeping track of deprecated files is a hassle. For me, it's lots of deja vu: "wait, didn't I do this three months ago?" 🤔

That's why I built Filey - Flag Deprecated Files, a VSCode extension that visually highlights files containing @deprecated tags directly in your file explorer.

Why I Built This

Working in large repositories, I often flag files as deprecated with JSDoc/JavaDoc/Docstring tags when we're planning to phase them out. The problem? There was no easy way to see which files were deprecated without opening each one. In my case, these are repo's with a thousand + files, so it was a real pain.

I decided to build a lightweight extension that simply works. Since I needed it myself, I figured others might find it useful too!

How It Works

The extension is simple:

  1. It scans your workspace for files with @deprecated tags in the first few lines (12 by default for speed)
  2. Files with the tag get a visual deprecated indicator (⊘) in the file explorer
  3. Folders show a count of how many deprecated files they contain
  4. Everything updates in real-time as you edit files

The best part? It's performant by default—it only scans the first 12 lines of each file (configurable) and uses batched processing to avoid slowing down your IDE.

Light & Performant

While building this, I focused on making it lightweight:

async checkSingleFile(uri: vscode.Uri): Promise<boolean> {
  try {
    // Quick check first 1KB for @deprecated
    const bytes = await vscode.workspace.fs.readFile(uri);
    const quickCheck = new TextDecoder().decode(bytes.slice(0, 1024));
    if (!quickCheck.includes('@deprecated')) {
      return false;
    }

    const document = await vscode.workspace.openTextDocument(uri);
    for (let i = 0; i < Math.min(document.lineCount, this.config.maxLinesToScan); i++) {
      if (document.lineAt(i).text.includes('@deprecated')) {
        return true;
      }
    }
    return false;
  } catch (error) {
    console.error(`Error processing file ${uri.fsPath}:`, error);
    return false;
  }
}

This two-phase approach—first checking a 1KB chunk before doing a more thorough scan—means it barely impacts your editor's performance, even in large projects.

Customization Options

You can customize the extension through your .vscode/settings.json (the settings below are in it by default without requiring these to be specified, but using the command replaces the default settings):

{
  "flagDeprecatedFiles.excludedDirectories": ["node_modules", "dist", "build"],
  "flagDeprecatedFiles.decorations.badge": "⊘",
  "flagDeprecatedFiles.decorations.color": "amber",
  "flagDeprecatedFiles.maxLinesToScan": 12
}

Change the badge icon, choose your own color scheme, or adjust exactly which directories get scanned.

How to Use / Get Started

The extension is available now on:

  • Visual Studio Code Marketplace (for VSCode, Cursor)
  • Open VSX Registry (for VSCodium, Windsurf IDE, Trae, and other forks)

The source code is on GitHub.

What's Next?

I'd love to hear any suggestions for improvements! You can request features or report bugs here.

If you work with large codebases and deprecated files, give it a try.

Similar Content

Home
CV
ExperienceEducation
ProjectsBookmarksInvestmentsContactBlog
Welcome! Type "help" for available commands.
$
Loading terminal interface...

Similar Content

Related Articles

November 9, 2025
Attempting to Design a Back-end with Cleaner Architecture Rules and Boundaries

Attempting to Design a Back-end with Cleaner Architecture Rules and Boundaries

How I'm learning to build with better software architecture design principles (while 'moving fast and breaking things').

backendarchitecturespring bootclean architecturerefactoringjava+10
BLOG
September 25, 2025
How to Secure Environment Variables for LLMs, MCPs, and AI Tools Using 1Password or Doppler

How to Secure Environment Variables for LLMs, MCPs, and AI Tools Using 1Password or Doppler

Stop hardcoding API keys in MCP configs and AI tool settings. Learn how to use 1Password CLI or Doppler to inject secrets just-in-time for Claude, Cur...

security1passworddopplermcpaillm+10
BLOG

Related Bookmarks

github.com
December 19, 2025
GitHub - Termix-SSH/Termix: Termix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities.

GitHub - Termix-SSH/Termix: Termix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities.

Termix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities. - Termix-SSH/Termix

server management toolsweb-based ssh clientsself-hosted devops toolsremote server administrationopen source infrastructure managementtermix+7
LINK
github.com
November 28, 2025
Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS

Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS

Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus int...

windows applications on linuxvirtual machine integrationdesktop application emulationmicrosoft office linuxadobe creative cloud linuxubuntu+7
LINK
docs.sentry.io
November 26, 2025
Filtering Out Third Party Browser Extension Errors | Sentry for JavaScript

Filtering Out Third Party Browser Extension Errors | Sentry for JavaScript

Learn more about how to configure your JavaScript SDK to set up filtering for events reported to Sentry.

error filteringjavascript sdkthird party errorsevent payloadsclient side filteringsentry+7
LINK

Related Projects

Filey - Flag Deprecated Files Extension

Filey - Flag Deprecated Files Extension

VS Code extension for flagging deprecated files

vs codevisual studio codecursorwindsurftypescriptdeveloper tools+14
PRJ

Related Books

Build AI Applications with Spring AI

Build AI Applications with Spring AI

Fu Cheng

fu chengspringbuildapplications
BOOK
A Simple Guide to Retrieval Augmented Generation

A Simple Guide to Retrieval Augmented Generation

Abhinav Kimothi

Everything you need to know about Retrieval Augmented Generation in one human-friendly guide. Augmented Generation—or RAG—enhances an LLM’s available ...

computersabhinav kimothisimon and schusteraugmentedgenerationguide+5
BOOK
Learn Go with Pocket-Sized Projects

Learn Go with Pocket-Sized Projects

Aliénor Latour, Donia Chaiehloudj +1

Pocket-size projects, modular and versatile skills! Take your Go programming capabilities to the next level with 11 engaging applications. Learn Go wi...

computersaliénor latourdonia chaiehloudjpascal bertrandsimon and schusterprojects+7
BOOK

Related Investments

CapGains

CapGains

Cryptocurrency tax and portfolio tracking platform for investors and traders.

financepre-seedactivecapgainsplatformcryptocurrency+5
INV
AngelList

AngelList

aVenture

Platform connecting startups with investors, talent, and resources for fundraising and growth.

investment platformsotheractiveangellistplatformgrowth+5
INV
Sudrania

Sudrania

Fund administration and accounting platform for investment managers.

financeseries aactivesudraniaplatforminvestment+4
INV