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 <mail@tazj.in>
This commit is contained in:
parent
5ae0e44d1b
commit
89b3ab939b
2 changed files with 33 additions and 0 deletions
1
third_party/gerrit/default.nix
vendored
1
third_party/gerrit/default.nix
vendored
|
@ -42,6 +42,7 @@ pkgs.buildBazelPackage {
|
|||
patches = [
|
||||
./use_detzip.patch
|
||||
./syntax_highlight_nix.patch
|
||||
./syntax_highlight_rules_pl.patch
|
||||
];
|
||||
|
||||
bazelTarget = "release";
|
||||
|
|
32
third_party/gerrit/syntax_highlight_rules_pl.patch
vendored
Normal file
32
third_party/gerrit/syntax_highlight_rules_pl.patch
vendored
Normal file
|
@ -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];
|
||||
}
|
||||
|
Loading…
Reference in a new issue