The UnrealScript Language Service is an extension for VSCode powered by our own Language Service Provider adding support for the UnrealScript language.
We'd greatly appreciate any contributions such as the following, but not limited to: new linting rules, bug fixes, custom UnrealScript features support, new code actions, among new possible features that we don't have yet, such as formatting.
- Clone this repository.
- Ensure you have the latest NodeJS 18
- Run
npm installin the root directory of the cloned repository (where the package.json is located) - Open the root directory in Visual Studio Code.
- Launch the task
Launch Client(shortcut F5) - If all went right, a new instanced window of Visual Studio Code should appear and be running the extension.
- After making any changes, press (CTRL+Shift+P) and look for "Restart Extension Host" to re-run the extension with the new changes.
There are a dozen of unit-tests scattered around the repository, in order to run them you will need to install some additional extensions to VSCode.
- Install Mocha for VS Code
- Open the "Text Explorer" side panel, click the refresh button (shortcut
Ctrl+R) - Click "Run Tests"
- All tests should turn green, unless indicated otherwise (some issues haven't been solved yet, and are documented in the relevant test's code)
- Tests are scattered around various places, this may seem odd at first glance, but it all makes sense when you look at it from a relative point of view.
- For instance, helper functions are located next to the file that contains the helper functions e.g.
name.test.tsnext toname.ts - Tests that deal with the entire workings of various modules are located under its own directory
teste.g.server/src/UC/testfor symbols, categorized by feature or symbol kind. server/testfor tests that deal with the server's features that are not particularly specific to individual UnrealScript features.syntaxes/testfor the tmLanguage syntax unit tests.
- Some tests may fail when running all tests at once (multi-threading), always run the test again to make ensure that it is working correctly.
- Tests may not even show up if there are any TypeScript errors.
- Make sure you import any modules using the relative syntax like
../Symbolsinstead ofUC/Symbols(while this works at run time, the testing suite does not support such paths)
- Open a "Pull Request", for this you need to own a fork of this repository.
- Proceed to describe your changes and your intentions behind these changes.