do not filter directories just because their (empty) extension has no gr...

...ammar.
I had the problem that @noGrammar contained the empty string (because it had previously encountered LICENSE or .gitignore) and thus during index rebuild, the algorithm refused to descend into subdirectories (which usually do not have an extension).