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 install
in 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 Test Explorer UI
- Install Mocha Test Explorer
- Open the "Testing" panel, click the refresh button or
Ctrl+R
- Click "Run Tests"
- 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.ts
next toname.ts
- Tests that deal with the entire workings of various modules are located under its own directory
test
e.g.server/src/UC/test
for symbols, categorized by feature or symbol kind. server/test
for tests that deal with the server's features that are not particularly specific to individual UnrealScript features.syntaxes/test
for 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
../Symbols
instead 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.