Excessive Extensions

Josh Raiborde
7 min readAug 16, 2021

--

The other week, I was working on a project and realized that one of the many extensions, I think I have around 40(??) on my VS Code was acting up. I’d type in, let’s say, <h1> and then I’d press the TAB button. The TAB button would then autocomplete the <h1>. But the issue I was having was the autocomplete would write out <h1></h1></h1>, instead of just <h1></h1>. I realized that this happened every time I’d press the TAB button to autocomplete. I’d have to go to the end of the line, and delete the extra </h1> or whatever the ending tag was. This was costing me some time.

So, for this blog, I’m going to go over all of my 40(??) (I’ll have proper count) extensions and see which one(s) are causing the issue mentioned above, which extensions are redundant and need to be removed, and which extensions are the slowest to load.

For starters, here’s a list of all the extensions, as of this writing.

Name: Auto Close Tag

Version: v0.5.12

Creator: Jun Han

Description: Automatically add HTML/XML close tag, same as Visual Studio IDE or Sublime Text

Babel JavaScript

Version: v0.0.31

Creator: Michael McDermott

Description: VSCode syntax highlighting for today’s JavaScript

Better Comments

Version: v2.1.0

Creator: Aaron Bond

Description: Improve your code commenting by annotating with alert, informational, TODOs, and more!

Blockman — Highlight Nested Code Blocks

Version: v1.2.0

Creator: leodevbro

Description: Mark/Highlight code blocks

Bracket Pair Colorizer

Version: v1.0.61

Creator: CoenraadS

Description: A customizable extension for colorizing matching brackets

C#

Version: v1.23.14

Creator: Microsoft

Description: C# for Visual Studio Code (powered by OmniSharp).

Set Color Theme

Custom Window Zoom

Version: v1.1.4

Creator: craigb85

Description: This extension allows you to change the zooom level percentage that VSCode uses when zooming in & out.

DotENV

Version: v1.0.1

Creator: mikestead

Description: Support for dotenv file syntax

Elm Emmet

v1.0.1

Creator: Max Vyz.

Description: Convert emmet abbreviations to composition of elm functions

endwise

Version: v1.5.1

Creator: Kai Wood

Description: Wisely add “end” in Ruby.

erb

Version: v0.0.1

Creator: Craig Maslowski

Description: Syntax Highlighting for Ruby ERB files

ES7 React/Redux/GraphQL/React-Native snippets

Version: v3.1.1

Creator: dsznajder

Description: Simple extensions for React, Redux and Graphql in JS/TS with ES7 syntax

ESLint

Version: v2.1.23

Creator: Dirk Baeumer

Description: Integrates ESLint JavaScript into VS Code.

Flatiron Survival Kit

Version: v0.0.7

Creator: dwieb

Description: Just a few items to help get you through Flatiron♥️️

GitLens — Git supercharged

Version: v11.6.0

Creator: Eric Amodio

Description: Supercharge the Git capabilities built into Visual Studio Code — Visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more

Guides

Version: v0.9.3

Creator: spywhere

Description: An extension for more guide lines

Highlight Matching Tag

Version: v0.10.1

Creator: vincaslt

Description: Highlights matching closing and opening tags

indent-rainbow

Version: v7.5.0

Creator: oderwat

Description: Makes indentation easier to read

Indenticator

Version: v0.7.0

Creator: SirTori

Description: Highlights your current indent depth

JS JSX Snippets

Version: v10.2.0

Creator: sky ran

Description: Simple extensions for React, Redux in JS with babel and ES6 syntax

Live Server

Version: v5.6.1

Creator: Ritwick Dey

Description: Launch a development local Server with live reload feature for static & dynamic pages

Markdown Extended

Version: v1.0.19

Creator: jebbs

Description: Extended syntaxes to built-in markdown & What you see is what you get exporter.

Markdown Preview Enhanced

Version: v0.5.22

Creator: Yiyi Wang

Description: Markdown Preview Enhanced ported to vscode

Material Icon Theme

Version: v4.9.0

Creator: Philipp Kief

Description: Material Design Icons for Visual Studio Code

Set File Icon Theme

NuGet Package Manager

Version: v1.1.6

Creator: jmrog

Description: Add or remove .NET Core 1.1+ package references to/from your project’s .csproj or .fsproj file using Code’s Command Palette.

Path Intellisense

Version: v2.4.0

Creator: Christian Kohler

Description: Visual Studio Code plugin that autocompletes filenames

Prettier — Code formatter

Version: v8.1.0

Creator: Prettier

Description: Code formatter using prettier

Quokka.js

Version: v1.0.390

Creator: Wallaby.js

Description: JavaScript and TypeScript playground in your editor.

Ruby

Version: v0.28.1

Creator: Peng Lv

Description: Ruby language support and debugging for Visual Studio Code

Settings Sync

Version: v3.4.3

Creator: Shan Khan

Description: Synchronize Settings, Snippets, Themes, File Icons, Launch, Keybindings, Workspaces and Extensions Across Multiple Machines Using GitHub Gist.

SQL Server (mssql)

Version: v1.10.1

Creator: Microsoft

Description: Develop Microsoft SQL Server, Azure SQL Database and SQL Data Warehouse everywhere

VSCode Ruby

Version: v0.28.0

Creator: Stafford Brunk

Description: Syntax highlighing, snippet, and language configuration support for Ruby

vscode-icons

Version: v11.6.0

Creator: VSCode Icons Team

Description: Icons for Visual Studio Code

Set File Icon Theme

YAML

Version: v0.22.0

Creator: Red Hat

Description: YAML Language Support by Red Hat, with built-in Kubernetes syntax support

Zoom Bar

Version: v1.4.0

Creator: wraith13

Description: Zoom UI in status bar for vscode.

Bracket Pair Colorizer 2

Version: v0.2.1

Creator: CoenraadS

Description: A customizable extension for colorizing matching brackets

Markdown All in One

Version: v3.4.0

Creator: Yu Zhang

Description: All you need to write Markdown (keyboard shortcuts, table of contents, auto preview and more)

Markdown Checkbox

Version: v1.7.1

Creator: Philipp Kief

Description: With this extension you can create checkboxes in markdown and mark them quickly.

Ok, so it looks like I have 38 extensions right now.

Next, I’m going to TOGGLE each extension and see make note of the changes.

I’m pretty sure I’m going to have to restart VS Code through these tests.

NOTE: I am not going to touch the Language extensions, like Ruby and C#, and any extensions that have to do with the code for that language, like 8–9 of the extensions.

All right, here we go.

Let’s start with Auto Close Tag

Description: Automatically add HTML/XML close tag, same as Visual Studio IDE or Sublime Text.

On the left side of VS Code, in the sidebar, I clicked on the Extensions tab, in the list of the Installed extensions I found the Auto Close Tag extension and clicked on the “disable” button and then clicked on the “reload” button to reload VS Code.

Even after disabling the extension, the feature is still active.

I think it’s one of two things

1. I need to quit VS Code and restart it and see if that makes a difference

2. There might be another extension that has the same feature.

I rebooted VS Code, and Auto Close Tag is still disabled. It seems like another extension has similar feature, because I can still close a tag.

I’m going to try to find this other extension.

I disabled Auto Rename Tag, Description: Auto rename paired HTML/XML tag.

But it still auto closes the tag.

These two extensions are part of the Flatiron Survival pack.

Going through the list of the extensions, this seems to be a wild-goose chase.

Auto Close Tag and Auto Rename Tag has been ENABLED again.

Yes, going through the list of extensions, this seems pointless.

Going back to what I wanted to write with this blog

1. Which one(s) are causing the issue mentioned above

2. Which extensions are redundant and need to be removed

3. Which extensions are the slowest to load.

It seems like point 1 and 2 are taken care of, I can’t seem to find the extensions are causing the issue and seems like I don’t have any redundant extensions, good for me, I guess.

Now to move on to the third point, which extensions are the slowest to load.

I found out, for the Mac, if you press CMD+SHIFT+p, the Command Palette pops up at the top of VS Code.

