# InsertExtension

> Adds the ISource extensions at the position of the SmartFormatter.GetSourceExtensions list of this formatter, if the Type has not been added before. If the extension implements IInitializer, IInitializer.Initialize will be invoked.

## Definition

* **Type:** Method
* **Namespace:** [Unity.SmartStrings](/engine/6000.7/script-reference/unity/smartstrings.md)
* **Assembly:** UnityEngine.SmartStringsModule

## InsertExtension(int, ISource)

Adds the [ISource](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/isource.md) extensions at the `position` of the [SmartFormatter.GetSourceExtensions](/engine/6000.7/script-reference/unity/smartstrings/smartformatter/getsourceextensions.md) list of this formatter, if the Type has not been added before. If the extension implements [IInitializer](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/iinitializer.md), [IInitializer.Initialize](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/iinitializer/initialize.md) will be invoked.

```csharp
public SmartFormatter InsertExtension(int position, ISource sourceExtension)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The position in the SourceExtensions list where new extensions will be added.**** (\[ISource]\(/engine/6000.7/script-reference/unity/smartstrings/core/extensions/isource)): Source extension to insert.

### Returns

| Type                                                                                   | Description                                                                                           |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| [SmartFormatter](/engine/6000.7/script-reference/unity/smartstrings/smartformatter.md) | This [SmartFormatter](/engine/6000.7/script-reference/unity/smartstrings/smartformatter.md) instance. |

## InsertExtension(int, IFormatter)

Adds the [IFormatter](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/iformatter.md) extension at the `position` of the [SmartFormatter.GetFormatterExtensions](/engine/6000.7/script-reference/unity/smartstrings/smartformatter/getformatterextensions.md) list of this formatter, if the Type has not been added before. If the extension implements [IInitializer](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/iinitializer.md), [IInitializer.Initialize](/engine/6000.7/script-reference/unity/smartstrings/core/extensions/iinitializer/initialize.md) will be invoked.

```csharp
public SmartFormatter InsertExtension(int position, IFormatter formatterExtension)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The position in the formatter extensions list where the new extension is added.**** (\[IFormatter]\(/engine/6000.7/script-reference/unity/smartstrings/core/extensions/iformatter)): Formatter extension to insert.

### Returns

| Type                                                                                   | Description                                                                                           |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| [SmartFormatter](/engine/6000.7/script-reference/unity/smartstrings/smartformatter.md) | This [SmartFormatter](/engine/6000.7/script-reference/unity/smartstrings/smartformatter.md) instance. |
