diff --git a/Project.toml b/Project.toml index 7795d66..5d08254 100644 --- a/Project.toml +++ b/Project.toml @@ -1,13 +1,15 @@ name = "DocOpt" uuid = "968ba79b-81e4-546f-ab3a-2eecfa62a9db" -version = "0.5" +version = "0.5.1" [deps] Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" +SnoopPrecompile = "66db9d55-30c0-4569-8b51-7e840670fc0c" [compat] julia = "1.3" +SnoopPrecompile = "1.0.3" [extras] Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/src/DocOpt.jl b/src/DocOpt.jl index fb7e7a7..a81f8d0 100644 --- a/src/DocOpt.jl +++ b/src/DocOpt.jl @@ -1,5 +1,3 @@ -__precompile__() - module DocOpt export docopt @@ -22,10 +20,12 @@ end struct DocOptLanguageError <: Exception msg::AbstractString end +Base.showerror(io::IO, e::DocOptLanguageError) = print(io, "DocOptLanguageError: ", e.usage) struct DocOptExit <: Exception usage::AbstractString end +Base.showerror(io::IO, e::DocOptExit) = print(io, "DocOptExit: ", e.usage) abstract type Pattern end abstract type LeafPattern <: Pattern end @@ -606,4 +606,30 @@ function docopt(doc::AbstractString, end end +using SnoopPrecompile + +@precompile_setup begin + doc = """Naval Fate. + + Usage: + naval_fate.jl ship new <name>... + naval_fate.jl ship <name> move <x> <y> [--speed=<kn>] + naval_fate.jl ship shoot <x> <y> + naval_fate.jl mine (set|remove) <x> <y> [--moored|--drifting] + naval_fate.jl -h | --help + naval_fate.jl --version + + Options: + -h --help Show this screen. + --version Show version. + --speed=<kn> Speed in knots [default: 10]. + --moored Moored (anchored) mine. + --drifting Drifting mine. + + """ + @precompile_all_calls begin + docopt(doc, ["ship", "new", "BoatyMcBoatFace"]; version=v"2.0.0") + end +end + end # DocOpt