/*=============================================================================# # Copyright (c) 2005-2016 Stephan Wahlbrink (WalWare.de) 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 # # Contributors: # Stephan Wahlbrink - initial API and implementation #=============================================================================*/ package de.walware.docmlet.tex.internal.ui.config; import org.eclipse.jface.text.AbstractDocument; import org.eclipse.jface.text.templates.TemplateContextType; import de.walware.ecommons.ltk.ui.sourceediting.SourceEditorViewerConfigurator; import de.walware.ecommons.ltk.ui.templates.AbstractTemplatePreferencePage; import de.walware.ecommons.templates.TemplateVariableProcessor; import de.walware.ecommons.text.core.treepartitioner.TreePartitioner; import de.walware.docmlet.tex.core.source.LtxPartitionNodeType; import de.walware.docmlet.tex.internal.ui.TexUIPlugin; import de.walware.docmlet.tex.internal.ui.editors.LtxEditorContextType; import de.walware.docmlet.tex.ui.sourceediting.LtxTemplateSourceViewerConfigurator; public class LtxEditorTemplatesPreferencePage extends AbstractTemplatePreferencePage { public LtxEditorTemplatesPreferencePage() { setPreferenceStore(TexUIPlugin.getInstance().getPreferenceStore()); setTemplateStore(TexUIPlugin.getInstance().getLtxEditorTemplateStore()); setContextTypeRegistry(TexUIPlugin.getInstance().getLtxEditorTemplateContextTypeRegistry()); } @Override protected SourceEditorViewerConfigurator createSourceViewerConfigurator( final TemplateVariableProcessor templateProcessor) { return new LtxTemplateSourceViewerConfigurator(null, templateProcessor); } @Override protected void configureContext(final AbstractDocument document, final TemplateContextType contextType, final SourceEditorViewerConfigurator configurator) { final String partitioning= configurator.getDocumentContentInfo().getPartitioning(); final TreePartitioner partitioner = (TreePartitioner) document.getDocumentPartitioner(partitioning); if (contextType.getId().equals(LtxEditorContextType.LTX_MATH_CONTEXT_TYPE_ID)) { partitioner.setStartType(LtxPartitionNodeType.MATH_ENV_xxx); } else { partitioner.setStartType(LtxPartitionNodeType.DEFAULT_ROOT); } partitioner.disconnect(); partitioner.connect(document); document.setDocumentPartitioner(partitioning, partitioner); } }