Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>LavishScript by user01New to Visual Studio Code? Get it now.
LavishScript by user01

LavishScript by user01

user01x

| (0) | Free
Pure LavishScript language support for ISS and LIB files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

LavishScript by user01

Pure LavishScript language support with intelligent autocomplete for ISS and LIB script files in Visual Studio Code.

⚠️ Important: Choose One Extension

There are two LavishScript extensions by user01x available on the marketplace:

  • LavishScript by user01 - Pure LavishScript support (this extension)
  • LavishScript (ISX) by user01 - LavishScript + support for certain InnerSpace extensions

Only install one extension at a time to avoid conflicts. Choose based on your needs:

  • Use the base version for pure LavishScript development
  • Use the ISX version if you need support for specific InnerSpace extensions

📌 Recommended Settings

For the best experience with LavishScript development, enable these VSCode settings:

  • editor.formatOnType: true - Auto-formats code blocks when you type }
  • editor.formatOnPaste: true - Auto-formats pasted code with correct indentation
  • breadcrumbs.enabled: true - Shows code structure navigation at the top of the editor
  • editor.stickyScroll.enabled: true - Keeps parent scopes visible while scrolling

The extension will prompt you to enable these settings on activation if any are disabled.

🔧 Making Error Indicators Less Intrusive

If you find the error indicators (!) in the editor obtrusive, you can adjust them:

Extension Settings (in Settings > Extensions > LavishScript)

  • lavishscript.diagnostics.enable - Disable all error checking
  • lavishscript.diagnostics.variableChecking - Disable variable duplicate/shadowing warnings
  • lavishscript.diagnostics.syntaxChecking - Disable syntax validation
  • lavishscript.diagnostics.styleChecking - Disable style warnings

VSCode Global Settings (in Settings)

  • problems.decorations.enabled: false - Removes all (!) indicators from editor
  • editor.renderLineHighlight: "none" - Removes error line highlighting
  • problems.showCurrentInStatus: false - Hides current problem in status bar

Errors will still appear in the Problems panel but won't clutter the editor interface.

Features

🚀 Complete LavishScript API Support

  • Top-Level Objects (TLOs) - Full autocomplete for Time, LavishScript, Math, System, etc.
  • Commands - All LavishScript commands with parameter hints and syntax examples
  • Type System - Complete type definitions with members, methods, and parameters
  • Method Overloads - Shows all available overloads for methods with different parameters
  • Case-Insensitive - Commands work regardless of capitalization (Call vs call)

🎯 Advanced Language Features

  • Go to Definition - Click through to function/variable definitions
  • Find All References - Find all usages of functions and variables
  • Document Symbols - Navigate code structure with outline view
  • Workspace Symbols - Search symbols across your entire workspace
  • Include File Support - Autocomplete across included files

Support Development

If you find this extension helpful, consider supporting its continued development:

Bitcoin (BTC): 1HUixTpx719Jeo5ruEeZkhHDcddKybYK2Y

Ethereum (ETH): 0x01B54939a97F235cB050ce105214D6c098D37BcE

Your donations help maintain and improve this extension for the LavishScript community.

Usage

LavishScript TLOs and Commands

; TLOs work in any expression context
echo Current time: ${Time.Hour}:${Time.Minute}
echo LavishScript version: ${LavishScript.Version}
echo Random number: ${Math.Rand[100]}

; Commands at start of lines
Call MyFunction "parameter"
Wait 5
DeclareVariable myVar string local "initial value"

Variable Declarations and Members

; Type autocomplete for variable declarations
variable string myText
variable collection myList
variable jsonvalue myData

; Member/method autocomplete
echo ${myText.Length}
echo ${myText.Upper}
echo ${myList.Size}
myList:Insert["new item"]

Supported File Types

  • .iss - InnerSpace Script files
  • .lib - InnerSpace Library files

Commands

Access these commands through the Command Palette (Ctrl+Shift+P):

  • LavishScript: Refresh Definitions - Reload all reference files
  • LavishScript: Go to Definition - Navigate to symbol definitions
  • LavishScript: Find All References - Find all usages of symbols
  • LavishScript: Go to Symbol in Workspace - Search symbols globally
  • LavishScript: Debug Current File - Show file language information

Data Sources

The extension automatically loads definitions from:

  • lavishscript_api.yml - Curated LavishScript API configuration with wiki URLs (TLOs, commands, types)

Features in Detail

Comprehensive LavishScript Support

  • 53+ Top-Level Objects - Time, Math, LavishScript, System, Script, etc.
  • 99+ Commands - Call, Wait, Return, DeclareVariable, etc.
  • 218+ Types - string, int, collection, jsonvalue, and all custom types
  • Method Overloads - See all parameter variations for methods like String.Find
  • Inherited Members - Shows inherited properties and methods from base types
  • Cross-File Variables - Access variables declared in imported files with automatic scope detection
  • Automatic Scope Detection - Variables inherit proper scope based on their location (objectdef-level or script-level)

Intelligent Code Navigation

  • Include Resolution - Follows #include statements for cross-file navigation
  • Scope-Aware Variables - Understands variable scope and lifecycle
  • Symbol Hierarchy - Navigate objectdef classes, methods, and members
  • Reference Tracking - Find where functions and variables are used

Smart Autocomplete

  • Context-aware suggestions based on cursor position
  • Filters suggestions as you type
  • Shows parameter information in snippets
  • Parameter defaults and optional parameters
  • Return type information

Documentation Integration

  • Inline documentation for all LavishScript APIs
  • Parameter descriptions and syntax examples
  • Method signatures with parameter types
  • Comprehensive hover information

Troubleshooting

Extension Not Working

  1. Ensure you're editing a .iss or .lib file
  2. Check that the reference files exist in the extension directory
  3. Try running "LavishScript: Refresh Definitions" from the command palette
  4. Check the Developer Console (Help > Toggle Developer Tools) for errors

Missing Suggestions

  1. Make sure you've typed the correct trigger pattern
  2. Check for typos in the prefix (e.g., Time. not time.)
  3. Refresh the definitions if recently updated
  4. Verify the file is recognized as LavishScript (check status bar)

Performance Issues

  1. The extension parses files on save and change - large files may take a moment
  2. Include resolution is cached for performance
  3. Use "LavishScript: Refresh Definitions" if autocomplete seems outdated

Contributing

For issues, feature requests, or questions, you can message me in the Lavish Software Discord.

License

This extension is provided as-is for the LavishScript community.

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