| <?xml version="1.0" encoding="UTF-8"?> | 
 | <?eclipse version="3.0"?> | 
 |  | 
 | <!-- | 
 |  Copyright (c) 2020 Willink Transformations and others. | 
 |  All rights reserved. This program and the accompanying materials | 
 |  are made available under the terms of the Eclipse Public License v2.0 | 
 |  which accompanies this distribution, and is available at | 
 |  http://www.eclipse.org/legal/epl-v20.html | 
 |   | 
 |  Contributors: | 
 |    E.D.Willink - Initial API and implementation | 
 | --> | 
 |  | 
 | <plugin> | 
 | 	<extension | 
 | 		point="org.eclipse.ui.editors"> | 
 | 		<editor | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor" | 
 | 			contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor" | 
 | 			default="true" | 
 | 			extensions="idioms" | 
 | 			id="org.eclipse.ocl.examples.xtext.idioms.Idioms" | 
 | 			name="OCL Xtext Idioms Editor"> | 
 | 		</editor> | 
 | 	</extension> | 
 | 	<extension | 
 | 		point="org.eclipse.ui.handlers"> | 
 | 		<handler | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler" | 
 | 			commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration"> | 
 | 			<activeWhen> | 
 | 				<reference | 
 | 					definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened"> | 
 | 				</reference> | 
 | 			</activeWhen> | 
 | 		</handler> | 
 | 		<handler | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler" | 
 | 			commandId="org.eclipse.ocl.examples.xtext.idioms.Idioms.validate"> | 
 | 			<activeWhen> | 
 | 				<reference | 
 | 					definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened"> | 
 | 				</reference> | 
 | 			</activeWhen> | 
 | 		</handler> | 
 | 		<!-- copy qualified name --> | 
 | 		<handler | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler" | 
 | 			commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"> | 
 | 			<activeWhen> | 
 | 				<reference definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened" /> | 
 | 			</activeWhen> | 
 | 		</handler> | 
 | 		<handler | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler" | 
 | 			commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"> | 
 | 			<activeWhen> | 
 | 				<and> | 
 | 					<reference definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.XtextEditor.opened" /> | 
 | 					<iterate> | 
 | 						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" /> | 
 | 					</iterate> | 
 | 				</and> | 
 | 			</activeWhen> | 
 | 		</handler> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.core.expressions.definitions"> | 
 | 		<definition id="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened"> | 
 | 			<and> | 
 | 				<reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/> | 
 | 				<with variable="activeEditor"> | 
 | 					<test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" | 
 | 						value="org.eclipse.ocl.examples.xtext.idioms.Idioms" | 
 | 						forcePluginActivation="true"/> | 
 | 				</with> | 
 | 			</and> | 
 | 		</definition> | 
 | 		<definition id="org.eclipse.ocl.examples.xtext.idioms.Idioms.XtextEditor.opened"> | 
 | 			<and> | 
 | 				<reference definitionId="isXtextEditorActive"/> | 
 | 				<with variable="activeEditor"> | 
 | 					<test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" | 
 | 						value="org.eclipse.ocl.examples.xtext.idioms.Idioms" | 
 | 						forcePluginActivation="true"/> | 
 | 				</with> | 
 | 			</and> | 
 | 		</definition> | 
 | 	</extension> | 
 | 	<extension | 
 | 			point="org.eclipse.ui.preferencePages"> | 
 | 		<page | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage" | 
 | 			id="org.eclipse.ocl.examples.xtext.idioms.Idioms" | 
 | 			name="Idioms"> | 
 | 			<keywordReference id="org.eclipse.ocl.examples.xtext.idioms.ui.keyword_Idioms"/> | 
 | 		</page> | 
 | 		<page | 
 | 			category="org.eclipse.ocl.examples.xtext.idioms.Idioms" | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage" | 
 | 			id="org.eclipse.ocl.examples.xtext.idioms.Idioms.coloring" | 
 | 			name="Syntax Coloring"> | 
 | 			<keywordReference id="org.eclipse.ocl.examples.xtext.idioms.ui.keyword_Idioms"/> | 
 | 		</page> | 
 | 		<page | 
 | 			category="org.eclipse.ocl.examples.xtext.idioms.Idioms" | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage" | 
 | 			id="org.eclipse.ocl.examples.xtext.idioms.Idioms.templates" | 
 | 			name="Templates"> | 
 | 			<keywordReference id="org.eclipse.ocl.examples.xtext.idioms.ui.keyword_Idioms"/> | 
 | 		</page> | 
 | 	</extension> | 
 | 	<extension | 
 | 			point="org.eclipse.ui.propertyPages"> | 
 | 		<page | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage" | 
 | 			id="org.eclipse.ocl.examples.xtext.idioms.Idioms" | 
 | 			name="Idioms"> | 
 | 			<keywordReference id="org.eclipse.ocl.examples.xtext.idioms.ui.keyword_Idioms"/> | 
 | 			<enabledWhen> | 
 | 				<adapt type="org.eclipse.core.resources.IProject"/> | 
 | 			</enabledWhen> | 
 | 			<filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/> | 
 | 		</page> | 
 | 	</extension> | 
 | 	<extension | 
 | 		point="org.eclipse.ui.keywords"> | 
 | 		<keyword | 
 | 			id="org.eclipse.ocl.examples.xtext.idioms.ui.keyword_Idioms" | 
 | 			label="Idioms"/> | 
 | 	</extension> | 
 | 	<extension | 
 | 		point="org.eclipse.ui.commands"> | 
 | 		<command | 
 | 			description="Trigger expensive validation" | 
 | 			id="org.eclipse.ocl.examples.xtext.idioms.Idioms.validate" | 
 | 			name="Validate"> | 
 | 		</command> | 
 | 		<!-- copy qualified name --> | 
 | 		<command | 
 | 			id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" | 
 | 			categoryId="org.eclipse.ui.category.edit" | 
 | 			description="Copy the qualified name for the selected element" | 
 | 			name="Copy Qualified Name"> | 
 | 		</command> | 
 | 		<command | 
 | 			id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" | 
 | 			categoryId="org.eclipse.ui.category.edit" | 
 | 			description="Copy the qualified name for the selected element" | 
 | 			name="Copy Qualified Name"> | 
 | 		</command> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.ui.menus"> | 
 | 		<menuContribution | 
 | 			locationURI="popup:#TextEditorContext?after=group.edit"> | 
 | 			<command | 
 | 				commandId="org.eclipse.ocl.examples.xtext.idioms.Idioms.validate" | 
 | 				style="push" | 
 | 				tooltip="Trigger expensive validation"> | 
 | 				<visibleWhen checkEnabled="false"> | 
 | 					<reference | 
 | 						definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened"> | 
 | 					</reference> | 
 | 				</visibleWhen> | 
 | 			</command> | 
 | 		</menuContribution> | 
 | 		<!-- copy qualified name --> | 
 | 		<menuContribution locationURI="popup:#TextEditorContext?after=copy"> | 
 | 			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" | 
 | 				style="push" tooltip="Copy Qualified Name"> | 
 | 				<visibleWhen checkEnabled="false"> | 
 | 					<reference definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened" /> | 
 | 				</visibleWhen> | 
 | 			</command> | 
 | 		</menuContribution> | 
 | 		<menuContribution locationURI="menu:edit?after=copy"> | 
 | 			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" | 
 | 				style="push" tooltip="Copy Qualified Name"> | 
 | 				<visibleWhen checkEnabled="false"> | 
 | 					<reference definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened" /> | 
 | 				</visibleWhen> | 
 | 			</command> | 
 | 		</menuContribution> | 
 | 		<menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions"> | 
 | 			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" | 
 | 				style="push" tooltip="Copy Qualified Name"> | 
 | 				<visibleWhen checkEnabled="false"> | 
 | 					<and> | 
 | 						<reference definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.XtextEditor.opened" /> | 
 | 						<iterate> | 
 | 							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" /> | 
 | 						</iterate> | 
 | 					</and> | 
 | 				</visibleWhen> | 
 | 			</command> | 
 | 		</menuContribution> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.ui.menus"> | 
 | 		<menuContribution locationURI="popup:#TextEditorContext?endof=group.find"> | 
 | 			<command commandId="org.eclipse.xtext.ui.editor.FindReferences"> | 
 | 				<visibleWhen checkEnabled="false"> | 
 | 					<reference definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened"> | 
 | 					</reference> | 
 | 				</visibleWhen> | 
 | 			</command> | 
 | 		</menuContribution> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.ui.handlers"> | 
 | 		<handler | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler" | 
 | 			commandId="org.eclipse.xtext.ui.editor.FindReferences"> | 
 | 			<activeWhen> | 
 | 				<reference | 
 | 					definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened"> | 
 | 				</reference> | 
 | 			</activeWhen> | 
 | 		</handler> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.core.contenttype.contentTypes"> | 
 | 		<content-type | 
 | 			base-type="org.eclipse.core.runtime.text" | 
 | 			file-extensions="idioms" | 
 | 			id="org.eclipse.ocl.examples.xtext.idioms.Idioms.contenttype" | 
 | 			name="Idioms File" | 
 | 			priority="normal"> | 
 | 		</content-type> | 
 | 	</extension> | 
 | 	<!-- adding resource factories --> | 
 | 	<extension | 
 | 		point="org.eclipse.emf.ecore.extension_parser"> | 
 | 		<parser | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory" | 
 | 			type="idioms"> | 
 | 		</parser> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.xtext.extension_resourceServiceProvider"> | 
 | 		<resourceServiceProvider | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider" | 
 | 			uriExtension="idioms"> | 
 | 		</resourceServiceProvider> | 
 | 	</extension> | 
 | 	<!-- marker definitions for org.eclipse.ocl.examples.xtext.idioms.Idioms --> | 
 | 	<extension | 
 | 			id="idioms.check.fast" | 
 | 			name="Idioms Problem" | 
 | 			point="org.eclipse.core.resources.markers"> | 
 | 		<super type="org.eclipse.xtext.ui.check.fast"/> | 
 | 		<persistent value="true"/> | 
 | 	</extension> | 
 | 	<extension | 
 | 			id="idioms.check.normal" | 
 | 			name="Idioms Problem" | 
 | 			point="org.eclipse.core.resources.markers"> | 
 | 		<super type="org.eclipse.xtext.ui.check.normal"/> | 
 | 		<persistent value="true"/> | 
 | 	</extension> | 
 | 	<extension | 
 | 			id="idioms.check.expensive" | 
 | 			name="Idioms Problem" | 
 | 			point="org.eclipse.core.resources.markers"> | 
 | 		<super type="org.eclipse.xtext.ui.check.expensive"/> | 
 | 		<persistent value="true"/> | 
 | 	</extension> | 
 | 	<!-- Quick Outline --> | 
 | 	<extension | 
 | 		point="org.eclipse.ui.handlers"> | 
 | 		<handler | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler" | 
 | 			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"> | 
 | 			<activeWhen> | 
 | 				<reference | 
 | 					definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened"> | 
 | 				</reference> | 
 | 			</activeWhen> | 
 | 		</handler> | 
 | 	</extension> | 
 | 	<extension | 
 | 		point="org.eclipse.ui.commands"> | 
 | 		<command | 
 | 			description="Open the quick outline." | 
 | 			id="org.eclipse.xtext.ui.editor.outline.QuickOutline" | 
 | 			name="Quick Outline"> | 
 | 		</command> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.ui.menus"> | 
 | 		<menuContribution | 
 | 			locationURI="popup:#TextEditorContext?after=group.open"> | 
 | 			<command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline" | 
 | 				style="push" | 
 | 				tooltip="Open Quick Outline"> | 
 | 				<visibleWhen checkEnabled="false"> | 
 | 					<reference definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened"/> | 
 | 				</visibleWhen> | 
 | 			</command> | 
 | 		</menuContribution> | 
 | 	</extension> | 
 | 	<!-- quickfix marker resolution generator for org.eclipse.ocl.examples.xtext.idioms.Idioms --> | 
 | 	<extension | 
 | 			point="org.eclipse.ui.ide.markerResolution"> | 
 | 		<markerResolutionGenerator | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" | 
 | 			markerType="org.eclipse.ocl.examples.xtext.idioms.ui.idioms.check.fast"> | 
 | 			<attribute | 
 | 				name="FIXABLE_KEY" | 
 | 				value="true"> | 
 | 			</attribute> | 
 | 		</markerResolutionGenerator> | 
 | 		<markerResolutionGenerator | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" | 
 | 			markerType="org.eclipse.ocl.examples.xtext.idioms.ui.idioms.check.normal"> | 
 | 			<attribute | 
 | 				name="FIXABLE_KEY" | 
 | 				value="true"> | 
 | 			</attribute> | 
 | 		</markerResolutionGenerator> | 
 | 		<markerResolutionGenerator | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator" | 
 | 			markerType="org.eclipse.ocl.examples.xtext.idioms.ui.idioms.check.expensive"> | 
 | 			<attribute | 
 | 				name="FIXABLE_KEY" | 
 | 				value="true"> | 
 | 			</attribute> | 
 | 		</markerResolutionGenerator> | 
 | 	</extension> | 
 | 	<!-- Rename Refactoring --> | 
 | 	<extension point="org.eclipse.ui.handlers"> | 
 | 		<handler | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler" | 
 | 			commandId="org.eclipse.xtext.ui.refactoring.RenameElement"> | 
 | 			<activeWhen> | 
 | 				<reference | 
 | 					definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened"> | 
 | 				</reference> | 
 | 			</activeWhen> | 
 | 		</handler> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.ui.menus"> | 
 | 		<menuContribution | 
 | 			locationURI="popup:#TextEditorContext?after=group.edit"> | 
 | 			<command commandId="org.eclipse.xtext.ui.refactoring.RenameElement" | 
 | 				style="push"> | 
 | 				<visibleWhen checkEnabled="false"> | 
 | 					<reference | 
 | 						definitionId="org.eclipse.ocl.examples.xtext.idioms.Idioms.Editor.opened"> | 
 | 					</reference> | 
 | 				</visibleWhen> | 
 | 			</command> | 
 | 		</menuContribution> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.ui.preferencePages"> | 
 | 		<page | 
 | 			category="org.eclipse.ocl.examples.xtext.idioms.Idioms" | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage" | 
 | 			id="org.eclipse.ocl.examples.xtext.idioms.Idioms.refactoring" | 
 | 			name="Refactoring"> | 
 | 			<keywordReference id="org.eclipse.ocl.examples.xtext.idioms.ui.keyword_Idioms"/> | 
 | 		</page> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.compare.contentViewers"> | 
 | 		<viewer id="org.eclipse.ocl.examples.xtext.idioms.Idioms.compare.contentViewers" | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator" | 
 | 			extensions="idioms"> | 
 | 		</viewer> | 
 | 		<contentTypeBinding | 
 | 			contentTypeId="org.eclipse.ocl.examples.xtext.idioms.Idioms.contenttype" | 
 | 			contentViewerId="org.eclipse.ocl.examples.xtext.idioms.Idioms.compare.contentViewers" /> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.compare.contentMergeViewers"> | 
 | 		<viewer id="org.eclipse.ocl.examples.xtext.idioms.Idioms.compare.contentMergeViewers" | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator" | 
 | 			extensions="idioms" label="Idioms Compare"> | 
 | 		</viewer> | 
 | 		<contentTypeBinding | 
 | 			contentTypeId="org.eclipse.ocl.examples.xtext.idioms.Idioms.contenttype" | 
 | 			contentMergeViewerId="org.eclipse.ocl.examples.xtext.idioms.Idioms.compare.contentMergeViewers" /> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.ui.editors.documentProviders"> | 
 | 		<provider id="org.eclipse.ocl.examples.xtext.idioms.Idioms.editors.documentProviders" | 
 | 			class="org.eclipse.ocl.examples.xtext.idioms.ui.IdiomsExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider" | 
 | 			extensions="idioms"> | 
 | 		</provider> | 
 | 	</extension> | 
 | 	<extension point="org.eclipse.team.core.fileTypes"> | 
 | 		<fileTypes | 
 | 			extension="idioms" | 
 | 			type="text"> | 
 | 		</fileTypes> | 
 | 	</extension> | 
 | </plugin> |