Implementation of FailureHandlingKind enumeration from Language Server Protocol

DO NOT add new properties or methods to this class that are specific to Moonshine IDE or to a particular language. Create a subclass for new properties or create a utility function for methods.

See also:

Variables

@:value(cast "abort")@:enum@:implinlineread onlyAbort:FailureHandlingKind = "abort"

Applying the workspace change is simply aborted if one of the changes provided fails. All operations executed before the failing operation stay executed.

@:value(cast "textOnlyTransactional")@:enum@:implinlineread onlyTextOnlyTransactional:FailureHandlingKind = "textOnlyTransactional"

If the workspace edit contains only textual file changes they are executed transactional. If resource changes (create, rename or delete file) are part of the change the failure handling strategy is abort.

@:value(cast "transactional")@:enum@:implinlineread onlyTransactional:FailureHandlingKind = "transactional"

All operations are executed transactional. That means they either all succeed or no changes at all are applied to the workspace.

@:value(cast "undo")@:enum@:implinlineread onlyUndo:FailureHandlingKind = "undo"

The client tries to undo the operations already executed. But there is no guarantee that this is succeeding.