* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
* \author Jean-Marc Lasgouttes
* \author Angus Leeming
* \author John Levon
- * \author André Pönitz
+ * \author André Pönitz
* \author Allan Rae
* \author Dekel Tsur
*
#include <config.h>
-#include <fstream>
-#include <iostream>
-
#include "LyXRC.h"
-#include "Color.h"
+#include "ColorSet.h"
#include "Converter.h"
+#include "FontEnums.h"
#include "Format.h"
-#include "Session.h"
#include "Lexer.h"
-#include "FontEnums.h"
#include "Mover.h"
+#include "Session.h"
+#include "version.h"
#include "graphics/GraphicsTypes.h"
#include "support/os.h"
#include "support/userinfo.h"
+#include <fstream>
+#include <iostream>
+
using namespace std;
using namespace lyx::support;
{ "\\auto_number", LyXRC::RC_AUTO_NUMBER },
{ "\\auto_region_delete", LyXRC::RC_AUTOREGIONDELETE },
{ "\\auto_reset_options", LyXRC::RC_AUTORESET_OPTIONS },
+ { "\\autocorrection_math", LyXRC::RC_AUTOCORRECTION_MATH },
{ "\\autosave", LyXRC::RC_AUTOSAVE },
{ "\\backupdir_path", LyXRC::RC_BACKUPDIR_PATH },
{ "\\bibtex_command", LyXRC::RC_BIBTEX_COMMAND },
{ "\\screen_font_typewriter", LyXRC::RC_SCREEN_FONT_TYPEWRITER },
{ "\\screen_font_typewriter_foundry", LyXRC::RC_SCREEN_FONT_TYPEWRITER_FOUNDRY },
{ "\\screen_zoom", LyXRC::RC_SCREEN_ZOOM },
+ { "\\scroll_below_document", LyXRC::RC_SCROLL_BELOW_DOCUMENT },
{ "\\serverpipe", LyXRC::RC_SERVERPIPE },
{ "\\set_color", LyXRC::RC_SET_COLOR },
{ "\\show_banner", LyXRC::RC_SHOW_BANNER },
{ "\\sort_layouts", LyXRC::RC_SORT_LAYOUTS },
{ "\\spell_command", LyXRC::RC_SPELL_COMMAND },
+ { "\\spellcheck_continuously", LyXRC::RC_SPELLCHECK_CONTINUOUSLY },
{ "\\tempdir_path", LyXRC::RC_TEMPDIRPATH },
{ "\\template_path", LyXRC::RC_TEMPLATEPATH },
{ "\\tex_allows_spaces", LyXRC::RC_TEX_ALLOWS_SPACES },
{ "\\tex_expects_windows_paths", LyXRC::RC_TEX_EXPECTS_WINDOWS_PATHS },
+ { "\\thesaurusdir_path", LyXRC::RC_THESAURUSDIRPATH },
{ "\\ui_file", LyXRC::RC_UIFILE },
{ "\\use_alt_language", LyXRC::RC_USE_ALT_LANG },
{ "\\use_converter_cache", LyXRC::RC_USE_CONVERTER_CACHE },
{ "\\use_pixmap_cache", LyXRC::RC_USE_PIXMAP_CACHE },
// compatibility with versions older than 1.4.0 only
{ "\\use_pspell", LyXRC::RC_USE_SPELL_LIB },
- { "\\use_spell_lib", LyXRC::RC_USE_SPELL_LIB },
// compatibility with versions older than 1.4.0 only
{ "\\use_tempdir", LyXRC::RC_USETEMPDIR },
{ "\\use_tooltip", LyXRC::RC_USE_TOOLTIP },
backupdir_path.erase();
display_graphics = true;
// Spellchecker settings:
- use_spell_lib = true;
- isp_command = "ispell";
- isp_accept_compound = false;
- isp_use_input_encoding = false;
- isp_use_alt_lang = false;
- isp_use_pers_dict = false;
- isp_use_esc_chars = false;
+ spellchecker_accept_compound = false;
+ spellchecker_use_input_encoding = false;
+ spellchecker_use_alt_lang = false;
+ spellchecker_use_pers_dict = false;
+ spellchecker_use_esc_chars = false;
+ spellcheck_continuously = false;
use_kbmap = false;
rtl_support = true;
visual_cursor = false;
tex_allows_spaces = false;
date_insert_format = "%x";
cursor_follows_scrollbar = false;
+ scroll_below_document = false;
mac_like_word_movement = false;
macro_edit_style = MACRO_EDIT_INLINE_BOX;
dialogs_iconify_with_main = false;
completion_popup_text = false;
completion_popup_delay = 2.0;
completion_popup_after_complete = true;
+ autocorrection_math = false;
completion_inline_math = true;
completion_inline_text = false;
completion_inline_dots = -1;
int LyXRC::read(Lexer & lexrc)
{
- if (!lexrc.isOK()) return -2;
+ if (!lexrc.isOK())
+ return -2;
while (lexrc.isOK()) {
// By using two switches we take advantage of the compiler
continue;
case Lexer::LEX_FEOF:
continue;
- default: break;
+ default:
+ break;
}
switch (static_cast<LyXRCTags>(le)) {
case RC_INPUT: // Include file
}
break;
case RC_BINDFILE:
- if (lexrc.next()) {
+ if (lexrc.next())
bind_file = os::internal_path(lexrc.getString());
- }
break;
case RC_DEFFILE:
- if (lexrc.next()) {
+ if (lexrc.next())
def_file = os::internal_path(lexrc.getString());
- }
break;
case RC_UIFILE:
- if (lexrc.next()) {
+ if (lexrc.next())
ui_file = os::internal_path(lexrc.getString());
- }
break;
case RC_AUTORESET_OPTIONS:
}
break;
+ case RC_THESAURUSDIRPATH:
+ if (lexrc.next()) {
+ thesaurusdir_path = os::internal_path(lexrc.getString());
+ thesaurusdir_path = expandPath(thesaurusdir_path);
+ }
+ break;
+
case RC_USETEMPDIR:
if (lexrc.next())
LYXERR0("Ignoring obsolete use_tempdir flag.");
lexrc >> completion_inline_dots;
break;
+ case RC_AUTOCORRECTION_MATH:
+ lexrc >> autocorrection_math;
+ break;
+
case RC_COMPLETION_POPUP_DELAY:
lexrc >> completion_popup_delay;
break;
lexrc >> cursor_follows_scrollbar;
break;
+ case RC_SCROLL_BELOW_DOCUMENT:
+ lexrc >> scroll_below_document;
+ break;
+
case RC_MAC_LIKE_WORD_MOVEMENT:
lexrc >> mac_like_word_movement;
break;
lexrc >> dialogs_iconify_with_main;
break;
- case RC_PLAINTEXT_ROFF_COMMAND:
- if (lexrc.next(true)) {
- plaintext_roff_command = lexrc.getString();
- }
+ case RC_PLAINTEXT_ROFF_COMMAND:
+ (void) lexrc.getString(); // Obsoleted in 2.0
break;
case RC_PLAINTEXT_LINELEN:
lexrc >> plaintext_linelen;
break;
// Spellchecker settings:
- case RC_USE_SPELL_LIB:
- lexrc >> use_spell_lib;
- break;
- case RC_SPELL_COMMAND:
- if (lexrc.next(true))
- isp_command = lexrc.getString();
- break;
case RC_ACCEPT_COMPOUND:
- lexrc >> isp_accept_compound;
+ lexrc >> spellchecker_accept_compound;
break;
case RC_USE_INP_ENC:
- lexrc >> isp_use_input_encoding;
+ lexrc >> spellchecker_use_input_encoding;
break;
case RC_USE_ALT_LANG:
- lexrc >> isp_use_alt_lang;
+ lexrc >> spellchecker_use_alt_lang;
break;
case RC_USE_PERS_DICT:
- lexrc >> isp_use_pers_dict;
+ lexrc >> spellchecker_use_pers_dict;
break;
case RC_USE_TOOLTIP:
lexrc >> use_tooltip;
lexrc >> use_pixmap_cache;
break;
case RC_USE_ESC_CHARS:
- lexrc >> isp_use_esc_chars;
+ lexrc >> spellchecker_use_esc_chars;
break;
case RC_ALT_LANG:
- lexrc >> isp_alt_lang;
+ lexrc >> spellchecker_alt_lang;
break;
case RC_PERS_DICT:
if (lexrc.next())
- isp_pers_dict = os::internal_path(lexrc.getString());
+ spellchecker_pers_dict = os::internal_path(lexrc.getString());
break;
case RC_ESC_CHARS:
- lexrc >> isp_esc_chars;
+ lexrc >> spellchecker_esc_chars;
+ break;
+ case RC_SPELLCHECK_CONTINUOUSLY:
+ lexrc >> spellcheck_continuously;
break;
case RC_MAKE_BACKUP:
lexrc >> make_backup;
lexrc >> open_buffers_in_tabs;
break;
+ // Obsoleted in 2.0
+ case RC_SPELL_COMMAND:
+ case RC_USE_SPELL_LIB:
+ (void) lexrc.getString();
+ break;
+
case RC_LAST:
break; // this is just a dummy
}
}
if (tag == RC_LAST)
- os << "# This file is written by LyX, if you want to make your own\n"
- << "# modifications you should do them from inside LyX and save\n"
+ os << "# LyX " << lyx_version
+ << " generated this file. If you want to make your own\n"
+ << "# modifications you should do them from inside LyX and save.\n"
<< "\n";
// Why the switch you might ask. It is a trick to ensure that all
}
if (tag != RC_LAST)
break;
+ case RC_SCROLL_BELOW_DOCUMENT:
+ if (ignore_system_lyxrc ||
+ scroll_below_document
+ != system_lyxrc.scroll_below_document) {
+ os << "\\scroll_below_document "
+ << convert<string>(scroll_below_document) << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
case RC_MAC_LIKE_WORD_MOVEMENT:
if (ignore_system_lyxrc ||
mac_like_word_movement
}
if (tag != RC_LAST)
break;
+ case RC_AUTOCORRECTION_MATH:
+ if (ignore_system_lyxrc ||
+ autocorrection_math != system_lyxrc.autocorrection_math) {
+ os << "\\autocorrection_math "
+ << convert<string>(autocorrection_math) << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
case RC_COMPLETION_POPUP_DELAY:
if (ignore_system_lyxrc ||
completion_popup_delay != system_lyxrc.completion_popup_delay) {
}
if (tag != RC_LAST)
break;
+ case RC_THESAURUSDIRPATH:
+ if (ignore_system_lyxrc ||
+ thesaurusdir_path != system_lyxrc.thesaurusdir_path) {
+ string const path = os::external_path(thesaurusdir_path);
+ os << "\\thesaurusdir_path \"" << path << "\"\n";
+ }
+ if (tag != RC_LAST)
+ break;
case RC_USETEMPDIR:
if (tag != RC_LAST)
break;
// Ignore it
+ case RC_PLAINTEXT_ROFF_COMMAND: // Obsoleted in 2.0
+ if (tag != RC_LAST)
+ break;
case RC_PLAINTEXT_LINELEN:
if (ignore_system_lyxrc ||
plaintext_linelen != system_lyxrc.plaintext_linelen) {
<< "# PLAIN TEXT EXPORT SECTION ##############################\n"
<< "#\n\n";
- case RC_PLAINTEXT_ROFF_COMMAND:
- if (ignore_system_lyxrc ||
- plaintext_roff_command != system_lyxrc.plaintext_roff_command) {
- os << "\\plaintext_roff_command \"" << escapeCommand(plaintext_roff_command)
- << "\"\n";
- }
- if (tag != RC_LAST)
- break;
-
os << "\n#\n"
<< "# SPELLCHECKER SECTION ##############################\n"
<< "#\n\n";
- case RC_USE_SPELL_LIB:
- if (ignore_system_lyxrc ||
- use_spell_lib != system_lyxrc.use_spell_lib) {
- os << "\\use_spell_lib " << convert<string>(use_spell_lib) << '\n';
- }
- if (tag != RC_LAST)
- break;
+
case RC_SPELL_COMMAND:
- if (ignore_system_lyxrc ||
- isp_command != system_lyxrc.isp_command) {
- os << "\\spell_command \"" << escapeCommand(isp_command) << "\"\n";
- }
+ case RC_USE_SPELL_LIB:
+ // Obsoleted in 2.0
if (tag != RC_LAST)
break;
case RC_ACCEPT_COMPOUND:
if (ignore_system_lyxrc ||
- isp_accept_compound != system_lyxrc.isp_accept_compound) {
- os << "\\accept_compound " << convert<string>(isp_accept_compound)
+ spellchecker_accept_compound != system_lyxrc.spellchecker_accept_compound) {
+ os << "\\accept_compound " << convert<string>(spellchecker_accept_compound)
<< '\n';
}
if (tag != RC_LAST)
break;
case RC_USE_ALT_LANG:
if (ignore_system_lyxrc ||
- isp_use_alt_lang != system_lyxrc.isp_use_alt_lang) {
- os << "\\use_alt_language " << convert<string>(isp_use_alt_lang)
+ spellchecker_use_alt_lang != system_lyxrc.spellchecker_use_alt_lang) {
+ os << "\\use_alt_language " << convert<string>(spellchecker_use_alt_lang)
<< '\n';
}
if (tag != RC_LAST)
break;
case RC_ALT_LANG:
if (ignore_system_lyxrc ||
- isp_alt_lang != system_lyxrc.isp_alt_lang) {
- os << "\\alternate_language \"" << isp_alt_lang
+ spellchecker_alt_lang != system_lyxrc.spellchecker_alt_lang) {
+ os << "\\alternate_language \"" << spellchecker_alt_lang
<< "\"\n";
}
if (tag != RC_LAST)
break;
case RC_USE_ESC_CHARS:
if (ignore_system_lyxrc ||
- isp_use_esc_chars != system_lyxrc.isp_use_esc_chars) {
- os << "\\use_escape_chars " << convert<string>(isp_use_esc_chars)
+ spellchecker_use_esc_chars != system_lyxrc.spellchecker_use_esc_chars) {
+ os << "\\use_escape_chars " << convert<string>(spellchecker_use_esc_chars)
<< '\n';
}
if (tag != RC_LAST)
break;
case RC_ESC_CHARS:
if (ignore_system_lyxrc ||
- isp_esc_chars != system_lyxrc.isp_esc_chars) {
- os << "\\escape_chars \"" << isp_esc_chars << "\"\n";
+ spellchecker_esc_chars != system_lyxrc.spellchecker_esc_chars) {
+ os << "\\escape_chars \"" << spellchecker_esc_chars << "\"\n";
}
if (tag != RC_LAST)
break;
case RC_USE_PERS_DICT:
if (ignore_system_lyxrc ||
- isp_use_pers_dict != system_lyxrc.isp_use_pers_dict) {
+ spellchecker_use_pers_dict != system_lyxrc.spellchecker_use_pers_dict) {
os << "\\use_personal_dictionary "
- << convert<string>(isp_use_pers_dict)
+ << convert<string>(spellchecker_use_pers_dict)
<< '\n';
}
if (tag != RC_LAST)
<< '\n';
}
case RC_PERS_DICT:
- if (isp_pers_dict != system_lyxrc.isp_pers_dict) {
- string const path = os::external_path(isp_pers_dict);
+ if (spellchecker_pers_dict != system_lyxrc.spellchecker_pers_dict) {
+ string const path = os::external_path(spellchecker_pers_dict);
os << "\\personal_dictionary \"" << path << "\"\n";
}
if (tag != RC_LAST)
break;
case RC_USE_INP_ENC:
if (ignore_system_lyxrc ||
- isp_use_input_encoding
- != system_lyxrc.isp_use_input_encoding) {
+ spellchecker_use_input_encoding
+ != system_lyxrc.spellchecker_use_input_encoding) {
os << "\\use_input_encoding "
- << convert<string>(isp_use_input_encoding)
+ << convert<string>(spellchecker_use_input_encoding)
<< '\n';
}
if (tag != RC_LAST)
<< "# LANGUAGE SUPPORT SECTION ##########################\n"
<< "#\n\n";
+ case RC_SPELLCHECK_CONTINUOUSLY:
+ if (ignore_system_lyxrc ||
+ spellcheck_continuously != system_lyxrc.spellcheck_continuously) {
+ os << "\\spellcheck_continuously " << convert<string>(spellcheck_continuously)
+ << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
+
case RC_RTL_SUPPORT:
if (ignore_system_lyxrc ||
rtl_support != system_lyxrc.rtl_support) {
str = _("LyX normally doesn't update the cursor position if you move the scrollbar. Set to true if you'd prefer to always have the cursor on screen.");
break;
+ case RC_SCROLL_BELOW_DOCUMENT:
+ str = _("LyX normally doesn't allow the user to scroll further than the bottom of the document. Set to true if you prefer to scroll the bottom of the document to the top of the screen");
+ break;
+
case RC_MAC_LIKE_WORD_MOVEMENT:
str = _("Use the Mac OS X conventions for the word-level cursor movement");
break;
str = _("Use \"...\" to shorten long completions.");
break;
+ case RC_AUTOCORRECTION_MATH:
+ str = _("Allow TeXMacs shorthand, like => converting to \Rightarrow.");
+ break;
+
case RC_NUMLASTFILES:
str = bformat(_("Maximal number of lastfiles. Up to %1$d can appear in the file menu."),
maxlastfiles);
case RC_PERS_DICT:
case RC_USE_PERS_DICT:
- str = _("Specify an alternate personal dictionary file. E.g. \".ispell_english\".");
+ str = _("Specify an alternate personal dictionary file. E.g. \".aspell_english\".");
break;
case RC_PREVIEW:
str = _("De-select if you don't want the startup banner.");
break;
- case RC_SPELL_COMMAND:
- str = _("What command runs the spellchecker?");
- break;
-
case RC_TEMPDIRPATH:
str = _("LyX will place its temporary directories in this path. They will be deleted when you quit LyX.");
break;
+ case RC_THESAURUSDIRPATH:
+ str = _("This is the place where the files of the thesaurus library reside.");
+ break;
+
case RC_TEMPLATEPATH:
str = _("The path that LyX will set when offering to choose a template. An empty value selects the directory LyX was started from.");
break;
break;
case RC_USE_INP_ENC:
- str = _("Specify whether to pass the -T input encoding option to ispell. Enable this if you cannot check the spelling of words containing accented letters. This may not work with all dictionaries.");
+ str = _("Specify whether to pass the -T input encoding option to aspell. Enable this if you cannot check the spelling of words containing accented letters. This may not work with all dictionaries.");
break;
case RC_USE_TOOLTIP: