blob: be31040c381b132180b6f2abd00e322f6860da5e [file] [log] [blame]
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Eclipse Public License, Version 1.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.eclipse.org/org/documents/epl-v10.php
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.ide.eclipse.adt.internal.editors.common;
import com.android.ide.eclipse.adt.internal.editors.AndroidSourceViewerConfig;
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
import org.eclipse.jface.text.source.ISourceViewer;
/**
* Source Viewer Configuration for the Common XML editor.
* Everything is already generic and done in the base class.
* The base class will use the delegate to find out the proper content assist to use.
*/
public final class CommonSourceViewerConfig extends AndroidSourceViewerConfig {
private final IContentAssistProcessor mContentAssist;
public CommonSourceViewerConfig() {
super();
mContentAssist = null;
}
public CommonSourceViewerConfig(IContentAssistProcessor contentAssist) {
super();
mContentAssist = contentAssist;
}
/**
* @return The {@link IContentAssistProcessor} passed to the constructor or null.
*/
@Override
public IContentAssistProcessor getAndroidContentAssistProcessor(
ISourceViewer sourceViewer,
String partitionType) {
// You may think you could use AndroidXmlEditor.fromTextViewer(sourceViewer)
// to find the editor associated with the sourceViewer and then access the
// delegate and query the content assist specific to a given delegate.
// Unfortunately this is invoked whilst the editor part is being created
// so we can't match an existing editor to the source view -- since there
// is no such "existing" editor. It's just being created.
//
// As a workaround, CommonXmlEditor#addPages() will unconfigure the
// default sourceViewerConfig and reconfigure it with one that really
// knows which content assist it should be using.
return mContentAssist;
}
}