/*
* $Id$
*
* Copyright (c) 2004-2005 by the TeXlapse Team.
* 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 net.sourceforge.texlipse.properties;
import java.io.File;
import net.sourceforge.texlipse.PathUtils;
import net.sourceforge.texlipse.TexlipsePlugin;
import net.sourceforge.texlipse.bibeditor.BibColorProvider;
import net.sourceforge.texlipse.builder.BuilderRegistry;
import net.sourceforge.texlipse.builder.ProgramRunner;
import net.sourceforge.texlipse.editor.ColorManager;
import net.sourceforge.texlipse.spelling.SpellChecker;
import net.sourceforge.texlipse.viewer.ViewerAttributeRegistry;
import net.sourceforge.texlipse.viewer.util.FileLocationClient;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.swt.graphics.RGB;
/**
* Initialize the plugin preferences.
*
* @author Kimmo Karlsson
*/
public class TexlipsePreferenceInitializer extends
AbstractPreferenceInitializer {
/**
* Creates a new preference initializer
*/
public TexlipsePreferenceInitializer() {
super();
}
/**
* Save the program paths into preferences.
* @param pref preferences
*/
private void initializePaths(IPreferenceStore pref) {
String path = PathUtils.findInEnvPath("latex", "/usr/bin", "latex.exe", "C:\\texmf\\miktex\\bin");
int size = BuilderRegistry.getNumberOfRunners();
for (int i = 0; i < size; i++) {
ProgramRunner runner = BuilderRegistry.getRunner(i);
File prog = new File(path + File.separator + runner.getProgramName());
if (prog.exists()) {
runner.initializeDefaults(pref, prog.getAbsolutePath());
} else {
runner.initializeDefaults(pref, "");
}
}
}
/**
* Initialize all preferences to some default values.
*/
public void initializeDefaultPreferences() {
IPreferenceStore pref = TexlipsePlugin.getDefault().getPreferenceStore();
pref.setDefault(TexlipseProperties.BIB_DIR, "");
pref.setDefault(TexlipseProperties.OUTPUT_FORMAT, TexlipseProperties.OUTPUT_FORMAT_DVI);
pref.setDefault(TexlipseProperties.BUILDER_NUMBER, 0);
pref.setDefault(TexlipseProperties.BUILDER_CONSOLE_OUTPUT, true);
pref.setDefault(TexlipseProperties.BUILDER_PARSE_AUX_FILES, true);
pref.setDefault(TexlipseProperties.BUILD_BEFORE_VIEW, false);
pref.setDefault(TexlipseProperties.FILE_LOCATION_PORT, FileLocationClient.DEFAULT_PORTNUMBER);
initializePaths(pref);
ColorManager.initializeDefaults(pref);
BibColorProvider.initializeDefaults(pref);
ViewerAttributeRegistry.initializeDefaults(pref);
SpellChecker.initializeDefaults(pref);
pref.setDefault(TexlipseProperties.BUILD_ENV_SETTINGS, "");
pref.setDefault(TexlipseProperties.VIEWER_ENV_SETTINGS, "");
pref.setDefault(TexlipseProperties.TEMP_FILE_EXTS, ".aux,.log,.toc,.ind,.ilg,.bbl,.blg,.lot,.lof,.snm,.nav,.out,.vrb,.run.xml,.bcf");
pref.setDefault(TexlipseProperties.DERIVED_FILES, ".synctex.gz,.synctex,.pdfsync");
pref.setDefault(TexlipseProperties.BIB_COMPLETION, true);
pref.setDefault(TexlipseProperties.BIB_COMPLETION_DELAY, 500);
pref.setDefault(TexlipseProperties.TEX_COMPLETION, true);
pref.setDefault(TexlipseProperties.TEX_COMPLETION_DELAY, 500);
pref.setDefault(TexlipseProperties.AUTO_PARSING, true);
pref.setDefault(TexlipseProperties.AUTO_PARSING_DELAY, 2000);
pref.setDefault(TexlipseProperties.SECTION_CHECK, true);
pref.setDefault(TexlipseProperties.BIB_CODE_FOLDING, true);
pref.setDefault(TexlipseProperties.BIB_FOLD_INITIAL, false);
pref.setDefault(TexlipseProperties.BIB_STRING, false);
pref.setDefault(TexlipseProperties.CODE_FOLDING, true);
pref.setDefault(TexlipseProperties.CODE_FOLDING_PREAMBLE, false);
pref.setDefault(TexlipseProperties.CODE_FOLDING_PART, false);
pref.setDefault(TexlipseProperties.CODE_FOLDING_CHAPTER, false);
pref.setDefault(TexlipseProperties.CODE_FOLDING_SECTION, false);
pref.setDefault(TexlipseProperties.CODE_FOLDING_SUBSECTION, false);
pref.setDefault(TexlipseProperties.CODE_FOLDING_SUBSUBSECTION, false);
pref.setDefault(TexlipseProperties.CODE_FOLDING_PARAGRAPH, false);
pref.setDefault(TexlipseProperties.CODE_FOLDING_ENVS, "");
pref.setDefault(TexlipseProperties.MATCHING_BRACKETS, true);
PreferenceConverter.setDefault(pref, TexlipseProperties.MATCHING_BRACKETS_COLOR, new RGB(192, 192, 192));
pref.setDefault(TexlipseProperties.INDENTATION, true);
pref.setDefault(TexlipseProperties.INDENTATION_LEVEL, 2);
pref.setDefault(TexlipseProperties.INDENTATION_TABS, false);
pref.setDefault(TexlipseProperties.INDENTATION_ENVS, "list,enumerate,itemize");
pref.setDefault(TexlipseProperties.WORDWRAP_LENGTH, 80);
pref.setDefault(TexlipseProperties.WORDWRAP_TYPE, TexlipseProperties.WORDWRAP_TYPE_HARD);
pref.setDefault(TexlipseProperties.WORDWRAP_DEFAULT, true);
pref.setDefault(TexlipseProperties.TEX_ITEM_COMPLETION, true);
pref.setDefault(TexlipseProperties.SMART_BACKSPACE, true);
pref.setDefault(TexlipseProperties.SMART_PARENS, true);
pref.setDefault(TexlipseProperties.SMART_QUOTES, true);
pref.setDefault(TexlipseProperties.SMART_LDOTS, true);
// B----------------------------------- mmaus
//pref.setDefault(TexlipseProperties.SMART_KEY_SETTINGS, "ll=list,en=enumerate,iz=itemize");
pref.setDefault(TexlipseProperties.STYLE_COMPLETION_SETTINGS, "bold=\\textbf{,italic=\\textit{,roman=\\textrm{,sans serif=\\textsf{,small caps=\\textsc{,slanted=\\textsl{,teletype=\\texttt{,emphasize=\\emph{");
// E----------------------------------- mmaus
pref.setDefault(TexlipseProperties.TEX_EDITOR_ANNOTATATIONS, true);
pref.setDefault(TexlipseProperties.OUTLINE_PREAMBLE, true);
pref.setDefault(TexlipseProperties.OUTLINE_PART, true);
pref.setDefault(TexlipseProperties.OUTLINE_CHAPTER, true);
pref.setDefault(TexlipseProperties.OUTLINE_SECTION, true);
pref.setDefault(TexlipseProperties.OUTLINE_SUBSECTION, true);
pref.setDefault(TexlipseProperties.OUTLINE_SUBSUBSECTION, true);
pref.setDefault(TexlipseProperties.OUTLINE_PARAGRAPH, true);
pref.setDefault(TexlipseProperties.OUTLINE_ENVS, "list,enumerate,itemize,figure,table,tabular");
pref.setDefault(TexlipseProperties.ECLIPSE_BUILDIN_SPELLCHECKER, true);
pref.setDefault(TexlipseProperties.SPELLCHECKER_IGNORE_COMMENTS, true);
pref.setDefault(TexlipseProperties.SPELLCHECKER_IGNORE_MATH, false);
pref.setDefault(TexlipseProperties.SPELLCHECKER_IGNORE_MIXED_CASE, true);
pref.setDefault(TexlipseProperties.BUILDER_FORCE_RETURN_FOCUS, true);
}
}