This adds support for overriding the detected languages based on the filename - we assume here that rules.pl will always map to a Prolog file. I could've overridden the entire default language to Prolog, since it's unlikely that we'll have any Perl here, but given the relative popularity of the two languages I opted to just override the file we know we'll have (because it's used by Gerrit itself). https://usercontent.irccloud-cdn.com/file/yhZZx1nd/highlighted_prolog.png Change-Id: I26a7e6dab191e0b80a027b026f884020a1f07178 Reviewed-on: https://cl.tvl.fyi/c/depot/+/254 Reviewed-by: tazjin <mail@tazj.in>
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
diff --git a/polygerrit-ui/app/elements/diff/gr-syntax-layer/gr-syntax-layer.js b/polygerrit-ui/app/elements/diff/gr-syntax-layer/gr-syntax-layer.js
 | 
						|
index 1a0bbd9f50..d8d2fa643b 100644
 | 
						|
--- a/polygerrit-ui/app/elements/diff/gr-syntax-layer/gr-syntax-layer.js
 | 
						|
+++ b/polygerrit-ui/app/elements/diff/gr-syntax-layer/gr-syntax-layer.js
 | 
						|
@@ -102,6 +102,10 @@ const LANGUAGE_MAP = {
 | 
						|
 };
 | 
						|
 const ASYNC_DELAY = 10;
 | 
						|
 
 | 
						|
+const FILENAME_OVERRIDES = {
 | 
						|
+  'rules.pl': 'prolog',
 | 
						|
+};
 | 
						|
+
 | 
						|
 const CLASS_WHITELIST = {
 | 
						|
   'gr-diff gr-syntax gr-syntax-attr': true,
 | 
						|
   'gr-diff gr-syntax gr-syntax-attribute': true,
 | 
						|
@@ -233,10 +237,16 @@ class GrSyntaxLayer extends GestureEventListeners(
 | 
						|
     }
 | 
						|
   }
 | 
						|
 
 | 
						|
+  _basename(filename) {
 | 
						|
+    const pieces = filename.split(/\//);
 | 
						|
+    return pieces[pieces.length-1];
 | 
						|
+  }
 | 
						|
+
 | 
						|
   _getLanguage(diffFileMetaInfo) {
 | 
						|
     // The Gerrit API provides only content-type, but for other users of
 | 
						|
     // gr-diff it may be more convenient to specify the language directly.
 | 
						|
     return diffFileMetaInfo.language ||
 | 
						|
+        FILENAME_OVERRIDES[this._basename(diffFileMetaInfo.name)] ||
 | 
						|
         LANGUAGE_MAP[diffFileMetaInfo.content_type];
 | 
						|
   }
 | 
						|
 
 |