Giter Club home page Giter Club logo

vscode-unreal-angelscript's Introduction

Language Server and Debug Adapter for use with the UnrealEngine-Angelscript plugin from https://angelscript.hazelight.se

Getting Started

After building or downloading the Unreal Editor version with Angelscript enabled from the github page linked above, start the editor and use visual studio code to open the 'Script' folder created in your project directory. Your 'Script' folder must be set as the root/opened folder for the extension to function.

Features

Editor Connection

The unreal-angelscript extension automatically makes a connection to the running Unreal Editor instance for most of its functionality. If the editor is not running, certain features will not be available.

Code Completion

The extension will try to complete your angelscript code as you type it using normal visual studio code language server features.

Error Display

When saving a file the unreal editor automatically compiles and reloads it, sending any errors to the visual code extension. Errors will be highlighted in the code display and in the problems window.

Debugging

You can start debugging from the Debug sidebar or by pressing F5. While debug mode is active, breakpoints can be set in angelscript files and the unreal editor will automatically break and stop execution when they are reached.

Hitting 'Stop' on the debug toolbar will not close the unreal editor, it merely stops the debug connection, causing breakpoints to be ignored.

When the debug connection is active, any exceptions that occur during angelscript execution will automatically cause the editor and visual studio code to pause execution and show the exception.

Go to Symbol

The default visual studio code 'Go to Definition' (F12) is implemented for angelscript symbols. A separate command is added to the right click menu (default shortcut: Alt+G), named 'Go to Symbol'. This command functions identically to 'Go to Definition' for angelscript symbols.

If you have the Unreal Editor open as well as Visual Studio proper showing the C++ source code for unreal, the extension will try to use its unreal editor connection to browse your Visual Studio to the right place, similar to double clicking a C++ class or function in blueprints.

This uses the standard unreal source navigation system, which is only implemented for classes and functions.

Add Import To

The 'Add Import To' (default shortcut: Shift+Alt+I) command from the right click menu will try to automatically add an import statement to the top of the file to import the type that the command was run on.

Quick Open Import

The 'Quick Open Import' (default shortcut: Ctrl+E or Ctrl+P) command from the right click menu will try to open the quick open navigation with the import statement.

More Language Features

This extension acts as a full language server for angelscript code. This includes semantic highlighting, signature help, reference search, rename symbol and a number of helpful code actions and quickfixes.

Some of these features require an active connection to the unreal editor.

Semantic Symbol Colors

There are more types of semantic symbols generated by the extension than there are colors specified by most color themes.

The default visual studio code color theme will display all variables in blue, for example, regardless of whether the variable is a member, parameter or local.

You can add a snippet to your .vscode/settings.json inside your project folder to add extra colors to make these differences more visible.

For example, to add extra colors to the default vscode dark theme:

    "editor.tokenColorCustomizations": {
		"[Default Dark+]": {
			"textMateRules": [
				{
					"scope": "support.type.component.angelscript",
					"settings": {
						"foreground": "#4ec962"
					}
				},
				{
					"scope": "support.type.actor.angelscript",
					"settings": {
						"foreground": "#2eb0c9"
					}
				},
				{
					"scope": "variable.parameter.angelscript",
					"settings": {
						"foreground": "#ffe5d9"
					}
				},
				{
					"scope": "variable.other.local.angelscript",
					"settings": {
						"foreground": "#e8ffed"
					}
				},
				{
					"scope": "variable.other.global.angelscript",
					"settings": {
						"foreground": "#b99cfe"
					}
				},
				{
					"scope": "variable.other.global.accessor.angelscript",
					"settings": {
						"foreground": "#b99cfe"
					}
				},
				{
					"scope": "entity.name.function.angelscript",
					"settings": {
						"foreground": "#b99cfe"
					}
				},
				{
					"scope": "invalid.unimported.angelscript",
					"settings": {
						"foreground": "#ff9000"
					}
				},
			]
		}
	}

vscode-unreal-angelscript's People

Contributors

haze-lucas avatar lucas7211 avatar moppius avatar aoosg avatar jakoblarsson-embark avatar andreehallengren avatar joachimolergard avatar frals avatar maigo avatar tgolsson avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.