[LyX/master] Ignore case with minted languages

Juergen Spitzmueller <[email protected]> Sun, 26 Jul 2026 10:29:35 +0000
Newsgroups gmane.editors.lyx.cvs
Message-ID <[email protected]>
commit 5e94eee9c64d2629ca7c1c8d3095c448b76b4145
Author: Juergen Spitzmueller <[email protected]>
Date:   Sun Jul 26 12:29:13 2026 +0200

    Ignore case with minted languages
---
 src/frontends/qt/GuiListings.cpp   |  2 +-
 src/insets/InsetListingsParams.cpp | 21 ++++++++++++++++-----
 2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/src/frontends/qt/GuiListings.cpp b/src/frontends/qt/GuiListings.cpp
index de90abef82..79cc2acf6d 100644
--- a/src/frontends/qt/GuiListings.cpp
+++ b/src/frontends/qt/GuiListings.cpp
@@ -449,7 +449,7 @@ void GuiListings::updateContents()
 			} else {
 				language = arg;
 			}
-			int n = languageCO->findData(toqstr(language));
+			int n = languageCO->findData(toqstr(language), Qt::UserRole, Qt::MatchFixedString);
 			if (n >= 0) {
 				languageCO->setCurrentIndex(n);
 				in_gui = true;
diff --git a/src/insets/InsetListingsParams.cpp b/src/insets/InsetListingsParams.cpp
index 6b007e6b59..c152ee2131 100644
--- a/src/insets/InsetListingsParams.cpp
+++ b/src/insets/InsetListingsParams.cpp
@@ -38,6 +38,7 @@ enum param_type {
 	LENGTH,  // accept a latex length
 	SKIP,    // accept a skip or a length
 	ONEOF,  // accept one of a few values
+	ONEOF_CI,  // accept one of a few values, case-insensitively
 	SUBSETOF // accept a string composed of given characters
 };
 
@@ -182,7 +183,9 @@ docstring ListingsParam::validate(string const & par) const
 			return _("Unbalanced braces!");
 		return docstring();
 
+	case ONEOF_CI:
 	case ONEOF: {
+		bool const case_ins = type_ == ONEOF_CI;
 		if (par2.empty() && !onoff_) {
 			if (!hint_.empty())
 				return hint_;
@@ -195,16 +198,24 @@ docstring ListingsParam::validate(string const & par) const
 		string v;
 		for (size_t i = 0; i != info_.size(); ++i) {
 			if (info_[i] == '\n') {
-				lists.push_back(v);
+				if (case_ins)
+					lists.push_back(lowercase(v));
+				else
+					lists.push_back(v);
 				v = string();
 			} else
 				v += info_[i];
 		}
-		if (!v.empty())
-			lists.push_back(v);
+		if (!v.empty()) {
+			if (case_ins)
+				lists.push_back(lowercase(v));
+			else
+				lists.push_back(v);
+		}
 
 		// good, find the string
-		if (find(lists.begin(), lists.end(), par2) != lists.end()) {
+		string match = case_ins ? lowercase(par2) : par2;
+		if (find(lists.begin(), lists.end(), match) != lists.end()) {
 			if (unclosed)
 				return _("Unbalanced braces!");
 			return docstring();
@@ -764,7 +775,7 @@ ParValidator::ParValidator()
 		ListingsParam("", false, ONEOF,
 			"none\ntopline\nbottomline\nall", empty_hint);
 	all_params_[1]["language"] =
-		ListingsParam("", false, ONEOF, listinglanguages.getAllowedLangValues(true), empty_hint);
+		ListingsParam("", false, ONEOF_CI, listinglanguages.getAllowedLangValues(true), empty_hint);
 	all_params_[1]["lastline"] =
 		ListingsParam("", false, INTEGER, "", empty_hint);
 	all_params_[1]["linenos"] =
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs