Если вам нужны только неукрашенные различия, Pygments поддерживает их, поэтому texments (латексная оболочка для фрагментов) делает то, что вы хотите.
Но я предполагаю, что вам нужно, чтобы цвет разлился, а синтаксис основного кода был выделен соответствующим образом. Как правило, этого нельзя делать обычным способом, поскольку подсветка синтаксиса может зависеть от состояния из предыдущей строки, а с помощью udiffs предыдущая строка может отсутствовать или вставленная строка может следовать за удаленной строкой, & c.
Чтобы сделать все правильно, вам нужно синтаксически выделить старые и новые версии, а затем объединить выделенные версии вместе, чтобы получить правильный вывод. Довольно много работы, и я не слышал ни о ком, кто это делал.
Вы также можете попробовать просто изменить обычную подсветку синтаксиса для языка, удалить правила подсветки, которые включают многострочное состояние, и вставить правила в цветные линии с разметкой udiff. Ср Фрагменты ' Напишите свой собственный лексер ; то, что вы хотите от diff, сложнее, так как вы хотите, чтобы то, что окрашено, было выделено, поэтому вы не можете просто превратить строки в GenericTokens; Я не знаю, как правильно это сделать.