# Interface IExternalCompiler OptimaJet.Workflow.Core.CodeActions.IExternalCompiler Defines a compiler that replaces the built-in Roslyn compiler for generated code actions and returns them in a form that the workflow runtime can invoke. Namespace: [OptimaJet.Workflow.Core.CodeActions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.CodeActions/) ```csharp public interface IExternalCompiler ``` ## Methods `CodeActionsInvoker Compile(List codeItems, List referenceLocations, bool isDebug, bool ignoreNotCompilled, out Dictionary compileErrors)` Compiles generated code-action sources and creates an invoker for executing the resulting actions, conditions, and rules. ### Parameters | Name | Type | Description | | --- | --- | --- | | `codeItems` | `List` | The generated compilation units, their source definitions, and the offsets required to map compilation diagnostics back to the original code-action bodies. | | `referenceLocations` | `List` | The locations of assemblies registered with [CodeActionsCompiller](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.CodeActions/CodeActionsCompiller/) that the generated code can reference. | | `isDebug` | `Boolean` | The value of [CodeActionsCompiller.DebugMode](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.CodeActions/CodeActionsCompiller/) indicating whether debug compilation is requested. | | `ignoreNotCompilled` | `Boolean` | [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) to omit individual code actions that fail to compile and return the successfully compiled actions; [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) to report the compilation as failed if any code action is invalid. | | `compileErrors` | `Dictionary` | When this method returns, contains compilation diagnostics for omitted code actions. Each key identifies a code action by its [CodeActionDefinition.Type](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CodeActionDefinition/) and CodeActionDefinition.Name; the dictionary is empty when every code action was compiled. | ### Returns | Type | Description | | --- | --- | | `CodeActionsInvoker` | A [CodeActionsInvoker](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.CodeActions/CodeActionsInvoker/) that can execute the successfully compiled code actions by their logical names. | [Previous FunctionInvoker.InvokerNotFoundReactionType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.CodeActions/FunctionInvoker-TReturn.InvokerNotFoundReactionType/) [Next RegexPattern](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.CodeActions/RegexPattern/)