bayleeadamoss / zazu-file-finder

A file finder for Zazu.
18 stars 11 forks source link

Include `.prefPane` in app results. #30

Closed bayleedev closed 7 years ago

bayleedev commented 7 years ago

reviewer: @amjith

This is a regression caused by the adapter merge.

amjith commented 7 years ago

πŸ•

twang2218 commented 7 years ago

@blainesch Do we really need the .prefPane in search? I have problem with mdfind with condition and query: (kind:app OR kind:pref) ${query}.

I tested the mdfind command directly, and I found it's not very stable.

$ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName '(kind:app OR kind:pref) textinfo'
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
$ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName '(kind:app OR kind:pref) textinfo'
$ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName '(kind:app OR kind:pref) textinfo'
$ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName '(kind:app OR kind:pref) textinfo'
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
$ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName '(kind:app OR kind:pref) textinfo'

In the above example, I run 5 times of the same command, and only 2 of them returned with expected app.

And if I replace the condition with kind:app textinfo, then everything is fine.

ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName 'kind:app textinfo'               
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName 'kind:app textinfo'               
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName 'kind:app textinfo'               
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName 'kind:app textinfo'               
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName 'kind:app textinfo'               
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName 'kind:app textinfo'               
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName 'kind:app textinfo'               
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo

And without the query, the condition $(kind:app OR kind:pref) works fine.

ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName '(kind:app OR kind:pref)'             [2c68dba]
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/BinaryInfo.app   kMDItemDisplayName = BinaryInfo
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TiffIcon.app   kMDItemDisplayName = TiffIcon
ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName '(kind:app OR kind:pref)'             [2c68dba]
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/BinaryInfo.app   kMDItemDisplayName = BinaryInfo
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TiffIcon.app   kMDItemDisplayName = TiffIcon
ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName '(kind:app OR kind:pref)'             [2c68dba]
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/BinaryInfo.app   kMDItemDisplayName = BinaryInfo
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TiffIcon.app   kMDItemDisplayName = TiffIcon
ΞΆ mdfind -onlyin /Users/taowang/lab/node.js/zazu-file-finder2/test/resources -attr kMDItemDisplayName '(kind:app OR kind:pref)'             [2c68dba]
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/BinaryInfo.app   kMDItemDisplayName = BinaryInfo
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TextInfo.app   kMDItemDisplayName = TextInfo
/Users/taowang/lab/node.js/zazu-file-finder2/test/resources/macos/TiffIcon.app   kMDItemDisplayName = TiffIcon

Can we just use only kind:app in the search, and cache all the (kind:app OR kind:pref), so the prefpane can be searched in the cache as well?

bayleedev commented 7 years ago

@twang2218 the time when we do kind:app OR kind:pref only happens when the cache isn't there yet, which should only be the first 30 seconds you have the plugin installed.