code: function compareFilenames(filename1, filename2, extFirst) {
          var lang = brackets.getLocale();
  
          filename1 = filename1.toLocaleLowerCase();
          filename2 = filename2.toLocaleLowerCase();
  
          function cmpExt() {
              var ext1 = getFileExtension(filename1),
                  ext2 = getFileExtension(filename2);
              return ext1.localeCompare(ext2, lang, {numeric: true});
          }
  
          function cmpNames() {
              return _cmpNames(filename1, filename2, lang);
          }
  
          return extFirst ? (cmpExt() || cmpNames()) : (cmpNames() || cmpExt());
      }
docs: Compares 2 filenames in lowercases. In Windows it compares the names without the
  extension first and then the extensions to fix issue #4409
  @param {string} filename1
  @param {string} filename2
  @param {boolean} extFirst If true it compares the extensions first and then the file names.
  @return {number} The result of the compare function