mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-11 13:46:43 +00:00
polyglossia tex2lyx coding style improvement
- Preamble.cpp/: - move list definition out of anon namespace - declare lists and a function in the class - text.cpp: remove the now already defined list
This commit is contained in:
parent
06c1d24bdb
commit
d10063fd20
@ -88,41 +88,6 @@ const char * const known_coded_languages[] = {"french", "afrikaans", "albanian",
|
|||||||
"uppersorbian", "uppersorbian", "english", "english", "vietnamese", "welsh",
|
"uppersorbian", "uppersorbian", "english", "english", "vietnamese", "welsh",
|
||||||
0};
|
0};
|
||||||
|
|
||||||
/**
|
|
||||||
* known polyglossia language names (including variants)
|
|
||||||
*/
|
|
||||||
const char * const polyglossia_languages[] = {
|
|
||||||
"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi",
|
|
||||||
"nynorsk", "syriac", "arabic", "danish", "icelandic", "occitan", "tamil",
|
|
||||||
"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch",
|
|
||||||
"irish", "portuges", "thai", "bahasai", "english", "italian", "romanian", "turkish",
|
|
||||||
"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin",
|
|
||||||
"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazil",
|
|
||||||
"brazilian", "finnish", "lithuanian", "scottish", "usorbian", "breton", "french",
|
|
||||||
"lsorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak",
|
|
||||||
"welsh", "catalan", "german", "malayalam", "slovenian", "coptic", "greek",
|
|
||||||
"marathi", "spanish",
|
|
||||||
"american", "ancient", "australian", "british", "monotonic", "newzealand",
|
|
||||||
"polytonic", 0};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* the same as polyglossia_languages with .lyx names
|
|
||||||
* please keep this in sync with polyglossia_languages line by line!
|
|
||||||
*/
|
|
||||||
const char * const coded_polyglossia_languages[] = {
|
|
||||||
"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi",
|
|
||||||
"nynorsk", "syriac", "arabic_arabi", "danish", "icelandic", "occitan", "tamil",
|
|
||||||
"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch",
|
|
||||||
"irish", "portuges", "thai", "bahasa", "english", "italian", "romanian", "turkish",
|
|
||||||
"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin",
|
|
||||||
"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazilian",
|
|
||||||
"brazilian", "finnish", "lithuanian", "scottish", "uppersorbian", "breton", "french",
|
|
||||||
"lowersorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak",
|
|
||||||
"welsh", "catalan", "ngerman", "malayalam", "slovene", "coptic", "greek",
|
|
||||||
"marathi", "spanish",
|
|
||||||
"american", "ancientgreek", "australian", "british", "greek", "newzealand",
|
|
||||||
"polutonikogreek", 0};
|
|
||||||
|
|
||||||
/// languages with english quotes (.lyx names)
|
/// languages with english quotes (.lyx names)
|
||||||
const char * const known_english_quotes_languages[] = {"american", "australian",
|
const char * const known_english_quotes_languages[] = {"american", "australian",
|
||||||
"bahasa", "bahasam", "brazilian", "canadian", "chinese-simplified", "english",
|
"bahasa", "bahasam", "brazilian", "canadian", "chinese-simplified", "english",
|
||||||
@ -317,6 +282,42 @@ string process_keyval_opt(vector<string> & options, string name)
|
|||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* known polyglossia language names (including variants)
|
||||||
|
*/
|
||||||
|
const char * const Preamble::polyglossia_languages[] = {
|
||||||
|
"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi",
|
||||||
|
"nynorsk", "syriac", "arabic", "danish", "icelandic", "occitan", "tamil",
|
||||||
|
"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch",
|
||||||
|
"irish", "portuges", "thai", "bahasai", "english", "italian", "romanian", "turkish",
|
||||||
|
"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin",
|
||||||
|
"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazil",
|
||||||
|
"brazilian", "finnish", "lithuanian", "scottish", "usorbian", "breton", "french",
|
||||||
|
"lsorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak",
|
||||||
|
"welsh", "catalan", "german", "malayalam", "slovenian", "coptic", "greek",
|
||||||
|
"marathi", "spanish",
|
||||||
|
"american", "ancient", "australian", "british", "monotonic", "newzealand",
|
||||||
|
"polytonic", 0};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the same as polyglossia_languages with .lyx names
|
||||||
|
* please keep this in sync with polyglossia_languages line by line!
|
||||||
|
*/
|
||||||
|
const char * const Preamble::coded_polyglossia_languages[] = {
|
||||||
|
"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi",
|
||||||
|
"nynorsk", "syriac", "arabic_arabi", "danish", "icelandic", "occitan", "tamil",
|
||||||
|
"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch",
|
||||||
|
"irish", "portuges", "thai", "bahasa", "english", "italian", "romanian", "turkish",
|
||||||
|
"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin",
|
||||||
|
"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazilian",
|
||||||
|
"brazilian", "finnish", "lithuanian", "scottish", "uppersorbian", "breton", "french",
|
||||||
|
"lowersorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak",
|
||||||
|
"welsh", "catalan", "ngerman", "malayalam", "slovene", "coptic", "greek",
|
||||||
|
"marathi", "spanish",
|
||||||
|
"american", "ancientgreek", "australian", "british", "greek", "newzealand",
|
||||||
|
"polutonikogreek", 0};
|
||||||
|
|
||||||
|
|
||||||
bool Preamble::indentParagraphs() const
|
bool Preamble::indentParagraphs() const
|
||||||
{
|
{
|
||||||
return h_paragraph_separation == "indent";
|
return h_paragraph_separation == "indent";
|
||||||
@ -1644,7 +1645,7 @@ string babel2lyx(string const & language)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string polyglossia2lyx(string const & language)
|
string Preamble::polyglossia2lyx(string const & language)
|
||||||
{
|
{
|
||||||
char const * const * where = is_known(language, polyglossia_languages);
|
char const * const * where = is_known(language, polyglossia_languages);
|
||||||
if (where)
|
if (where)
|
||||||
|
@ -43,6 +43,8 @@ public:
|
|||||||
///
|
///
|
||||||
std::string use_indices() const { return h_use_indices; }
|
std::string use_indices() const { return h_use_indices; }
|
||||||
///
|
///
|
||||||
|
std::string polyglossia2lyx(std::string const & language);
|
||||||
|
///
|
||||||
bool indentParagraphs() const;
|
bool indentParagraphs() const;
|
||||||
///
|
///
|
||||||
bool isPackageUsed(std::string const & package) const;
|
bool isPackageUsed(std::string const & package) const;
|
||||||
@ -66,13 +68,17 @@ public:
|
|||||||
/// Get author named \p name (must be registered first)
|
/// Get author named \p name (must be registered first)
|
||||||
Author const & getAuthor(std::string const & name) const;
|
Author const & getAuthor(std::string const & name) const;
|
||||||
|
|
||||||
|
|
||||||
/// Parses the LaTeX preamble into internal data
|
/// Parses the LaTeX preamble into internal data
|
||||||
void parse(Parser & p, std::string const & forceclass,
|
void parse(Parser & p, std::string const & forceclass,
|
||||||
TeX2LyXDocClass & tc);
|
TeX2LyXDocClass & tc);
|
||||||
/// Writes the LyX file header from internal data
|
/// Writes the LyX file header from internal data
|
||||||
bool writeLyXHeader(std::ostream & os, bool subdoc);
|
bool writeLyXHeader(std::ostream & os, bool subdoc);
|
||||||
|
|
||||||
|
/// known polyglossia language names (including variants)
|
||||||
|
static const char * const polyglossia_languages[];
|
||||||
|
/// the same as polyglossia_languages with .lyx names
|
||||||
|
static const char * const coded_polyglossia_languages[];
|
||||||
|
|
||||||
private:
|
private:
|
||||||
///
|
///
|
||||||
std::map<std::string, std::vector<std::string> > used_packages;
|
std::map<std::string, std::vector<std::string> > used_packages;
|
||||||
|
@ -117,41 +117,6 @@ char const * const known_ref_commands[] = { "ref", "pageref", "vref",
|
|||||||
char const * const known_coded_ref_commands[] = { "ref", "pageref", "vref",
|
char const * const known_coded_ref_commands[] = { "ref", "pageref", "vref",
|
||||||
"vpageref", "formatted", "eqref", 0 };
|
"vpageref", "formatted", "eqref", 0 };
|
||||||
|
|
||||||
/**
|
|
||||||
* known polyglossia language names (including variants)
|
|
||||||
*/
|
|
||||||
const char * const polyglossia_languages[] = {
|
|
||||||
"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi",
|
|
||||||
"nynorsk", "syriac", "arabic", "danish", "icelandic", "occitan", "tamil",
|
|
||||||
"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch",
|
|
||||||
"irish", "portuges", "thai", "bahasai", "english", "italian", "romanian", "turkish",
|
|
||||||
"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin",
|
|
||||||
"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazil",
|
|
||||||
"brazilian", "finnish", "lithuanian", "scottish", "usorbian", "breton", "french",
|
|
||||||
"lsorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak",
|
|
||||||
"welsh", "catalan", "german", "malayalam", "slovenian", "coptic", "greek",
|
|
||||||
"marathi", "spanish",
|
|
||||||
"american", "ancient", "australian", "british", "monotonic", "newzealand",
|
|
||||||
"polytonic", 0};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* the same as polyglossia_languages with .lyx names
|
|
||||||
* please keep this in sync with polyglossia_languages line by line!
|
|
||||||
*/
|
|
||||||
const char * const coded_polyglossia_languages[] = {
|
|
||||||
"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi",
|
|
||||||
"nynorsk", "syriac", "arabic_arabi", "danish", "icelandic", "occitan", "tamil",
|
|
||||||
"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch",
|
|
||||||
"irish", "portuges", "thai", "bahasa", "english", "italian", "romanian", "turkish",
|
|
||||||
"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin",
|
|
||||||
"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazilian",
|
|
||||||
"brazilian", "finnish", "lithuanian", "scottish", "uppersorbian", "breton", "french",
|
|
||||||
"lowersorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak",
|
|
||||||
"welsh", "catalan", "ngerman", "malayalam", "slovene", "coptic", "greek",
|
|
||||||
"marathi", "spanish",
|
|
||||||
"american", "ancientgreek", "australian", "british", "greek", "newzealand",
|
|
||||||
"polutonikogreek", 0};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* supported CJK encodings
|
* supported CJK encodings
|
||||||
*/
|
*/
|
||||||
@ -1268,7 +1233,7 @@ void parse_environment(Parser & p, ostream & os, bool outer,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (is_known(name, polyglossia_languages)) {
|
else if (is_known(name, preamble.polyglossia_languages)) {
|
||||||
// We must begin a new paragraph if not already done
|
// We must begin a new paragraph if not already done
|
||||||
if (! parent_context.atParagraphStart()) {
|
if (! parent_context.atParagraphStart()) {
|
||||||
parent_context.check_end_layout(os);
|
parent_context.check_end_layout(os);
|
||||||
@ -1276,7 +1241,7 @@ void parse_environment(Parser & p, ostream & os, bool outer,
|
|||||||
}
|
}
|
||||||
// save the language in the context so that it is
|
// save the language in the context so that it is
|
||||||
// handled by parse_text
|
// handled by parse_text
|
||||||
parent_context.font.language = polyglossia2lyx(name);
|
parent_context.font.language = preamble.polyglossia2lyx(name);
|
||||||
parse_text(p, os, FLAG_END, outer, parent_context);
|
parse_text(p, os, FLAG_END, outer, parent_context);
|
||||||
// Just in case the environment is empty
|
// Just in case the environment is empty
|
||||||
parent_context.extra_stuff.erase();
|
parent_context.extra_stuff.erase();
|
||||||
@ -3573,7 +3538,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
|||||||
}
|
}
|
||||||
|
|
||||||
else if (prefixIs(t.cs(), "text")
|
else if (prefixIs(t.cs(), "text")
|
||||||
&& is_known(t.cs().substr(4), polyglossia_languages)) {
|
&& is_known(t.cs().substr(4), preamble.polyglossia_languages)) {
|
||||||
// scheme is \textLANGUAGE{text} where LANGUAGE is in polyglossia_languages[]
|
// scheme is \textLANGUAGE{text} where LANGUAGE is in polyglossia_languages[]
|
||||||
string lang;
|
string lang;
|
||||||
// We have to output the whole command if it has an option
|
// We have to output the whole command if it has an option
|
||||||
@ -3588,14 +3553,14 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
|||||||
if (pos_var != string::npos && i == string::npos) {
|
if (pos_var != string::npos && i == string::npos) {
|
||||||
string variant;
|
string variant;
|
||||||
variant = langopts.substr(k + 1, langopts.length() - k - 2);
|
variant = langopts.substr(k + 1, langopts.length() - k - 2);
|
||||||
lang = polyglossia2lyx(variant);
|
lang = preamble.polyglossia2lyx(variant);
|
||||||
parse_text_attributes(p, os, FLAG_ITEM, outer,
|
parse_text_attributes(p, os, FLAG_ITEM, outer,
|
||||||
context, "\\lang",
|
context, "\\lang",
|
||||||
context.font.language, lang);
|
context.font.language, lang);
|
||||||
} else
|
} else
|
||||||
handle_ert(os, t.asInput() + langopts, context);
|
handle_ert(os, t.asInput() + langopts, context);
|
||||||
} else {
|
} else {
|
||||||
lang = polyglossia2lyx(t.cs().substr(4, string::npos));
|
lang = preamble.polyglossia2lyx(t.cs().substr(4, string::npos));
|
||||||
parse_text_attributes(p, os, FLAG_ITEM, outer,
|
parse_text_attributes(p, os, FLAG_ITEM, outer,
|
||||||
context, "\\lang",
|
context, "\\lang",
|
||||||
context.font.language, lang);
|
context.font.language, lang);
|
||||||
|
Loading…
Reference in New Issue
Block a user