From 89b3ab939bd4e04ce22cc0bb8cc143dee7e2480c Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 14 Jun 2020 12:37:23 +0100 Subject: feat(gerrit): Syntax highlight rules.pl as Prolog. 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 --- third_party/gerrit/default.nix | 1 + third_party/gerrit/syntax_highlight_rules_pl.patch | 32 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 third_party/gerrit/syntax_highlight_rules_pl.patch (limited to 'third_party/gerrit') diff --git a/third_party/gerrit/default.nix b/third_party/gerrit/default.nix index 1db37afedc..c7ab47cd66 100644 --- a/third_party/gerrit/default.nix +++ b/third_party/gerrit/default.nix @@ -42,6 +42,7 @@ pkgs.buildBazelPackage { patches = [ ./use_detzip.patch ./syntax_highlight_nix.patch + ./syntax_highlight_rules_pl.patch ]; bazelTarget = "release"; diff --git a/third_party/gerrit/syntax_highlight_rules_pl.patch b/third_party/gerrit/syntax_highlight_rules_pl.patch new file mode 100644 index 0000000000..ccc59b6b46 --- /dev/null +++ b/third_party/gerrit/syntax_highlight_rules_pl.patch @@ -0,0 +1,32 @@ +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]; + } + -- cgit 1.4.1