Code cleanup.
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/ProtobufProposalProvider.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/ProtobufProposalProvider.java index d32d6d5..53bcd64 100644 --- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/ProtobufProposalProvider.java +++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/ProtobufProposalProvider.java
@@ -40,7 +40,7 @@ @Inject private CompoundElements compoundElements; @Inject private EObjectFinder finder; - @Inject private Globals globalScope; + @Inject private Globals globals; @Inject private PluginImageHelper imageHelper; @Inject private Images imageRegistry; @Inject private Keywords keywords; @@ -58,7 +58,7 @@ } private void proposeCommonFileOptions(ContentAssistContext context, ICompletionProposalAcceptor acceptor) { - for (Property fileOption : globalScope.fileOptions()) { + for (Property fileOption : globals.fileOptions()) { String displayString = fileOption.getName(); String proposalText = displayString + " " + keywords.equalSign().getValue() + " "; boolean isStringOption = properties.isString(fileOption); @@ -77,10 +77,10 @@ @Override public void completeOption_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { Option option = (Option) model; - Property fileOption = globalScope.lookupFileOption(option.getName()); + Property fileOption = globals.lookupFileOption(option.getName()); if (fileOption == null) return; - if (globalScope.isOptimizeForOption(option)) { - proposeAndAccept(globalScope.optimizedMode(), context, acceptor); + if (globals.isOptimizeForOption(option)) { + proposeAndAccept(globals.optimizedMode(), context, acceptor); return; } if (properties.isString(fileOption)) { @@ -173,7 +173,7 @@ EObject model = context.getCurrentModel(); if (model instanceof Property) return properties.isBool((Property) model); if (model instanceof Option) { - Property fileOption = globalScope.lookupFileOption(((Option) model).getName()); + Property fileOption = globals.lookupFileOption(((Option) model).getName()); return fileOption != null && properties.isBool(fileOption); } return false;
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/Globals.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/Globals.java index e4194a8..9e1030c 100644 --- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/Globals.java +++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/Globals.java
@@ -9,11 +9,12 @@ package com.google.eclipse.protobuf.scoping; import static java.util.Collections.unmodifiableCollection; +import static org.eclipse.emf.common.util.URI.createURI; +import static org.eclipse.xtext.EcoreUtil2.getAllContentsOfType; import java.io.*; import java.util.*; -import org.eclipse.emf.common.util.URI; import org.eclipse.xtext.parser.IParseResult; import org.eclipse.xtext.parser.IParser; import org.eclipse.xtext.resource.XtextResource; @@ -36,14 +37,14 @@ private Protobuf root; private boolean initialized; - private Map<String, Property> fileOptions = new LinkedHashMap<String, Property>(); + private final Map<String, Property> fileOptions = new LinkedHashMap<String, Property>(); private Enum optimizedMode; @Inject EObjectFinder finder; @Inject public Globals(IParser parser) { try { - XtextResource resource = new XtextResource(URI.createURI("")); + XtextResource resource = new XtextResource(createURI("globals.proto")); IParseResult result = parser.parse(new InputStreamReader(globalScopeContents(), "UTF-8")); root = (Protobuf) result.getRootASTElement(); resource.getContents().add(root); @@ -95,12 +96,9 @@ } private Message fileOptionsMessage() { - for (ProtobufElement e : root.getElements()) { - if (!(e instanceof Message)) continue; - Message m = (Message) e; + for (Message m : getAllContentsOfType(root, Message.class)) if ("FileOptions".equals(m.getName())) return m; - } - return null; + throw new IllegalStateException("Unable to find message 'FileOptions'"); } private void addFileOption(Property p) {