VS Code extension providing full language server support for the No.JS HTML-first reactive framework.
Also works as a standalone language server (--stdio) for Neovim, Sublime Text, Emacs, and any LSP-compatible editor.
- Directive completions — All 40+ No.JS directives (
state,if,get,each,model, etc.) - Dynamic directives —
bind-*,on:*,class-*,style-*with common targets/events - Companion attributes — Context-aware: shows
as,loading,erroronly whengetis present - Event modifiers —
.prevent,.stop,.once,.debounce,.throttle, key modifiers - Filter completions — All 32 built-in filters after
|in expressions - Filter argument hints — Shows argument name, type, and defaults after
: - Validator completions — Built-in validators for
validateattribute - Animation completions — All built-in animation names
- Context keys —
$store,$refs,$route,$router,$i18n,$form - i18n key completions — Scans
locales/for translation keys and suggests them int="..."attributes - Route completions — Scans
pages/directory for file-based routes - Wildcard route (
route="*") completions, hover, and diagnostics - Store property completions — Parses
storedeclarations to suggest$store.name.prop - Template var completions — Suggests
var-*attributes matching template slot declarations - Custom directive completions — Detects
NoJS.directive()calls in workspace JS files - Head management directives —
page-title,page-description,page-canonical,page-jsonldcompletions and hover - Plugin system support — Plugin snippets, interceptor patterns, and TypeScript type references
- Directive purpose, syntax, and examples
- Companion attribute descriptions
- Filter documentation with arguments
- Context key (
$store,$refs) and loop variable ($index,$count) descriptions
- Unknown directive warnings (with "did you mean?" suggestions)
- Orphaned
else/else-ifdetection - Unknown filter warnings
- Empty required values
- Invalid event modifiers
- Duplicate state declarations
- Duplicate
refnames - Duplicate wildcard route detection per outlet
- Template ID referenced but not defined
- Missing
asfor HTTP directives - Expression syntax validation
modelon non-form elements- Invalid animation name
- Unknown validator name
- Head management directive validation
use="id"→ jump to<template id="id">$refs.name→ jump toref="name"element$store.name→ jump tostoredeclaration- Template-referencing attributes (
then,else,loading,error,empty,success,error-boundary)
- Find all usages of a template ID across the document
- Find all references to a ref name (
$refs.x↔ref="x") - Find all store accesses (
$store.x↔store)
state→ Variable,store→ Module,ref→ Field<template id>→ Class,route-view→ Namespacecomputed→ Property,watch→ Event, HTTP methods → Function
- HTTP directive URLs as clickable links
- Template
srcandroute-view srcas file/directory links callURLs andredirectpaths as clickable links
- Directive names → keyword
- Dynamic prefixes (
bind-,on:,class-,style-) → decorator - Filter names → function, pipe
|→ operator - Store references → variable.readonly
- Loop context vars → variable.builtin
- Quick fix: add missing
asfor HTTP directives - Quick fix: "did you mean?" for typos in directive names
- Loop variable names for
eachandforeach(→ $index, $count, $first, $last) - HTTP method badge for
get/post/put/patch/deletewithas
- 31 built-in snippets for common patterns (
if,each,foreach,get,store,form,call,notify,page-title,plugin, etc.)
| Setting | Default | Description |
|---|---|---|
nojs.validation.enabled |
true |
Enable/disable all No.JS diagnostics |
nojs.completion.filters |
true |
Show filter completions in pipe expressions |
nojs.customFilters |
[] |
Additional custom filter names for completions |
nojs.customValidators |
[] |
Additional custom validator names for completions |
nojs.trace.server |
"off" |
Trace communication between client and server |
nojs.devtools.enabled |
false |
Enable live DevTools Protocol connection |
nojs.devtools.port |
9222 |
Chrome DevTools Protocol port |
nojs.devtools.host |
"localhost" |
Chrome DevTools Protocol host |
# Install dependencies
npm install
# Build
npm run compile
# Run tests
npm test
# Package extension
npm run package| Package | Description |
|---|---|
| No.JS | Core framework — 40+ directives, 32 filters, routing, forms, i18n, animations |
| No.JS LSP | This extension — language server for VS Code and other editors |
| No.JS MCP | MCP server for AI assistants — validate, explain, scaffold |
| No.JS CLI | CLI tooling — init, dev, prebuild, validate, plugin |
| No.JS Skill | Claude Code AI skill for No.JS development |
MIT © Erick Xavier