
Classic ASP Language Support for VSCode
📸 See It In Action
Using Catppuccin Theme
| Formatting Before & After |
SQL Syntax Highlighting |
 |
 |
🚀 Quick Start
| Action |
Shortcut |
| Format document |
Alt + Shift + F (Win/Linux) · Option + Shift + F (Mac) |
| Trigger IntelliSense |
Ctrl + Space or just start typing |
| Insert snippet |
Type prefix → Tab |
| Go to definition |
F12 or Ctrl + Click |
| Rename symbol |
F2 |
| Follow include link |
Ctrl + Click on the file path |
✨ Features
- Multi-language — VBScript, HTML, CSS, JavaScript, and SQL in a single keystroke
- VBScript — smart indentation across all control structures and multi-block
<% %> regions
- HTML/CSS/JS — formatted by Prettier, fully configurable
- Keyword casing — your choice of
PascalCase, UPPERCASE, or lowercase
💡 IntelliSense & Auto-Completion
- Context-aware — correct suggestions whether you're in ASP, CSS, JS, or HTML
- COM object tracking — type
rs. after Set rs = Server.CreateObject("ADODB.Recordset") to see all methods and properties
- Cross-file IntelliSense — variables and functions from
#include'd files appear in suggestions automatically
- File paths — live browsing inside
#include and href/src/action attributes
🔍 Hover, Definition & Links
- Hover docs — inline documentation for keywords, functions, COM members, and CSS properties
- Go to definition —
F12 across the current file and all included files
- Document links —
Ctrl + Click navigation on #include paths and local file attributes
🌈 Syntax Highlighting
- ASP regions — toggleable background colouring for
<% %> blocks, light and dark themes
- Semantic colouring — user-defined functions and sub names
- Smart SQL — highlights SQL inside strings; plain strings are left untouched
🔴 Diagnostics
- HTML — mismatched structural tags flagged with orange squiggles
- VBScript — unmatched control blocks (
If/End If, Sub/End Sub, For/Next, etc.)
- CSS — errors and warnings inside
<style> blocks as you type
- Void elements — invalid closing tags caught with a one-click quick fix
⌨️ Smart Key Handling
- Context-aware Enter/Tab — correct indentation inside
<% %> blocks automatically
- Auto de-indent — closing keywords (
End If, Next, etc.) de-indent as you type
- Auto-close — HTML and ASP comment blocks close automatically
📝 Snippets
ASP / VBScript
| Prefix |
Inserts |
asp |
<% %> code block |
aspo |
<%= %> output expression |
rw |
Response.Write("...") |
rr |
Response.Redirect("...") |
rf |
Request.Form("...") |
rq |
Request.QueryString("...") |
sco |
Server.CreateObject("...") |
dbconn |
Full ADODB.Connection open/close template |
rs |
Full Recordset open → loop → close template |
inc |
<!--#include file="..."--> |
HTML
| Prefix |
Inserts |
html5 |
HTML5 boilerplate |
! |
<!DOCTYPE html> |
table |
Table with <thead> and <tbody> |
form |
Form with action and method |
divc / divid |
Div with class / ID |
script:src |
External script tag |
link:css |
Stylesheet link tag |
JavaScript
| Prefix |
Inserts |
log |
console.log() |
fetch |
Fetch API with .then() / .catch() |
listener |
addEventListener with handler |
gebi |
document.getElementById() |
qs |
document.querySelector() |
timeout |
setTimeout with callback |
🔌 Compatibility
💡 Bracket pair colourisation works natively with ASP files — enable it via editor.bracketPairColorization.enabled and editor.guides.bracketPairs in VS Code settings.
⚙️ Configuration
📋 Full Settings List
| Setting |
Default |
Description |
aspLanguageSupport.keywordCase |
PascalCase |
lowercase · UPPERCASE · PascalCase |
aspLanguageSupport.aspTagsOnSameLine |
false |
Keep <% %> on the same line as code |
aspLanguageSupport.htmlIndentMode |
flat |
flat — VBScript always at column 0; continuation — follows HTML nesting |
Prettier (HTML/CSS/JS)
| Setting |
Default |
Description |
aspLanguageSupport.prettier.printWidth |
80 |
Wrap lines at this column width |
aspLanguageSupport.prettier.tabWidth |
2 |
Spaces per indentation level |
aspLanguageSupport.prettier.useTabs |
false |
Use tabs instead of spaces |
aspLanguageSupport.prettier.bracketSameLine |
false |
Put > on last attribute line |
aspLanguageSupport.prettier.semi |
true |
Add semicolons in JavaScript |
aspLanguageSupport.prettier.singleQuote |
false |
Use single quotes in JavaScript |
aspLanguageSupport.prettier.arrowParens |
always |
Arrow function parentheses |
aspLanguageSupport.prettier.trailingComma |
es5 |
Trailing comma style |
aspLanguageSupport.prettier.endOfLine |
lf |
Line ending style |
aspLanguageSupport.prettier.htmlWhitespaceSensitivity |
css |
HTML whitespace handling |
Syntax Highlighting
| Setting |
Default |
Description |
aspLanguageSupport.highlightAspRegions |
true |
Highlight ASP regions |
aspLanguageSupport.bracketLightColor |
rgba(255, 100, 0, 0.15) |
Bracket colour (light theme) |
aspLanguageSupport.bracketDarkColor |
rgba(0, 100, 255, 0.15) |
Bracket colour (dark theme) |
aspLanguageSupport.codeBlockLightColor |
rgba(100, 100, 100, 0.04) |
Code block colour (light) |
aspLanguageSupport.codeBlockDarkColor |
rgba(220, 220, 220, 0.04) |
Code block colour (dark) |
📋 Known Limitations
- ASP blocks must be properly closed (
<% ... %>) for formatting and diagnostics to work correctly
- Complex mixed HTML/ASP structures may occasionally require manual adjustment after formatting
#include virtual="..." paths are resolved from the first workspace folder root
🛠️ Development
Building from Source
Prerequisites: Node.js 16+ · VS Code 1.80+
git clone https://github.com/ashtonckj/Classic-ASP-Language-Support.git
cd Classic-ASP-Language-Support
npm install
npm run compile
# Press F5 in VS Code to launch the Extension Development Host
🤝 Contributing
Contributions are welcome! If you have ideas, bug reports, or want to improve the extension:
- 🍴 Fork the repository
- 🌿 Create a feature branch (
git checkout -b feature/amazing-feature)
- 💾 Commit your changes (
git commit -m 'Add amazing feature')
- 📤 Push to the branch (
git push origin feature/amazing-feature)
- 🎉 Open a Pull Request
🙏 Acknowledgements
This extension wouldn't be possible without these amazing projects:
If you find this extension helpful, please consider leaving a ⭐ on GitHub and a rating on the VS Code Marketplace!
Made with ❤️ for the Classic ASP community
| |