]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetListingsParams.cpp
Regenerate previews after zoom (#11919)
[features.git] / src / insets / InsetListingsParams.cpp
index 503200d87b6848748c6e347c1ae3b167049488ee..9390d6bbe4549867005cfe5e2ed3b2c8add7cecf 100644 (file)
@@ -13,7 +13,7 @@
 
 #include "InsetListingsParams.h"
 
-#include "Length.h"
+#include "support/Length.h"
 #include "Lexer.h"
 
 #include "support/convert.h"
@@ -55,7 +55,7 @@ public:
                string const & i, docstring const & h)
                : value_(v), onoff_(o), type_(t), info_(i), hint_(h)
        {}
-       /// Validate a paramater.
+       /// Validate a parameter.
        /// \retval an empty string if \c par is valid.
        /// \retval otherwise an explanation WRT to \c par invalidity.
        docstring validate(string const & par) const;
@@ -102,7 +102,7 @@ docstring ListingsParam::validate(string const & par) const
        bool unclosed = false;
        string par2 = par;
        // braces are allowed
-       if (prefixIs(par, "{") && suffixIs(par, "}") && !suffixIs(par, "\\}"))  
+       if (prefixIs(par, "{") && suffixIs(par, "}") && !suffixIs(par, "\\}"))
                par2 = par.substr(1, par.size() - 2);
 
        // check for unmatched braces
@@ -114,7 +114,7 @@ docstring ListingsParam::validate(string const & par) const
                        --braces;
        }
        unclosed = braces != 0;
-       
+
        switch (type_) {
 
        case ALL:
@@ -232,8 +232,8 @@ docstring ListingsParam::validate(string const & par) const
                                return bformat(_("Please specify one or more of '%1$s'."),
                                                           from_utf8(info_));
                }
-               for (size_t i = 0; i < par2.size(); ++i)
-                       if (info_.find(par2[i], 0) == string::npos)
+               for (char c : par2)
+                       if (info_.find(c, 0) == string::npos)
                                return bformat(_("Should be composed of one or more of %1$s."),
                                                from_utf8(info_));
                if (unclosed)
@@ -247,22 +247,23 @@ docstring ListingsParam::validate(string const & par) const
 /// languages and language/dialect combinations
 char const * allowed_languages =
        "no language\nABAP\n[R/2 4.3]ABAP\n[R/2 5.0]ABAP\n[R/3 3.1]ABAP\n"
-       "[R/3 4.6C]ABAP\n[R/3 6.10]ABAP\nACSL\nAda\n[2005]Ada\n[83]Ada\n"
-       "[95]Ada\nALGOL\n[60]ALGOL\n[68]ALGOL\nAssembler\n"
+       "[R/3 4.6C]ABAP\n[R/3 6.10]ABAP\nACM\nACMscript\nACSL\nAda\n[2005]Ada\n[83]Ada\n"
+       "[95]Ada\nALGOL\n[60]ALGOL\n[68]ALGOL\nAnt\nAssembler\n"
        "[Motorola68k]Assembler\n[x86masm]Assembler\nAwk\n[gnu]Awk\n[POSIX]Awk\n"
        "bash\nBasic\n[Visual]Basic\nC\n[ANSI]C\n[Handel]C\n[Objective]C\n"
        "[Sharp]C\nC++\n[ANSI]C++\n[GNU]C++\n[ISO]C++\n[Visual]C++\nCaml\n"
-       "[light]Caml\n[Objective]Caml\nClean\nCobol\n[1974]Cobol\n[1985]Cobol\n"
+       "[light]Caml\n[Objective]Caml\nCIL\nClean\nCobol\n[1974]Cobol\n[1985]Cobol\n"
        "[ibm]Cobol\nComal 80\ncommand.com\n[WinXP]command.com\nComsol\ncsh\n"
-       "Delphi\nEiffel\nElan\nerlang\nEuphoria\nFortran\n[77]Fortran\n[90]Fortran\n"
-       "[95]Fortran\nGCL\nGnuplot\nHaskell\nHTML\nIDL\n[CORBA]IDL\ninform\n"
-       "Java\n[AspectJ]Java\nJVMIS\nksh\nLingo\nLisp\n[Auto]Lisp\nLogo\n"
-       "make\n[gnu]make\nMathematica\n[1.0]Mathematica\n[3.0]Mathematica\n"
+       "Delphi\nEiffel\nElan\nelisp\nerlang\nEuphoria\nFortran\n[77]Fortran\n[90]Fortran\n"
+       "[95]Fortran\n[03]Fortran\n[08]Fortran\nGAP\nGCL\nGnuplot\nGo\nhansl\nHaskell\nHTML\nIDL\n[CORBA]IDL\ninform\n"
+       "Java\n[AspectJ]Java\nJVMIS\nksh\nLingo\nLisp\n[Auto]Lisp\nLLVM\nLogo\n"
+       "Lua\n[5.0]Lua\n[5.1]Lua\n[5.2]Lua\n[5.3]Lua\n"
+       "make\n[gnu]make\nMathematica\n[1.0]Mathematica\n[3.0]Mathematica\n[11.0]Mathematica\n"
        "[5.2]Mathematica\nMatlab\nMercury\nMetaPost\nMiranda\nMizar\nML\n"
        "Modula-2\nMuPAD\nNASTRAN\nOberon-2\nOCL\n[decorative]OCL\n[OMG]OCL\n"
