opciones - Haskell(haskeline) palabra completa
multiplicar haskell (1)
¿Es este el tipo de cosa que buscas?
import Data.List
wordList = [ "Apple", "Pear", "Peach", "Grape", "Grapefruit", "Slime Mold"]
searchFunc :: String -> [Completion]
searchFunc str = map simpleCompletion $ filter (str `isPrefixOf`) wordList
mySettings :: Settings IO
mySettings = Settings { historyFile = Just "myhist"
, complete = completeWord Nothing " /t" $ return . searchFunc
, autoAddHistory = True
}
Reemplace la definición de mySettings
en su fragmento con eso y debería funcionar.
Haskeline hace que sea muy fácil obtener la funcionalidad de completar la pestaña del nombre de archivo:
module Main where
import System.Console.Haskeline
import System.Environment
mySettings :: Settings IO
mySettings = defaultSettings {historyFile = Just "myhist"}
main :: IO ()
main = do
args <- getArgs
let inputFunc = getInputLine
runInputT mySettings $ withInterrupt $ loop inputFunc 0
where
loop inputFunc n = do
minput <- handleInterrupt (return (Just "Caught interrupted"))
$ inputFunc (show n ++ ":")
case minput of
Nothing -> return ()
Just s -> do
outputStrLn ("line " ++ show n ++ ":" ++ s)
loop inputFunc (n+1)
También proporciona funciones como completeWord y completeQuotedWord, que deberían poder utilizarse de la misma manera que se utiliza completeFilename para realizar la funcionalidad anterior.
(En otras palabras, tener tabulación completa basada en una lista de palabras (por ejemplo, nombres de funciones), en lugar de basarse en el contenido de una carpeta)
¿Puede alguien proporcionar un ejemplo de trabajo, o un código de trabajo, de esto?
Las recomendaciones para funciones de otros paquetes (como HCL) también son útiles.