> For the complete documentation index, see [llms.txt](https://docs.airship.gg/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airship.gg/editor-extensions/extending-the-editor.md).

# Extending the editor

Since Airship uses Unity, most of the custom editor features will work as-is. Some examples of features you might may want to add to your project:

* [Adding editor menus](https://docs.unity3d.com/6000.0/Documentation/ScriptReference/MenuItem.html)

Airship also has our own analogous versions of Unity features such as

* [Adding custom property inspectors for `AirshipBehaviour`s](/editor-extensions/custom-inspectors-c.md)

### Before you begin

If you are planning to write C# scripts for the editor, it's recommended you turn *off* the TypeScript compiler *while* you write C# editor code.&#x20;

<figure><img src="https://214663474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIbaXflSJA8L9N9yOx089%2Fuploads%2FbLBxlJOoZaoIudcr1Nw2%2Fimage.png?alt=media&amp;token=5b06b4da-9cf7-4889-8cd5-448d9f026dbc" alt=""><figcaption><p>How to access the TypeScript service settings</p></figcaption></figure>

<figure><img src="https://214663474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIbaXflSJA8L9N9yOx089%2Fuploads%2FJpajqmA3QCFk4gpGC1bv%2Fimage.png?alt=media&amp;token=97f70b39-b5f9-4773-a2a0-178c7c9e3ede" alt=""><figcaption></figcaption></figure>

<figure><img src="https://214663474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIbaXflSJA8L9N9yOx089%2Fuploads%2Ffqjkkws1NX2J5AjnnHLj%2Fimage.png?alt=media&amp;token=e7e9d22d-b7dc-4de0-a680-49a0c1d67b80" alt=""><figcaption><p>Developer Options setting, which will allow more settings for the TypeScript compiler</p></figcaption></figure>

This will change the TypeScript menu to add options to start/stop the compiler. This can be utilized to stop the compiler recompiling each time you make a C# change.

<figure><img src="https://214663474-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIbaXflSJA8L9N9yOx089%2Fuploads%2FhyBM5Cw5wmnGqdTgFbQX%2Fimage.png?alt=media&amp;token=e87f1d3a-3880-4dd3-8162-db26e5c304fe" alt=""><figcaption><p>TypeScript developer mode</p></figcaption></figure>

### Airship Editor C# API

Airship has the following user editor APIs you can use:

* \
  `AirshipSerializedProperty`  and `AirshipSerializedObject` for handling Airship Behaviour property serialization
* `AirshipCustomEditors` for querying the registered custom inspectors for AirshipBehaviours
  * See [AirshipBehaviour inspectors](/editor-extensions/custom-inspectors-c.md) for how to add custom editors
* `AirshipType` which is the Airship version of `Type` for TypeScript-based types.
  * Types can be queried using `AirshipType.GetType(name)`&#x20;
* `AirshipEditorGUI` - for drawing editor properties for `AirshipSerializedProperty` instances using IMGUI.
* `AirshipGUI` for general Airship GUI state
* `TypescriptService` for general TypeScript APIs
* `TypescriptProjectsService.Project` for querying the project settings
* `TypescriptCompilationService` for querying the compiler state
