Vixen
feb85697
csharp
public abstract class DocumentKind

One kind of document: which files it claims and how it opens one. No view — that is DocumentView's.

Read the guide page for this →

Remarks

The Documents half of what IAssetEditorFactory used to be — doc 50 § D4, #1294. That interface carried Open (the project and the document: this assembly's words) and CreateView (an element: Vixen.Ui's) on one type, deliberately, because "a document with no view is a model nobody can reach and a view with no document is a control with nothing behind it". The pairing is right as a product invariant and wrong as a type: it put two contexts' words on one interface, and no assembly could own it. So the kind is here, the view is in Vixen.Editor.Ui, and the invariant is a test — DocumentPairingTests — over the two registries a running editor actually holds.

⚠ DocumentTypes is the join, and it is a list because one kind can open more than one type: the markup kind opens a MarkupDocument or a StyleSheetDocument by extension. TryOpen refuses a document of a type the kind did not declare, which is the runtime half of the pairing — a kind that drifted from what it declares would otherwise reach a view lookup that fails for a reason nobody can see from the double-click.

Fields and properties (3)

  • public abstract string Name

    What it is called, in a menu and in a message about two of them clashing.

  • public abstract IReadOnlyList<string> Extensions

    The extensions it claims, each with its leading dot.

  • public abstract IReadOnlyList<Type> DocumentTypes

    Every type Open may return; a view is found for each by DocumentView.

Methods (2)

Used by (44, showing 40)

  • AddressableGroupEditorFactoryVixen.Editor.AssetEditors
  • AnimationClipEditorFactoryVixen.Editor.AssetEditors
  • AnimationGraphEditorFactoryVixen.Editor.AssetEditors
  • AssetEditorsModuleVixen.Editor.AssetEditors
  • AudioMixerEditorFactoryVixen.Editor.AssetEditors
  • AuthoringTestsVixen.Editor.AssetEditors.Tests
  • BehaviorTreeEditorFactoryVixen.Editor.AssetEditors
  • CompositorEditorFactoryVixen.Editor.AssetEditors
  • DocumentHostVixen.Editor.Core
  • DocumentHostTestsVixen.Editor.AssetEditors.Tests
  • DocumentPairingVixen.Editor.AssetEditors.Tests
  • EditorCombinatorPairTestsVixen.Editor.App.Tests
  • FakeKindVixen.Editor.AssetEditors.Tests
  • FontEditorFactoryVixen.Editor.AssetEditors
  • GoapDomainEditorFactoryVixen.Editor.AssetEditors
  • HalfKindVixen.Editor.App.Tests
  • HarnessEditorFactoryVixen.Editor.AssetEditors
  • IDocumentHostVixen.Editor.Core
  • InputActionsEditorFactoryVixen.Editor.AssetEditors
  • LayerStackEditorFactoryVixen.Editor.Texturing
  • LayerStackPanelTestsVixen.Editor.Texturing.Tests
  • LyingKindVixen.Editor.AssetEditors.Tests
  • MarkupEditorFactoryVixen.Editor.AssetEditors
  • MaterialEditorFactoryVixen.Editor.AssetEditors
  • ModelEditorFactoryVixen.Editor.AssetEditors
  • MoveSetEditorFactoryVixen.Editor.AssetEditors
  • PrefabEditorFactoryVixen.Editor.AssetEditors
  • ProxyShapeEditorFactoryVixen.Editor.AssetEditors
  • QueryEditorFactoryVixen.Editor.AssetEditors
  • RemovalVixen.Editor.Core
  • SceneEditorFactoryVixen.Editor.AssetEditors
  • SequenceEditorFactoryVixen.Editor.AssetEditors
  • ShaderEditorFactoryVixen.Editor.AssetEditors
  • ShaderGraphEditorFactoryVixen.Editor.AssetEditors
  • ShaderGraphSurfaceTestsVixen.Editor.App.Tests
  • ShapeVocabularyEditorFactoryVixen.Editor.AssetEditors
  • StandardEditorsVixen.Editor.AssetEditors
  • StandardFrameEditorFactoryVixen.Editor.AssetEditors
  • TextureEditorFactoryVixen.Editor.AssetEditors
  • TextureGraphEditorFactoryVixen.Editor.Texturing