ASP Classic Support - with improved code navigation!
This fork of the asp-classic-support extension by zbecknell includes syntax highlighting, intellisense, and significantly improves code navigation (eg go-to-definition, find references, go-to-path) for VBScript and JavaScript code inside classic ASP projects.
Features
Hopefully everything you've come to expect from a modern language extension, syntax highlighting, code navigation, path linking, reference finding etc.
Site and Include Awareness
Webroot detection
- Uses
asp.webroot
setting if provided.
- Otherwise searches for the shortest
web.config
and falls back to the workspace root.
Virtual path mappings
- Use the
asp.virtualPaths
setting to map IIS-style virtual paths (e.g. /includes/
) to physical folders.
Smart include resolution
- Supports:
<!-- #include file="..." -->
<!-- #include virtual="..." -->
<script runat="server" src="...">
- Automatically tries
.vbs
, .js
, and all associated ASP file extensions.
- Handles missing files gracefully, with clear output channel diagnostics.
Clickable include links
- Turns includes and
<script src>
attributes into clickable links.
- Works even for missing files (useful for quick file creation).
Mixed-Language Support
- Recognizes
<script runat="server" language="vbscript|javascript"> ... </script>
blocks as ASP regions.
- Parses JavaScript and VBScript functions and variables for navigation, hover, and document symbols.
IntelliSense and Type Awareness
Type inference
- Tracks
Set foo = New Bar
assignments to infer variable types.
- Provides member completions, hover, and definitions for inferred objects.
Cross-file references
- “Find All References” searches across:
- The current file
- Included/virtual files
- All ASP-associated files in the workspace (including custom extensions via
files.associations
)
Hover and Signature Help
Scope-aware completions
- Works intelligently inside functions, classes, and ASP regions.
- Avoids showing completions in strings or comments.
Additional Improvements
Extension Settings
// Every one of these are completely optional
{
// Site webroot detection
"asp.webroot": "wwwroot",
// Virtual path mapping overrides
"asp.virtualPaths": {
"/includes": "C:/inetpub/wwwroot/includes",
"/scripts": "C:/inetpub/wwwroot/scripts"
},
// ASP region highlighting
"asp.highlightAspRegions": true,
"asp.bracketLightColor": "#fff8c5",
"asp.bracketDarkColor": "#2b2b1d",
"asp.codeBlockLightColor": "#f0f6ff",
"asp.codeBlockDarkColor": "#1c2834"
},
You can also set up custom file associations in your user or workspace settings, which will be used by the extension for code navigation purposes:
{
"files.associations": {
"*.myaspext": "asp",
}
}
Known Issues
The new code in this fork was mostly written by AI so there are likely to be bugs. Please fix any bugs you find with your own AI and submit a PR.
Made Possible By
This extension is forked from asp-classic-support extension by zbecknell, which was in turn derived directly from the VBS extension by Serpen with syntax highlighting for ASP files from the Classic ASP Syntaxes and Snippets extension by Jintae Joo.