mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 03:20:21 -07:00
X.A.Search: Make (!>) right associative
Unless specified otherwise, operators in Haskell associative to the left. However, the ergonomics of (!>) heavily lean towards the left operand being a "single" search engine, not a combined one. This causes trouble when not using `multi` or defining search engines with a right fold, but (following the documentation) writing something like multiEngine = intelligent (wikipedia !> mathworld !> (prefixAware google)) instead. This particular definition would force the user to write `wikipedia/mathworld:wikipedia:search-term` instead of just `wikipedia:search-term` to access the first search engine. Simply giving (!>) an explicit associativity fixes these problems.
This commit is contained in:
parent
586416b0f9
commit
8e0e8a605d
@ -348,6 +348,7 @@ removeColonPrefix s = if ':' `elem` s then drop 1 $ dropWhile (':' /=) s else s
|
||||
google. The use of intelligent will make sure that URLs are opened directly. -}
|
||||
(!>) :: SearchEngine -> SearchEngine -> SearchEngine
|
||||
(SearchEngine name1 site1) !> (SearchEngine name2 site2) = searchEngineF (name1 ++ "/" ++ name2) (\s -> if (name1++":") `isPrefixOf` s then site1 (removeColonPrefix s) else site2 s)
|
||||
infixr 6 !>
|
||||
|
||||
{- | Makes a search engine prefix-aware. Especially useful together with '!>'.
|
||||
It will automatically remove the prefix from a query so that you don\'t end
|
||||
|
Loading…
x
Reference in New Issue
Block a user