From 054d1037c3f618df44d195a3e63b4832d0eab3b7 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sat, 21 Feb 2015 04:55:48 +0100 Subject: [PATCH] digraphs: parse vim :digraphs to indicate extensions Run vim to find differences from RFC 1345. Much easier than trying to parse the source code, and not really a problem as it's usually installed and rarely changes. --- Makefile | 3 +++ base.css | 5 +++-- digraphs.plp | 6 ++++-- tools/mkcharinfo | 9 +++++++-- tools/mkdigraphs-vim | 10 ++++++++++ 5 files changed, 27 insertions(+), 6 deletions(-) create mode 100755 tools/mkdigraphs-vim diff --git a/Makefile b/Makefile index c945996..b9be733 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,9 @@ data/digraphs-rfc.inc.pl: tools/mkdigraphs-rfc data/rfc1345.txt data/digraphs-shiar.inc.pl: tools/mkdigraphs-shiar shiar.inc.txt $< $(word 2,$^) >$@ +data/digraphs-vim.inc.pl: tools/mkdigraphs-vim + $< >$@ + digraphs.inc.pl: tools/mkdigraphlist data/digraphs-rfc.inc.pl data/digraphs-shiar.inc.pl unicode-char.inc.pl $< >$@ diff --git a/base.css b/base.css index 7a2d4e7..c685acd 100644 --- a/base.css +++ b/base.css @@ -331,7 +331,8 @@ table.dimap { .X {background: #FFF} /* unidentified */ #digraphs .Xa {color: #0A0} /* ascii */ #digraphs .Xl {color: #070} /* latin1 */ -#digraphs .Xz {color: #D00} /* proposed */ +#digraphs .u-prop {color: #D00} /* proposed */ +#digraphs .u-prop.ex {color: #A44} /* experimental, disfavoured */ .Lm, .Mc, .Me, .Zl, .Zp {background: #F00} /* unstyled */ .X > span {background: #888} /* invisible contents */ @@ -448,7 +449,7 @@ table.dimap { .Xr:hover {background: #FFF} /* reserved */ .Xa:hover {outline: 1px solid #0F0} /* ascii */ .Xl:hover {outline: 1px solid #0C0} /* latin1 */ -.Xz:hover {outline: 1px solid #F00} /* proposed */ +.u-prop:hover {outline: 1px solid #F00} /* proposed */ .l0:hover {background: #888} .l1:hover {background: #F88} .l2:hover {background: #FC8} diff --git a/digraphs.plp b/digraphs.plp index 702e3e6..a78a90c 100644 --- a/digraphs.plp +++ b/digraphs.plp @@ -19,7 +19,7 @@ Html({

i^k in Vim. Also see common digraphs.

-

Unofficial proposals +

Unofficial proposals are available as ex commands.

<: @@ -99,7 +99,9 @@ print "\n"; unicode latin1 ascii - proposed + vim extension + proposal + not in vim diff --git a/tools/mkcharinfo b/tools/mkcharinfo index 1cac30a..2c006c5 100755 --- a/tools/mkcharinfo +++ b/tools/mkcharinfo @@ -48,9 +48,10 @@ eval { my %diinc = ( 'data/digraphs-rfc.inc.pl' => 'u-di', - 'data/digraphs-shiar.inc.pl' => 'u-prop Xz', + 'data/digraphs-shiar.inc.pl' => 'u-prop ex', + 'data/digraphs-vim.inc.pl' => 'u-prop', ); -for (keys %diinc) { +for (sort keys %diinc) { -e $_ or next; my $di = do $_ or die "Error reading digraphs file $_: ", $@ || $!; while (my ($mnem, $cp) = each %$di) { @@ -82,6 +83,10 @@ for my $chr (keys %info) { $info->{$_} = $info{$chr}->{$_} for keys %{ $info{$chr} }; + # official digraphs either lose vim flag or gain experimental + delete $info->{class}->{'u-prop'} or $info->{class}->{ex}++ + if $info->{class}->{'u-di'}; + # categorise by unicode types and writing script $info->{class}->{$_}++ for $info->{category}; $info->{class}->{$_}++ for $info->{script} || (); diff --git a/tools/mkdigraphs-vim b/tools/mkdigraphs-vim new file mode 100755 index 0000000..d47a733 --- /dev/null +++ b/tools/mkdigraphs-vim @@ -0,0 +1,10 @@ +#!/bin/sh +vim -e -cdigraphs -cq | perl -CSD -nE ' + BEGIN { + say "+{"; + } + say "q{$1} => $3," while /\G(\S\S) (.[^ ]*) +([0-9]+)\s+/g; + END { + say "}"; + } +' -- 2.30.0