Merge remote-tracking branch 'origin/master' into so_structured_project_config

This commit is contained in:
Stefan Oehme 2015-10-08 13:40:05 +02:00
commit 9c561c2bd3
5 changed files with 80 additions and 16 deletions

View file

@ -0,0 +1,68 @@
/*******************************************************************************
* Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.eclipse.xtext.xtext.generator.ui.outline
import com.google.inject.Inject
import org.eclipse.xtext.xtext.generator.AbstractGeneratorFragment2
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
/**
* Contributes the 'Quick Outline' entry to the language editor's context menu.
*
* @author Christian Schneider - Initial contribution and API
*/
class QuickOutlineFragment2 extends AbstractGeneratorFragment2 {
@Inject
extension XtextGeneratorNaming
override generate() {
if (projectConfig.eclipsePluginManifest != null) {
projectConfig.eclipsePluginManifest.requiredBundles += "org.eclipse.xtext.ui"
}
if (projectConfig.eclipsePluginPluginXml != null) {
projectConfig.eclipsePluginPluginXml.entries += '''
<!-- Quick Outline -->
<extension
point="org.eclipse.ui.handlers">
<handler
class="«grammar.getEclipsePluginExecutableExtensionFactory
»:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
<activeWhen>
<reference
definitionId="«grammar.name».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="«grammar.name».Editor.opened"/>
</visibleWhen>
</command>
</menuContribution>
</extension>
'''
}
}
}

View file

@ -291,11 +291,10 @@ class RuntimeProjectDescriptor extends TestedProjectDescriptor {
}
// outline API
fragment = ui.outline.OutlineTreeProviderFragment2 {}
fragment = ui.outline.OutlineTreeProviderFragment2 auto-inject {}
fragment = adapter.FragmentAdapter {
fragment = outline.QuickOutlineFragment auto-inject {}
}
// quick outline menu contribution
fragment = ui.outline.QuickOutlineFragment2 auto-inject {}
// quickfix API
fragment = adapter.FragmentAdapter {

View file

@ -91,11 +91,10 @@ Workflow {
}
// outline API
fragment = ui.outline.OutlineTreeProviderFragment2 {}
fragment = ui.outline.OutlineTreeProviderFragment2 auto-inject {}
fragment = adapter.FragmentAdapter {
fragment = outline.QuickOutlineFragment auto-inject {}
}
// quick outline menu contribution
fragment = ui.outline.QuickOutlineFragment2 auto-inject {}
// quickfix API
fragment = adapter.FragmentAdapter {

View file

@ -97,11 +97,10 @@ Workflow {
}
// outline API
fragment = ui.outline.OutlineTreeProviderFragment2 {}
fragment = ui.outline.OutlineTreeProviderFragment2 auto-inject {}
fragment = adapter.FragmentAdapter {
fragment = outline.QuickOutlineFragment auto-inject {}
}
// quick outline menu contribution
fragment = ui.outline.QuickOutlineFragment2 auto-inject {}
// quickfix API
fragment = adapter.FragmentAdapter {

View file

@ -94,11 +94,10 @@ Workflow {
}
// outline API
fragment = ui.outline.OutlineTreeProviderFragment2 {}
fragment = ui.outline.OutlineTreeProviderFragment2 auto-inject {}
fragment = adapter.FragmentAdapter {
fragment = outline.QuickOutlineFragment auto-inject {}
}
// quick outline menu contribution
fragment = ui.outline.QuickOutlineFragment2 auto-inject {}
// quickfix API
fragment = adapter.FragmentAdapter {