Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>aslint - ActionScript 3 LinterNew to Visual Studio Code? Get it now.
aslint - ActionScript 3 Linter

aslint - ActionScript 3 Linter

InferPort

|
1 install
| (0) | Free
Ultra-fast linter for ActionScript 3 with auto-fix support
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

aslint

Ultra-fast linter for ActionScript 3 with VSCode integration.

Built with Rust and Tree-sitter for incremental parsing. Works as a CLI tool and as an LSP server for real-time diagnostics in VSCode-based IDEs.

Features

  • Blazing fast - Rust-based with parallel file processing via Rayon
  • Incremental parsing - Tree-sitter reuses unchanged AST subtrees
  • Auto-fix - Automatic corrections for naming conventions, unused code, and more
  • LSP Server - Real-time diagnostics, document symbols, hover definitions and tooltips
  • VSCode Extension - Full integration with Antigravity IDE / VSCode (Outline view, Ctrl+Click Go to Definition, Hover details)
  • JSON Configuration - Simple .aslintrc.json config file
  • Inline Disables - Ignore specific warnings using code comments like // aslint-disable-next-line

Installation

CLI

# From source
cargo install --path crates/aslint-cli

# Or download from releases
# https://github.com/InferPort/aslint/releases

VSCode Extension

  1. Download the latest .vsix from Releases
  2. Install:
    code --install-extension aslint-0.1.0.vsix
    # or for Antigravity IDE:
    antigravity-ide --install-extension aslint-0.1.0.vsix --force
    

Usage

CLI

# Lint files
aslint lint src/

# Lint with auto-fix
aslint lint --fix src/

# Lint and remove empty if statements matching `if (cond) {}`
aslint lint --remove-empty-ifs src/

# Initialize config
aslint init

# Show resolved config
aslint config

VSCode / IDE

Open any .as file and diagnostics will appear automatically.

  • Outline (Contorno): View the structure of class declarations, methods, and variables.
  • Go to Definition: Ctrl+Click or F12 on any symbol to jump to its declaration.
  • Hover Docs: Hover over a symbol to view its type definition and preceding comments.
  • Remove Empty IFs: Add "aslint.removeEmptyIfs": true to your VSCode settings to automatically remove empty if (...) {} blocks on format/save.
  • Inline Disables: Put // aslint-disable-next-line <rule-id> or /* aslint-disable */ to suppress linter warnings.

Rules

Variables & Types

Rule Severity Fix Description
no-unused-variables warn Yes Detects declared but unused variables
no-unused-imports warn Yes Detects imported but unused modules
no-undef error No Detects references to undefined identifiers
no-duplicate-variables error No Detects duplicate variable declarations
prefer-const info Yes Suggests const for never-reassigned variables

Naming Conventions

Rule Severity Fix Description
naming-class warn Yes Enforces PascalCase for class names
naming-function warn Yes Enforces camelCase for function names
naming-variable warn Yes Enforces camelCase for variable names
naming-constant warn Yes Enforces SCREAMING_SNAKE_CASE for constants

Common Pitfalls

Rule Severity Fix Description
no-eval error No Disallows eval() usage
no-with-statement error No Disallows with statement
no-label warn No Disallows labels
no-empty-block info No Warns on empty code blocks
no-unreachable-code warn No Detects code after return/throw/break/continue
no-toplevel-code info No Warns on code outside functions/classes

Configuration

Create .aslintrc.json in your project root:

{
  "rules": {
    "no-unused-variables": "warn",
    "no-undef": "error",
    "naming-class": {
      "severity": "warn",
      "options": { "style": "PascalCase" }
    },
    "naming-function": {
      "severity": "warn",
      "options": { "style": "camelCase" }
    },
    "naming-variable": {
      "severity": "warn",
      "options": { "style": "camelCase" }
    },
    "naming-constant": {
      "severity": "warn",
      "options": { "style": "SCREAMING_SNAKE_CASE" }
    }
  },
  "fix": true,
  "include": ["src/**/*.as"],
  "exclude": ["lib/**", "node_modules/**"]
}

Severity Levels

  • error - Exits with code 1, blocks CI
  • warn - Reported but doesn't fail
  • info - Informational only
  • off - Disabled

Architecture

aslint/
├── crates/
│   ├── aslint-core/     # Core linting engine (parser, rules, diagnostics)
│   ├── aslint-cli/      # CLI binary
│   └── aslint-lsp/      # LSP server binary
├── editors/
│   └── vscode/          # VSCode extension
└── .github/
    └── workflows/       # CI/CD pipelines

Core (aslint-core)

  • Parser: Tree-sitter with ActionScript 3 grammar
  • Rules: Modular rule system with auto-fix support
  • Diagnostics: LSP-compatible diagnostic format
  • Config: JSON-based configuration with defaults

CLI (aslint-cli)

  • Parallel file processing via Rayon
  • Multiple output formats (stylish, json, compact)
  • Auto-fix with in-place editing

LSP Server (aslint-lsp)

  • tower-lsp-server based
  • Full text sync and diagnostics
  • Document formatting via auto-fix rules
  • Code actions for quick fixes

Development

# Build debug
cargo build

# Run tests
cargo test

# Lint the linter
cargo clippy

# Format
cargo fmt

# Build release
cargo build --release

# Package VSCode extension
cd editors/vscode
npm install
npm run compile
npx -y @vscode/vsce package

Performance

Metric Value
Parse (1K lines) ~1ms
Lint (1K lines) ~5ms
Lint (10K lines) ~50ms
Binary size ~3.5MB

License

MIT

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