-       "Octave\nOz\nPascal\n[Borland6]Pascal\n[Standard]Pascal\n[XSC]Pascal\n"
+       "Octave\nOORexx\nOz\nPascal\n[Borland6]Pascal\n[Standard]Pascal\n[XSC]Pascal\n"
        "Perl\nPHP\nPL/I\nPlasm\nPostScript\nPOV\nProlog\nPromela\nPSTricks\n"
-       "Python\nR\nReduce\nRexx\nRSL\nRuby\nS\n[PLUS]S\nSAS\nScilab\nsh\n"
+       "Python\nR\nReduce\nRexx\n[VM/XA]Rexx\nRSL\nRuby\nS\n[PLUS]S\nSAS\nScala\nScilab\nsh\n"
        "SHELXL\nSimula\n[67]Simula\n[CII]Simula\n[DEC]Simula\n[IBM]Simula\n"
        "SPARQL\nSQL\ntcl\n[tk]tcl\nTeX\n[AlLaTeX]TeX\n[common]TeX\n[LaTeX]TeX\n"
        "[plain]TeX\n[primitive]TeX\nVBScript\nVerilog\nVHDL\n[AMS]VHDL\nVRML\n"
@@ -914,10 +915,10 @@ docstring ParValidator::validate(string const & name,
                                        _("Available listing parameters are %1$s"), from_ascii(param_names));
                else
                        return bformat(
-                                       _("Available listings parameters containing string \"%1$s\" are %2$s"), 
+                                       _("Available listings parameters containing string \"%1$s\" are %2$s"),
                                                from_utf8(suffix), from_utf8(param_names));
        }
+
        // locate name in parameter table
        ListingsParams::const_iterator it = all_params_[p].find(name);
        if (it != all_params_[p].end()) {
@@ -947,19 +948,19 @@ docstring ParValidator::validate(string const & name,
 }
 
 
-bool ParValidator::onoff(string const & name) const
+bool ParValidator::onoff(string const & key) const
 {
        int p = InsetListingsParams::package();
 
        // locate name in parameter table
-       ListingsParams::const_iterator it = all_params_[p].find(name);
+       ListingsParams::const_iterator it = all_params_[p].find(key);
        if (it != all_params_[p].end())
                return it->second.onoff_;
        else
                return false;
 }
 
-} // namespace anon.
+} // namespace
 
 // define a global ParValidator
 ParValidator * par_validator = 0;
@@ -969,13 +970,13 @@ ParValidator * par_validator = 0;
 int InsetListingsParams::package_ = 0;
 
 InsetListingsParams::InsetListingsParams()
-       : inline_(false), params_(), status_(InsetCollapsable::Open)
+       : inline_(false), params_(), status_(InsetCollapsible::Open)
 {
 }
 
 
 InsetListingsParams::InsetListingsParams(string const & par, bool in,
-               InsetCollapsable::CollapseStatus s)
+               InsetCollapsible::CollapseStatus s)
        : inline_(in), params_(), status_(s)
 {
        // this will activate parameter validation.
@@ -996,9 +997,9 @@ void InsetListingsParams::write(ostream & os) const
 void InsetListingsParams::read(Lexer & lex)
 {
        lex >> inline_;
-       int s = InsetCollapsable::Collapsed;
+       int s = InsetCollapsible::Collapsed;
        lex >> s;
-       status_ = static_cast<InsetCollapsable::CollapseStatus>(s);
+       status_ = static_cast<InsetCollapsible::CollapseStatus>(s);
        string par;
        lex >> par;
        fromEncodedString(par);
@@ -1044,13 +1045,14 @@ string InsetListingsParams::getValue(string const & key) const
 }
 
 
-void InsetListingsParams::addParam(string const & key, 
+void InsetListingsParams::addParam(string const & key,
                string const & val, bool replace)
 {
        if (key.empty())
                return;
 
-       string const value = (minted() && key == "language" && !val.empty())
+       bool const is_minted_language = minted() && key == "language";
+       string const value = (is_minted_language && !val.empty())
                                ? languageonly(val) : val;
        // duplicate parameters!
        string keyname = key;
@@ -1071,12 +1073,12 @@ void InsetListingsParams::addParam(string const & key,
        // non-ascii/number characters, just to be safe
        else {
                bool has_special_char = false;
-               for (size_t i = 0; i < value.size(); ++i)
-                       if (!isAlnumASCII(value[i])) {
+               for (char c : value)
+                       if (!isAlnumASCII(c)) {
                                has_special_char = true;
                                break;
                        }
-               if (has_special_char)
+               if (has_special_char && !is_minted_language)
                        params_.push_back(make_pair(keyname, "{" + value + "}"));
                else
                        params_.push_back(make_pair(keyname, value));
@@ -1110,7 +1112,7 @@ void InsetListingsParams::addParams(string const & par)
                } else if (par[i] == '{' && i > 0 && par[i-1] != '\\')
                        // don't count a brace in first position
                        ++braces;
-               else if (par[i] == '}' && i != par.size() - 1 
+               else if (par[i] == '}' && i != par.size() - 1
                         && (i == 0 || (i > 0 && par[i-1] != '\\')))
                        --braces;