Что мне нравится использовать, так это
function isObject (obj) {
return typeof(obj) == "object"
&& !Array.isArray(obj)
&& obj != null
&& obj != ""
&& !(obj instanceof String) }
Я думаю, что в большинстве случаев Date должен проходить проверку как объект, поэтому я не фильтрую даты
.Для этого есть три опции, которые вы можете использовать в командной строке (с любой из команд git diff):
--ignore-space-at-eol
Игнорировать изменения пробела в EOL. -b, --ignore-space-change
Игнорировать изменения количества пробелов. Это игнорирует пробелы в конце строки и считает все другие последовательности одного или нескольких пробельных символов эквивалентными. -w, --ignore-all-space
Игнорировать пробелы при сравнении строк. Это игнорирует различия, даже если в одной строке есть пробел, а в другой нет ни одной. Я не верю, что github реализовал что-либо, используя эти опции.
Изучив исходный HTML-код страницы коммита, я обнаружил, что github помечает чистые изменения пробелов с помощью CSS-класса "x" ... Что делает возможным следующий oneliner:
jQuery.expr[':'].hasX = function(obj) { var $this = $(obj); return ($this.find('.x').length && $this.next().find('.x').length); }; jQuery('.data tbody tr:hasX').toggle().next().toggle();
Что это делает, проходит по всем строкам таблицы коммитов и скрывает строки, если задана строка, и в одной после нее есть элемент ".x".
Вот полный JS:
// create new selector
jQuery.expr[':'].hasX = function(obj) {
// cache
var $this = $(obj);
// whether this and next line do have '.x' element as child
return $this.find('.x').length && $this.next().find('.x').length;
}
// select all rows and hide (ones containing "-")
jQuery('.data tbody tr:hasX').toggle()
// hide the ones after selected (ones containing "+")
.next().toggle();