[LyX/master] listinglanguages: add MintedOnly tag

Juergen Spitzmueller <[email protected]> Sun, 26 Jul 2026 11:08:21 +0000
Newsgroups gmane.editors.lyx.cvs
Message-ID <[email protected]>
commit f533251b787a135c4f625243c1b6206941b76dfb
Author: Juergen Spitzmueller <[email protected]>
Date:   Sun Jul 26 13:07:50 2026 +0200

    listinglanguages: add MintedOnly tag
---
 lib/listinglanguages             | 1 +
 src/ListingLanguage.cpp          | 9 +++++++--
 src/ListingLanguage.h            | 1 +
 src/frontends/qt/GuiListings.cpp | 3 ++-
 4 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/lib/listinglanguages b/lib/listinglanguages
index d814309186..53ff51399f 100644
--- a/lib/listinglanguages
+++ b/lib/listinglanguages
@@ -11,6 +11,7 @@
 #       GuiName         "<Gui Name>"
 #       MintedLang      <lang>
 #       ListingsDefault <0,1>
+#       MintedOnly      <0,1>
 #   EndDialect
 #   Packages            <listings,minted>
 # End
diff --git a/src/ListingLanguage.cpp b/src/ListingLanguage.cpp
index ef7b57f86a..62cf0eb813 100644
--- a/src/ListingLanguage.cpp
+++ b/src/ListingLanguage.cpp
@@ -133,6 +133,9 @@ void ListingLanguage::readDialect(Lexer & lex)
 		} else if (tok == "listingsdefault") {
 			lex.next();
 			d.listingsdefault = lex.getBool();
+		} else if (tok == "mintedonly") {
+			lex.next();
+			d.mintedonly = lex.getBool();
 		} else {
 			lex.printError("Unknown tag");
 			error = true;
@@ -264,8 +267,10 @@ string ListingLanguages::getAllowedLangValues(bool const minted) const
 	for (auto const & l : languagelist_) {
 		if (!minted && l.second.isSupported("listings")) {
 			res.push_back(l.first);
-			for (auto const & d : l.second.getDialects())
-				res.push_back("[" + d.first + "]" + l.first);
+			for (auto const & d : l.second.getDialects()) {
+				if (!d.second.mintedonly)
+					res.push_back("[" + d.first + "]" + l.first);
+			}
 		} else if (minted && l.second.isSupported("minted")) {
 			res.push_back(l.first);
 			if (!l.second.mintedlang().empty())
diff --git a/src/ListingLanguage.h b/src/ListingLanguage.h
index 4823988be5..b67d9591fd 100644
--- a/src/ListingLanguage.h
+++ b/src/ListingLanguage.h
@@ -61,6 +61,7 @@ public:
 		std::string guiname;
 		std::string mintedname;
 		bool listingsdefault = false;
+		bool mintedonly = false;
 	};
 	///
 	typedef std::map<std::string, dialect> DialectMap;
diff --git a/src/frontends/qt/GuiListings.cpp b/src/frontends/qt/GuiListings.cpp
index 79cc2acf6d..77c8c333c0 100644
--- a/src/frontends/qt/GuiListings.cpp
+++ b/src/frontends/qt/GuiListings.cpp
@@ -370,7 +370,8 @@ void GuiListings::on_languageCO_currentIndexChanged(int index)
 		listinglanguages.getListingLanguage(fromqstr(languageCO->itemData(index).toString()));
 	if (ll != nullptr) {
 		for (auto const & d : ll->getDialects()) {
-			if (buffer().params().use_minted && d.second.mintedname.empty())
+			if ((buffer().params().use_minted && d.second.mintedname.empty())
+			    || (!buffer().params().use_minted && d.second.mintedonly))
 				continue;
 			dialectCO->addItem(qt_(d.second.guiname), toqstr(d.first));
 			if (d.second.listingsdefault)
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs