Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Meteor ImpactNew to Visual Studio Code? Get it now.
Meteor Impact

Meteor Impact

gabdsg

|
10 installs
| (2) | Free
Full-impact language tooling for Meteor and Blaze: TypeScript-aware indexing, completions, go-to-definition, rename, diagnostics, refactorings and template scaffolding.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Meteor Impact

CI

Meteor Impact

Full-impact language tooling for Meteor and Blaze. Meteor Impact turns VS Code into a first-class Meteor IDE: TypeScript-aware indexing, rich Spacebars intelligence, refactorings, diagnostics with quick fixes and template scaffolding - plus intellisense for Meteor core and Atmosphere packages and ready-made run/debug configurations.

Meteor Impact started as a fork of Meteor Toolbox by Matheus and Renan Castro, and greatly extends its language server.

Usage

Just install the extension in a Meteor project and it will add the needed configuration for you.

Note: this extension changes the jsconfig.json and .vscode/launch.json. Remember to not include those changes to your version control system, as they are scoped to your environment.

Language features

Works in .js, .ts and Spacebars .html files:

  • Completions: template-scoped and global helpers inside mustaches, template names after {{>, block variables ({{#each x in ...}}, {{#let}}), Meteor.call/callAsync/subscribe names, event selector classes/ids, CSS classes/ids from same-directory style files inside class="..."/id="...", plus full HTML completion and Emmet in templates.
  • Go to definition / references: helpers, templates, methods, publications, event handlers (including event key -> targeted HTML element and class token -> event handlers), from both HTML and JS/TS.
  • Rename (F2): helpers (scope-aware), templates (tags, partials and Template.X references), methods/publications and event keys.
  • Diagnostics with quick fixes: unresolved partials and helper calls (create the missing stub in one click), duplicate template names, unused helpers (with safe removal).
  • Refactorings: "Extract selection to template" moves the selected HTML into a new template together with the helpers/events it uses and passes outer block variables as partial arguments.
  • Semantic highlighting: resolved helpers, templates, block keywords and block variables get distinct colors.
  • Hover, signature help, outline/breadcrumbs, workspace symbol search, folding, linked tag editing and Spacebars formatting (with mustache block indentation). Helper hovers include the JSDoc written above the definition.
  • Closing-tag hints: long blocks show their opening condition as a ghost hint at {{/if}}/{{else}} (« if isSavingState). Long HTML elements can also show their id/classes at the closing tag (« .toolbar) - opt-in via the htmlClosingTagHints setting.
  • Method/publication safety: calls to unknown methods or subscriptions to unknown publications are flagged, with quick fixes to create the stub; unused methods/publications are hinted.
  • Template scaffolding: right-click a folder -> Create Blaze Template generates the folder with the .html, .js/.ts (imports and onCreated/helpers/events stubs) and optional .less/.css files; Rename Blaze Template renames the folder, files, imports and every usage together.
  • Snippets: Blaze block snippets (usable with "Surround With") and Meteor lifecycle/method/publication snippets in JS/TS.
  • .meteor/packages intelligence: hover shows the resolved version, completion offers installed packages.
  • Package awareness: templates and global helpers provided by installed packages (e.g. {{> loginButtons}}) resolve in definitions, completion, hover and diagnostics.
  • Meteor Explorer: an activity bar panel with an app-wide overview (templates/helpers/events/methods/publications, with unused markers) and the template inclusion hierarchy - it follows the active editor, and has a search filter plus a current-file scope toggle.
  • Block auto-close: typing {{#if ...}} (or pressing Enter after it) inserts the matching {{/if}}; block regions fold.
  • Inlay hints: helper call arguments show their parameter name inline.
  • Claude Code actions: with the cursor on a function in a server-side JS/TS file, the Cmd+. menu offers "Create tests", "Add JSDoc", "Explain this function" and - inside Meteor methods/publications - "Security-review" with Claude Code. The prompt (function name, file, line range, enclosing method) is prefilled into a Claude Code CLI terminal for review; the claudeCodeAutoSend setting submits it immediately instead.
  • Session/ReactiveDict key intelligence: Session.get("...") and ReactiveDict keys get completion, go-to-definition (the first set), find-all-references across the app, and hints for keys that are read-but-never-set (likely typos) or set-but-never-read (dead state).
  • Collection field IntelliSense: point the mongoSchemaPath setting at a MongoDB $jsonSchema repository (schemas/<collection>/<collection>.schema.json) and field names in find/findOne/update/insert selectors, $set-style modifiers and fields projections get completion (with types), hover, go-to-definition into the schema file and unknown-field diagnostics (warnings under additionalProperties: false objects, hints elsewhere; dotted and positional paths understood).
  • Instant warm starts: the index is cached, so an unchanged project skips re-parsing on startup; parse errors show as in-file squiggles.

The index follows unsaved edits incrementally, so results stay fresh while you type.

Available commands

Create Blaze Template -> Scaffold a new template folder (also in the explorer context menu).

Rename Blaze Template -> Rename a template folder, its files and every usage (also in the explorer context menu).

Go to Template Counterpart (Alt+O) -> Cycle between a template's .html, code-behind and style files.

Nest Template Files Under Code-Behind -> Explorer file nesting for template folders (writes workspace settings).

Generate Meteor.settings Types -> Generate meteor-settings.d.ts from settings.json for typed Meteor.settings access.

Toggle Meteor Impact Auto Run -> Toggle file watcher for packages folders.

Run Meteor Impact set up manually -> Run the extension manually, only one time (if autorun is not enabled).

Run clear meteor build cache -> Clear meteor build cache.

Re-create Meteor Impact run/debug options -> Re-create launch.json file. Usefull when you change the port settings.

Requirements

This extension only runs inside a Meteor project.

Extension Settings

See SETTINGS.md for the full settings reference, including the editor settings that unlock format-on-save, linked tag editing, string completions and semantic colors.

  • auto -> Enable the file watcher for local packages. You can also set this option by running the command Toggle Meteor Impact Auto Run (it is enabled by default).

  • port -> Set the port to use for meteor run/debug. Default to 3000.

  • additionalArgs -> Set additional args to meteor run/debug configuration. Re-create the run options when changing this setting.

  • meteorPackageDirs -> Use a custom packages diretory.

  • ignoreDirsOnIndexing -> List of directories to ignore when the Meteor Language Server is indexing the project.

  • closingTagHints -> Show ghost hints with the opening condition after the {{/block}} and {{else}} of long Blaze blocks. Enabled by default.

  • htmlClosingTagHints -> Show ghost hints with the id/classes after the closing tag of long HTML elements (</div> gets « .toolbar). Disabled by default.

Credits

Based on Meteor Toolbox by Matheus Castro and Renan Castro. The packages watcher is inspired on meteor-package-intellisense.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft