Skip to content

StefanH-AT/Source-Engine-VSCode-Extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Source Engine Support for Visual Studio Code

CI Test contributions welcome Release

VSCODE ESLINT TYPESCRIPT NODE.JS

This extension adds intelligent support for Source Engine file types like VMT, QC, FGD, gameinfo.txt and many more.

Marketplace - Discord

VMT Highlighting

Keyvalue file formatting


Features

Checklist for features that are planned or already implemented.

General

  • Keyvalue highlighting
  • Auto-detect common file names like gameinfo.txt
  • Semantic Tokenizer
  • Error detection
  • Duplicate key detection
  • Keyvalue file auto indentation and formatting
  • Support for #include and #base
  • Support for conditionals (e.g.: [$Debug])

VMT

  • VMT highlighting
  • Parameter name completion
  • Config for parameters
  • Parameter value completion
  • Parameter value validation dependent on parameter name
  • Texture path completion
  • Color value preview

FGD

  • .fgd highlighting
  • UnifyFGD support (Hammer Addons)

QC

  • QC highlighting
  • Compile model button
    • Configuration for mdlcompile.exe
    • Configuration for game root path

Captions

  • Captions highlighting
  • Captions markup highlighting
  • Captions color preview
  • Compile captions button

CFG

  • .cfg highlighting

VPC

  • VPC highlighting

Lights.rad

  • .rad file highlighting

Soundscripts

  • Soundscript snippets

SMD

  • .smd highlighting

FXC

  • .fxc highlighting

Planned

This is what is planned for this extension. In case you wish to contribute, this is a good place to start.

General

  • Tree view
  • Schema implementation
    • Schema for gameinfo
    • Schema for soundscripts
    • Schema for soundscapes

QC

  • QC smd/dmx path completion

VPC

  • $File path completion

Captions

  • Captions preview render
  • Ability to modify color in gui

Sourcelib

This extension implements the features seen in sourcelib.

Contribution

This repository uses trunk based development, which means that all changes can be pushed straight to master. Every commit is automatically tested via the CI pipeline. Once a new version tag is pushed, the release is deployed.

As an outside contributor, please create your pull requests to merge to the master branch. Do not edit changelog.md or the feature listings in readme.md as the changelog will be handled later when releasing.

Make sure all workflows succeed. To validate locally:

npm run lint
npm run test

Compiling and testing locally

Users can just install this extension on the VSCode Marketplace, but developers might want to run the development build of the extension.

Prerequisites

  1. Install NPM and NodeJS (>v12)
  2. Install Visual Studio Code (Duh)
  3. Clone the repository
  4. Run npm install in the repository's folder, to install the dependencies

Testing

To start the unit tests, run npm run test. The project will be automatically compiled.

Benchmarking

To run the benchmark tests, run npm run benchmark. The project will be automatically compiled

Running the extension

  1. To start the extension, first compile the project npm run compile (Or npm run watch to auto-compile on every file change)
  2. Open the repository in VSCode
  3. Open the 'Run and Debug' tab
  4. Select the 'Extension' run configuration on the dropdown on the top
  5. Run by pressing F5

License

This project is licensed under the GNU Public License version 3: License