Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>X4CodeCompleteNew to Visual Studio Code? Get it now.
X4CodeComplete

X4CodeComplete

X4CodeComplete

|
5 installs
| (1) | Free
There is an unofficial X4: Foundations extension for Visual Studio Code that provides autocompletion and syntax highlighting for XML files used in the game modding.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

X4 Code Complete extension for Visual Studio Code

Version History

1.5

(1.5.2) Bug fixes

  • Recovered accidentally deleted registration of the reference and rename providers

(1.5.1) Partial completion for labels and actions

  • Intelligent context-aware completion that prevents conflicts between completion types
  • Refactored completion system with specialized completion detection

(1.5.0) Error diagnostics for labels and actions

  • Real-time error diagnostics for undefined labels and actions
  • Automatic creation of missing action definitions
  • Quick fix code actions with similarity-based suggestions for undefined references

1.4

(1.4.1) Bug fixes

(1.4.0) AI Script Enhanced Support

  • Added label completion and tracking for AI Scripts (<resume>, <run_interrupt_script>, <abort_called_scripts>)
  • Added action completion and tracking for AI Scripts (<include_interrupt_actions>)
  • Go to Definition, Find All References, and Symbol Rename for labels and actions
  • Hover tooltips showing usage statistics for labels and actions

1.3

(1.3.3) Added completion for variables

  • Intelligent variable completion with $ trigger character
  • Automatic suggestion display when typing variables in context
  • Support for partial variable name matching and filtering

(1.3.2) Bug fixes

  • Improved variable detection accuracy
  • Fixed completion conflicts between different providers
  • Enhanced error handling for malformed XML

(1.3.1) Internal code structure changes

  • Refactored completion provider architecture
  • Improved document tracking and caching
  • Better separation of concerns between different completion types

(1.3.0) Variables support

  • Go to Definition, Find All References, and Symbol Rename (F2) for variables
  • Variable tracking across entire document with usage statistics
  • Support for both regular variables and table key/remote variables
  • Hover information showing variable type and usage count
  • Notice: Doesn't support namespaces yet. Scope of variable now the whole file.

1.2

(1.2.2) Additional bug fixes and diff add handling

  • Improved file change detection and processing
  • Better handling of document modifications
  • Enhanced language file parsing reliability

(1.2.1) Added preferred language display option and bug fix

  • Configurable preferred language for t-file display
  • Language filtering options for cleaner hover text output
  • Fixed language file loading issues

(1.2.0) T-file text integration

  • Hover tooltips for language file references
  • Support for multiple t-file reference formats: {pageId,textId}, readtext.{pageId}.{textId}, page="pageId" line="textId"
  • Multi-language support with automatic language detection
  • Integration with both vanilla and extension language files

1.1

(1.1.3) Bug fixes

  • Improved completion accuracy and performance
  • Fixed memory leaks in language file processing
  • Better error handling for corrupted files

(1.1.2) Added sorting and grouping

  • Alphabetical sorting of completion items
  • Grouping of similar properties and methods
  • Improved completion item organization and display

(1.1.1) TypeScript types and bug fixes

  • Enhanced type safety in internal code
  • Fixed completion provider registration issues
  • Improved error logging and debugging

(1.1.0) Added documentation tooltips and bug fixes

  • Hover documentation for script properties and XSD elements
  • Enhanced keyword and datatype information display
  • Improved scriptproperties.xml parsing and processing
  • Whitespace handling improvements

README

To install, go to releases & download the .vsix file. Then install it like any other program. I highly recommend using this in conjunction with these instructions by ledhead900, but it's not technically a requirement.

Features

Core Script Support

  • XML code completion for Visual Studio Code supporting both AI Scripts and Mission Director Scripts
  • Autocompletion from scriptproperties.xml with intelligent context-aware suggestions
  • Hover documentation for script properties and XSD elements
  • Go to Definition and Peek Definition support for script properties

Language File Integration

  • T-file text display with hover tooltips for language references
  • Support for multiple formats: {pageId,textId}, readtext.{pageId}.{textId}, and page="pageId" line="textId"
  • Multi-language support with configurable preferred language
  • Language filtering options for cleaner output

Variable Support

  • Intelligent variable completion with $ trigger for both AI Scripts and Mission Director Scripts
  • Variable tracking across the entire document with usage statistics
  • Go to Definition, Find All References, and Symbol Rename (F2) for variables
  • Hover information showing variable usage count and type
  • Support for both regular variables and table key/remote variables
  • Automatic variable detection in XML attributes and parameter definitions

AI Script Specific Features

  • Label completion for AI Script elements (<resume>, <run_interrupt_script>, <abort_called_scripts>)
  • Action completion for AI Script action references (<include_interrupt_actions>)
  • Label and Action tracking with Go to Definition and Find All References
  • Hover tooltips for labels and actions showing usage statistics
  • Error diagnostics for undefined labels and actions with quick fix suggestions
  • Code actions to create missing labels/actions or replace with similar existing ones

Intelligent Context Detection

  • Context-aware completion that automatically detects when you're typing variables, labels, or actions
  • Smart completion triggering that prevents conflicts between different completion types
  • Automatic suggestion display when typing in specialized contexts

Error Detection and Quick Fixes

  • Real-time validation of label and action references in AI Scripts
  • Quick fix suggestions for undefined references with similarity-based recommendations
  • Code actions to automatically create missing definitions
  • Diagnostic highlighting of undefined references

Extension Settings

Setting Description Default
x4CodeComplete.unpackedFileLocation Path to vanilla extracted files folder none (required)
x4CodeComplete.extensionsFolder Path to extensions folder none (required)
x4CodeComplete.exceedinglyVerbose Enable debug logging false
x4CodeComplete.languageNumber Preferred language ID for t-file display "44" (English)
x4CodeComplete.limitLanguageOutput Show only preferred language in hover text false
x4CodeComplete.reloadLanguageData Reload language files (resets to false after reload) false

Supported File Types

  • AI Scripts (.xml files with <aiscript> root element)
  • Mission Director Scripts (.xml files with <mdscript> root element)

Video Demonstration

  • All features up to version 1.4.1

    X4CodeComplete Demo: all features up to version 1.4.1

  • Features added in version 1.5.1

    X4CodeComplete Demo: features added in version 1.5.1

Usage Examples

Variable Completion

<set_value name="$myVariable" />
<!-- Type $ to see all available variables -->
<!-- Hover over $myVariable to see usage statistics -->

Label Support (AI Scripts)

<label name="start" />
<!-- ... -->
<resume label="start" /> <!-- Completion available after typing " -->

Action Support (AI Scripts)

<library>
  <actions name="myAction">
    <!-- action content -->
  </actions>
</library>
<!-- ... -->
<include_interrupt_actions ref="myAction" /> <!-- Completion available -->

Language File References

<!-- Hover over any of these to see translated text -->
<set_value name="$text" exact="{1001,100}" />
<debug_text text="readtext.{1001}.{100}" />
<speak actor="$ship" page="1001" line="100" />

Known Limitations

  • Variable scope: Currently limited to file scope (no namespace support)
  • Cross-file references: Labels and actions are tracked per-file only
  • Complex expressions: Advanced variable expressions in table lookups may not be fully parsed

Original Release Notes (thank you Cgetty)

1.0.0

Initial release. Supports scriptproperties.xml autocomplete

1.0.1

Major improvements; now has configuration & generates the entries at startup from scriptproperties.xml, removing the need for rerunning a python script when scriptproperties.xml updates.

1.0.2

Hopefully, no more duplicate suggestions. Also, Peek/Go to definition for script properties!

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