In the Command Palette, type in “Developer: Show Running Extensions”

This shows the name of the Extension, Startup Activation Time and Profile Time.

The Startup Activation and Profile Time are presented in milliseconds, like so, 480ms is 0.48 seconds.

1684ms is 1.684 seconds.

When I ran the command, the first extension on top, Microsoft Account, was unresponsive.

So I right-clicked on the extension and reported it.

it took me to GitHub and I pasted the needed data that was copied into my clipboard and I submitted the error report.

{

“messages”: [],

“activationTimes”: {

“codeLoadingTime”: 468,

“activateCallTime”: 12,

“activateResolvedTime”: 1550,

“activationReason”: {

“startup”: false,

“extensionId”: {

“value”: “vscode.microsoft-authentication”,

“_lower”: “vscode.microsoft-authentication”

},

“activationEvent”: “onAuthenticationRequest:microsoft”

}

},

“runtimeErrors”: []

}

It was my first time report to GitHub! WooHoo!

I hope someone provides a solution for it.

Here’s a list of the slowest extensions that loaded

Startup Activation: ms

Profile: 0.00ms

Microsoft Account

Activation: 480ms

Profile: 122.61ms

Live Server

Startup Activation: 1684ms

Profile: 0.00ms

Blockman — Highlight Nested Code Blocks

Startup Activation: 608ms

Profile: 0.00ms

Zoom Bar

Startup Activation: 525ms

Profile: 0.00ms

Guides

Startup Activation: 409ms

Profile: 0.00ms

JavaScript Debugger

Startup Activation: 256ms

Profile: 0.00ms

Emmet

Startup Activation: 155ms

Profile: 0.00ms

Bracket Pair Colorizer

Startup Activation: 241ms

Profile: 0.00ms

Merge Conflict

Startup Activation: 237ms

Profile: 0.00ms

Better Comments

Startup Activation: 236ms

Profile: 0.00ms

Quokka.js

Startup Activation: 168ms

Profile: 0.00ms

Settings Sync

Startup Activation: 155ms

Profile: 0.00ms

Prettier — Code formatter

Startup Activation: 136ms

Profile: 0.00ms

GitHub Authentication

Startup Activation: 97ms

Profile: 0.00ms

JSON Language Feature

Startup Activation: 97ms

Profile: 0.00ms

Path Intellisense

Startup Activation: 88ms

Profile: 0.00ms

GitLens — Git supercharged

Startup Activation: 77ms

Profile: 0.00ms

Git

Startup Activation: 76ms

Profile: 0.00ms

HTML Language Features

Startup Activation: 52ms

Profile: 0.00ms

TypeScript and JavaScript Language Features

Startup Activation: 43ms

Profile: 0.00ms

vscode-icons

Startup Activation: 39ms

Profile: 0.00ms

NPM support for VS Code

Startup Activation: 39ms

Profile: 0.00ms

ESLint

Startup Activation: 27ms

Profile: 0.00ms

Extension Authoring

Startup Activation: 25ms

Profile: 0.00ms

Highlight Matching Tag

Startup Activation: 25ms

Profile: 0.00ms

Material Icon Theme

Startup Activation: 22ms

Profile: 0.00ms

Babel JavaScript

Startup Activation: 14ms

Profile: 0.00ms

Auto Rename Tag

Startup Activation: 11ms

Profile: 0.00ms

Configuration Editing

Startup Activation: 8ms

Profile: 0.00ms

GitHub

Startup Activation: 7ms

Profile: 0.00ms

Indenticator

Startup Activation: 6ms

Profile: 0.00ms

Node Debug Auto-attach

Startup Activation: 5ms

Profile: 0.00ms

indent-rainbow

Startup Activation: 5ms

Profile: 0.00ms

Auto Close Tag

Startup Activation: 2ms

Profile: 0.00ms

This seems like this blog is going to be a part one.

I think part two will be coming soon, it could probably cover what extensions are needed and how to speed up extensions.

--

--

Josh Raiborde

Hello, I am a young enthusiastic Software Engineer. Looking forward to an opportunity to use my skills for mutual benefits and growth as well.