diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-08-28 22:58:02 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-08-28 22:58:02 +0200 |
commit | fc65cabb15d0236bce001ad78e12a40511caf941 (patch) | |
tree | 071cd16ce17e02121ac1c7db7c7518cc70f10a79 /runtime | |
parent | 627cb6a6b37d17433fe2d7df1f287eefb5b370e3 (diff) | |
download | vim-git-fc65cabb15d0236bce001ad78e12a40511caf941.tar.gz |
Update runtime files.
Diffstat (limited to 'runtime')
32 files changed, 3888 insertions, 258 deletions
diff --git a/runtime/autoload/haskellcomplete.vim b/runtime/autoload/haskellcomplete.vim new file mode 100644 index 000000000..520ab9370 --- /dev/null +++ b/runtime/autoload/haskellcomplete.vim @@ -0,0 +1,3382 @@ +" Vim completion script +" Language: Haskell +" Maintainer: Daniel Campoverde <alx@sillybytes.net> +" URL: https://github.com/alx741/haskellcomplete.vim +" Last Change: 2018 Aug 26 + +" Usage: setlocal omnifunc=haskellcomplete#Complete + + +" Language extensions from: +" https://hackage.haskell.org/package/Cabal-2.2.0.1/docs/Language-Haskell-Extension.html +" +" GHC options from: +" https://downloads.haskell.org/~ghc/7.0.4/docs/html/users_guide/flag-reference.html +" https://downloads.haskell.org/~ghc/8.4.3/docs/html/users_guide/flags.html + + + +" Available completions +let b:completingLangExtension = 0 +let b:completingOptionsGHC = 0 +let b:completingModule = 0 + +function! haskellcomplete#Complete(findstart, base) + if a:findstart + let l:line = getline('.') + let l:start = col('.') - 1 + + if l:line =~ '^\s*{-#\s*LANGUAGE.*' + while l:start >= 0 && l:line[l:start - 1] !~ '[, ]' + let l:start -= 1 + endwhile + let b:completingLangExtension = 1 + return l:start + + elseif l:line =~ '^\s*{-#\s*OPTIONS_GHC.*' + while l:start >= 0 && l:line[l:start - 1] !~ '[, ]' + let l:start -= 1 + endwhile + let b:completingOptionsGHC = 1 + return l:start + + elseif l:line =~ '^\s*import\s*.*' + while l:start >= 0 && l:line[l:start - 1] !~ ' ' + let l:start -= 1 + endwhile + let b:completingModule = 1 + return l:start + + endif + + return start + endif + + if b:completingLangExtension + if a:base ==? "" + " Return all posible Lang extensions + return s:langExtensions + else + let l:matches = [] + for extension in s:langExtensions + if extension =~? '^' . a:base + call add(l:matches, extension) + endif + endfor + return l:matches + endif + + + elseif b:completingOptionsGHC + if a:base ==? "" + " Return all posible GHC options + return s:optionsGHC + else + let l:matches = [] + for flag in s:optionsGHC + if flag =~? '^' . a:base + call add(l:matches, flag) + endif + endfor + return l:matches + endif + + + elseif b:completingModule + if a:base ==? "" + " Return all posible modules + return s:commonModules + else + let l:matches = [] + for module in s:commonModules + if module =~? '^' . a:base + call add(l:matches, module) + endif + endfor + return l:matches + endif + + endif + + return -1 +endfunction + +let s:langExtensions = + \ [ "OverlappingInstances" + \ , "UndecidableInstances" + \ , "IncoherentInstances" + \ , "DoRec" + \ , "RecursiveDo" + \ , "ParallelListComp" + \ , "MultiParamTypeClasses" + \ , "MonomorphismRestriction" + \ , "FunctionalDependencies" + \ , "Rank2Types" + \ , "RankNTypes" + \ , "PolymorphicComponents" + \ , "ExistentialQuantification" + \ , "ScopedTypeVariables" + \ , "PatternSignatures" + \ , "ImplicitParams" + \ , "FlexibleContexts" + \ , "FlexibleInstances" + \ , "EmptyDataDecls" + \ , "CPP" + \ , "KindSignatures" + \ , "BangPatterns" + \ , "TypeSynonymInstances" + \ , "TemplateHaskell" + \ , "ForeignFunctionInterface" + \ , "Arrows" + \ , "Generics" + \ , "ImplicitPrelude" + \ , "NamedFieldPuns" + \ , "PatternGuards" + \ , "GeneralizedNewtypeDeriving" + \ , "ExtensibleRecords" + \ , "RestrictedTypeSynonyms" + \ , "HereDocuments" + \ , "MagicHash" + \ , "TypeFamilies" + \ , "StandaloneDeriving" + \ , "UnicodeSyntax" + \ , "UnliftedFFITypes" + \ , "InterruptibleFFI" + \ , "CApiFFI" + \ , "LiberalTypeSynonyms" + \ , "TypeOperators" + \ , "RecordWildCards" + \ , "RecordPuns" + \ , "DisambiguateRecordFields" + \ , "TraditionalRecordSyntax" + \ , "OverloadedStrings" + \ , "GADTs" + \ , "GADTSyntax" + \ , "MonoPatBinds" + \ , "RelaxedPolyRec" + \ , "ExtendedDefaultRules" + \ , "UnboxedTuples" + \ , "DeriveDataTypeable" + \ , "DeriveGeneric" + \ , "DefaultSignatures" + \ , "InstanceSigs" + \ , "ConstrainedClassMethods" + \ , "PackageImports" + \ , "ImpredicativeTypes" + \ , "NewQualifiedOperators" + \ , "PostfixOperators" + \ , "QuasiQuotes" + \ , "TransformListComp" + \ , "MonadComprehensions" + \ , "ViewPatterns" + \ , "XmlSyntax" + \ , "RegularPatterns" + \ , "TupleSections" + \ , "GHCForeignImportPrim" + \ , "NPlusKPatterns" + \ , "DoAndIfThenElse" + \ , "MultiWayIf" + \ , "LambdaCase" + \ , "RebindableSyntax" + \ , "ExplicitForAll" + \ , "DatatypeContexts" + \ , "MonoLocalBinds" + \ , "DeriveFunctor" + \ , "DeriveTraversable" + \ , "DeriveFoldable" + \ , "NondecreasingIndentation" + \ , "SafeImports" + \ , "Safe" + \ , "Trustworthy" + \ , "Unsafe" + \ , "ConstraintKinds" + \ , "PolyKinds" + \ , "DataKinds" + \ , "ParallelArrays" + \ , "RoleAnnotations" + \ , "OverloadedLists" + \ , "EmptyCase" + \ , "AutoDeriveTypeable" + \ , "NegativeLiterals" + \ , "BinaryLiterals" + \ , "NumDecimals" + \ , "NullaryTypeClasses" + \ , "ExplicitNamespaces" + \ , "AllowAmbiguousTypes" + \ , "JavaScriptFFI" + \ , "PatternSynonyms" + \ , "PartialTypeSignatures" + \ , "NamedWildCards" + \ , "DeriveAnyClass" + \ , "DeriveLift" + \ , "StaticPointers" + \ , "StrictData" + \ , "Strict" + \ , "ApplicativeDo" + \ , "DuplicateRecordFields" + \ , "TypeApplications" + \ , "TypeInType" + \ , "UndecidableSuperClasses" + \ , "MonadFailDesugaring" + \ , "TemplateHaskellQuotes" + \ , "OverloadedLabels" + \ , "TypeFamilyDependencies" + \ , "DerivingStrategies" + \ , "UnboxedSums" + \ , "HexFloatLiterals" + \ ] + +let s:optionsGHC = + \ [ "-n" + \ , "-v" + \ , "-vn" + \ , "-c" + \ , "-hcsuf" + \ , "-hidir" + \ , "-hisuf" + \ , "-o" + \ , "-odir" + \ , "-ohi" + \ , "-osuf" + \ , "-stubdir" + \ , "-outputdir" + \ , "-keep-hc-file" + \ , "-keep-llvm-file" + \ , "-keep-s-file" + \ , "-keep-raw-s-file" + \ , "-keep-tmp-files" + \ , "-tmpdir" + \ , "-ddump-hi" + \ , "-ddump-hi-diffs" + \ , "-ddump-minimal-imports" + \ , "-fforce-recomp" + \ , "-fno-force-recomp" + \ , "-fbreak-on-exception" + \ , "-fno-break-on-exception" + \ , "-fbreak-on-error" + \ , "-fno-break-on-error" + \ , "-fprint-evld-with-show" + \ , "-fno-print-evld-with-show" + \ , "-fprint-bind-result" + \ , "-fno-print-bind-result" + \ , "-fno-print-bind-contents" + \ , "-fno-implicit-import-qualified" + \ , "-package-name" + \ , "-no-auto-link-packages" + \ , "-fglasgow-exts" + \ , "-fno-glasgow-exts" + \ , "-XOverlappingInstances" + \ , "-XNoOverlappingInstances" + \ , "-XIncoherentInstances" + \ , "-XNoIncoherentInstances" + \ , "-XUndecidableInstances" + \ , "-XNoUndecidableInstances" + \ , "-fcontext-stack=Nn" + \ , "-XArrows" + \ , "-XNoArrows" + \ , "-XDisambiguateRecordFields" + \ , "-XNoDisambiguateRecordFields" + \ , "-XForeignFunctionInterface" + \ , "-XNoForeignFunctionInterface" + \ , "-XGenerics" + \ , "-XNoGenerics" + \ , "-XImplicitParams" + \ , "-XNoImplicitParams" + \ , "-firrefutable-tuples" + \ , "-fno-irrefutable-tuples" + \ , "-XNoImplicitPrelude" + \ , "-XImplicitPrelude" + \ , "-XRebindableSyntax" + \ , "-XNoRebindableSyntax" + \ , "-XNoMonomorphismRestriction" + \ , "-XMonomorphismRrestriction" + \ , "-XNoNPlusKPatterns" + \ , "-XNPlusKPatterns" + \ , "-XNoMonoPatBinds" + \ , "-XMonoPatBinds" + \ , "-XRelaxedPolyRec" + \ , "-XNoRelaxedPolyRec" + \ , "-XExtendedDefaultRules" + \ , "-XNoExtendedDefaultRules" + \ , "-XOverloadedStrings" + \ , "-XNoOverloadedStrings" + \ , "-XGADTs" + \ , "-XNoGADTs" + \ , "-XTypeFamilies" + \ , "-XNoTypeFamilies" + \ , "-XScopedTypeVariables" + \ , "-XNoScopedTypeVariables" + \ , "-XMonoLocalBinds" + \ , "-XNoMonoLocalBinds" + \ , "-XTemplateHaskell" + \ , "-XNoTemplateHaskell" + \ , "-XQuasiQuotes" + \ , "-XNoQuasiQuotes" + \ , "-XBangPatterns" + \ , "-XNoBangPatterns" + \ , "-XCPP" + \ , "-XNoCPP" + \ , "-XPatternGuards" + \ , "-XNoPatternGuards" + \ , "-XViewPatterns" + \ , "-XNoViewPatterns" + \ , "-XUnicodeSyntax" + \ , "-XNoUnicodeSyntax" + \ , "-XMagicHash" + \ , "-XNoMagicHash" + \ , "-XNewQualifiedOperators" + \ , "-XNoNewQualifiedOperators" + \ , "-XExplicitForALl" + \ , "-XNoExplicitForAll" + \ , "-XPolymorphicComponents" + \ , "-XNoPolymorphicComponents" + \ , "-XRank2Types" + \ , "-XNoRank2Types" + \ , "-XRankNTypes" + \ , "-XNoRankNTypes" + \ , "-XImpredicativeTypes" + \ , "-XNoImpredicativeTypes" + \ , "-XExistentialQuantification" + \ , "-XNoExistentialQuantification" + \ , "-XKindSignatures" + \ , "-XNoKindSignatures" + \ , "-XEmptyDataDecls" + \ , "-XNoEmptyDataDecls" + \ , "-XParallelListComp" + \ , "-XNoParallelListComp" + \ , "-XTransformListComp" + \ , "-XNoTransformListComp" + \ , "-XUnliftedFFITypes" + \ , "-XNoUnliftedFFITypes" + \ , "-XLiberalTypeSynonyms" + \ , "-XNoLiberalTypeSynonyms" + \ , "-XTypeOperators" + \ , "-XNoTypeOperators" + \ , "-XDoRec" + \ , "-XNoDoRec" + \ , "-XRecursiveDo" + \ , "-XNoRecursiveDo" + \ , "-XPArr" + \ , "-XNoPArr" + \ , "-XRecordWildCards" + \ , "-XNoRecordWildCards" + \ , "-XNamedFieldPuns" + \ , "-XNoNamedFieldPuns" + \ , "-XDisambiguateRecordFields" + \ , "-XNoDisambiguateRecordFields" + \ , "-XUnboxedTuples" + \ , "-XNoUnboxedTuples" + \ , "-XStandaloneDeriving" + \ , "-XNoStandaloneDeriving" + \ , "-XDeriveDataTypeable" + \ , "-XNoDeriveDataTypeable" + \ , "-XGeneralizedNewtypeDeriving" + \ , "-XNoGeneralizedNewtypeDeriving" + \ , "-XTypeSynonymInstances" + \ , "-XNoTypeSynonymInstances" + \ , "-XFlexibleContexts" + \ , "-XNoFlexibleContexts" + \ , "-XFlexibleInstances" + \ , "-XNoFlexibleInstances" + \ , "-XConstrainedClassMethods" + \ , "-XNoConstrainedClassMethods" + \ , "-XMultiParamTypeClasses" + \ , "-XNoMultiParamTypeClasses" + \ , "-XFunctionalDependencies" + \ , "-XNoFunctionalDependencies" + \ , "-XPackageImports" + \ , "-XNoPackageImports" + \ , "-W" + \ , "-w" + \ , "-w" + \ , "-Wall" + \ , "-w" + \ , "-Werror" + \ , "-Wwarn" + \ , "-Wwarn" + \ , "-Werror" + \ , "-fwarn-unrecognised-pragmas" + \ , "-fno-warn-unrecognised-pragmas" + \ , "-fwarn-warnings-deprecations" + \ , "-fno-warn-warnings-deprecations" + \ , "-fwarn-deprecated-flags" + \ , "-fno-warn-deprecated-flags" + \ , "-fwarn-duplicate-exports" + \ , "-fno-warn-duplicate-exports" + \ , "-fwarn-hi-shadowing" + \ , "-fno-warn-hi-shadowing" + \ , "-fwarn-implicit-prelude" + \ , "-fno-warn-implicit-prelude" + \ , "-fwarn-incomplete-patterns" + \ , "-fno-warn-incomplete-patterns" + \ , "-fwarn-incomplete-record-updates" + \ , "-fno-warn-incomplete-record-updates" + \ , "-fwarn-lazy-unlifted-bindings" + \ , "-fno-warn-lazy-unlifted-bindings" + \ , "-fwarn-missing-fields" + \ , "-fno-warn-missing-fields" + \ , "-fwarn-missing-import-lists" + \ , "-fnowarn-missing-import-lists" + \ , "-fwarn-missing-methods" + \ , "-fno-warn-missing-methods" + \ , "-fwarn-missing-signatures" + \ , "-fno-warn-missing-signatures" + \ , "-fwarn-name-shadowing" + \ , "-fno-warn-name-shadowing" + \ , "-fwarn-orphans" + \ , "-fno-warn-orphans" + \ , "-fwarn-overlapping-patterns" + \ , "-fno-warn-overlapping-patterns" + \ , "-fwarn-tabs" + \ , "-fno-warn-tabs" + \ , "-fwarn-type-defaults" + \ , "-fno-warn-type-defaults" + \ , "-fwarn-monomorphism-restriction" + \ , "-fno-warn-monomorphism-restriction" + \ , "-fwarn-unused-binds" + \ , "-fno-warn-unused-binds" + \ , "-fwarn-unused-imports" + \ , "-fno-warn-unused-imports" + \ , "-fwarn-unused-matches" + \ , "-fno-warn-unused-matches" + \ , "-fwarn-unused-do-bind" + \ , "-fno-warn-unused-do-bind" + \ , "-fwarn-wrong-do-bind" + \ , "-fno-warn-wrong-do-bind" + \ , "-O" + \ , "-O0" + \ , "-On" + \ , "-O0" + \ , "-fcase-merge" + \ , "-fno-case-merge" + \ , "-fmethod-sharing" + \ , "-fno-method-sharing" + \ , "-fdo-eta-reduction" + \ , "-fno-do-eta-reduction" + \ , "-fdo-lambda-eta-expansion" + \ , "-fno-do-lambda-eta-expansion" + \ , "-fexcess-precision" + \ , "-fno-excess-precision" + \ , "-fignore-asserts" + \ , "-fno-ignore-asserts" + \ , "-fignore-interface-pragmas" + \ , "-fno-ignore-interface-pragmas" + \ , "-fomit-interface-pragmas" + \ , "-fno-omit-interface-pragmas" + \ , "-fsimplifier-phases" + \ , "-fmax-simplifier-iterations" + \ , "-fcse" + \ , "-fno-cse" + \ , "-fspecialise" + \ , "-fno-specialise" + \ , "-ffull-laziness" + \ , "-fno-full-laziness" + \ , "-ffloat-in" + \ , "-fno-float-in" + \ , "-fenable-rewrite-rules" + \ , "-fno-enable-rewrite-rules" + \ , "-fstrictness" + \ , "-fno-strictness" + \ , "-fstrictness=before=n" + \ , "-fspec-constr" + \ , "-fno-spec-constr" + \ , "-fliberate-case" + \ , "-fno-liberate-case" + \ , "-fstatic-argument-transformation" + \ , "-fno-static-argument-transformation" + \ , "-funbox-strict-fields" + \ , "-fno-unbox-strict-fields" + \ , "-feager-blackholing" + \ , "-auto" + \ , "-no-auto" + \ , "-auto-all" + \ , "-no-auto-all" + \ , "-caf-all" + \ , "-no-caf-all" + \ , "-hpcdir" + \ , "-F" + \ , "-cpp" + \ , "-Dsymbol[=value]" + \ , "-Usymbol" + \ , "-Usymbol" + \ , "-Idir" + \ , "-fasm" + \ , "-fvia-C" + \ , "-fvia-C" + \ , "-fasm" + \ , "-fllvm" + \ , "-fasm" + \ , "-fno-code" + \ , "-fbyte-code" + \ , "-fobject-code" + \ , "-shared" + \ , "-dynamic" + \ , "-framework" + \ , "-framework-path" + \ , "-llib" + \ , "-Ldir" + \ , "-main-is" + \ , "--mk-dll" + \ , "-no-hs-main" + \ , "-rtsopts," + \ , "-with-rtsopts=opts" + \ , "-no-link" + \ , "-split-objs" + \ , "-fno-gen-manifest" + \ , "-fno-embed-manifest" + \ , "-fno-shared-implib" + \ , "-dylib-install-name" + \ , "-pgmL" + \ , "-pgmP" + \ , "-pgmc" + \ , "-pgmm" + \ , "-pgms" + \ , "-pgma" + \ , "-pgml" + \ , "-pgmdll" + \ , "-pgmF" + \ , "-pgmwindres" + \ , "-optL" + \ , "-optP" + \ , "-optF" + \ , "-optc" + \ , "-optlo" + \ , "-optlc" + \ , "-optm" + \ , "-opta" + \ , "-optl" + \ , "-optdll" + \ , "-optwindres" + \ , "-msse2" + \ , "-monly-[432]-regs" + \ , "-fext-core" + \ , "-dcore-lint" + \ , "-ddump-asm" + \ , "-ddump-bcos" + \ , "-ddump-cmm" + \ , "-ddump-cpranal" + \ , "-ddump-cse" + \ , "-ddump-deriv" + \ , "-ddump-ds" + \ , "-ddump-flatC" + \ , "-ddump-foreign" + \ , "-ddump-hpc" + \ , "-ddump-inlinings" + \ , "-ddump-llvm" + \ , "-ddump-occur-anal" + \ , "-ddump-opt-cmm" + \ , "-ddump-parsed" + \ , "-ddump-prep" + \ , "-ddump-rn" + \ , "-ddump-rules" + \ , "-ddump-simpl" + \ , "-ddump-simpl-phases" + \ , "-ddump-simpl-iterations" + \ , "-ddump-spec" + \ , "-ddump-splices" + \ , "-ddump-stg" + \ , "-ddump-stranal" + \ , "-ddump-tc" + \ , "-ddump-types" + \ , "-ddump-worker-wrapper" + \ , "-ddump-if-trace" + \ , "-ddump-tc-trace" + \ , "-ddump-rn-trace" + \ , "-ddump-rn-stats" + \ , "-ddump-simpl-stats" + \ , "-dsource-stats" + \ , "-dcmm-lint" + \ , "-dstg-lint" + \ , "-dstg-stats" + \ , "-dverbose-core2core" + \ , "-dverbose-stg2stg" + \ , "-dshow-passes" + \ , "-dfaststring-stats" + \ , "-fno-asm-mangling" + \ , "-fno-ghci-sandbox" + \ , "-fdiagnostics-color=" + \ , "-fdiagnostics-show-caret" + \ , "-fno-diagnostics-show-caret" + \ , "-ferror-spans" + \ , "-fhide-source-paths" + \ , "-fprint-equality-relations" + \ , "-fno-print-equality-relations" + \ , "-fprint-expanded-synonyms" + \ , "-fno-print-expanded-synonyms" + \ , "-fprint-explicit-coercions" + \ , "-fno-print-explicit-coercions" + \ , "-fprint-explicit-foralls" + \ , "-fno-print-explicit-foralls" + \ , "-fprint-explicit-kinds" + \ , "-fno-print-explicit-kinds" + \ , "-fprint-explicit-runtime-rep" + \ , "-fno-print-explicit-runtime-reps" + \ , "-fprint-explicit-runtime-reps" + \ , "-fno-print-explicit-runtime-reps" + \ , "-fprint-potential-instances" + \ , "-fno-print-potential-instances" + \ , "-fprint-typechecker-elaboration" + \ , "-fno-print-typechecker-elaboration" + \ , "-fprint-unicode-syntax" + \ , "-fno-print-unicode-syntax" + \ , "-fshow-hole-constraints" + \ , "-Rghc-timing" + \ , "-v" + \ , "-v" + \ , "-F" + \ , "-x" + \ , "--exclude-module=" + \ , "-ddump-mod-cycles" + \ , "-dep-makefile" + \ , "-dep-suffix" + \ , "-dumpdir" + \ , "-hcsuf" + \ , "-hidir" + \ , "-hisuf" + \ , "-include-pkg-deps" + \ , "-o" + \ , "-odir" + \ , "-ohi" + \ , "-osuf" + \ , "-outputdir" + \ , "-stubdir" + \ , "-keep-hc-file," + \ , "-keep-hi-files" + \ , "-no-keep-hi-files" + \ , "-keep-llvm-file," + \ , "-keep-o-files" + \ , "-no-keep-o-files" + \ , "-keep-s-file," + \ , "-keep-tmp-files" + \ , "-tmpdir" + \ , "-i" + \ , "-i[:]*" + \ , "-ddump-hi" + \ , "-ddump-hi-diffs" + \ , "-ddump-minimal-imports" + \ , "-fforce-recomp" + \ , "-fno-force-recomp" + \ , "-fignore-hpc-changes" + \ , "-fno-ignore-hpc-changes" + \ , "-fignore-optim-changes" + \ , "-fno-ignore-optim-changes" + \ , "-fbreak-on-error" + \ , "-fno-break-on-error" + \ , "-fbreak-on-exception" + \ , "-fno-break-on-exception" + \ , "-fghci-hist-size=" + \ , "-flocal-ghci-history" + \ , "-fno-local-ghci-history" + \ , "-fprint-bind-result" + \ , "-fno-print-bind-result" + \ , "-fshow-loaded-modules" + \ , "-ghci-script" + \ , "-ignore-dot-ghci" + \ , "-interactive-print" + \ , "-clear-package-db" + \ , "-distrust" + \ , "-distrust-all-packages" + \ , "-fpackage-trust" + \ , "-global-package-db" + \ , "-hide-all-packages" + \ , "-hide-package" + \ , "-ignore-package" + \ , "-no-auto-link-packages" + \ , "-no-global-package-db" + \ , "-no-user-package-db" + \ , "-package" + \ , "-package-db" + \ , "-package-env" + \ , "-package-id" + \ , "-this-unit-id" + \ , "-trust" + \ , "-user-package-db" + \ , "-fdefer-out-of-scope-variables" + \ , "-fno-defer-out-of-scope-variables" + \ , "-fdefer-type-errors" + \ , "-fno-defer-type-errors" + \ , "-fdefer-typed-holes" + \ , "-fno-defer-typed-holes" + \ , "-fhelpful-errors" + \ , "-fno-helpful-errors" + \ , "-fmax-pmcheck-iterations=" + \ , "-fshow-warning-groups" + \ , "-fno-show-warning-groups" + \ , "-W" + \ , "-w" + \ , "-w" + \ , "-Wall" + \ , "-w" + \ , "-Wall-missed-specialisations" + \ , "-Wno-all-missed-specialisations" + \ , "-Wamp" + \ , "-Wno-amp" + \ , "-Wcompat" + \ , "-Wno-compat" + \ , "-Wcpp-undef" + \ , "-Wdeferred-out-of-scope-variables" + \ , "-Wno-deferred-out-of-scope-variables" + \ , "-Wdeferred-type-errors" + \ , "-Wno-deferred-type-errors" + \ , "-Wdeprecated-flags" + \ , "-Wno-deprecated-flags" + \ , "-Wdeprecations" + \ , "-Wno-deprecations" + \ , "-Wdodgy-exports" + \ , "-Wno-dodgy-exports" + \ , "-Wdodgy-foreign-imports" + \ , "-Wno-dodgy-foreign-import" + \ , "-Wdodgy-imports" + \ , "-Wno-dodgy-imports" + \ , "-Wduplicate-constraints" + \ , "-Wno-duplicate-constraints" + \ , "-Wduplicate-exports" + \ , "-Wno-duplicate-exports" + \ , "-Wempty-enumerations" + \ , "-Wno-empty-enumerations" + \ , "-Werror" + \ , "-Wwarn" + \ , "-Weverything" + \ , "-Whi-shadowing" + \ , "-Wno-hi-shadowing" + \ , "-Widentities" + \ , "-Wno-identities" + \ , "-Wimplicit-prelude" + \ , "-Wno-implicit-prelude" + \ , "-Wincomplete-patterns" + \ , "-Wno-incomplete-patterns" + \ , "-Wincomplete-record-updates" + \ , "-Wno-incomplete-record-updates" + \ , "-Wincomplete-uni-patterns" + \ , "-Wno-incomplete-uni-patterns" + \ , "-Winline-rule-shadowing" + \ , "-Wno-inline-rule-shadowing" + \ , "-Wmissed-specialisations" + \ , "-Wno-missed-specialisations" + \ , "-Wmissing-export-lists" + \ , "-fnowarn-missing-export-lists" + \ , "-Wmissing-exported-signatures" + \ , "-Wno-missing-exported-signatures" + \ , "-Wmissing-exported-sigs" + \ , "-Wno-missing-exported-sigs" + \ , "-Wmissing-fields" + \ , "-Wno-missing-fields" + \ , "-Wmissing-home-modules" + \ , "-Wno-missing-home-modules" + \ , "-Wmissing-import-lists" + \ , "-fnowarn-missing-import-lists" + \ , "-Wmissing-local-signatures" + \ , "-Wno-missing-local-signatures" + \ , "-Wmissing-local-sigs" + \ , "-Wno-missing-local-sigs" + \ , "-Wmissing-methods" + \ , "-Wno-missing-methods" + \ , "-Wmissing-monadfail-instances" + \ , "-Wno-missing-monadfail-instances" + \ , "-Wmissing-pattern-synonym-signatures" + \ , "-Wno-missing-pattern-synonym-signatures" + \ , "-Wmissing-signatures" + \ , "-Wno-missing-signatures" + \ , "-Wmonomorphism-restriction" + \ , "-Wno-monomorphism-restriction" + \ , "-Wname-shadowing" + \ , "-Wno-name-shadowing" + \ , "-Wno-compat" + \ , "-Wcompat" + \ , "-Wnoncanonical-monad-instances" + \ , "-Wno-noncanonical-monad-instances" + \ , "-Wnoncanonical-monadfail-instances" + \ , "-Wno-noncanonical-monadfail-instances" + \ , "-Wnoncanonical-monoid-instances" + \ , "-Wno-noncanonical-monoid-instances" + \ , "-Worphans" + \ , "-Wno-orphans" + \ , "-Woverflowed-literals" + \ , "-Wno-overflowed-literals" + \ , "-Woverlapping-patterns" + \ , "-Wno-overlapping-patterns" + \ , "-Wpartial-fields" + \ , "-Wno-partial-fields" + \ , "-Wpartial-type-signatures" + \ , "-Wno-partial-type-signatures" + \ , "-Wredundant-constraints" + \ , "-Wno-redundant-constraints" + \ , "-Wsafe" + \ , "-Wno-safe" + \ , "-Wsemigroup" + \ , "-Wno-semigroup" + \ , "-Wsimplifiable-class-constraints" + \ , "-Wno-overlapping-patterns" + \ , "-Wtabs" + \ , "-Wno-tabs" + \ , "-Wtrustworthy-safe" + \ , "-Wno-safe" + \ , "-Wtype-defaults" + \ , "-Wno-type-defaults" + \ , "-Wtyped-holes" + \ , "-Wno-typed-holes" + \ , "-Wunbanged-strict-patterns" + \ , "-Wno-unbanged-strict-patterns" + \ , "-Wunrecognised-pragmas" + \ , "-Wno-unrecognised-pragmas" + \ , "-Wunrecognised-warning-flags" + \ , "-Wno-unrecognised-warning-flags" + \ , "-Wunsafe" + \ , "-Wno-unsafe" + \ , "-Wunsupported-calling-conventions" + \ , "-Wno-unsupported-calling-conventions" + \ , "-Wunsupported-llvm-version" + \ , "-Wno-monomorphism-restriction" + \ , "-Wunticked-promoted-constructors" + \ , "-Wno-unticked-promoted-constructors" + \ , "-Wunused-binds" + \ , "-Wno-unused-binds" + \ , "-Wunused-do-bind" + \ , "-Wno-unused-do-bind" + \ , "-Wunused-foralls" + \ , "-Wno-unused-foralls" + \ , "-Wunused-imports" + \ , "-Wno-unused-imports" + \ , "-Wunused-local-binds" + \ , "-Wno-unused-local-binds" + \ , "-Wunused-matches" + \ , "-Wno-unused-matches" + \ , "-Wunused-pattern-binds" + \ , "-Wno-unused-pattern-binds" + \ , "-Wunused-top-binds" + \ , "-Wno-unused-top-binds" + \ , "-Wunused-type-patterns" + \ , "-Wno-unused-type-patterns" + \ , "-Wwarn" + \ , "-Werror" + \ , "-Wwarnings-deprecations" + \ , "-Wno-warnings-deprecations" + \ , "-Wwrong-do-bind" + \ , "-Wno-wrong-do-bind" + \ , "-O," + \ , "-O0" + \ , "-O0" + \ , "-O2" + \ , "-O0" + \ , "-Odph" + \ , "-fcall-arity" + \ , "-fno-call-arity" + \ , "-fcase-folding" + \ , "-fno-case-folding" + \ , "-fcase-merge" + \ , "-fno-case-merge" + \ , "-fcmm-elim-common-blocks" + \ , "-fno-cmm-elim-common-blocks" + \ , "-fcmm-sink" + \ , "-fno-cmm-sink" + \ , "-fcpr-anal" + \ , "-fno-cpr-anal" + \ , "-fcross-module-specialise" + \ , "-fno-cross-module-specialise" + \ , "-fcse" + \ , "-fno-cse" + \ , "-fdicts-cheap" + \ , "-fno-dicts-cheap" + \ , "-fdicts-strict" + \ , "-fno-dicts-strict" + \ , "-fdmd-tx-dict-sel" + \ , "-fno-dmd-tx-dict-sel" + \ , "-fdo-eta-reduction" + \ , "-fno-do-eta-reduction" + \ , "-fdo-lambda-eta-expansion" + \ , "-fno-do-lambda-eta-expansion" + \ , "-feager-blackholing" + \ , "-fenable-rewrite-rules" + \ , "-fno-enable-rewrite-rules" + \ , "-fexcess-precision" + \ , "-fno-excess-precision" + \ , "-fexitification" + \ , "-fno-exitification" + \ , "-fexpose-all-unfoldings" + \ , "-fno-expose-all-unfoldings" + \ , "-ffloat-in" + \ , "-fno-float-in" + \ , "-ffull-laziness" + \ , "-fno-full-laziness" + \ , "-ffun-to-thunk" + \ , "-fno-fun-to-thunk" + \ , "-fignore-asserts" + \ , "-fno-ignore-asserts" + \ , "-fignore-interface-pragmas" + \ , "-fno-ignore-interface-pragmas" + \ , "-flate-dmd-anal" + \ , "-fno-late-dmd-anal" + \ , "-fliberate-case" + \ , "-fno-liberate-case" + \ , "-fliberate-case-threshold=" + \ , "-fno-liberate-case-threshold" + \ , "-fllvm-pass-vectors-in-regs" + \ , "-fno-llvm-pass-vectors-in-regs" + \ , "-floopification" + \ , "-fno-loopification" + \ , "-fmax-inline-alloc-size=" + \ , "-fmax-inline-memcpy-insns=" + \ , "-fmax-inline-memset-insns=" + \ , "-fmax-relevant-binds=" + \ , "-fno-max-relevant-bindings" + \ , "-fmax-simplifier-iterations=" + \ , "-fmax-uncovered-patterns=" + \ , "-fmax-valid-substitutions=" + \ , "-fno-max-valid-substitutions" + \ , "-fmax-worker-args=" + \ , "-fno-opt-coercion" + \ , "-fno-pre-inlining" + \ , "-fno-state-hack" + \ , "-fomit-interface-pragmas" + \ , "-fno-omit-interface-pragmas" + \ , "-fomit-yields" + \ , "-fno-omit-yields" + \ , "-foptimal-applicative-do" + \ , "-fno-optimal-applicative-do" + \ , "-fpedantic-bottoms" + \ , "-fno-pedantic-bottoms" + \ , "-fregs-graph" + \ , "-fno-regs-graph" + \ , "-fregs-iterative" + \ , "-fno-regs-iterative" + \ , "-fsimpl-tick-factor=" + \ , "-fsimplifier-phases=" + \ , "-fsolve-constant-dicts" + \ , "-fno-solve-constant-dicts" + \ , "-fspec-constr" + \ , "-fno-spec-constr" + \ , "-fspec-constr-count=" + \ , "-fno-spec-constr-count" + \ , "-fspec-constr-keen" + \ , "-fno-spec-constr-keen" + \ , "-fspec-constr-threshold=" + \ , "-fno-spec-constr-threshold" + \ , "-fspecialise" + \ , "-fno-specialise" + \ , "-fspecialise-aggressively" + \ , "-fno-specialise-aggressively" + \ , "-fstatic-argument-transformation" + \ , "-fno-static-argument-transformation" + \ , "-fstg-cse" + \ , "-fno-stg-cse" + \ , "-fstrictness" + \ , "-fno-strictness" + \ , "-fstrictness-before=" + \ , "-funbox-small-strict-fields" + \ , "-fno-unbox-small-strict-fields" + \ , "-funbox-strict-fields" + \ , "-fno-unbox-strict-fields" + \ , "-funfolding-creation-threshold=" + \ , "-funfolding-dict-discount=" + \ , "-funfolding-fun-discount=" + \ , "-funfolding-keeness-factor=" + \ , "-funfolding-use-threshold=" + \ , "-fvectorisation-avoidance" + \ , "-fno-vectorisation-avoidance" + \ , "-fvectorise" + \ , "-fno-vectorise" + \ , "-fno-prof-auto" + \ , "-fprof-auto" + \ , "-fno-prof-cafs" + \ , "-fprof-cafs" + \ , "-fno-prof-count-entries" + \ , "-fprof-count-entries" + \ , "-fprof-auto" + \ , "-fno-prof-auto" + \ , "-fprof-auto-calls" + \ , "-fno-prof-auto-calls" + \ , "-fprof-auto-exported" + \ , "-fno-prof-auto" + \ , "-fprof-auto-top" + \ , "-fno-prof-auto" + \ , "-fprof-cafs" + \ , "-fno-prof-cafs" + \ , "-prof" + \ , "-ticky" + \ , "-fhpc" + \ , "-cpp" + \ , "-D[=]" + \ , "-U" + \ , "-I" + \ , "-U" + \ , "-dynamic" + \ , "-too" + \ , "-fasm" + \ , "-fllvm" + \ , "-fbyte-code" + \ , "-fllvm" + \ , "-fasm" + \ , "-fno-code" + \ , "-fobject-code" + \ , "-fPIC" + \ , "-fPIE" + \ , "-fwrite-interface" + \ , "-debug" + \ , "-dylib-install-name" + \ , "-dynamic" + \ , "-dynload" + \ , "-eventlog" + \ , "-fno-embed-manifest" + \ , "-fno-gen-manifest" + \ , "-fno-shared-implib" + \ , "-framework" + \ , "-framework-path" + \ , "-fwhole-archive-hs-libs" + \ , "-L" + \ , "-l" + \ , "-main-is" + \ , "-no-hs-main" + \ , "-no-rtsopts-suggestions" + \ , "-package" + \ , "-pie" + \ , "-rdynamic" + \ , "-rtsopts[=]" + \ , "-shared" + \ , "-split-objs" + \ , "-split-sections" + \ , "-static" + \ , "-staticlib" + \ , "-threaded" + \ , "-with-rtsopts=" + \ , "-fplugin-opt=:" + \ , "-fplugin=" + \ , "-hide-all-plugin-packages" + \ , "-plugin-package" + \ , "-plugin-package-id" + \ , "-pgma" + \ , "-pgmc" + \ , "-pgmdll" + \ , "-pgmF" + \ , "-pgmi" + \ , "-pgmL" + \ , "-pgml" + \ , "-pgmlc" + \ , "-pgmlibtool" + \ , "-pgmlo" + \ , "-pgmP" + \ , "-pgms" + \ , "-pgmwindres" + \ , "-opta" + \ , "-optc" + \ , "-optdll" + \ , "-optF" + \ , "-opti" + \ , "-optL" + \ , "-optl" + \ , "-optlc" + \ , "-optlo" + \ , "-optP" + \ , "-optwindres" + \ , "-msse2" + \ , "-msse4.2" + \ , "-dcmm-lint" + \ , "-dcore-lint" + \ , "-ddump-asm" + \ , "-ddump-asm-expanded" + \ , "-ddump-asm-liveness" + \ , "-ddump-asm-native" + \ , "-ddump-asm-regalloc" + \ , "-ddump-asm-regalloc-stages" + \ , "-ddump-asm-stats" + \ , "-ddump-bcos" + \ , "-ddump-cmm" + \ , "-ddump-cmm-caf" + \ , "-ddump-cmm-cbe" + \ , "-ddump-cmm-cfg" + \ , "-ddump-cmm-cps" + \ , "-ddump-cmm-from-stg" + \ , "-ddump-cmm-info" + \ , "-ddump-cmm-proc" + \ , "-ddump-cmm-procmap" + \ , "-ddump-cmm-raw" + \ , "-ddump-cmm-sink" + \ , "-ddump-cmm-sp" + \ , "-ddump-cmm-split" + \ , "-ddump-cmm-switch" + \ , "-ddump-cmm-verbose" + \ , "-ddump-core-stats" + \ , "-ddump-cse" + \ , "-ddump-deriv" + \ , "-ddump-ds" + \ , "-ddump-ec-trace" + \ , "-ddump-foreign" + \ , "-ddump-if-trace" + \ , "-ddump-inlinings" + \ , "-ddump-json" + \ , "-ddump-llvm" + \ , "-ddump-occur-anal" + \ , "-ddump-opt-cmm" + \ , "-ddump-parsed" + \ , "-ddump-parsed-ast" + \ , "-ddump-prep" + \ , "-ddump-rn" + \ , "-ddump-rn-ast" + \ , "-ddump-rn-stats" + \ , "-ddump-rn-trace" + \ , "-ddump-rule-firings" + \ , "-ddump-rule-rewrites" + \ , "-ddump-rules" + \ , "-ddump-simpl" + \ , "-ddump-simpl-iterations" + \ , "-ddump-simpl-stats" + \ , "-ddump-spec" + \ , "-ddump-splices" + \ , "-ddump-stg" + \ , "-ddump-str-signatures" + \ , "-ddump-stranal" + \ , "-ddump-tc" + \ , "-ddump-tc-ast" + \ , "-ddump-tc-trace" + \ , "-ddump-timings" + \ , "-ddump-to-file" + \ , "-ddump-types" + \ , "-ddump-vect" + \ , "-ddump-vt-trace" + \ , "-ddump-worker-wrapper" + \ , "-dfaststring-stats" + \ , "-dinitial-unique=" + \ , "-dno-debug-output" + \ , "-ddebug-output" + \ , "-dppr-case-as-let" + \ , "-dppr-cols=" + \ , "-dppr-debug" + \ , "-dppr-user-length" + \ , "-dshow-passes" + \ , "-dstg-lint" + \ , "-dsuppress-all" + \ , "-dsuppress-coercions" + \ , "-dsuppress-idinfo" + \ , "-dsuppress-module-prefixes" + \ , "-dsuppress-stg-free-vars" + \ , "-dsuppress-ticks" + \ , "-dsuppress-type-applications" + \ , "-dsuppress-type-signatures" + \ , "-dsuppress-unfoldings" + \ , "-dsuppress-uniques" + \ , "-dsuppress-var-kinds" + \ , "-dth-dec-file=" + \ , "-dunique-increment=" + \ , "-dverbose-core2core" + \ , "-dverbose-stg2stg" + \ , "-falignment-sanitisation" + \ , "-fcatch-bottoms" + \ , "-fllvm-fill-undef-with-garbage" + \ , "-g," + \ , "-fexternal-interpreter" + \ , "-fglasgow-exts" + \ , "-fno-glasgow-exts" + \ , "-ghcversion-file" + \ , "-H" + \ , "-j[]" + \ ] + +let s:commonModules = + \ [ "Distribution.Backpack" + \ , "Distribution.Backpack.ComponentsGraph" + \ , "Distribution.Backpack.Configure" + \ , "Distribution.Backpack.ConfiguredComponent" + \ , "Distribution.Backpack.DescribeUnitId" + \ , "Distribution.Backpack.FullUnitId" + \ , "Distribution.Backpack.LinkedComponent" + \ , "Distribution.Backpack.ModSubst" + \ , "Distribution.Backpack.ModuleShape" + \ , "Distribution.Backpack.PreModuleShape" + \ , "Distribution.CabalSpecVersion" + \ , "Distribution.Compat.Binary" + \ , "Distribution.Compat.CharParsing" + \ , "Distribution.Compat.CreatePipe" + \ , "Distribution.Compat.DList" + \ , "Distribution.Compat.Directory" + \ , "Distribution.Compat.Environment" + \ , "Distribution.Compat.Exception" + \ , "Distribution.Compat.Graph" + \ , "Distribution.Compat.Internal.TempFile" + \ , "Distribution.Compat.Lens" + \ , "Distribution.Compat.Map.Strict" + \ , "Distribution.Compat.Newtype" + \ , "Distribution.Compat.Parsing" + \ , "Distribution.Compat.Prelude.Internal" + \ , "Distribution.Compat.ReadP" + \ , "Distribution.Compat.Semigroup" + \ , "Distribution.Compat.Stack" + \ , "Distribution.Compat.Time" + \ , "Distribution.Compiler" + \ , "Distribution.FieldGrammar" + \ , "Distribution.FieldGrammar.Class" + \ , "Distribution.FieldGrammar.FieldDescrs" + \ , "Distribution.FieldGrammar.Parsec" + \ , "Distribution.FieldGrammar.Pretty" + \ , "Distribution.InstalledPackageInfo" + \ , "Distribution.License" + \ , "Distribution.Make" + \ , "Distribution.ModuleName" + \ , "Distribution.Package" + \ , "Distribution.PackageDescription" + \ , "Distribution.PackageDescription.Check" + \ , "Distribution.PackageDescription.Configuration" + \ , "Distribution.PackageDescription.FieldGrammar" + \ , "Distribution.PackageDescription.Parsec" + \ , "Distribution.PackageDescription.PrettyPrint" + \ , "Distribution.PackageDescription.Quirks" + \ , "Distribution.PackageDescription.Utils" + \ , "Distribution.ParseUtils" + \ , "Distribution.Parsec.Class" + \ , "Distribution.Parsec.Common" + \ , "Distribution.Parsec.ConfVar" + \ , "Distribution.Parsec.Field" + \ , "Distribution.Parsec.FieldLineStream" + \ , "Distribution.Parsec.Lexer" + \ , "Distribution.Parsec.LexerMonad" + \ , "Distribution.Parsec.Newtypes" + \ , "Distribution.Parsec.ParseResult" + \ , "Distribution.Parsec.Parser" + \ , "Distribution.Pretty" + \ , "Distribution.PrettyUtils" + \ , "Distribution.ReadE" + \ , "Distribution.SPDX" + \ , "Distribution.SPDX.License" + \ , "Distribution.SPDX.LicenseExceptionId" + \ , "Distribution.SPDX.LicenseExpression" + \ , "Distribution.SPDX.LicenseId" + \ , "Distribution.SPDX.LicenseReference" + \ , "Distribution.Simple" + \ , "Distribution.Simple.Bench" + \ , "Distribution.Simple.Build" + \ , "Distribution.Simple.Build.Macros" + \ , "Distribution.Simple.Build.PathsModule" + \ , "Distribution.Simple.BuildPaths" + \ , "Distribution.Simple.BuildTarget" + \ , "Distribution.Simple.BuildToolDepends" + \ , "Distribution.Simple.CCompiler" + \ , "Distribution.Simple.Command" + \ , "Distribution.Simple.Compiler" + \ , "Distribution.Simple.Configure" + \ , "Distribution.Simple.Doctest" + \ , "Distribution.Simple.GHC" + \ , "Distribution.Simple.GHCJS" + \ , "Distribution.Simple.Haddock" + \ , "Distribution.Simple.HaskellSuite" + \ , "Distribution.Simple.Hpc" + \ , "Distribution.Simple.Install" + \ , "Distribution.Simple.InstallDirs" + \ , "Distribution.Simple.JHC" + \ , "Distribution.Simple.LHC" + \ , "Distribution.Simple.LocalBuildInfo" + \ , "Distribution.Simple.PackageIndex" + \ , "Distribution.Simple.PreProcess" + \ , "Distribution.Simple.PreProcess.Unlit" + \ , "Distribution.Simple.Program" + \ , "Distribution.Simple.Program.Ar" + \ , "Distribution.Simple.Program.Builtin" + \ , "Distribution.Simple.Program.Db" + \ , "Distribution.Simple.Program.Find" + \ , "Distribution.Simple.Program.GHC" + \ , "Distribution.Simple.Program.HcPkg" + \ , "Distribution.Simple.Program.Hpc" + \ , "Distribution.Simple.Program.Internal" + \ , "Distribution.Simple.Program.Ld" + \ , "Distribution.Simple.Program.ResponseFile" + \ , "Distribution.Simple.Program.Run" + \ , "Distribution.Simple.Program.Script" + \ , "Distribution.Simple.Program.Strip" + \ , "Distribution.Simple.Program.Types" + \ , "Distribution.Simple.Register" + \ , "Distribution.Simple.Setup" + \ , "Distribution.Simple.SrcDist" + \ , "Distribution.Simple.Test" + \ , "Distribution.Simple.Test.ExeV10" + \ , "Distribution.Simple.Test.LibV09" + \ , "Distribution.Simple.Test.Log" + \ , "Distribution.Simple.UHC" + \ , "Distribution.Simple.UserHooks" + \ , "Distribution.Simple.Utils" + \ , "Distribution.System" + \ , "Distribution.TestSuite" + \ , "Distribution.Text" + \ , "Distribution.Types.AbiDependency" + \ , "Distribution.Types.AbiHash" + \ , "Distribution.Types.AnnotatedId" + \ , "Distribution.Types.Benchmark" + \ , "Distribution.Types.Benchmark.Lens" + \ , "Distribution.Types.BenchmarkInterface" + \ , "Distribution.Types.BenchmarkType" + \ , "Distribution.Types.BuildInfo" + \ , "Distribution.Types.BuildInfo.Lens" + \ , "Distribution.Types.BuildType" + \ , "Distribution.Types.Component" + \ , "Distribution.Types.ComponentId" + \ , "Distribution.Types.ComponentInclude" + \ , "Distribution.Types.ComponentLocalBuildInfo" + \ , "Distribution.Types.ComponentName" + \ , "Distribution.Types.ComponentRequestedSpec" + \ , "Distribution.Types.CondTree" + \ , "Distribution.Types.Condition" + \ , "Distribution.Types.Dependency" + \ , "Distribution.Types.DependencyMap" + \ , "Distribution.Types.ExeDependency" + \ , "Distribution.Types.Executable" + \ , "Distribution.Types.Executable.Lens" + \ , "Distribution.Types.ExecutableScope" + \ , "Distribution.Types.ExposedModule" + \ , "Distribution.Types.ForeignLib" + \ , "Distribution.Types.ForeignLib.Lens" + \ , "Distribution.Types.ForeignLibOption" + \ , "Distribution.Types.ForeignLibType" + \ , "Distribution.Types.GenericPackageDescription" + \ , "Distribution.Types.GenericPackageDescription.Lens" + \ , "Distribution.Types.HookedBuildInfo" + \ , "Distribution.Types.IncludeRenaming" + \ , "Distribution.Types.InstalledPackageInfo" + \ , "Distribution.Types.InstalledPackageInfo.FieldGrammar" + \ , "Distribution.Types.InstalledPackageInfo.Lens" + \ , "Distribution.Types.LegacyExeDependency" + \ , "Distribution.Types.Lens" + \ , "Distribution.Types.Library" + \ , "Distribution.Types.Library.Lens" + \ , "Distribution.Types.LocalBuildInfo" + \ , "Distribution.Types.Mixin" + \ , "Distribution.Types.Module" + \ , "Distribution.Types.ModuleReexport" + \ , "Distribution.Types.ModuleRenaming" + \ , "Distribution.Types.MungedPackageId" + \ , "Distribution.Types.MungedPackageName" + \ , "Distribution.Types.PackageDescription" + \ , "Distribution.Types.PackageDescription.Lens" + \ , "Distribution.Types.PackageId" + \ , "Distribution.Types.PackageId.Lens" + \ , "Distribution.Types.PackageName" + \ , "Distribution.Types.PkgconfigDependency" + \ , "Distribution.Types.PkgconfigName" + \ , "Distribution.Types.SetupBuildInfo" + \ , "Distribution.Types.SetupBuildInfo.Lens" + \ , "Distribution.Types.SourceRepo" + \ , "Distribution.Types.SourceRepo.Lens" + \ , "Distribution.Types.TargetInfo" + \ , "Distribution.Types.TestSuite" + \ , "Distribution.Types.TestSuite.Lens" + \ , "Distribution.Types.TestSuiteInterface" + \ , "Distribution.Types.TestType" + \ , "Distribution.Types.UnitId" + \ , "Distribution.Types.UnqualComponentName" + \ , "Distribution.Types.Version" + \ , "Distribution.Types.VersionInterval" + \ , "Distribution.Types.VersionRange" + \ , "Distribution.Utils.Generic" + \ , "Distribution.Utils.IOData" + \ , "Distribution.Utils.LogProgress" + \ , "Distribution.Utils.MapAccum" + \ , "Distribution.Utils.NubList" + \ , "Distribution.Utils.Progress" + \ , "Distribution.Utils.ShortText" + \ , "Distribution.Verbosity" + \ , "Distribution.Version" + \ , "Language.Haskell.Extension" + \ , "Graphics.GLU" + \ , "Graphics.GLU.Callbacks" + \ , "Graphics.GLU.Functions" + \ , "Graphics.GLU.Tokens" + \ , "Graphics.GLU.Types" + \ , "Graphics.UI.GLUT" + \ , "Graphics.UI.GLUT.Begin" + \ , "Graphics.UI.GLUT.Callbacks" + \ , "Graphics.UI.GLUT.Callbacks.Global" + \ , "Graphics.UI.GLUT.Callbacks.Window" + \ , "Graphics.UI.GLUT.Colormap" + \ , "Graphics.UI.GLUT.Debugging" + \ , "Graphics.UI.GLUT.DeviceControl" + \ , "Graphics.UI.GLUT.Fonts" + \ , "Graphics.UI.GLUT.GameMode" + \ , "Graphics.UI.GLUT.Initialization" + \ , "Graphics.UI.GLUT.Menu" + \ , "Graphics.UI.GLUT.Objects" + \ , "Graphics.UI.GLUT.Overlay" + \ , "Graphics.UI.GLUT.State" + \ , "Graphics.UI.GLUT.Window" + \ , "Network.Browser" + \ , "Network.BufferType" + \ , "Network.HTTP" + \ , "Network.HTTP.Auth" + \ , "Network.HTTP.Base" + \ , "Network.HTTP.Cookie" + \ , "Network.HTTP.HandleStream" + \ , "Network.HTTP.Headers" + \ , "Network.HTTP.Proxy" + \ , "Network.HTTP.Stream" + \ , "Network.Stream" + \ , "Network.StreamDebugger" + \ , "Network.StreamSocket" + \ , "Network.TCP" + \ , "Test.HUnit" + \ , "Test.HUnit.Base" + \ , "Test.HUnit.Lang" + \ , "Test.HUnit.Terminal" + \ , "Test.HUnit.Text" + \ , "Data.ObjectName" + \ , "Graphics.Rendering.OpenGL" + \ , "Graphics.Rendering.OpenGL.GL" + \ , "Graphics.Rendering.OpenGL.GL.Antialiasing" + \ , "Graphics.Rendering.OpenGL.GL.BeginEnd" + \ , "Graphics.Rendering.OpenGL.GL.Bitmaps" + \ , "Graphics.Rendering.OpenGL.GL.BufferObjects" + \ , "Graphics.Rendering.OpenGL.GL.Clipping" + \ , "Graphics.Rendering.OpenGL.GL.ColorSum" + \ , "Graphics.Rendering.OpenGL.GL.Colors" + \ , "Graphics.Rendering.OpenGL.GL.ConditionalRendering" + \ , "Graphics.Rendering.OpenGL.GL.CoordTrans" + \ , "Graphics.Rendering.OpenGL.GL.DebugOutput" + \ , "Graphics.Rendering.OpenGL.GL.DisplayLists" + \ , "Graphics.Rendering.OpenGL.GL.Evaluators" + \ , "Graphics.Rendering.OpenGL.GL.Feedback" + \ , "Graphics.Rendering.OpenGL.GL.FlushFinish" + \ , "Graphics.Rendering.OpenGL.GL.Fog" + \ , "Graphics.Rendering.OpenGL.GL.Framebuffer" + \ , "Graphics.Rendering.OpenGL.GL.FramebufferObjects" + \ , "Graphics.Rendering.OpenGL.GL.FramebufferObjects.Attachments" + \ , "Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObjects" + \ , "Graphics.Rendering.OpenGL.GL.FramebufferObjects.Queries" + \ , "Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObjects" + \ , "Graphics.Rendering.OpenGL.GL.Hints" + \ , "Graphics.Rendering.OpenGL.GL.LineSegments" + \ , "Graphics.Rendering.OpenGL.GL.PerFragment" + \ , "Graphics.Rendering.OpenGL.GL.PixelRectangles" + \ , "Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable" + \ , "Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution" + \ , "Graphics.Rendering.OpenGL.GL.PixelRectangles.Histogram" + \ , "Graphics.Rendering.OpenGL.GL.PixelRectangles.Minmax" + \ , "Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap" + \ , "Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelStorage" + \ , "Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelTransfer" + \ , "Graphics.Rendering.OpenGL.GL.PixelRectangles.Rasterization" + \ , "Graphics.Rendering.OpenGL.GL.PixellikeObject" + \ , "Graphics.Rendering.OpenGL.GL.Points" + \ , "Graphics.Rendering.OpenGL.GL.Polygons" + \ , "Graphics.Rendering.OpenGL.GL.PrimitiveMode" + \ , "Graphics.Rendering.OpenGL.GL.QueryObjects" + \ , "Graphics.Rendering.OpenGL.GL.RasterPos" + \ , "Graphics.Rendering.OpenGL.GL.ReadCopyPixels" + \ , "Graphics.Rendering.OpenGL.GL.Rectangles" + \ , "Graphics.Rendering.OpenGL.GL.SavingState" + \ , "Graphics.Rendering.OpenGL.GL.Selection" + \ , "Graphics.Rendering.OpenGL.GL.Shaders" + \ , "Graphics.Rendering.OpenGL.GL.Shaders.Attribs" + \ , "Graphics.Rendering.OpenGL.GL.Shaders.Limits" + \ , "Graphics.Rendering.OpenGL.GL.Shaders.ProgramBinaries" + \ , "Graphics.Rendering.OpenGL.GL.Shaders.ProgramObjects" + \ , "Graphics.Rendering.OpenGL.GL.Shaders.ShaderBinaries" + \ , "Graphics.Rendering.OpenGL.GL.Shaders.ShaderObjects" + \ , "Graphics.Rendering.OpenGL.GL.Shaders.Uniform" + \ , "Graphics.Rendering.OpenGL.GL.StringQueries" + \ , "Graphics.Rendering.OpenGL.GL.SyncObjects" + \ , "Graphics.Rendering.OpenGL.GL.Tensor" + \ , "Graphics.Rendering.OpenGL.GL.Texturing" + \ , "Graphics.Rendering.OpenGL.GL.Texturing.Application" + \ , "Graphics.Rendering.OpenGL.GL.Texturing.Environments" + \ , "Graphics.Rendering.OpenGL.GL.Texturing.Objects" + \ , "Graphics.Rendering.OpenGL.GL.Texturing.Parameters" + \ , "Graphics.Rendering.OpenGL.GL.Texturing.Queries" + \ , "Graphics.Rendering.OpenGL.GL.Texturing.Specification" + \ , "Graphics.Rendering.OpenGL.GL.TransformFeedback" + \ , "Graphics.Rendering.OpenGL.GL.VertexArrayObjects" + \ , "Graphics.Rendering.OpenGL.GL.VertexArrays" + \ , "Graphics.Rendering.OpenGL.GL.VertexSpec" + \ , "Graphics.Rendering.OpenGL.GLU" + \ , "Graphics.Rendering.OpenGL.GLU.Errors" + \ , "Graphics.Rendering.OpenGL.GLU.Initialization" + \ , "Graphics.Rendering.OpenGL.GLU.Matrix" + \ , "Graphics.Rendering.OpenGL.GLU.Mipmapping" + \ , "Graphics.Rendering.OpenGL.GLU.NURBS" + \ , "Graphics.Rendering.OpenGL.GLU.Quadrics" + \ , "Graphics.Rendering.OpenGL.GLU.Tessellation" + \ , "Graphics.GL" + \ , "Graphics.GL.AMD" + \ , "Graphics.GL.AMD.BlendMinmaxFactor" + \ , "Graphics.GL.AMD.DebugOutput" + \ , "Graphics.GL.AMD.DepthClampSeparate" + \ , "Graphics.GL.AMD.DrawBuffersBlend" + \ , "Graphics.GL.AMD.FramebufferMultisampleAdvanced" + \ , "Graphics.GL.AMD.FramebufferSamplePositions" + \ , "Graphics.GL.AMD.GPUShaderHalfFloat" + \ , "Graphics.GL.AMD.GPUShaderInt64" + \ , "Graphics.GL.AMD.InterleavedElements" + \ , "Graphics.GL.AMD.MultiDrawIndirect" + \ , "Graphics.GL.AMD.NameGenDelete" + \ , "Graphics.GL.AMD.OcclusionQueryEvent" + \ , "Graphics.GL.AMD.PerformanceMonitor" + \ , "Graphics.GL.AMD.PinnedMemory" + \ , "Graphics.GL.AMD.QueryBufferObject" + \ , "Graphics.GL.AMD.SamplePositions" + \ , "Graphics.GL.AMD.SeamlessCubemapPerTexture" + \ , "Graphics.GL.AMD.SparseTexture" + \ , "Graphics.GL.AMD.StencilOperationExtended" + \ , "Graphics.GL.AMD.TransformFeedback4" + \ , "Graphics.GL.AMD.VertexShaderTessellator" + \ , "Graphics.GL.APPLE" + \ , "Graphics.GL.APPLE.AuxDepthStencil" + \ , "Graphics.GL.APPLE.ClientStorage" + \ , "Graphics.GL.APPLE.ElementArray" + \ , "Graphics.GL.APPLE.Fence" + \ , "Graphics.GL.APPLE.FloatPixels" + \ , "Graphics.GL.APPLE.FlushBufferRange" + \ , "Graphics.GL.APPLE.ObjectPurgeable" + \ , "Graphics.GL.APPLE.RGB422" + \ , "Graphics.GL.APPLE.RowBytes" + \ , "Graphics.GL.APPLE.SpecularVector" + \ , "Graphics.GL.APPLE.TextureRange" + \ , "Graphics.GL.APPLE.TransformHint" + \ , "Graphics.GL.APPLE.VertexArrayObject" + \ , "Graphics.GL.APPLE.VertexArrayRange" + \ , "Graphics.GL.APPLE.VertexProgramEvaluators" + \ , "Graphics.GL.APPLE.YCbCr422" + \ , "Graphics.GL.ARB" + \ , "Graphics.GL.ARB.BaseInstance" + \ , "Graphics.GL.ARB.BindlessTexture" + \ , "Graphics.GL.ARB.BlendFuncExtended" + \ , "Graphics.GL.ARB.BufferStorage" + \ , "Graphics.GL.ARB.CLEvent" + \ , "Graphics.GL.ARB.ClearBufferObject" + \ , "Graphics.GL.ARB.ClearTexture" + \ , "Graphics.GL.ARB.ClipControl" + \ , "Graphics.GL.ARB.ColorBufferFloat" + \ , "Graphics.GL.ARB.CompressedTexturePixelStorage" + \ , "Graphics.GL.ARB.ComputeShader" + \ , "Graphics.GL.ARB.ComputeVariableGroupSize" + \ , "Graphics.GL.ARB.ConditionalRenderInverted" + \ , "Graphics.GL.ARB.CopyBuffer" + \ , "Graphics.GL.ARB.CopyImage" + \ , "Graphics.GL.ARB.CullDistance" + \ , "Graphics.GL.ARB.DebugOutput" + \ , "Graphics.GL.ARB.DepthBufferFloat" + \ , "Graphics.GL.ARB.DepthClamp" + \ , "Graphics.GL.ARB.DepthTexture" + \ , "Graphics.GL.ARB.DirectStateAccess" + \ , "Graphics.GL.ARB.DrawBuffers" + \ , "Graphics.GL.ARB.DrawBuffersBlend" + \ , "Graphics.GL.ARB.DrawElementsBaseVertex" + \ , "Graphics.GL.ARB.DrawIndirect" + \ , "Graphics.GL.ARB.DrawInstanced" + \ , "Graphics.GL.ARB.ES2Compatibility" + \ , "Graphics.GL.ARB.ES31Compatibility" + \ , "Graphics.GL.ARB.ES32Compatibility" + \ , "Graphics.GL.ARB.ES3Compatibility" + \ , "Graphics.GL.ARB.EnhancedLayouts" + \ , "Graphics.GL.ARB.ExplicitUniformLocation" + \ , "Graphics.GL.ARB.FragmentProgram" + \ , "Graphics.GL.ARB.FragmentShader" + \ , "Graphics.GL.ARB.FramebufferNoAttachments" + \ , "Graphics.GL.ARB.FramebufferObjectCompatibility" + \ , "Graphics.GL.ARB.FramebufferObjectCore" + \ , "Graphics.GL.ARB.FramebufferSRGB" + \ , "Graphics.GL.ARB.GPUShader5" + \ , "Graphics.GL.ARB.GPUShaderFP64" + \ , "Graphics.GL.ARB.GPUShaderInt64" + \ , "Graphics.GL.ARB.GeometryShader4" + \ , "Graphics.GL.ARB.GetProgramBinary" + \ , "Graphics.GL.ARB.GetTextureSubImage" + \ , "Graphics.GL.ARB.GlSpirv" + \ , "Graphics.GL.ARB.HalfFloatPixel" + \ , "Graphics.GL.ARB.HalfFloatVertex" + \ , "Graphics.GL.ARB.ImagingCompatibility" + \ , "Graphics.GL.ARB.ImagingCore" + \ , "Graphics.GL.ARB.IndirectParameters" + \ , "Graphics.GL.ARB.InstancedArrays" + \ , "Graphics.GL.ARB.InternalformatQuery" + \ , "Graphics.GL.ARB.InternalformatQuery2" + \ , "Graphics.GL.ARB.InvalidateSubdata" + \ , "Graphics.GL.ARB.MapBufferAlignment" + \ , "Graphics.GL.ARB.MapBufferRange" + \ , "Graphics.GL.ARB.MatrixPalette" + \ , "Graphics.GL.ARB.MultiBind" + \ , "Graphics.GL.ARB.MultiDrawIndirect" + \ , "Graphics.GL.ARB.Multisample" + \ , "Graphics.GL.ARB.Multitexture" + \ , "Graphics.GL.ARB.OcclusionQuery" + \ , "Graphics.GL.ARB.OcclusionQuery2" + \ , "Graphics.GL.ARB.ParallelShaderCompile" + \ , "Graphics.GL.ARB.PipelineStatisticsQuery" + \ , "Graphics.GL.ARB.PixelBufferObject" + \ , "Graphics.GL.ARB.PointParameters" + \ , "Graphics.GL.ARB.PointSprite" + \ , "Graphics.GL.ARB.PolygonOffsetClamp" + \ , "Graphics.GL.ARB.ProgramInterfaceQuery" + \ , "Graphics.GL.ARB.ProvokingVertex" + \ , "Graphics.GL.ARB.QueryBufferObject" + \ , "Graphics.GL.ARB.RobustnessCompatibility" + \ , "Graphics.GL.ARB.RobustnessCore" + \ , "Graphics.GL.ARB.SampleLocations" + \ , "Graphics.GL.ARB.SampleShading" + \ , "Graphics.GL.ARB.SamplerObjects" + \ , "Graphics.GL.ARB.SeamlessCubeMap" + \ , "Graphics.GL.ARB.SeamlessCubemapPerTexture" + \ , "Graphics.GL.ARB.SeparateShaderObjects" + \ , "Graphics.GL.ARB.ShaderAtomicCounters" + \ , "Graphics.GL.ARB.ShaderImageLoadStore" + \ , "Graphics.GL.ARB.ShaderObjects" + \ , "Graphics.GL.ARB.ShaderStorageBufferObject" + \ , "Graphics.GL.ARB.ShaderSubroutine" + \ , "Graphics.GL.ARB.ShadingLanguage100" + \ , "Graphics.GL.ARB.ShadingLanguageInclude" + \ , "Graphics.GL.ARB.Shadow" + \ , "Graphics.GL.ARB.ShadowAmbient" + \ , "Graphics.GL.ARB.SparseBuffer" + \ , "Graphics.GL.ARB.SparseTexture" + \ , "Graphics.GL.ARB.SpirvExtensions" + \ , "Graphics.GL.ARB.StencilTexturing" + \ , "Graphics.GL.ARB.Sync" + \ , "Graphics.GL.ARB.TessellationShader" + \ , "Graphics.GL.ARB.TextureBarrier" + \ , "Graphics.GL.ARB.TextureBorderClamp" + \ , "Graphics.GL.ARB.TextureBufferObject" + \ , "Graphics.GL.ARB.TextureBufferObjectRGB32" + \ , "Graphics.GL.ARB.TextureBufferRange" + \ , "Graphics.GL.ARB.TextureCompression" + \ , "Graphics.GL.ARB.TextureCompressionBPTC" + \ , "Graphics.GL.ARB.TextureCompressionRGTC" + \ , "Graphics.GL.ARB.TextureCubeMap" + \ , "Graphics.GL.ARB.TextureCubeMapArray" + \ , "Graphics.GL.ARB.TextureEnvCombine" + \ , "Graphics.GL.ARB.TextureEnvDot3" + \ , "Graphics.GL.ARB.TextureFilterAnisotropic" + \ , "Graphics.GL.ARB.TextureFilterMinmax" + \ , "Graphics.GL.ARB.TextureFloat" + \ , "Graphics.GL.ARB.TextureGather" + \ , "Graphics.GL.ARB.TextureMirrorClampToEdge" + \ , "Graphics.GL.ARB.TextureMirroredRepeat" + \ , "Graphics.GL.ARB.TextureMultisample" + \ , "Graphics.GL.ARB.TextureRG" + \ , "Graphics.GL.ARB.TextureRGB10A2UI" + \ , "Graphics.GL.ARB.TextureRectangle" + \ , "Graphics.GL.ARB.TextureStencil8" + \ , "Graphics.GL.ARB.TextureStorage" + \ , "Graphics.GL.ARB.TextureStorageMultisample" + \ , "Graphics.GL.ARB.TextureSwizzle" + \ , "Graphics.GL.ARB.TextureView" + \ , "Graphics.GL.ARB.TimerQuery" + \ , "Graphics.GL.ARB.TransformFeedback2" + \ , "Graphics.GL.ARB.TransformFeedback3" + \ , "Graphics.GL.ARB.TransformFeedbackInstanced" + \ , "Graphics.GL.ARB.TransformFeedbackOverflowQuery" + \ , "Graphics.GL.ARB.TransposeMatrix" + \ , "Graphics.GL.ARB.UniformBufferObject" + \ , "Graphics.GL.ARB.VertexArrayBGRA" + \ , "Graphics.GL.ARB.VertexArrayObject" + \ , "Graphics.GL.ARB.VertexAttrib64Bit" + \ , "Graphics.GL.ARB.VertexAttribBinding" + \ , "Graphics.GL.ARB.VertexBlend" + \ , "Graphics.GL.ARB.VertexBufferObject" + \ , "Graphics.GL.ARB.VertexProgram" + \ , "Graphics.GL.ARB.VertexShader" + \ , "Graphics.GL.ARB.VertexType10f11f11fRev" + \ , "Graphics.GL.ARB.VertexType2101010RevCompatibility" + \ , "Graphics.GL.ARB.VertexType2101010RevCore" + \ , "Graphics.GL.ARB.ViewportArray" + \ , "Graphics.GL.ARB.WindowPos" + \ , "Graphics.GL.ATI" + \ , "Graphics.GL.ATI.DrawBuffers" + \ , "Graphics.GL.ATI.ElementArray" + \ , "Graphics.GL.ATI.EnvmapBumpmap" + \ , "Graphics.GL.ATI.FragmentShader" + \ , "Graphics.GL.ATI.MapObjectBuffer" + \ , "Graphics.GL.ATI.Meminfo" + \ , "Graphics.GL.ATI.PNTriangles" + \ , "Graphics.GL.ATI.PixelFormatFloat" + \ , "Graphics.GL.ATI.SeparateStencil" + \ , "Graphics.GL.ATI.TextFragmentShader" + \ , "Graphics.GL.ATI.TextureEnvCombine3" + \ , "Graphics.GL.ATI.TextureFloat" + \ , "Graphics.GL.ATI.TextureMirrorOnce" + \ , "Graphics.GL.ATI.VertexArrayObject" + \ , "Graphics.GL.ATI.VertexAttribArrayObject" + \ , "Graphics.GL.ATI.VertexStreams" + \ , "Graphics.GL.Compatibility30" + \ , "Graphics.GL.Compatibility31" + \ , "Graphics.GL.Compatibility32" + \ , "Graphics.GL.Compatibility33" + \ , "Graphics.GL.Compatibility40" + \ , "Graphics.GL.Compatibility41" + \ , "Graphics.GL.Compatibility42" + \ , "Graphics.GL.Compatibility43" + \ , "Graphics.GL.Compatibility44" + \ , "Graphics.GL.Compatibility45" + \ , "Graphics.GL.Compatibility46" + \ , "Graphics.GL.Core30" + \ , "Graphics.GL.Core31" + \ , "Graphics.GL.Core32" + \ , "Graphics.GL.Core33" + \ , "Graphics.GL.Core40" + \ , "Graphics.GL.Core41" + \ , "Graphics.GL.Core42" + \ , "Graphics.GL.Core43" + \ , "Graphics.GL.Core44" + \ , "Graphics.GL.Core45" + \ , "Graphics.GL.Core46" + \ , "Graphics.GL.EXT" + \ , "Graphics.GL.EXT.ABGR" + \ , "Graphics.GL.EXT.BGRA" + \ , "Graphics.GL.EXT.BindableUniform" + \ , "Graphics.GL.EXT.BlendColor" + \ , "Graphics.GL.EXT.BlendEquationSeparate" + \ , "Graphics.GL.EXT.BlendFuncSeparate" + \ , "Graphics.GL.EXT.BlendMinmax" + \ , "Graphics.GL.EXT.BlendSubtract" + \ , "Graphics.GL.EXT.CMYKA" + \ , "Graphics.GL.EXT.ClipVolumeHint" + \ , "Graphics.GL.EXT.ColorSubtable" + \ , "Graphics.GL.EXT.CompiledVertexArray" + \ , "Graphics.GL.EXT.Convolution" + \ , "Graphics.GL.EXT.CoordinateFrame" + \ , "Graphics.GL.EXT.CopyTexture" + \ , "Graphics.GL.EXT.CullVertex" + \ , "Graphics.GL.EXT.DebugLabel" + \ , "Graphics.GL.EXT.DebugMarker" + \ , "Graphics.GL.EXT.DepthBoundsTest" + \ , "Graphics.GL.EXT.DirectStateAccess" + \ , "Graphics.GL.EXT.DrawBuffers2" + \ , "Graphics.GL.EXT.DrawInstanced" + \ , "Graphics.GL.EXT.DrawRangeElements" + \ , "Graphics.GL.EXT.EglImageStorage" + \ , "Graphics.GL.EXT.ExternalBuffer" + \ , "Graphics.GL.EXT.FogCoord" + \ , "Graphics.GL.EXT.FourTwoTwoPixels" + \ , "Graphics.GL.EXT.FramebufferBlit" + \ , "Graphics.GL.EXT.FramebufferMultisample" + \ , "Graphics.GL.EXT.FramebufferMultisampleBlitScaled" + \ , "Graphics.GL.EXT.FramebufferObject" + \ , "Graphics.GL.EXT.FramebufferSRGB" + \ , "Graphics.GL.EXT.GPUProgramParameters" + \ , "Graphics.GL.EXT.GPUShader4" + \ , "Graphics.GL.EXT.GeometryShader4" + \ , "Graphics.GL.EXT.Histogram" + \ , "Graphics.GL.EXT.IndexArrayFormats" + \ , "Graphics.GL.EXT.IndexFunc" + \ , "Graphics.GL.EXT.IndexMaterial" + \ , "Graphics.GL.EXT.LightTexture" + \ , "Graphics.GL.EXT.MemoryObject" + \ , "Graphics.GL.EXT.MemoryObjectFd" + \ , "Graphics.GL.EXT.MemoryObjectWin32" + \ , "Graphics.GL.EXT.MultiDrawArrays" + \ , "Graphics.GL.EXT.Multisample" + \ , "Graphics.GL.EXT.PackedDepthStencil" + \ , "Graphics.GL.EXT.PackedFloat" + \ , "Graphics.GL.EXT.PackedPixels" + \ , "Graphics.GL.EXT.PalettedTexture" + \ , "Graphics.GL.EXT.PixelBufferObject" + \ , "Graphics.GL.EXT.PixelTransform" + \ , "Graphics.GL.EXT.PointParameters" + \ , "Graphics.GL.EXT.PolygonOffset" + \ , "Graphics.GL.EXT.PolygonOffsetClamp" + \ , "Graphics.GL.EXT.ProvokingVertex" + \ , "Graphics.GL.EXT.RasterMultisample" + \ , "Graphics.GL.EXT.RescaleNormal" + \ , "Graphics.GL.EXT.SecondaryColor" + \ , "Graphics.GL.EXT.Semaphore" + \ , "Graphics.GL.EXT.SemaphoreFd" + \ , "Graphics.GL.EXT.SemaphoreWin32" + \ , "Graphics.GL.EXT.SeparateShaderObjects" + \ , "Graphics.GL.EXT.SeparateSpecularColor" + \ , "Graphics.GL.EXT.ShaderFramebufferFetch" + \ , "Graphics.GL.EXT.ShaderFramebufferFetchNonCoherent" + \ , "Graphics.GL.EXT.ShaderImageLoadStore" + \ , "Graphics.GL.EXT.SharedTexturePalette" + \ , "Graphics.GL.EXT.StencilClearTag" + \ , "Graphics.GL.EXT.StencilTwoSide" + \ , "Graphics.GL.EXT.StencilWrap" + \ , "Graphics.GL.EXT.Subtexture" + \ , "Graphics.GL.EXT.Texture" + \ , "Graphics.GL.EXT.Texture3D" + \ , "Graphics.GL.EXT.TextureArray" + \ , "Graphics.GL.EXT.TextureBufferObject" + \ , "Graphics.GL.EXT.TextureCompressionLATC" + \ , "Graphics.GL.EXT.TextureCompressionRGTC" + \ , "Graphics.GL.EXT.TextureCompressionS3TC" + \ , "Graphics.GL.EXT.TextureCubeMap" + \ , "Graphics.GL.EXT.TextureEnvCombine" + \ , "Graphics.GL.EXT.TextureEnvDot3" + \ , "Graphics.GL.EXT.TextureFilterAnisotropic" + \ , "Graphics.GL.EXT.TextureFilterMinmax" + \ , "Graphics.GL.EXT.TextureInteger" + \ , "Graphics.GL.EXT.TextureLODBias" + \ , "Graphics.GL.EXT.TextureMirrorClamp" + \ , "Graphics.GL.EXT.TextureObject" + \ , "Graphics.GL.EXT.TexturePerturbNormal" + \ , "Graphics.GL.EXT.TextureSNorm" + \ , "Graphics.GL.EXT.TextureSRGB" + \ , "Graphics.GL.EXT.TextureSRGBDecode" + \ , "Graphics.GL.EXT.TextureSharedExponent" + \ , "Graphics.GL.EXT.TextureSwizzle" + \ , "Graphics.GL.EXT.TimerQuery" + \ , "Graphics.GL.EXT.TransformFeedback" + \ , "Graphics.GL.EXT.VertexArray" + \ , "Graphics.GL.EXT.VertexArrayBGRA" + \ , "Graphics.GL.EXT.VertexAttrib64Bit" + \ , "Graphics.GL.EXT.VertexShader" + \ , "Graphics.GL.EXT.VertexWeighting" + \ , "Graphics.GL.EXT.Win32KeyedMutex" + \ , "Graphics.GL.EXT.WindowRectangles" + \ , "Graphics.GL.EXT.X11SyncObject" + \ , "Graphics.GL.Functions" + \ , "Graphics.GL.GREMEDY" + \ , "Graphics.GL.GREMEDY.FrameTerminator" + \ , "Graphics.GL.GREMEDY.StringMarker" + \ , "Graphics.GL.GetProcAddress" + \ , "Graphics.GL.Groups" + \ , "Graphics.GL.HP" + \ , "Graphics.GL.HP.ConvolutionBorderModes" + \ , "Graphics.GL.HP.ImageTransform" + \ , "Graphics.GL.HP.OcclusionTest" + \ , "Graphics.GL.HP.TextureLighting" + \ , "Graphics.GL.IBM" + \ , "Graphics.GL.IBM.CullVertex" + \ , "Graphics.GL.IBM.MultimodeDrawArrays" + \ , "Graphics.GL.IBM.RasterposClip" + \ , "Graphics.GL.IBM.StaticData" + \ , "Graphics.GL.IBM.TextureMirroredRepeat" + \ , "Graphics.GL.IBM.VertexArrayLists" + \ , "Graphics.GL.INGR" + \ , "Graphics.GL.INGR.BlendFuncSeparate" + \ , "Graphics.GL.INGR.ColorClamp" + \ , "Graphics.GL.INGR.InterlaceRead" + \ , "Graphics.GL.INTEL" + \ , "Graphics.GL.INTEL.BlackholeRender" + \ , "Graphics.GL.INTEL.ConservativeRasterization" + \ , "Graphics.GL.INTEL.FramebufferCmaa" + \ , "Graphics.GL.INTEL.MapTexture" + \ , "Graphics.GL.INTEL.ParallelArrays" + \ , "Graphics.GL.INTEL.PerformanceQuery" + \ , "Graphics.GL.KHR" + \ , "Graphics.GL.KHR.BlendEquationAdvanced" + \ , "Graphics.GL.KHR.BlendEquationAdvancedCoherent" + \ , "Graphics.GL.KHR.ContextFlushControl" + \ , "Graphics.GL.KHR.DebugCompatibility" + \ , "Graphics.GL.KHR.DebugCore" + \ , "Graphics.GL.KHR.NoError" + \ , "Graphics.GL.KHR.ParallelShaderCompile" + \ , "Graphics.GL.KHR.Robustness" + \ , "Graphics.GL.KHR.TextureCompressionASTCHDR" + \ , "Graphics.GL.KHR.TextureCompressionASTCLDR" + \ , "Graphics.GL.MESA" + \ , "Graphics.GL.MESA.PackInvert" + \ , "Graphics.GL.MESA.ProgramBinaryFormats" + \ , "Graphics.GL.MESA.ResizeBuffers" + \ , "Graphics.GL.MESA.TileRasterOrder" + \ , "Graphics.GL.MESA.WindowPos" + \ , "Graphics.GL.MESA.YCbCrTexture" + \ , "Graphics.GL.MESAX" + \ , "Graphics.GL.MESAX.TextureStack" + \ , "Graphics.GL.NV" + \ , "Graphics.GL.NV.AlphaToCoverageDitherControl" + \ , "Graphics.GL.NV.BindlessMultiDrawIndirect" + \ , "Graphics.GL.NV.BindlessMultiDrawIndirectCount" + \ , "Graphics.GL.NV.BindlessTexture" + \ , "Graphics.GL.NV.BlendEquationAdvanced" + \ , "Graphics.GL.NV.BlendEquationAdvancedCoherent" + \ , "Graphics.GL.NV.BlendMinmaxFactor" + \ , "Graphics.GL.NV.ClipSpaceWScaling" + \ , "Graphics.GL.NV.CommandList" + \ , "Graphics.GL.NV.ComputeProgram5" + \ , "Graphics.GL.NV.ConditionalRender" + \ , "Graphics.GL.NV.ConservativeRaster" + \ , "Graphics.GL.NV.ConservativeRasterDilate" + \ , "Graphics.GL.NV.ConservativeRasterPreSnap" + \ , "Graphics.GL.NV.ConservativeRasterPreSnapTriangles" + \ , "Graphics.GL.NV.CopyDepthToColor" + \ , "Graphics.GL.NV.CopyImage" + \ , "Graphics.GL.NV.DeepTexture3D" + \ , "Graphics.GL.NV.DepthBufferFloat" + \ , "Graphics.GL.NV.DepthClamp" + \ , "Graphics.GL.NV.DrawTexture" + \ , "Graphics.GL.NV.DrawVulkanImage" + \ , "Graphics.GL.NV.Evaluators" + \ , "Graphics.GL.NV.ExplicitMultisample" + \ , "Graphics.GL.NV.Fence" + \ , "Graphics.GL.NV.FillRectangle" + \ , "Graphics.GL.NV.FloatBuffer" + \ , "Graphics.GL.NV.FogDistance" + \ , "Graphics.GL.NV.FragmentCoverageToColor" + \ , "Graphics.GL.NV.FragmentProgram" + \ , "Graphics.GL.NV.FragmentProgram2" + \ , "Graphics.GL.NV.FramebufferMixedSamples" + \ , "Graphics.GL.NV.FramebufferMultisampleCoverage" + \ , "Graphics.GL.NV.GPUMulticast" + \ , "Graphics.GL.NV.GPUProgram4" + \ , "Graphics.GL.NV.GPUProgram5" + \ , "Graphics.GL.NV.GPUShader5" + \ , "Graphics.GL.NV.GeometryProgram4" + \ , "Graphics.GL.NV.HalfFloat" + \ , "Graphics.GL.NV.InternalformatSampleQuery" + \ , "Graphics.GL.NV.LightMaxExponent" + \ , "Graphics.GL.NV.MultisampleCoverage" + \ , "Graphics.GL.NV.MultisampleFilterHint" + \ , "Graphics.GL.NV.OcclusionQuery" + \ , "Graphics.GL.NV.PackedDepthStencil" + \ , "Graphics.GL.NV.ParameterBufferObject" + \ , "Graphics.GL.NV.PathRenderingCompatibility" + \ , "Graphics.GL.NV.PathRenderingCore" + \ , "Graphics.GL.NV.PathRenderingSharedEdge" + \ , "Graphics.GL.NV.PixelDataRange" + \ , "Graphics.GL.NV.PointSprite" + \ , "Graphics.GL.NV.PresentVideo" + \ , "Graphics.GL.NV.PrimitiveRestart" + \ , "Graphics.GL.NV.QueryResource" + \ , "Graphics.GL.NV.QueryResourceTag" + \ , "Graphics.GL.NV.RegisterCombiners" + \ , "Graphics.GL.NV.RegisterCombiners2" + \ , "Graphics.GL.NV.RobustnessVideoMemoryPurge" + \ , "Graphics.GL.NV.SampleLocations" + \ , "Graphics.GL.NV.ShaderBufferLoad" + \ , "Graphics.GL.NV.ShaderBufferStore" + \ , "Graphics.GL.NV.ShaderThreadGroup" + \ , "Graphics.GL.NV.TessellationProgram5" + \ , "Graphics.GL.NV.TexgenEmboss" + \ , "Graphics.GL.NV.TexgenReflection" + \ , "Graphics.GL.NV.TextureBarrier" + \ , "Graphics.GL.NV.TextureEnvCombine4" + \ , "Graphics.GL.NV.TextureExpandNormal" + \ , "Graphics.GL.NV.TextureMultisample" + \ , "Graphics.GL.NV.TextureRectangle" + \ , "Graphics.GL.NV.TextureShader" + \ , "Graphics.GL.NV.TextureShader2" + \ , "Graphics.GL.NV.TextureShader3" + \ , "Graphics.GL.NV.TransformFeedback" + \ , "Graphics.GL.NV.TransformFeedback2" + \ , "Graphics.GL.NV.UniformBufferUnifiedMemory" + \ , "Graphics.GL.NV.VDPAUInterop" + \ , "Graphics.GL.NV.VertexArrayRange" + \ , "Graphics.GL.NV.VertexArrayRange2" + \ , "Graphics.GL.NV.VertexAttribInteger64Bit" + \ , "Graphics.GL.NV.VertexBufferUnifiedMemory" + \ , "Graphics.GL.NV.VertexProgram" + \ , "Graphics.GL.NV.VertexProgram2Option" + \ , "Graphics.GL.NV.VertexProgram3" + \ , "Graphics.GL.NV.VertexProgram4" + \ , "Graphics.GL.NV.VideoCapture" + \ , "Graphics.GL.NV.ViewportSwizzle" + \ , "Graphics.GL.NVX" + \ , "Graphics.GL.NVX.ConditionalRender" + \ , "Graphics.GL.NVX.GPUMemoryInfo" + \ , "Graphics.GL.NVX.LinkedGPUMulticast" + \ , "Graphics.GL.OES" + \ , "Graphics.GL.OES.ByteCoordinates" + \ , "Graphics.GL.OES.CompressedPalettedTexture" + \ , "Graphics.GL.OES.FixedPoint" + \ , "Graphics.GL.OES.QueryMatrix" + \ , "Graphics.GL.OES.ReadFormat" + \ , "Graphics.GL.OES.SinglePrecision" + \ , "Graphics.GL.OML" + \ , "Graphics.GL.OML.Interlace" + \ , "Graphics.GL.OML.Resample" + \ , "Graphics.GL.OML.Subsample" + \ , "Graphics.GL.OVR" + \ , "Graphics.GL.OVR.Multiview" + \ , "Graphics.GL.PGI" + \ , "Graphics.GL.PGI.MiscHints" + \ , "Graphics.GL.PGI.VertexHints" + \ , "Graphics.GL.REND" + \ , "Graphics.GL.REND.ScreenCoordinates" + \ , "Graphics.GL.S3" + \ , "Graphics.GL.S3.S3TC" + \ , "Graphics.GL.SGI" + \ , "Graphics.GL.SGI.ColorMatrix" + \ , "Graphics.GL.SGI.ColorTable" + \ , "Graphics.GL.SGI.TextureColorTable" + \ , "Graphics.GL.SGIS" + \ , "Graphics.GL.SGIS.DetailTexture" + \ , "Graphics.GL.SGIS.FogFunction" + \ , "Graphics.GL.SGIS.GenerateMipmap" + \ , "Graphics.GL.SGIS.Multisample" + \ , "Graphics.GL.SGIS.PixelTexture" + \ , "Graphics.GL.SGIS.PointLineTexgen" + \ , "Graphics.GL.SGIS.PointParameters" + \ , "Graphics.GL.SGIS.SharpenTexture" + \ , "Graphics.GL.SGIS.Texture4D" + \ , "Graphics.GL.SGIS.TextureBorderClamp" + \ , "Graphics.GL.SGIS.TextureColorMask" + \ , "Graphics.GL.SGIS.TextureEdgeClamp" + \ , "Graphics.GL.SGIS.TextureFilter4" + \ , "Graphics.GL.SGIS.TextureLOD" + \ , "Graphics.GL.SGIS.TextureSelect" + \ , "Graphics.GL.SGIX" + \ , "Graphics.GL.SGIX.Async" + \ , "Graphics.GL.SGIX.AsyncHistogram" + \ , "Graphics.GL.SGIX.AsyncPixel" + \ , "Graphics.GL.SGIX.BlendAlphaMinmax" + \ , "Graphics.GL.SGIX.CalligraphicFragment" + \ , "Graphics.GL.SGIX.Clipmap" + \ , "Graphics.GL.SGIX.ConvolutionAccuracy" + \ , "Graphics.GL.SGIX.DepthTexture" + \ , "Graphics.GL.SGIX.FlushRaster" + \ , "Graphics.GL.SGIX.FogOffset" + \ , "Graphics.GL.SGIX.FragmentLighting" + \ , "Graphics.GL.SGIX.Framezoom" + \ , "Graphics.GL.SGIX.IglooInterface" + \ , "Graphics.GL.SGIX.Instruments" + \ , "Graphics.GL.SGIX.Interlace" + \ , "Graphics.GL.SGIX.IrInstrument1" + \ , "Graphics.GL.SGIX.ListPriority" + \ , "Graphics.GL.SGIX.PixelTexture" + \ , "Graphics.GL.SGIX.PixelTiles" + \ , "Graphics.GL.SGIX.PolynomialFFD" + \ , "Graphics.GL.SGIX.ReferencePlane" + \ , "Graphics.GL.SGIX.Resample" + \ , "Graphics.GL.SGIX.ScalebiasHint" + \ , "Graphics.GL.SGIX.Shadow" + \ , "Graphics.GL.SGIX.ShadowAmbient" + \ , "Graphics.GL.SGIX.Sprite" + \ , "Graphics.GL.SGIX.Subsample" + \ , "Graphics.GL.SGIX.TagSampleBuffer" + \ , "Graphics.GL.SGIX.TextureAddEnv" + \ , "Graphics.GL.SGIX.TextureCoordinateClamp" + \ , "Graphics.GL.SGIX.TextureLODBias" + \ , "Graphics.GL.SGIX.TextureMultiBuffer" + \ , "Graphics.GL.SGIX.TextureScaleBias" + \ , "Graphics.GL.SGIX.VertexPreclip" + \ , "Graphics.GL.SGIX.YCrCb" + \ , "Graphics.GL.SGIX.YCrCbA" + \ , "Graphics.GL.SUN" + \ , "Graphics.GL.SUN.ConvolutionBorderModes" + \ , "Graphics.GL.SUN.GlobalAlpha" + \ , "Graphics.GL.SUN.MeshArray" + \ , "Graphics.GL.SUN.SliceAccum" + \ , "Graphics.GL.SUN.TriangleList" + \ , "Graphics.GL.SUN.Vertex" + \ , "Graphics.GL.SUNX" + \ , "Graphics.GL.SUNX.ConstantData" + \ , "Graphics.GL.ThreeDFX" + \ , "Graphics.GL.ThreeDFX.Multisample" + \ , "Graphics.GL.ThreeDFX.Tbuffer" + \ , "Graphics.GL.ThreeDFX.TextureCompressionFXT1" + \ , "Graphics.GL.Tokens" + \ , "Graphics.GL.Types" + \ , "Graphics.GL.Version10" + \ , "Graphics.GL.Version11" + \ , "Graphics.GL.Version12" + \ , "Graphics.GL.Version13" + \ , "Graphics.GL.Version14" + \ , "Graphics.GL.Version15" + \ , "Graphics.GL.Version20" + \ , "Graphics.GL.Version21" + \ , "Graphics.GL.WIN" + \ , "Graphics.GL.WIN.PhongShading" + \ , "Graphics.GL.WIN.SpecularFog" + \ , "Test.QuickCheck" + \ , "Test.QuickCheck.All" + \ , "Test.QuickCheck.Arbitrary" + \ , "Test.QuickCheck.Exception" + \ , "Test.QuickCheck.Function" + \ , "Test.QuickCheck.Gen" + \ , "Test.QuickCheck.Gen.Unsafe" + \ , "Test.QuickCheck.Modifiers" + \ , "Test.QuickCheck.Monadic" + \ , "Test.QuickCheck.Poly" + \ , "Test.QuickCheck.Property" + \ , "Test.QuickCheck.Random" + \ , "Test.QuickCheck.State" + \ , "Test.QuickCheck.Test" + \ , "Test.QuickCheck.Text" + \ , "Data.StateVar" + \ , "Graphics.Win32" + \ , "Graphics.Win32.Control" + \ , "Graphics.Win32.Dialogue" + \ , "Graphics.Win32.GDI" + \ , "Graphics.Win32.GDI.AlphaBlend" + \ , "Graphics.Win32.GDI.Bitmap" + \ , "Graphics.Win32.GDI.Brush" + \ , "Graphics.Win32.GDI.Clip" + \ , "Graphics.Win32.GDI.Font" + \ , "Graphics.Win32.GDI.Graphics2D" + \ , "Graphics.Win32.GDI.HDC" + \ , "Graphics.Win32.GDI.Palette" + \ , "Graphics.Win32.GDI.Path" + \ , "Graphics.Win32.GDI.Pen" + \ , "Graphics.Win32.GDI.Region" + \ , "Graphics.Win32.GDI.Types" + \ , "Graphics.Win32.Icon" + \ , "Graphics.Win32.Key" + \ , "Graphics.Win32.LayeredWindow" + \ , "Graphics.Win32.Menu" + \ , "Graphics.Win32.Message" + \ , "Graphics.Win32.Misc" + \ , "Graphics.Win32.Resource" + \ , "Graphics.Win32.Window" + \ , "Graphics.Win32.Window.AnimateWindow" + \ , "Graphics.Win32.Window.ForegroundWindow" + \ , "Graphics.Win32.Window.HotKey" + \ , "Graphics.Win32.Window.IMM" + \ , "Graphics.Win32.Window.PostMessage" + \ , "Media.Win32" + \ , "System.Win32" + \ , "System.Win32.Automation" + \ , "System.Win32.Automation.Input" + \ , "System.Win32.Automation.Input.Key" + \ , "System.Win32.Automation.Input.Mouse" + \ , "System.Win32.Console" + \ , "System.Win32.Console.CtrlHandler" + \ , "System.Win32.Console.HWND" + \ , "System.Win32.Console.Title" + \ , "System.Win32.DLL" + \ , "System.Win32.DebugApi" + \ , "System.Win32.Encoding" + \ , "System.Win32.Exception.Unsupported" + \ , "System.Win32.File" + \ , "System.Win32.FileMapping" + \ , "System.Win32.HardLink" + \ , "System.Win32.Info" + \ , "System.Win32.Info.Computer" + \ , "System.Win32.Info.Version" + \ , "System.Win32.Mem" + \ , "System.Win32.MinTTY" + \ , "System.Win32.NLS" + \ , "System.Win32.Path" + \ , "System.Win32.Process" + \ , "System.Win32.Registry" + \ , "System.Win32.Security" + \ , "System.Win32.Shell" + \ , "System.Win32.SimpleMAPI" + \ , "System.Win32.String" + \ , "System.Win32.SymbolicLink" + \ , "System.Win32.Thread" + \ , "System.Win32.Time" + \ , "System.Win32.Types" + \ , "System.Win32.Utils" + \ , "System.Win32.Word" + \ , "Data.Array" + \ , "Data.Array.Base" + \ , "Data.Array.IArray" + \ , "Data.Array.IO" + \ , "Data.Array.IO.Internals" + \ , "Data.Array.IO.Safe" + \ , "Data.Array.MArray" + \ , "Data.Array.MArray.Safe" + \ , "Data.Array.ST" + \ , "Data.Array.ST.Safe" + \ , "Data.Array.Storable" + \ , "Data.Array.Storable.Internals" + \ , "Data.Array.Storable.Safe" + \ , "Data.Array.Unboxed" + \ , "Data.Array.Unsafe" + \ , "Control.Concurrent.Async" + \ , "Data.Attoparsec" + \ , "Data.Attoparsec.ByteString" + \ , "Data.Attoparsec.ByteString.Char8" + \ , "Data.Attoparsec.ByteString.Lazy" + \ , "Data.Attoparsec.Char8" + \ , "Data.Attoparsec.Combinator" + \ , "Data.Attoparsec.Internal" + \ , "Data.Attoparsec.Internal.Types" + \ , "Data.Attoparsec.Lazy" + \ , "Data.Attoparsec.Number" + \ , "Data.Attoparsec.Text" + \ , "Data.Attoparsec.Text.Lazy" + \ , "Data.Attoparsec.Types" + \ , "Data.Attoparsec.Zepto" + \ , "Control.Applicative" + \ , "Control.Arrow" + \ , "Control.Category" + \ , "Control.Concurrent" + \ , "Control.Concurrent.Chan" + \ , "Control.Concurrent.MVar" + \ , "Control.Concurrent.QSem" + \ , "Control.Concurrent.QSemN" + \ , "Control.Exception" + \ , "Control.Exception.Base" + \ , "Control.Monad" + \ , "Control.Monad.Fail" + \ , "Control.Monad.Fix" + \ , "Control.Monad.IO.Class" + \ , "Control.Monad.Instances" + \ , "Control.Monad.ST" + \ , "Control.Monad.ST.Lazy" + \ , "Control.Monad.ST.Lazy.Safe" + \ , "Control.Monad.ST.Lazy.Unsafe" + \ , "Control.Monad.ST.Safe" + \ , "Control.Monad.ST.Strict" + \ , "Control.Monad.ST.Unsafe" + \ , "Control.Monad.Zip" + \ , "Data.Bifoldable" + \ , "Data.Bifunctor" + \ , "Data.Bitraversable" + \ , "Data.Bits" + \ , "Data.Bool" + \ , "Data.Char" + \ , "Data.Coerce" + \ , "Data.Complex" + \ , "Data.Data" + \ , "Data.Dynamic" + \ , "Data.Either" + \ , "Data.Eq" + \ , "Data.Fixed" + \ , "Data.Foldable" + \ , "Data.Function" + \ , "Data.Functor" + \ , "Data.Functor.Classes" + \ , "Data.Functor.Compose" + \ , "Data.Functor.Const" + \ , "Data.Functor.Identity" + \ , "Data.Functor.Product" + \ , "Data.Functor.Sum" + \ , "Data.IORef" + \ , "Data.Int" + \ , "Data.Ix" + \ , "Data.Kind" + \ , "Data.List" + \ , "Data.List.NonEmpty" + \ , "Data.Maybe" + \ , "Data.Monoid" + \ , "Data.Ord" + \ , "Data.Proxy" + \ , "Data.Ratio" + \ , "Data.STRef" + \ , "Data.STRef.Lazy" + \ , "Data.STRef.Strict" + \ , "Data.Semigroup" + \ , "Data.String" + \ , "Data.Traversable" + \ , "Data.Tuple" + \ , "Data.Type.Bool" + \ , "Data.Type.Coercion" + \ , "Data.Type.Equality" + \ , "Data.Typeable" + \ , "Data.Unique" + \ , "Data.Version" + \ , "Data.Void" + \ , "Data.Word" + \ , "Debug.Trace" + \ , "Foreign" + \ , "Foreign.C" + \ , "Foreign.C.Error" + \ , "Foreign.C.String" + \ , "Foreign.C.Types" + \ , "Foreign.Concurrent" + \ , "Foreign.ForeignPtr" + \ , "Foreign.ForeignPtr.Safe" + \ , "Foreign.ForeignPtr.Unsafe" + \ , "Foreign.Marshal" + \ , "Foreign.Marshal.Alloc" + \ , "Foreign.Marshal.Array" + \ , "Foreign.Marshal.Error" + \ , "Foreign.Marshal.Pool" + \ , "Foreign.Marshal.Safe" + \ , "Foreign.Marshal.Unsafe" + \ , "Foreign.Marshal.Utils" + \ , "Foreign.Ptr" + \ , "Foreign.Safe" + \ , "Foreign.StablePtr" + \ , "Foreign.Storable" + \ , "GHC.Arr" + \ , "GHC.Base" + \ , "GHC.ByteOrder" + \ , "GHC.Char" + \ , "GHC.Clock" + \ , "GHC.Conc" + \ , "GHC.Conc.IO" + \ , "GHC.Conc.Signal" + \ , "GHC.Conc.Sync" + \ , "GHC.ConsoleHandler" + \ , "GHC.Constants" + \ , "GHC.Desugar" + \ , "GHC.Enum" + \ , "GHC.Environment" + \ , "GHC.Err" + \ , "GHC.Event" + \ , "GHC.Exception" + \ , "GHC.ExecutionStack" + \ , "GHC.ExecutionStack.Internal" + \ , "GHC.Exts" + \ , "GHC.Fingerprint" + \ , "GHC.Fingerprint.Type" + \ , "GHC.Float" + \ , "GHC.Float.ConversionUtils" + \ , "GHC.Float.RealFracMethods" + \ , "GHC.Foreign" + \ , "GHC.ForeignPtr" + \ , "GHC.GHCi" + \ , "GHC.Generics" + \ , "GHC.IO" + \ , "GHC.IO.Buffer" + \ , "GHC.IO.BufferedIO" + \ , "GHC.IO.Device" + \ , "GHC.IO.Encoding" + \ , "GHC.IO.Encoding.CodePage" + \ , "GHC.IO.Encoding.Failure" + \ , "GHC.IO.Encoding.Iconv" + \ , "GHC.IO.Encoding.Latin1" + \ , "GHC.IO.Encoding.Types" + \ , "GHC.IO.Encoding.UTF16" + \ , "GHC.IO.Encoding.UTF32" + \ , "GHC.IO.Encoding.UTF8" + \ , "GHC.IO.Exception" + \ , "GHC.IO.FD" + \ , "GHC.IO.Handle" + \ , "GHC.IO.Handle.FD" + \ , "GHC.IO.Handle.Internals" + \ , "GHC.IO.Handle.Lock" + \ , "GHC.IO.Handle.Text" + \ , "GHC.IO.Handle.Types" + \ , "GHC.IO.IOMode" + \ , "GHC.IO.Unsafe" + \ , "GHC.IOArray" + \ , "GHC.IORef" + \ , "GHC.Int" + \ , "GHC.List" + \ , "GHC.MVar" + \ , "GHC.Natural" + \ , "GHC.Num" + \ , "GHC.OldList" + \ , "GHC.OverloadedLabels" + \ , "GHC.PArr" + \ , "GHC.Pack" + \ , "GHC.Profiling" + \ , "GHC.Ptr" + \ , "GHC.RTS.Flags" + \ , "GHC.Read" + \ , "GHC.Real" + \ , "GHC.Records" + \ , "GHC.ST" + \ , "GHC.STRef" + \ , "GHC.Show" + \ , "GHC.Stable" + \ , "GHC.Stack" + \ , "GHC.Stack.CCS" + \ , "GHC.Stack.Types" + \ , "GHC.StaticPtr" + \ , "GHC.Stats" + \ , "GHC.Storable" + \ , "GHC.TopHandler" + \ , "GHC.TypeLits" + \ , "GHC.TypeNats" + \ , "GHC.Unicode" + \ , "GHC.Weak" + \ , "GHC.Word" + \ , "Numeric" + \ , "Numeric.Natural" + \ , "Prelude" + \ , "System.CPUTime" + \ , "System.Console.GetOpt" + \ , "System.Environment" + \ , "System.Environment.Blank" + \ , "System.Exit" + \ , "System.IO" + \ , "System.IO.Error" + \ , "System.IO.Unsafe" + \ , "System.Info" + \ , "System.Mem" + \ , "System.Mem.StableName" + \ , "System.Mem.Weak" + \ , "System.Posix.Internals" + \ , "System.Posix.Types" + \ , "System.Timeout" + \ , "Text.ParserCombinators.ReadP" + \ , "Text.ParserCombinators.ReadPrec" + \ , "Text.Printf" + \ , "Text.Read" + \ , "Text.Read.Lex" + \ , "Text.Show" + \ , "Text.Show.Functions" + \ , "Type.Reflection" + \ , "Type.Reflection.Unsafe" + \ , "Unsafe.Coerce" + \ , "Data.ByteString" + \ , "Data.ByteString.Builder" + \ , "Data.ByteString.Builder.Extra" + \ , "Data.ByteString.Builder.Internal" + \ , "Data.ByteString.Builder.Prim" + \ , "Data.ByteString.Builder.Prim.Internal" + \ , "Data.ByteString.Char8" + \ , "Data.ByteString.Internal" + \ , "Data.ByteString.Lazy" + \ , "Data.ByteString.Lazy.Builder" + \ , "Data.ByteString.Lazy.Builder.ASCII" + \ , "Data.ByteString.Lazy.Builder.Extras" + \ , "Data.ByteString.Lazy.Char8" + \ , "Data.ByteString.Lazy.Internal" + \ , "Data.ByteString.Short" + \ , "Data.ByteString.Short.Internal" + \ , "Data.ByteString.Unsafe" + \ , "Data.CallStack" + \ , "Data.CaseInsensitive" + \ , "Data.CaseInsensitive.Unsafe" + \ , "Network.CGI" + \ , "Network.CGI.Compat" + \ , "Network.CGI.Cookie" + \ , "Network.CGI.Monad" + \ , "Network.CGI.Protocol" + \ , "Data.Graph" + \ , "Data.IntMap" + \ , "Data.IntMap.Internal" + \ , "Data.IntMap.Internal.Debug" + \ , "Data.IntMap.Lazy" + \ , "Data.IntMap.Merge.Lazy" + \ , "Data.IntMap.Merge.Strict" + \ , "Data.IntMap.Strict" + \ , "Data.IntSet" + \ , "Data.IntSet.Internal" + \ , "Data.Map" + \ , "Data.Map.Internal" + \ , "Data.Map.Internal.Debug" + \ , "Data.Map.Lazy" + \ , "Data.Map.Lazy.Merge" + \ , "Data.Map.Merge.Lazy" + \ , "Data.Map.Merge.Strict" + \ , "Data.Map.Strict" + \ , "Data.Map.Strict.Internal" + \ , "Data.Map.Strict.Merge" + \ , "Data.Sequence" + \ , "Data.Sequence.Internal" + \ , "Data.Sequence.Internal.Sorting" + \ , "Data.Set" + \ , "Data.Set.Internal" + \ , "Data.Tree" + \ , "Utils.Containers.Internal.BitQueue" + \ , "Utils.Containers.Internal.BitUtil" + \ , "Utils.Containers.Internal.StrictPair" + \ , "Control.DeepSeq" + \ , "System.Directory" + \ , "System.Directory.Internal" + \ , "System.Directory.Internal.Prelude" + \ , "Control.Monad.Catch" + \ , "Control.Monad.Catch.Pure" + \ , "Control.Exception.Extensible" + \ , "Data.Graph.Inductive" + \ , "Data.Graph.Inductive.Basic" + \ , "Data.Graph.Inductive.Example" + \ , "Data.Graph.Inductive.Graph" + \ , "Data.Graph.Inductive.Internal.Heap" + \ , "Data.Graph.Inductive.Internal.Queue" + \ , "Data.Graph.Inductive.Internal.RootPath" + \ , "Data.Graph.Inductive.Internal.Thread" + \ , "Data.Graph.Inductive.Monad" + \ , "Data.Graph.Inductive.Monad.IOArray" + \ , "Data.Graph.Inductive.Monad.STArray" + \ , "Data.Graph.Inductive.NodeMap" + \ , "Data.Graph.Inductive.PatriciaTree" + \ , "Data.Graph.Inductive.Query" + \ , "Data.Graph.Inductive.Query.ArtPoint" + \ , "Data.Graph.Inductive.Query.BCC" + \ , "Data.Graph.Inductive.Query.BFS" + \ , "Data.Graph.Inductive.Query.DFS" + \ , "Data.Graph.Inductive.Query.Dominators" + \ , "Data.Graph.Inductive.Query.GVD" + \ , "Data.Graph.Inductive.Query.Indep" + \ , "Data.Graph.Inductive.Query.MST" + \ , "Data.Graph.Inductive.Query.MaxFlow" + \ , "Data.Graph.Inductive.Query.MaxFlow2" + \ , "Data.Graph.Inductive.Query.Monad" + \ , "Data.Graph.Inductive.Query.SP" + \ , "Data.Graph.Inductive.Query.TransClos" + \ , "Data.Graph.Inductive.Tree" + \ , "System.FilePath" + \ , "System.FilePath.Posix" + \ , "System.FilePath.Windows" + \ , "Numeric.Fixed" + \ , "Annotations" + \ , "ApiAnnotation" + \ , "Ar" + \ , "AsmCodeGen" + \ , "AsmUtils" + \ , "Avail" + \ , "Bag" + \ , "BasicTypes" + \ , "BinFingerprint" + \ , "BinIface" + \ , "Binary" + \ , "Bitmap" + \ , "BkpSyn" + \ , "BlockId" + \ , "BooleanFormula" + \ , "BufWrite" + \ , "BuildTyCl" + \ , "ByteCodeAsm" + \ , "ByteCodeGen" + \ , "ByteCodeInstr" + \ , "ByteCodeItbls" + \ , "ByteCodeLink" + \ , "ByteCodeTypes" + \ , "CLabel" + \ , "CPrim" + \ , "CSE" + \ , "CallArity" + \ , "CgUtils" + \ , "Check" + \ , "Class" + \ , "CmdLineParser" + \ , "Cmm" + \ , "CmmBuildInfoTables" + \ , "CmmCallConv" + \ , "CmmCommonBlockElim" + \ , "CmmContFlowOpt" + \ , "CmmExpr" + \ , "CmmImplementSwitchPlans" + \ , "CmmInfo" + \ , "CmmLayoutStack" + \ , "CmmLex" + \ , "CmmLint" + \ , "CmmLive" + \ , "CmmMachOp" + \ , "CmmMonad" + \ , "CmmNode" + \ , "CmmOpt" + \ , "CmmParse" + \ , "CmmPipeline" + \ , "CmmProcPoint" + \ , "CmmSink" + \ , "CmmSwitch" + \ , "CmmType" + \ , "CmmUtils" + \ , "CoAxiom" + \ , "CodeGen.Platform" + \ , "CodeGen.Platform.ARM" + \ , "CodeGen.Platform.ARM64" + \ , "CodeGen.Platform.NoRegs" + \ , "CodeGen.Platform.PPC" + \ , "CodeGen.Platform.PPC_Darwin" + \ , "CodeGen.Platform.SPARC" + \ , "CodeGen.Platform.X86" + \ , "CodeGen.Platform.X86_64" + \ , "CodeOutput" + \ , "Coercion" + \ , "ConLike" + \ , "Config" + \ , "Constants" + \ , "Convert" + \ , "CoreArity" + \ , "CoreFVs" + \ , "CoreLint" + \ , "CoreMonad" + \ , "CoreOpt" + \ , "CorePrep" + \ , "CoreSeq" + \ , "CoreStats" + \ , "CoreSubst" + \ , "CoreSyn" + \ , "CoreTidy" + \ , "CoreToStg" + \ , "CoreUnfold" + \ , "CoreUtils" + \ , "CostCentre" + \ , "Coverage" + \ , "Ctype" + \ , "DataCon" + \ , "Debug" + \ , "Debugger" + \ , "DebuggerUtils" + \ , "Demand" + \ , "Desugar" + \ , "Digraph" + \ , "DmdAnal" + \ , "DriverBkp" + \ , "DriverMkDepend" + \ , "DriverPhases" + \ , "DriverPipeline" + \ , "DsArrows" + \ , "DsBinds" + \ , "DsCCall" + \ , "DsExpr" + \ , "DsForeign" + \ , "DsGRHSs" + \ , "DsListComp" + \ , "DsMeta" + \ , "DsMonad" + \ , "DsUsage" + \ , "DsUtils" + \ , "Dwarf" + \ , "Dwarf.Constants" + \ , "Dwarf.Types" + \ , "DynFlags" + \ , "DynamicLoading" + \ , "Elf" + \ , "Encoding" + \ , "EnumSet" + \ , "ErrUtils" + \ , "Exception" + \ , "Exitify" + \ , "FV" + \ , "FamInst" + \ , "FamInstEnv" + \ , "FastFunctions" + \ , "FastMutInt" + \ , "FastString" + \ , "FastStringEnv" + \ , "FieldLabel" + \ , "FileCleanup" + \ , "Finder" + \ , "Fingerprint" + \ , "FiniteMap" + \ , "FlagChecker" + \ , "FloatIn" + \ , "FloatOut" + \ , "ForeignCall" + \ , "Format" + \ , "FunDeps" + \ , "GHC" + \ , "GHCi" + \ , "GhcMake" + \ , "GhcMonad" + \ , "GhcPlugins" + \ , "GraphBase" + \ , "GraphColor" + \ , "GraphOps" + \ , "GraphPpr" + \ , "HaddockUtils" + \ , "HeaderInfo" + \ , "Hooks" + \ , "Hoopl.Block" + \ , "Hoopl.Collections" + \ , "Hoopl.Dataflow" + \ , "Hoopl.Graph" + \ , "Hoopl.Label" + \ , "Hoopl.Unique" + \ , "HsBinds" + \ , "HsDecls" + \ , "HsDoc" + \ , "HsDumpAst" + \ , "HsExpr" + \ , "HsExtension" + \ , "HsImpExp" + \ , "HsLit" + \ , "HsPat" + \ , "HsSyn" + \ , "HsTypes" + \ , "HsUtils" + \ , "HscMain" + \ , "HscStats" + \ , "HscTypes" + \ , "IOEnv" + \ , "Id" + \ , "IdInfo" + \ , "IfaceEnv" + \ , "IfaceSyn" + \ , "IfaceType" + \ , "Inst" + \ , "InstEnv" + \ , "Instruction" + \ , "InteractiveEval" + \ , "InteractiveEvalTypes" + \ , "Json" + \ , "Kind" + \ , "KnownUniques" + \ , "Lexeme" + \ , "Lexer" + \ , "LiberateCase" + \ , "Linker" + \ , "ListSetOps" + \ , "ListT" + \ , "Literal" + \ , "Llvm" + \ , "Llvm.AbsSyn" + \ , "Llvm.MetaData" + \ , "Llvm.PpLlvm" + \ , "Llvm.Types" + \ , "LlvmCodeGen" + \ , "LlvmCodeGen.Base" + \ , "LlvmCodeGen.CodeGen" + \ , "LlvmCodeGen.Data" + \ , "LlvmCodeGen.Ppr" + \ , "LlvmCodeGen.Regs" + \ , "LlvmMangler" + \ , "LoadIface" + \ , "Match" + \ , "MatchCon" + \ , "MatchLit" + \ , "Maybes" + \ , "MkCore" + \ , "MkGraph" + \ , "MkId" + \ , "MkIface" + \ , "Module" + \ , "MonadUtils" + \ , "NCGMonad" + \ , "Name" + \ , "NameCache" + \ , "NameEnv" + \ , "NameSet" + \ , "NameShape" + \ , "OccName" + \ , "OccurAnal" + \ , "OptCoercion" + \ , "OrdList" + \ , "Outputable" + \ , "PIC" + \ , "PPC.CodeGen" + \ , "PPC.Cond" + \ , "PPC.Instr" + \ , "PPC.Ppr" + \ , "PPC.RegInfo" + \ , "PPC.Regs" + \ , "PackageConfig" + \ , "Packages" + \ , "Pair" + \ , "Panic" + \ , "Parser" + \ , "PatSyn" + \ , "PipelineMonad" + \ , "PlaceHolder" + \ , "Platform" + \ , "PlatformConstants" + \ , "Plugins" + \ , "PmExpr" + \ , "PprBase" + \ , "PprC" + \ , "PprCmm" + \ , "PprCmmDecl" + \ , "PprCmmExpr" + \ , "PprColour" + \ , "PprCore" + \ , "PprTyThing" + \ , "PrelInfo" + \ , "PrelNames" + \ , "PrelRules" + \ , "Pretty" + \ , "PrimOp" + \ , "ProfInit" + \ , "RdrHsSyn" + \ , "RdrName" + \ , "Reg" + \ , "RegAlloc.Graph.ArchBase" + \ , "RegAlloc.Graph.ArchX86" + \ , "RegAlloc.Graph.Coalesce" + \ , "RegAlloc.Graph.Main" + \ , "RegAlloc.Graph.Spill" + \ , "RegAlloc.Graph.SpillClean" + \ , "RegAlloc.Graph.SpillCost" + \ , "RegAlloc.Graph.Stats" + \ , "RegAlloc.Graph.TrivColorable" + \ , "RegAlloc.Linear.Base" + \ , "RegAlloc.Linear.FreeRegs" + \ , "RegAlloc.Linear.JoinToTargets" + \ , "RegAlloc.Linear.Main" + \ , "RegAlloc.Linear.PPC.FreeRegs" + \ , "RegAlloc.Linear.SPARC.FreeRegs" + \ , "RegAlloc.Linear.StackMap" + \ , "RegAlloc.Linear.State" + \ , "RegAlloc.Linear.Stats" + \ , "RegAlloc.Linear.X86.FreeRegs" + \ , "RegAlloc.Linear.X86_64.FreeRegs" + \ , "RegAlloc.Liveness" + \ , "RegClass" + \ , "RepType" + \ , "RnBinds" + \ , "RnEnv" + \ , "RnExpr" + \ , "RnFixity" + \ , "RnHsDoc" + \ , "RnModIface" + \ , "RnNames" + \ , "RnPat" + \ , "RnSource" + \ , "RnSplice" + \ , "RnTypes" + \ , "RnUnbound" + \ , "RnUtils" + \ , "RtClosureInspect" + \ , "Rules" + \ , "SAT" + \ , "SMRep" + \ , "SPARC.AddrMode" + \ , "SPARC.Base" + \ , "SPARC.CodeGen" + \ , "SPARC.CodeGen.Amode" + \ , "SPARC.CodeGen.Base" + \ , "SPARC.CodeGen.CondCode" + \ , "SPARC.CodeGen.Expand" + \ , "SPARC.CodeGen.Gen32" + \ , "SPARC.CodeGen.Gen64" + \ , "SPARC.CodeGen.Sanity" + \ , "SPARC.Cond" + \ , "SPARC.Imm" + \ , "SPARC.Instr" + \ , "SPARC.Ppr" + \ , "SPARC.Regs" + \ , "SPARC.ShortcutJump" + \ , "SPARC.Stack" + \ , "SetLevels" + \ , "SimplCore" + \ , "SimplEnv" + \ , "SimplMonad" + \ , "SimplStg" + \ , "SimplUtils" + \ , "Simplify" + \ , "SpecConstr" + \ , "Specialise" + \ , "SrcLoc" + \ , "State" + \ , "StaticPtrTable" + \ , "StgCmm" + \ , "StgCmmArgRep" + \ , "StgCmmBind" + \ , "StgCmmClosure" + \ , "StgCmmCon" + \ , "StgCmmEnv" + \ , "StgCmmExpr" + \ , "StgCmmExtCode" + \ , "StgCmmForeign" + \ , "StgCmmHeap" + \ , "StgCmmHpc" + \ , "StgCmmLayout" + \ , "StgCmmMonad" + \ , "StgCmmPrim" + \ , "StgCmmProf" + \ , "StgCmmTicky" + \ , "StgCmmUtils" + \ , "StgCse" + \ , "StgLint" + \ , "StgStats" + \ , "StgSyn" + \ , "Stream" + \ , "StringBuffer" + \ , "SysTools" + \ , "SysTools.BaseDir" + \ , "SysTools.ExtraObj" + \ , "SysTools.Info" + \ , "SysTools.Process" + \ , "SysTools.Tasks" + \ , "SysTools.Terminal" + \ , "THNames" + \ , "TargetReg" + \ , "TcAnnotations" + \ , "TcArrows" + \ , "TcBackpack" + \ , "TcBinds" + \ , "TcCanonical" + \ , "TcClassDcl" + \ , "TcDefaults" + \ , "TcDeriv" + \ , "TcDerivInfer" + \ , "TcDerivUtils" + \ , "TcEnv" + \ , "TcErrors" + \ , "TcEvidence" + \ , "TcExpr" + \ , "TcFlatten" + \ , "TcForeign" + \ , "TcGenDeriv" + \ , "TcGenFunctor" + \ , "TcGenGenerics" + \ , "TcHsSyn" + \ , "TcHsType" + \ , "TcIface" + \ , "TcInstDcls" + \ , "TcInteract" + \ , "TcMType" + \ , "TcMatches" + \ , "TcPat" + \ , "TcPatSyn" + \ , "TcPluginM" + \ , "TcRnDriver" + \ , "TcRnExports" + \ , "TcRnMonad" + \ , "TcRnTypes" + \ , "TcRules" + \ , "TcSMonad" + \ , "TcSigs" + \ , "TcSimplify" + \ , "TcSplice" + \ , "TcTyClsDecls" + \ , "TcTyDecls" + \ , "TcType" + \ , "TcTypeNats" + \ , "TcTypeable" + \ , "TcUnify" + \ , "TcValidity" + \ , "TidyPgm" + \ , "TmOracle" + \ , "ToIface" + \ , "TrieMap" + \ , "TyCoRep" + \ , "TyCon" + \ , "Type" + \ , "TysPrim" + \ , "TysWiredIn" + \ , "UnVarGraph" + \ , "UnariseStg" + \ , "Unify" + \ , "UniqDFM" + \ , "UniqDSet" + \ , "UniqFM" + \ , "UniqMap" + \ , "UniqSet" + \ , "UniqSupply" + \ , "Unique" + \ , "Util" + \ , "Var" + \ , "VarEnv" + \ , "VarSet" + \ , "Vectorise" + \ , "Vectorise.Builtins" + \ , "Vectorise.Builtins.Base" + \ , "Vectorise.Builtins.Initialise" + \ , "Vectorise.Convert" + \ , "Vectorise.Env" + \ , "Vectorise.Exp" + \ , "Vectorise.Generic.Description" + \ , "Vectorise.Generic.PADict" + \ , "Vectorise.Generic.PAMethods" + \ , "Vectorise.Generic.PData" + \ , "Vectorise.Monad" + \ , "Vectorise.Monad.Base" + \ , "Vectorise.Monad.Global" + \ , "Vectorise.Monad.InstEnv" + \ , "Vectorise.Monad.Local" + \ , "Vectorise.Monad.Naming" + \ , "Vectorise.Type.Classify" + \ , "Vectorise.Type.Env" + \ , "Vectorise.Type.TyConDecl" + \ , "Vectorise.Type.Type" + \ , "Vectorise.Utils" + \ , "Vectorise.Utils.Base" + \ , "Vectorise.Utils.Closure" + \ , "Vectorise.Utils.Hoisting" + \ , "Vectorise.Utils.PADict" + \ , "Vectorise.Utils.Poly" + \ , "Vectorise.Var" + \ , "Vectorise.Vect" + \ , "WorkWrap" + \ , "WwLib" + \ , "X86.CodeGen" + \ , "X86.Cond" + \ , "X86.Instr" + \ , "X86.Ppr" + \ , "X86.RegInfo" + \ , "X86.Regs" + \ , "Numeric.Half" + \ , "Data.Hashable" + \ , "Data.Hashable.Lifted" + \ , "Language.Haskell.Lexer" + \ , "Language.Haskell.ParseMonad" + \ , "Language.Haskell.ParseUtils" + \ , "Language.Haskell.Parser" + \ , "Language.Haskell.Pretty" + \ , "Language.Haskell.Syntax" + \ , "Control.Monad" + \ , "Data.Array" + \ , "Data.Bits" + \ , "Data.Char" + \ , "Data.Complex" + \ , "Data.Int" + \ , "Data.Ix" + \ , "Data.List" + \ , "Data.Maybe" + \ , "Data.Ratio" + \ , "Data.Word" + \ , "Foreign" + \ , "Foreign.C" + \ , "Foreign.C.Error" + \ , "Foreign.C.String" + \ , "Foreign.C.Types" + \ , "Foreign.ForeignPtr" + \ , "Foreign.Marshal" + \ , "Foreign.Marshal.Alloc" + \ , "Foreign.Marshal.Array" + \ , "Foreign.Marshal.Error" + \ , "Foreign.Marshal.Utils" + \ , "Foreign.Ptr" + \ , "Foreign.StablePtr" + \ , "Foreign.Storable" + \ , "Numeric" + \ , "Prelude" + \ , "System.Environment" + \ , "System.Exit" + \ , "System.IO" + \ , "System.IO.Error" + \ , "Array" + \ , "Bits" + \ , "CError" + \ , "CForeign" + \ , "CPUTime" + \ , "CString" + \ , "CTypes" + \ , "Char" + \ , "Complex" + \ , "Directory" + \ , "ForeignPtr" + \ , "IO" + \ , "Int" + \ , "Ix" + \ , "List" + \ , "Locale" + \ , "MarshalAlloc" + \ , "MarshalArray" + \ , "MarshalError" + \ , "MarshalUtils" + \ , "Maybe" + \ , "Monad" + \ , "Numeric" + \ , "Prelude" + \ , "Ptr" + \ , "Random" + \ , "Ratio" + \ , "StablePtr" + \ , "Storable" + \ , "System" + \ , "Time" + \ , "Word" + \ , "Trace.Hpc.Mix" + \ , "Trace.Hpc.Reflect" + \ , "Trace.Hpc.Tix" + \ , "Trace.Hpc.Util" + \ , "Text.Html" + \ , "Text.Html.BlockTable" + \ , "GHC.Integer.Logarithms.Compat" + \ , "Math.NumberTheory.Logarithms" + \ , "Math.NumberTheory.Powers.Integer" + \ , "Math.NumberTheory.Powers.Natural" + \ , "Control.Monad.Cont" + \ , "Control.Monad.Cont.Class" + \ , "Control.Monad.Error" + \ , "Control.Monad.Error.Class" + \ , "Control.Monad.Except" + \ , "Control.Monad.Identity" + \ , "Control.Monad.List" + \ , "Control.Monad.RWS" + \ , "Control.Monad.RWS.Class" + \ , "Control.Monad.RWS.Lazy" + \ , "Control.Monad.RWS.Strict" + \ , "Control.Monad.Reader" + \ , "Control.Monad.Reader.Class" + \ , "Control.Monad.State" + \ , "Control.Monad.State.Class" + \ , "Control.Monad.State.Lazy" + \ , "Control.Monad.State.Strict" + \ , "Control.Monad.Trans" + \ , "Control.Monad.Writer" + \ , "Control.Monad.Writer.Class" + \ , "Control.Monad.Writer.Lazy" + \ , "Control.Monad.Writer.Strict" + \ , "Network.Multipart" + \ , "Network.Multipart.Header" + \ , "Network" + \ , "Network.BSD" + \ , "Network.Socket" + \ , "Network.Socket.ByteString" + \ , "Network.Socket.ByteString.Lazy" + \ , "Network.Socket.Internal" + \ , "Network.URI" + \ , "System.Locale" + \ , "System.Time" + \ , "Control.Parallel" + \ , "Control.Parallel.Strategies" + \ , "Control.Seq" + \ , "Text.Parsec" + \ , "Text.Parsec.ByteString" + \ , "Text.Parsec.ByteString.Lazy" + \ , "Text.Parsec.Char" + \ , "Text.Parsec.Combinator" + \ , "Text.Parsec.Error" + \ , "Text.Parsec.Expr" + \ , "Text.Parsec.Language" + \ , "Text.Parsec.Perm" + \ , "Text.Parsec.Pos" + \ , "Text.Parsec.Prim" + \ , "Text.Parsec.String" + \ , "Text.Parsec.Text" + \ , "Text.Parsec.Text.Lazy" + \ , "Text.Parsec.Token" + \ , "Text.ParserCombinators.Parsec" + \ , "Text.ParserCombinators.Parsec.Char" + \ , "Text.ParserCombinators.Parsec.Combinator" + \ , "Text.ParserCombinators.Parsec.Error" + \ , "Text.ParserCombinators.Parsec.Expr" + \ , "Text.ParserCombinators.Parsec.Language" + \ , "Text.ParserCombinators.Parsec.Perm" + \ , "Text.ParserCombinators.Parsec.Pos" + \ , "Text.ParserCombinators.Parsec.Prim" + \ , "Text.ParserCombinators.Parsec.Token" + \ , "Text.PrettyPrint" + \ , "Text.PrettyPrint.Annotated" + \ , "Text.PrettyPrint.Annotated.HughesPJ" + \ , "Text.PrettyPrint.Annotated.HughesPJClass" + \ , "Text.PrettyPrint.HughesPJ" + \ , "Text.PrettyPrint.HughesPJClass" + \ , "Control.Monad.Primitive" + \ , "Data.Primitive" + \ , "Data.Primitive.Addr" + \ , "Data.Primitive.Array" + \ , "Data.Primitive.ByteArray" + \ , "Data.Primitive.MVar" + \ , "Data.Primitive.MachDeps" + \ , "Data.Primitive.MutVar" + \ , "Data.Primitive.PrimArray" + \ , "Data.Primitive.Ptr" + \ , "Data.Primitive.SmallArray" + \ , "Data.Primitive.Types" + \ , "Data.Primitive.UnliftedArray" + \ , "System.Cmd" + \ , "System.Process" + \ , "System.Process.Internals" + \ , "System.Random" + \ , "Text.Regex.Base" + \ , "Text.Regex.Base.Context" + \ , "Text.Regex.Base.Impl" + \ , "Text.Regex.Base.RegexLike" + \ , "Text.Regex" + \ , "Text.Regex.Posix" + \ , "Text.Regex.Posix.ByteString" + \ , "Text.Regex.Posix.ByteString.Lazy" + \ , "Text.Regex.Posix.Sequence" + \ , "Text.Regex.Posix.String" + \ , "Text.Regex.Posix.Wrap" + \ , "Data.ByteString.Builder.Scientific" + \ , "Data.Scientific" + \ , "Data.Text.Lazy.Builder.Scientific" + \ , "Data.List.Split" + \ , "Data.List.Split.Internals" + \ , "Control.Concurrent.STM" + \ , "Control.Concurrent.STM.TArray" + \ , "Control.Concurrent.STM.TBQueue" + \ , "Control.Concurrent.STM.TChan" + \ , "Control.Concurrent.STM.TMVar" + \ , "Control.Concurrent.STM.TQueue" + \ , "Control.Concurrent.STM.TSem" + \ , "Control.Concurrent.STM.TVar" + \ , "Control.Monad.STM" + \ , "Data.Generics" + \ , "Data.Generics.Aliases" + \ , "Data.Generics.Basics" + \ , "Data.Generics.Builders" + \ , "Data.Generics.Instances" + \ , "Data.Generics.Schemes" + \ , "Data.Generics.Text" + \ , "Data.Generics.Twins" + \ , "Generics.SYB" + \ , "Generics.SYB.Aliases" + \ , "Generics.SYB.Basics" + \ , "Generics.SYB.Builders" + \ , "Generics.SYB.Instances" + \ , "Generics.SYB.Schemes" + \ , "Generics.SYB.Text" + \ , "Generics.SYB.Twins" + \ , "Language.Haskell.TH" + \ , "Language.Haskell.TH.LanguageExtensions" + \ , "Language.Haskell.TH.Lib" + \ , "Language.Haskell.TH.Lib.Internal" + \ , "Language.Haskell.TH.Ppr" + \ , "Language.Haskell.TH.PprLib" + \ , "Language.Haskell.TH.Quote" + \ , "Language.Haskell.TH.Syntax" + \ , "Data.Text" + \ , "Data.Text.Array" + \ , "Data.Text.Encoding" + \ , "Data.Text.Encoding.Error" + \ , "Data.Text.Foreign" + \ , "Data.Text.IO" + \ , "Data.Text.Internal" + \ , "Data.Text.Internal.Builder" + \ , "Data.Text.Internal.Builder.Functions" + \ , "Data.Text.Internal.Builder.Int.Digits" + \ , "Data.Text.Internal.Builder.RealFloat.Functions" + \ , "Data.Text.Internal.Encoding.Fusion" + \ , "Data.Text.Internal.Encoding.Fusion.Common" + \ , "Data.Text.Internal.Encoding.Utf16" + \ , "Data.Text.Internal.Encoding.Utf32" + \ , "Data.Text.Internal.Encoding.Utf8" + \ , "Data.Text.Internal.Functions" + \ , "Data.Text.Internal.Fusion" + \ , "Data.Text.Internal.Fusion.CaseMapping" + \ , "Data.Text.Internal.Fusion.Common" + \ , "Data.Text.Internal.Fusion.Size" + \ , "Data.Text.Internal.Fusion.Types" + \ , "Data.Text.Internal.IO" + \ , "Data.Text.Internal.Lazy" + \ , "Data.Text.Internal.Lazy.Encoding.Fusion" + \ , "Data.Text.Internal.Lazy.Fusion" + \ , "Data.Text.Internal.Lazy.Search" + \ , "Data.Text.Internal.Private" + \ , "Data.Text.Internal.Read" + \ , "Data.Text.Internal.Search" + \ , "Data.Text.Internal.Unsafe" + \ , "Data.Text.Internal.Unsafe.Char" + \ , "Data.Text.Internal.Unsafe.Shift" + \ , "Data.Text.Lazy" + \ , "Data.Text.Lazy.Builder" + \ , "Data.Text.Lazy.Builder.Int" + \ , "Data.Text.Lazy.Builder.RealFloat" + \ , "Data.Text.Lazy.Encoding" + \ , "Data.Text.Lazy.IO" + \ , "Data.Text.Lazy.Internal" + \ , "Data.Text.Lazy.Read" + \ , "Data.Text.Read" + \ , "Data.Text.Unsafe" + \ , "System.Random.TF" + \ , "System.Random.TF.Gen" + \ , "System.Random.TF.Init" + \ , "System.Random.TF.Instances" + \ , "Data.Time" + \ , "Data.Time.Calendar" + \ , "Data.Time.Calendar.Easter" + \ , "Data.Time.Calendar.Julian" + \ , "Data.Time.Calendar.MonthDay" + \ , "Data.Time.Calendar.OrdinalDate" + \ , "Data.Time.Calendar.WeekDate" + \ , "Data.Time.Clock" + \ , "Data.Time.Clock.POSIX" + \ , "Data.Time.Clock.System" + \ , "Data.Time.Clock.TAI" + \ , "Data.Time.Format" + \ , "Data.Time.LocalTime" + \ , "Control.Applicative.Backwards" + \ , "Control.Applicative.Lift" + \ , "Control.Monad.Signatures" + \ , "Control.Monad.Trans.Accum" + \ , "Control.Monad.Trans.Class" + \ , "Control.Monad.Trans.Cont" + \ , "Control.Monad.Trans.Error" + \ , "Control.Monad.Trans.Except" + \ , "Control.Monad.Trans.Identity" + \ , "Control.Monad.Trans.List" + \ , "Control.Monad.Trans.Maybe" + \ , "Control.Monad.Trans.RWS" + \ , "Control.Monad.Trans.RWS.Lazy" + \ , "Control.Monad.Trans.RWS.Strict" + \ , "Control.Monad.Trans.Reader" + \ , "Control.Monad.Trans.Select" + \ , "Control.Monad.Trans.State" + \ , "Control.Monad.Trans.State.Lazy" + \ , "Control.Monad.Trans.State.Strict" + \ , "Control.Monad.Trans.Writer" + \ , "Control.Monad.Trans.Writer.Lazy" + \ , "Control.Monad.Trans.Writer.Strict" + \ , "Data.Functor.Constant" + \ , "Data.Functor.Reverse" + \ , "Control.Monad.Trans.Instances" + \ , "Data.Functor.Classes.Generic" + \ , "Data.Functor.Classes.Generic.Internal" + \ , "System.Posix" + \ , "System.Posix.ByteString" + \ , "System.Posix.ByteString.FilePath" + \ , "System.Posix.Directory" + \ , "System.Posix.Directory.ByteString" + \ , "System.Posix.DynamicLinker" + \ , "System.Posix.DynamicLinker.ByteString" + \ , "System.Posix.DynamicLinker.Module" + \ , "System.Posix.DynamicLinker.Module.ByteString" + \ , "System.Posix.DynamicLinker.Prim" + \ , "System.Posix.Env" + \ , "System.Posix.Env.ByteString" + \ , "System.Posix.Error" + \ , "System.Posix.Fcntl" + \ , "System.Posix.Files" + \ , "System.Posix.Files.ByteString" + \ , "System.Posix.IO" + \ , "System.Posix.IO.ByteString" + \ , "System.Posix.Process" + \ , "System.Posix.Process.ByteString" + \ , "System.Posix.Process.Internals" + \ , "System.Posix.Resource" + \ , "System.Posix.Semaphore" + \ , "System.Posix.SharedMem" + \ , "System.Posix.Signals" + \ , "System.Posix.Signals.Exts" + \ , "System.Posix.Temp" + \ , "System.Posix.Temp.ByteString" + \ , "System.Posix.Terminal" + \ , "System.Posix.Terminal.ByteString" + \ , "System.Posix.Time" + \ , "System.Posix.Unistd" + \ , "System.Posix.User" + \ , "Data.HashMap.Lazy" + \ , "Data.HashMap.Strict" + \ , "Data.HashSet" + \ , "Data.Vector" + \ , "Data.Vector.Fusion.Bundle" + \ , "Data.Vector.Fusion.Bundle.Monadic" + \ , "Data.Vector.Fusion.Bundle.Size" + \ , "Data.Vector.Fusion.Stream.Monadic" + \ , "Data.Vector.Fusion.Util" + \ , "Data.Vector.Generic" + \ , "Data.Vector.Generic.Base" + \ , "Data.Vector.Generic.Mutable" + \ , "Data.Vector.Generic.Mutable.Base" + \ , "Data.Vector.Generic.New" + \ , "Data.Vector.Internal.Check" + \ , "Data.Vector.Mutable" + \ , "Data.Vector.Primitive" + \ , "Data.Vector.Primitive.Mutable" + \ , "Data.Vector.Storable" + \ , "Data.Vector.Storable.Internal" + \ , "Data.Vector.Storable.Mutable" + \ , "Data.Vector.Unboxed" + \ , "Data.Vector.Unboxed.Base" + \ , "Data.Vector.Unboxed.Mutable" + \ , "Text.XHtml" + \ , "Text.XHtml.Debug" + \ , "Text.XHtml.Frameset" + \ , "Text.XHtml.Strict" + \ , "Text.XHtml.Table" + \ , "Text.XHtml.Transitional" + \ , "Codec.Compression.GZip" + \ , "Codec.Compression.Zlib" + \ , "Codec.Compression.Zlib.Internal" + \ , "Codec.Compression.Zlib.Raw" + \ , "Web.Spock" + \ , "Web.Spock.Config" + \ , "Web.Spock.Internal.SessionManager" + \ , "Web.Spock.Internal.SessionVault" + \ , "Web.Spock.SessionActions" + \ , "Web.Spock.Api" + \ , "Web.Spock.Auth" + \ , "Web.Spock.Action" + \ , "Web.Spock.Core" + \ , "Web.Spock.Internal.Cookies" + \ , "Web.Spock.Internal.Util" + \ , "Web.Spock.Routing" + \ , "Web.Spock.Digestive" + \ , "Database.Esqueleto" + \ , "Database.Esqueleto.Internal.Language" + \ , "Database.Esqueleto.Internal.Sql" + \ , "Database.Esqueleto.PostgreSQL" + \ , "Database.Persist" + \ , "Database.Persist.Class" + \ , "Database.Persist.Quasi" + \ , "Database.Persist.Sql" + \ , "Database.Persist.Sql.Types.Internal" + \ , "Database.Persist.Sql.Util" + \ , "Database.Persist.Types" + \ , "Database.Persist.MySQL" + \ , "Database.Persist.Postgresql" + \ , "Database.Persist.Postgresql.JSON" + \ , "Database.Persist.Redis" + \ , "Database.Persist.Sqlite" + \ , "Database.Sqlite" + \ , "Servant.API" + \ , "Servant.API.Alternative" + \ , "Servant.API.BasicAuth" + \ , "Servant.API.Capture" + \ , "Servant.API.ContentTypes" + \ , "Servant.API.Description" + \ , "Servant.API.Empty" + \ , "Servant.API.Experimental.Auth" + \ , "Servant.API.Generic" + \ , "Servant.API.Header" + \ , "Servant.API.HttpVersion" + \ , "Servant.API.Internal.Test.ComprehensiveAPI" + \ , "Servant.API.IsSecure" + \ , "Servant.API.Modifiers" + \ , "Servant.API.QueryParam" + \ , "Servant.API.Raw" + \ , "Servant.API.RemoteHost" + \ , "Servant.API.ReqBody" + \ , "Servant.API.ResponseHeaders" + \ , "Servant.API.Stream" + \ , "Servant.API.Sub" + \ , "Servant.API.TypeLevel" + \ , "Servant.API.Vault" + \ , "Servant.API.Verbs" + \ , "Servant.API.WithNamedContext" + \ , "Servant.Links" + \ , "Servant.Utils.Enter" + \ , "Servant.Utils.Links" + \ , "Servant.Auth" + \ , "Servant.Client" + \ , "Servant.Client.Internal.HttpClient" + \ , "Servant" + \ , "Servant.Server" + \ , "Servant.Server.Experimental.Auth" + \ , "Servant.Server.Generic" + \ , "Servant.Server.Internal" + \ , "Servant.Server.Internal.BasicAuth" + \ , "Servant.Server.Internal.Context" + \ , "Servant.Server.Internal.Handler" + \ , "Servant.Server.Internal.Router" + \ , "Servant.Server.Internal.RoutingApplication" + \ , "Servant.Server.Internal.ServantErr" + \ , "Servant.Server.StaticFiles" + \ , "Servant.Utils.StaticFiles" + \ ] diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim index 9c518cb9d..34eab9670 100644 --- a/runtime/autoload/tar.vim +++ b/runtime/autoload/tar.vim @@ -155,7 +155,7 @@ fun! tar#Browse(tarfile) let curlast= line("$") if tarfile =~# '\.\(gz\|tgz\)$' " call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") - exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " + exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " elseif tarfile =~# '\.lrp' " call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ") exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - " @@ -292,7 +292,7 @@ fun! tar#Read(fname,mode) exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp elseif tarfile =~# '\.\(gz\|tgz\)$' " call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1)) - exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp + exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp elseif tarfile =~# '\.lrp$' " call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp) exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 2e5bf7f3d..e83839563 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -954,6 +954,13 @@ These three can be repeated and mixed. Examples: expr8 *expr8* ----- +This expression is either |expr9| or a sequence of the alternatives below, +in any order. E.g., these are all possible: + expr9[expr1].name + expr9.name[expr1] + expr9(expr1, ...)[expr1].name + + expr8[expr1] item of String or |List| *expr-[]* *E111* *E909* *subscript* If expr8 is a Number or String this results in a String that contains the @@ -8014,6 +8021,7 @@ swapinfo({fname}) swapinfo() mtime last modification time in seconds inode Optional: INODE number of the file dirty 1 if file was modified, 0 if not + Note that "user" and "host" are truncated to at most 39 bytes. In case of failure an "error" item is added with the reason: Cannot open file: file not found or in accessible Cannot read file: cannot read first block diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index b08e3d73f..da3f260d1 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -638,11 +638,31 @@ By default the following options are set, in accordance with PEP8: > setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 -To disable this behaviour, set the following variable in your vimrc: > +To disable this behavior, set the following variable in your vimrc: > let g:python_recommended_style = 0 +R MARKDOWN *ft-rmd-plugin* + +By default ftplugin/html.vim is not sourced. If you want it sourced, add to +your |vimrc|: > + let rmd_include_html = 1 + +The 'formatexpr' option is set dynamically with different values for R code +and for Markdown code. If you prefer that 'formatexpr' is not set, add to your +|vimrc|: > + let rmd_dynamic_comments = 0 + + +R RESTRUCTURED TEXT *ft-rrst-plugin* + +The 'formatexpr' option is set dynamically with different values for R code +and for ReStructured text. If you prefer that 'formatexpr' is not set, add to +your |vimrc|: > + let rrst_dynamic_comments = 0 + + RPM SPEC *ft-spec-plugin* Since the text for this plugin is rather long it has been put in a separate diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt index 30a3a726a..d21de4b46 100644 --- a/runtime/doc/if_pyth.txt +++ b/runtime/doc/if_pyth.txt @@ -168,11 +168,15 @@ vim.eval(str) *python-eval* - a dictionary if the Vim expression evaluates to a Vim dictionary Dictionaries and lists are recursively expanded. Examples: > + :" value of the 'textwidth' option :py text_width = vim.eval("&tw") - :py str = vim.eval("12+12") # NB result is a string! Use - # string.atoi() to convert to - # a number. - + : + :" contents of the 'a' register + :py a_reg = vim.eval("@a") + : + :" Result is a string! Use string.atoi() to convert to a number. + :py str = vim.eval("12+12") + : :py tagList = vim.eval('taglist("eval_expr")') < The latter will return a python list of python dicts, for instance: [{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': ~ diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt index 54fb52618..b1f44b7d7 100644 --- a/runtime/doc/indent.txt +++ b/runtime/doc/indent.txt @@ -978,6 +978,11 @@ Below is an example of indentation with and without this option enabled: paste(x) paste(x) } } < +The code will be indented after lines that match the pattern +`'\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\)\s*$'`. If you want indentation after +lines that match a different pattern, you should set the appropriate value of +`r_indent_op_pattern` in your |vimrc|. + SHELL *ft-sh-indent* diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt index e145cacf3..a200fc5ca 100644 --- a/runtime/doc/insert.txt +++ b/runtime/doc/insert.txt @@ -1051,13 +1051,13 @@ The function must return the column where the completion starts. It must be a number between zero and the cursor column "col('.')". This involves looking at the characters just before the cursor and including those characters that could be part of the completed item. The text between this column and the -cursor column will be replaced with the matches. +cursor column will be replaced with the matches. If the returned value is +larger than the cursor column, the cursor column is used. -Special return values: - -1 If no completion can be done, the completion will be cancelled with an - error message. - -2 To cancel silently and stay in completion mode. - -3 To cancel silently and leave completion mode. +Negative return values: + -2 To cancel silently and stay in completion mode. + -3 To cancel silently and leave completion mode. + Another negative value: completion starts at the cursor column On the second invocation the arguments are: a:findstart 0 diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 2343d6342..9d2d6bfc4 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -4480,8 +4480,18 @@ A jump table for the options with a short description can be found at |Q_op|. so far, matches. The matched string is highlighted. If the pattern is invalid or not found, nothing is shown. The screen will be updated often, this is only useful on fast terminals. - Also applies to the `:s`, `:g` and `:v` commands. - Note that the match will be shown, but the cursor will return to its + Also applies to the pattern in commands: > + :global + :lvimgrep + :lvimgrepadd + :smagic + :snomagic + :sort + :substitute + :vglobal + :vimgrep + :vimgrepadd +< Note that the match will be shown, but the cursor will return to its original position when no match is found and when pressing <Esc>. You still need to finish the search command with <Enter> to move the cursor to the match. diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index 211fe9611..3ef3be8e6 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1557,8 +1557,8 @@ reduce the number of entries. Load the plugin with: > packadd cfilter Then you can use these command: > - :Cfilter[!] {pat} - :Lfilter[!] {pat} + :Cfilter[!] /{pat}/ + :Lfilter[!] /{pat}/ :Cfilter creates a new quickfix list from entries matching {pat} in the current quickfix list. Both the file name and the text of the entries are diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index b1a1e7258..8d9029a4a 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1265,7 +1265,7 @@ doxygen_javadoc_autobrief 1 Set to 0 to disable javadoc autobrief doxygen_end_punctuation '[.]' Set to regexp match for the ending punctuation of brief -There are also some hilight groups worth mentioning as they can be useful in +There are also some highlight groups worth mentioning as they can be useful in configuration. Highlight Effect ~ @@ -2641,6 +2641,48 @@ Any combination of these three variables is legal, but might highlight more commands than are actually available to you by the game. +R *r.vim* *ft-r-syntax* + +The parsing of R code for syntax highlight starts 40 lines backwards, but you +can set a different value in your |vimrc|. Example: > + let r_syntax_minlines = 60 + +You can also turn off syntax highlighting of ROxygen: > + let r_syntax_hl_roxygen = 0 + +enable folding of code delimited by parentheses, square brackets and curly +braces: > + let r_syntax_folding = 1 + +and highlight as functions all keywords followed by an opening parenthesis: > + let r_syntax_fun_pattern = 1 + + +R MARKDOWN *rmd.vim* *ft-rmd-syntax* + +To disable syntax highlight of YAML header, add to your |vimrc|: > + let rmd_syn_hl_yaml = 0 + +To disable syntax highlighting of citation keys: > + let rmd_syn_hl_citations = 0 + +To highlight R code in knitr chunk headers: > + let rmd_syn_hl_chunk = 1 + +By default, chunks of R code will be highlighted following the rules of R +language. If you want proper syntax highlighting of chunks of other languages, +you should add them to either `markdown_fenced_languages` or +`rmd_fenced_languages`. For example to properly highlight both R and Python, +you may add this to your |vimrc|: > + let rmd_fenced_languages = ['r', 'python'] + + +R RESTRUCTURED TEXT *rrst.vim* *ft-rrst-syntax* + +To highlight R code in knitr chunk headers, add to your |vimrc|: > + let rrst_syn_hl_chunk = 1 + + READLINE *readline.vim* *ft-readline-syntax* The readline library is primarily used by the BASH shell, which adds quite a diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt index 1d3365c3c..57224f62d 100644 --- a/runtime/doc/tabpage.txt +++ b/runtime/doc/tabpage.txt @@ -243,7 +243,7 @@ REORDERING TAB PAGES: Move the current tab page to after tab page N. Use zero to make the current tab page the first one. N is counted before the move, thus if the second tab is the current one, - `:tabmove 1`` and `:tabmove 2` have no effect. + `:tabmove 1` and `:tabmove 2` have no effect. Without N the tab page is made the last one. > :.tabmove " do nothing :-tabmove " move the tab page to the left diff --git a/runtime/doc/tags b/runtime/doc/tags index ed262d4b6..75615fe2c 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -6270,8 +6270,13 @@ ft-python-plugin filetype.txt /*ft-python-plugin* ft-python-syntax syntax.txt /*ft-python-syntax* ft-quake-syntax syntax.txt /*ft-quake-syntax* ft-r-indent indent.txt /*ft-r-indent* +ft-r-syntax syntax.txt /*ft-r-syntax* ft-readline-syntax syntax.txt /*ft-readline-syntax* ft-rexx-syntax syntax.txt /*ft-rexx-syntax* +ft-rmd-plugin filetype.txt /*ft-rmd-plugin* +ft-rmd-syntax syntax.txt /*ft-rmd-syntax* +ft-rrst-plugin filetype.txt /*ft-rrst-plugin* +ft-rrst-syntax syntax.txt /*ft-rrst-syntax* ft-rst-syntax syntax.txt /*ft-rst-syntax* ft-ruby-omni insert.txt /*ft-ruby-omni* ft-ruby-syntax syntax.txt /*ft-ruby-syntax* @@ -8200,6 +8205,7 @@ quotes.txt quotes.txt /*quotes.txt* quotestar gui.txt /*quotestar* quote~ change.txt /*quote~* r change.txt /*r* +r.vim syntax.txt /*r.vim* range() eval.txt /*range()* raw-terminal-mode term.txt /*raw-terminal-mode* rcp pi_netrw.txt /*rcp* @@ -8264,8 +8270,10 @@ right-justify change.txt /*right-justify* rileft rileft.txt /*rileft* rileft.txt rileft.txt /*rileft.txt* riscos os_risc.txt /*riscos* +rmd.vim syntax.txt /*rmd.vim* rot13 change.txt /*rot13* round() eval.txt /*round()* +rrst.vim syntax.txt /*rrst.vim* rst.vim syntax.txt /*rst.vim* rsync pi_netrw.txt /*rsync* ruby if_ruby.txt /*ruby* diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt index 7bdef4829..b954715b8 100644 --- a/runtime/doc/terminal.txt +++ b/runtime/doc/terminal.txt @@ -228,6 +228,10 @@ Syntax ~ If you want to use more options use the |term_start()| function. + If you want to split the window vertically, use: > + :vertical terminal +< Or short: > + :vert ter When the buffer associated with the terminal is forcibly unloaded or wiped out the job is killed, similar to calling `job_stop(job, "kill")` . diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 4b1739bdb..818cb3741 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -38,6 +38,15 @@ browser use: https://github.com/vim/vim/issues/1234 *known-bugs* -------------------- Known bugs and current work ----------------------- +'incsearch' with :s: (#3321) +- :/foo/s//<Esc> changes last search pattern. Also E486. +- :s/foo using CTRL-G moves to another line, should not happen, or use the + correct line (it uses the last but one line) (Lifepillar, Aug 18, #3345) +- Also support range: :/foo/,/bar/delete +- :%s/foo should take the first match below the cursor line, unless there + isn't one? + Then :%s?foo should take the first match above the cursor line. + Prompt buffer: - Add a command line history. - delay next prompt until plugin gives OK? @@ -50,11 +59,16 @@ Terminal debugger: initializing mzscheme avoid the problem, thus it's not some #ifdef. Terminal emulator window: +- GUI: When using ":set go+=!" a system() call causes the hit-enter prompt. + (#3327) - When the job in the terminal doesn't use mouse events, let the scroll wheel scroll the scrollback, like a terminal does at the shell prompt. #2490 And use modeless selection. #2962 +- Allow for specifying the directory, with ++cwd={dir}. - With a vertical split only one window is updated. (Linwei, 2018 Jun 2, #2977) +- Add a way to make ":term cmd" run "cmd" in a shell, instead of executing it + directly. Perhaps ":term ++shell cmd". (#3340) - When pasting should call vterm_keyboard_start_paste(), e.g. when using K_MIDDLEMOUSE, calling insert_reg(). - Users expect parsing the :term argument like a shell does, also support @@ -74,35 +88,12 @@ Terminal emulator window: - When 'encoding' is not utf-8, or the job is using another encoding, setup conversions. -Patch to support ":tag <tagkind> <tagname". (emmrk, 2018 May 7, #2871) - -Patch to parse ":line" in tags file and use it for search. (Daniel Hahler, -#2546) Fixes #1057. Missing a test. - -Problem with quickfix giving E42 when filtering the error list. -(Nobuhiro Takasaki, 2018 Aug 1, #3270) -Patch with test from Yegappan, Aug 2. - -Patch to add variable name after "scope add". (Eddie Lebow, 2018 Feb 7, #2620) -Maybe not needed? - -Patch in issue 3268, fix suggestion window appearing on wrong screen. -Also from Ken Takata, 2018 Aug 2. - -Patch for Lua support. (Kazunobu Kuriyama, 2018 May 26) - -Patch to use NGETTEXT() in many more places. (Sergey Alyoshin, 2018 May 25) -Updated patch May 27. - -Patch to add winlayout() function. (Yegappan Lakshmanan, 2018 Jan 4) - -Patch to fix profiling condition lines. (Ozaki Kiichi,, 2017 Dec 26, #2499) - -Issue #686: apply 'F' in 'shortmess' to more messages. Also #3221. -Patch on #3221 from Christian. Does it work now? - -Patch to include a cfilter plugin to filter quickfix/location lists. -(Yegappan Lakshmanan, 2018 May 12) +Not possible to have a comment in between line continuation. Use |\": + let array = [ + \ item, + |\" comment + \ item, + \ ] Does not build with MinGW out of the box: - _stat64 is not defined, need to use "struct stat" in vim.h @@ -111,9 +102,6 @@ Does not build with MinGW out of the box: Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May 13, #2910) Can't reproduce? -On Win32 when not in the console and t_Co >= 256, allow using 'tgc'. -(Nobuhiro Takasaki, #2833) Also check t_Co. - Errors found with random data: heap-buffer-overflow in alist_add (#2472) @@ -121,7 +109,15 @@ Improve fallback for menu translations, to avoid having to create lots of files that source the actual file. E.g. menu_da_de -> menu_da Include part of #3242? -Inlcude Chinese-Taiwan translations. (bystar, #3261) +Using ":file" in quickfix window during an autocommand doesn't work. +(Jason Franklin, 2018 May 23) Allow for using it when there is no argument. +Patch should now work. (Jason Franklin, 2018 Aug 12) + +Include Chinese-Taiwan translations. (bystar, #3261) + +Screendump test fails even though characters are the same. +Some attribute difference that isn't included in the screenshot? +(Elimar Riesebieter, 2018 Aug 21) Completion mixes results from the current buffer with tags and other files. Happens when typing CTRL-N while still search for results. E.g., type "b_" in @@ -129,8 +125,10 @@ terminal.c and then CTRL-N twice. Should do current file first and not split it up when more results are found. (Also #1890) -Using mouse for inputlist() doesn't work after patch 8.0.1756. (Dominique -Pelle, 2018 Jul 22, #3239) Also see 8.0.0722. Check both console and GUI. +Patch to support VTP better. (Nobuhiro Takasaki, 2018 Aug 19, #3347) + +Patch with improvement for ccomplete: #3350 +Try it out. Perhaps write a test? More warnings from static analysis: https://lgtm.com/projects/g/vim/vim/alerts/?mode=list @@ -138,12 +136,12 @@ https://lgtm.com/projects/g/vim/vim/alerts/?mode=list Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17) Related to bracketed paste. I cannot reproduce it. -Using ":file" in quickfix window during an autocommand doesn't work. -(Jason Franklin, 2018 May 23) Allow for using it when there is no argument. - Patch in pull request #2967: Allow white space in sign text. (Ben Jackson) Test fails in AppVeyor. +Patch to add script line number to script ID. (ichizok, Ozaki Kiichi, 2018 Aug +24, #3362) + Removing flags from 'cpoptions' breaks the Winbar buttons in termdebug. (Dominique Pelle, 2018 Jul 16) @@ -186,6 +184,10 @@ Delete the src/main.aap file? matchaddpos() gets slow with many matches. Proposal by Rick Howe, 2018 Jul 19. +Patch to support ":tag <tagkind> <tagname>". (emmrk, 2018 May 7, #2871) +Use something like ":tag {kind}/{tagname}". +Not ready to include. + home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9) Adjust windows installer explanation of behavior. (scootergrisen, #3310) @@ -193,6 +195,17 @@ Adjust windows installer explanation of behavior. (scootergrisen, #3310) Set g:actual_curbuf when evaluating 'statusline', not just with an expression. (Daniel Hahler, 2018 Aug 8, #3299) +Difference between two regexp engines: #3373 + +When the last line wraps, selecting with the mouse below that line only +includes the first screen line. (2018 Aug 23, #3368) + +Refactored HTML indent file. (Michael Lee, #1821) + +Patch to add getregpoint() and setreg() with an option to set "". +(Andy Massimino, 2018 Aug 24, #3370) +Better name? + Script generated by :mksession does not work well if there are windows with modified buffers change "silent only" into "silent only!" @@ -209,6 +222,12 @@ Compiler warnings (geeknik, 2017 Oct 26): Win32 console: <F11> and <F12> typed in Insert mode don't result in normal characters. (#3246) +Height of quickfix window is not retained with vertical splits. (Lifepillar, +2018 Aug 24, #2998) + +Window size is wrong when using quickfix window. (Lifepillar, 2018 Aug 24, +#2999) + Tests failing for "make testgui" with GTK: - Test_setbufvar_options() - Test_exit_callback_interval() @@ -224,6 +243,7 @@ On Win32 it stops showing, because showState is already ShS_SHOWING. balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec 20, #2481) Also see #2352, want better control over balloon, perhaps set the position. +Should also be possible to add highlighting, like in the status line? Try out background make plugin: https://github.com/AndrewVos/vim-make-background @@ -239,9 +259,14 @@ used for git temp files. Cursor in wrong position when line wraps. (#2540) +Patch to parse ":line" in tags file and use it for search. (Daniel Hahler, +#2546) Fixes #1057. Missing a test. + Make {skip} argument of searchpair() consistent with other places where we pass an expression to evaluate. Allow passing zero for "never skip". +The 'scrolloff' option is global, make it global-local. #3195 + Add an option similar to 'lazyredraw' to skip redrawing while executing a script or function. @@ -281,6 +306,9 @@ How to test that it works well for all Vim users? Alternative manpager.vim. (Enno, 2018 Jan 5, #2529) +Delete all the speficic stuff for the Borland compiler? (#3374) +Patch in #3377 (Thomas Dziedzic) + Does setting 'cursorline' cause syntax highlighting to slow down? Perhaps is mess up the cache? (Mike Lee Williams, 2018 Jan 27, #2539) Also: 'foldtext' is evaluated too often. (Daniel Hahler, #2773) @@ -320,7 +348,8 @@ sequence of these commands. (Andy Stewart, 2018 Mar 16) ch_sendraw() with long string does not try to read in between, which may cause a deadlock if the reading side is waiting for the write to finish. (Nate Bosch, 2018 Jan 13, #2548) -Perhaps just make chunks of 1024 bytes? Make the write non-blocking? +Perhaps just make chunks of 1024 bytes? +Probably better: Make the write non-blocking Also a problem on MS-Windows: #2828. Add Makefiles to the runtime/spell directory tree, since nobody uses Aap. @@ -388,6 +417,8 @@ No profile information for function that executes ":quit". (Daniel Hahler, A function on a dictionary is not profiled. (ZyX, 2010 Dec 25) +Add script number to profile? (#3330 breaks tests). + A function defined locally and lambda's are not easily recognized. Mention where they were defined somewhere. @@ -486,8 +517,6 @@ It can replace the BeOS code, which is likely not used anymore. Now on github: #1856. Updated Oct 2017 Got permission to include this under the Vim license. -Refactored HTML indent file. (Michael Lee, #1821) - Test_writefile_fails_conversion failure on Solaris because if different iconv behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872) @@ -566,7 +595,7 @@ Profile of a dict function is lost when the dict is deleted. Would it be possible to collect this? (Daniel Hahler, #2350) Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12 -#2322) Now in #2327? +#2322) Patch now in #2856. When checking if a bufref is valid, also check the buffer number, to catch the case of :bwipe followed by :new. @@ -751,6 +780,7 @@ receiving Vim? Or make an exception for #, it's not useful remotely. vertical split. (Haldean Brown, 2017 Mar 1) Use ADDR_OTHER instead of ADDR_LINES for many more commands. +E.g. all the location list commands use a count. Add tests for using number larger than number of lines in buffer. Might be useful to have isreadonly(), like we have islocked(). diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt index 727228ce0..4cffc7deb 100644 --- a/runtime/doc/usr_11.txt +++ b/runtime/doc/usr_11.txt @@ -284,6 +284,7 @@ If you really don't want to see this message, you can add the 'A' flag to the 'shortmess' option. But it's very unusual that you need this. For remarks about encryption and the swap file, see |:recover-crypt|. +For programatic access to the swap file, see |swapinfo()|. ============================================================================== *11.4* Further reading diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt index cf343632f..1ec743a56 100644 --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -809,6 +809,7 @@ Buffers, windows and the argument list: getwininfo() get a list with window information getchangelist() get a list of change list entries getjumplist() get a list of jump list entries + swapinfo() information about a swap file Command line: *command-line-functions* getcmdline() get the current command line diff --git a/runtime/ftplugin/haskell.vim b/runtime/ftplugin/haskell.vim index de77bdfb8..84f4d0563 100644 --- a/runtime/ftplugin/haskell.vim +++ b/runtime/ftplugin/haskell.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: Haskell +" Maintainer: Daniel Campoverde <alx@sillybytes.net> " Previous Maintainer: Nikolai Weibull <now@bitwi.se> -" Latest Revision: 2008-07-09 +" Latest Revision: 2018-08-27 if exists("b:did_ftplugin") finish @@ -15,6 +16,7 @@ let b:undo_ftplugin = "setl com< cms< fo<" setlocal comments=s1fl:{-,mb:-,ex:-},:-- commentstring=--\ %s setlocal formatoptions-=t formatoptions+=croql +setlocal omnifunc=haskellcomplete#Complete let &cpo = s:cpo_save unlet s:cpo_save diff --git a/runtime/ftplugin/rmd.vim b/runtime/ftplugin/rmd.vim index 8c092ac13..7b0db8dbb 100644 --- a/runtime/ftplugin/rmd.vim +++ b/runtime/ftplugin/rmd.vim @@ -2,7 +2,7 @@ " Language: R Markdown file " Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> " Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Mon Jun 06, 2016 09:41PM +" Last Change: Sun Jul 22, 2018 06:51PM " Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann) " Only do this when not yet done for this buffer @@ -10,19 +10,12 @@ if exists("b:did_ftplugin") finish endif -runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim - -" Nvim-R plugin needs this -if exists("*CompleteR") - if &omnifunc == "CompleteR" - let b:rplugin_nonr_omnifunc = "" - else - let b:rplugin_nonr_omnifunc = &omnifunc - endif - set omnifunc=CompleteR +if exists('g:rmd_include_html') && g:rmd_include_html + runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim endif -setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s +setlocal comments=fb:*,fb:-,fb:+,n:> +setlocal commentstring=#\ %s setlocal formatoptions+=tcqln setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+ setlocal iskeyword=@,48-57,_,. @@ -30,6 +23,22 @@ setlocal iskeyword=@,48-57,_,. let s:cpo_save = &cpo set cpo&vim +function! FormatRmd() + if search("^[ \t]*```[ ]*{r", "bncW") > search("^[ \t]*```$", "bncW") + setlocal comments=:#',:###,:##,:# + else + setlocal comments=fb:*,fb:-,fb:+,n:> + endif + return 1 +endfunction + +" If you do not want 'comments' dynamically defined, put in your vimrc: +" let g:rmd_dynamic_comments = 0 +if !exists("g:rmd_dynamic_comments") || (exists("g:rmd_dynamic_comments") && g:rmd_dynamic_comments == 1) + setlocal formatexpr=FormatRmd() +endif + + " Enables pandoc if it is installed unlet! b:did_ftplugin runtime ftplugin/pandoc.vim diff --git a/runtime/ftplugin/rrst.vim b/runtime/ftplugin/rrst.vim index ecfd6e87a..3e82847d3 100644 --- a/runtime/ftplugin/rrst.vim +++ b/runtime/ftplugin/rrst.vim @@ -2,7 +2,7 @@ " Language: reStructuredText documentation format with R code " Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> " Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Tue Apr 07, 2015 04:38PM +" Last Change: Wed Nov 01, 2017 10:47PM " Original work by Alex Zvoleff " Only do this when not yet done for this buffer @@ -16,11 +16,27 @@ let b:did_ftplugin = 1 let s:cpo_save = &cpo set cpo&vim -setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s +setlocal comments=fb:*,fb:-,fb:+,n:> +setlocal commentstring=#\ %s setlocal formatoptions+=tcqln setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+ setlocal iskeyword=@,48-57,_,. +function! FormatRrst() + if search('^\.\. {r', "bncW") > search('^\.\. \.\.$', "bncW") + setlocal comments=:#',:###,:##,:# + else + setlocal comments=fb:*,fb:-,fb:+,n:> + endif + return 1 +endfunction + +" If you do not want 'comments' dynamically defined, put in your vimrc: +" let g:rrst_dynamic_comments = 0 +if !exists("g:rrst_dynamic_comments") || (exists("g:rrst_dynamic_comments") && g:rrst_dynamic_comments == 1) + setlocal formatexpr=FormatRrst() +endif + if has("gui_win32") && !exists("b:browsefilter") let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" . \ "All Files (*.*)\t*.*\n" diff --git a/runtime/indent/dtd.vim b/runtime/indent/dtd.vim index 563336236..963ac408e 100644 --- a/runtime/indent/dtd.vim +++ b/runtime/indent/dtd.vim @@ -3,9 +3,6 @@ " Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Latest Revision: 2011-07-08 -let s:cpo_save = &cpo -set cpo&vim - setlocal indentexpr=GetDTDIndent() setlocal indentkeys=!^F,o,O,> setlocal nosmartindent @@ -14,6 +11,9 @@ if exists("*GetDTDIndent") finish endif +let s:cpo_save = &cpo +set cpo&vim + " TODO: Needs to be adjusted to stop at [, <, and ]. let s:token_pattern = '^[^[:space:]]\+' diff --git a/runtime/indent/html.vim b/runtime/indent/html.vim index ba043e968..6c866594c 100644 --- a/runtime/indent/html.vim +++ b/runtime/indent/html.vim @@ -663,7 +663,7 @@ func! s:CSSIndent() else let cur_hasfield = curtext =~ '^\s*[a-zA-Z0-9-]\+:' let prev_unfinished = s:CssUnfinished(prev_text) - if !cur_hasfield && (prev_hasfield || prev_unfinished) + if prev_unfinished " Continuation line has extra indent if the previous line was not a " continuation line. let extra = shiftwidth() @@ -716,9 +716,13 @@ func! s:CSSIndent() endfunc "}}} " Inside <style>: Whether a line is unfinished. +" tag: +" tag: blah +" tag: blah && +" tag: blah || func! s:CssUnfinished(text) "{{{ - return a:text =~ '\s\(||\|&&\|:\)\s*$' + return a:text =~ '\(||\|&&\|:\|\k\)\s*$' endfunc "}}} " Search back for the first unfinished line above "lnum". diff --git a/runtime/indent/r.vim b/runtime/indent/r.vim index 373b0e65d..ca85a2e62 100644 --- a/runtime/indent/r.vim +++ b/runtime/indent/r.vim @@ -2,7 +2,7 @@ " Language: R " Author: Jakson Alves de Aquino <jalvesaq@gmail.com> " Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Thu Feb 18, 2016 06:32AM +" Last Change: Sun Aug 19, 2018 09:13PM " Only load this indent file when no other was loaded. @@ -19,22 +19,16 @@ if exists("*GetRIndent") finish endif +let s:cpo_save = &cpo +set cpo&vim + " Options to make the indentation more similar to Emacs/ESS: -if !exists("g:r_indent_align_args") - let g:r_indent_align_args = 1 -endif -if !exists("g:r_indent_ess_comments") - let g:r_indent_ess_comments = 0 -endif -if !exists("g:r_indent_comment_column") - let g:r_indent_comment_column = 40 -endif -if ! exists("g:r_indent_ess_compatible") - let g:r_indent_ess_compatible = 0 -endif -if ! exists("g:r_indent_op_pattern") - let g:r_indent_op_pattern = '\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\)\s*$' -endif +let g:r_indent_align_args = get(g:, 'r_indent_align_args', 1) +let g:r_indent_ess_comments = get(g:, 'r_indent_ess_comments', 0) +let g:r_indent_comment_column = get(g:, 'r_indent_comment_column', 40) +let g:r_indent_ess_compatible = get(g:, 'r_indent_ess_compatible', 0) +let g:r_indent_op_pattern = get(g:, 'r_indent_op_pattern', + \ '\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\)\s*$') function s:RDelete_quotes(line) let i = 0 @@ -231,7 +225,7 @@ function GetRIndent() let cline = SanitizeRLine(cline) - if cline =~ '^\s*}' || cline =~ '^\s*}\s*)$' + if cline =~ '^\s*}' let indline = s:Get_matching_brace(clnum, '{', '}', 1) if indline > 0 && indline != clnum let iline = SanitizeRLine(getline(indline)) @@ -244,6 +238,11 @@ function GetRIndent() endif endif + if cline =~ '^\s*)$' + let indline = s:Get_matching_brace(clnum, '(', ')', 1) + return indent(indline) + endif + " Find the first non blank line above the current line let lnum = s:Get_prev_line(clnum) " Hit the start of the file, use zero indent. @@ -515,7 +514,9 @@ function GetRIndent() endwhile return ind - endfunction +let &cpo = s:cpo_save +unlet s:cpo_save + " vim: sw=2 diff --git a/runtime/indent/rmd.vim b/runtime/indent/rmd.vim index 88904405e..182b07cba 100644 --- a/runtime/indent/rmd.vim +++ b/runtime/indent/rmd.vim @@ -2,7 +2,7 @@ " Language: Rmd " Author: Jakson Alves de Aquino <jalvesaq@gmail.com> " Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Tue Apr 07, 2015 04:38PM +" Last Change: Sun Aug 19, 2018 09:14PM " Only load this indent file when no other was loaded. @@ -20,7 +20,10 @@ if exists("*GetRmdIndent") finish endif -function GetMdIndent() +let s:cpo_save = &cpo +set cpo&vim + +function s:GetMdIndent() let pline = getline(v:lnum - 1) let cline = getline(v:lnum) if prevnonblank(v:lnum - 1) < v:lnum - 1 || cline =~ '^\s*[-\+\*]\s' || cline =~ '^\s*\d\+\.\s\+' @@ -33,15 +36,31 @@ function GetMdIndent() return indent(prevnonblank(v:lnum - 1)) endfunction +function s:GetYamlIndent() + let pline = getline(v:lnum - 1) + if pline =~ ':\s*$' + return indent(v:lnum) + &sw + elseif pline =~ '^\s*- ' + return indent(v:lnum) + 2 + endif + return indent(prevnonblank(v:lnum - 1)) +endfunction + function GetRmdIndent() if getline(".") =~ '^[ \t]*```{r .*}$' || getline(".") =~ '^[ \t]*```$' return 0 endif if search('^[ \t]*```{r', "bncW") > search('^[ \t]*```$', "bncW") return s:RIndent() + elseif v:lnum > 1 && search('^---$', "bnW") == 1 && + \ (search('^---$', "nW") > v:lnum || search('^...$', "nW") > v:lnum) + return s:GetYamlIndent() else - return GetMdIndent() + return s:GetMdIndent() endif endfunction +let &cpo = s:cpo_save +unlet s:cpo_save + " vim: sw=2 diff --git a/runtime/indent/rnoweb.vim b/runtime/indent/rnoweb.vim index 8c11e85cb..73966868b 100644 --- a/runtime/indent/rnoweb.vim +++ b/runtime/indent/rnoweb.vim @@ -21,7 +21,7 @@ else let s:TeXIndent = function(substitute(&indentexpr, "()", "", "")) endif -unlet b:did_indent +unlet! b:did_indent runtime indent/r.vim let s:RIndent = function(substitute(&indentexpr, "()", "", "")) let b:did_indent = 1 diff --git a/runtime/lang/menu_da.utf-8.vim b/runtime/lang/menu_da.utf-8.vim index e5f14d27a..8bb194435 100644 --- a/runtime/lang/menu_da.utf-8.vim +++ b/runtime/lang/menu_da.utf-8.vim @@ -1,6 +1,6 @@ -" Menu Translations: Danish / Dansk +" Menu Translations: Danish " Maintainer: scootergrisen -" Last Change: 2018 Jun 23 +" Last Change: 2018 Aug 17 " Quit when menu translations have already been done. if exists("did_menu_trans") @@ -43,7 +43,7 @@ menut &Save<Tab>:w Gem<Tab>:w menut Save\ &As\.\.\.<Tab>:sav Gem\ som\.\.\.<Tab>:sav " -SEP2- menut Split\ &Diff\ with\.\.\. Opdel\ diff\ med\.\.\. -menut Split\ Patched\ &By\.\.\. Opdel\ "patchet\ af"\.\.\. +menut Split\ Patched\ &By\.\.\. Opdel\ patchet\ af\.\.\. " -SEP3- menut &Print Udskriv " -SEP4- @@ -79,7 +79,7 @@ menut Question Spørgsmål " Edit menut Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Fremhævning\ af\ mønster\ til/fra<Tab>:set\ hls! -menut Toggle\ &Ignoring\ Case<Tab>:set\ ic! Ignorerer\ "forskel\ på\ store\ og\ små\ bogstaver"\ til/fra<Tab>:set\ ic! +menut Toggle\ &Ignoring\ Case<Tab>:set\ ic! Ignorerer\ forskel\ på\ store\ og\ små\ bogstaver\ til/fra<Tab>:set\ ic! menut Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Viser\ matchende\ par\ til/fra<Tab>:set\ sm! menut &Context\ lines Kontekstlinjer @@ -117,20 +117,20 @@ menut Toggle\ Tab\ &expanding<Tab>:set\ et! Udvidelse\ af\ tabulator\ til/fra<Ta menut Toggle\ &Auto\ Indenting<Tab>:set\ ai! Automatisk\ indrykning\ til/fra<Tab>:set\ ai! menut Toggle\ &C-Style\ Indenting<Tab>:set\ cin! Indrykning\ i\ &C-stil\ til/fra<Tab>:set\ cin! " -SEP2- -menut &Shiftwidth "Shiftwidth" -" menut &Shiftwidth.2<Tab>:set\ sw=2\ sw?<CR> "Shiftwidth".2<Tab>:set\ sw=2\ sw?<CR> -" menut &Shiftwidth.3<Tab>:set\ sw=3\ sw?<CR> "Shiftwidth".3<Tab>:set\ sw=3\ sw?<CR> -" menut &Shiftwidth.4<Tab>:set\ sw=4\ sw?<CR> "Shiftwidth".4<Tab>:set\ sw=4\ sw?<CR> -" menut &Shiftwidth.5<Tab>:set\ sw=5\ sw?<CR> "Shiftwidth".5<Tab>:set\ sw=5\ sw?<CR> -" menut &Shiftwidth.6<Tab>:set\ sw=6\ sw?<CR> "Shiftwidth".6<Tab>:set\ sw=6\ sw?<CR> -" menut &Shiftwidth.8<Tab>:set\ sw=8\ sw?<CR> "Shiftwidth".8<Tab>:set\ sw=8\ sw?<CR> +menut &Shiftwidth Shiftwidth +" menut &Shiftwidth.2<Tab>:set\ sw=2\ sw?<CR> Shiftwidth.2<Tab>:set\ sw=2\ sw?<CR> +" menut &Shiftwidth.3<Tab>:set\ sw=3\ sw?<CR> Shiftwidth.3<Tab>:set\ sw=3\ sw?<CR> +" menut &Shiftwidth.4<Tab>:set\ sw=4\ sw?<CR> Shiftwidth.4<Tab>:set\ sw=4\ sw?<CR> +" menut &Shiftwidth.5<Tab>:set\ sw=5\ sw?<CR> Shiftwidth.5<Tab>:set\ sw=5\ sw?<CR> +" menut &Shiftwidth.6<Tab>:set\ sw=6\ sw?<CR> Shiftwidth.6<Tab>:set\ sw=6\ sw?<CR> +" menut &Shiftwidth.8<Tab>:set\ sw=8\ sw?<CR> Shiftwidth.8<Tab>:set\ sw=8\ sw?<CR> menut Soft\ &Tabstop Blødt\ tabulatorstop -" menut Soft\ &Tabstop.2<Tab>:set\ sts=2\ sts? Blødt\ "Tabstop".2<Tab>:set\ sts=2\ sts? -" menut Soft\ &Tabstop.3<Tab>:set\ sts=3\ sts? Blødt\ "Tabstop".3<Tab>:set\ sts=3\ sts? -" menut Soft\ &Tabstop.4<Tab>:set\ sts=4\ sts? Blødt\ "Tabstop".4<Tab>:set\ sts=4\ sts? -" menut Soft\ &Tabstop.5<Tab>:set\ sts=5\ sts? Blødt\ "Tabstop".5<Tab>:set\ sts=5\ sts? -" menut Soft\ &Tabstop.6<Tab>:set\ sts=6\ sts? Blødt\ "Tabstop".6<Tab>:set\ sts=6\ sts? -" menut Soft\ &Tabstop.8<Tab>:set\ sts=8\ sts? Blødt\ "Tabstop".8<Tab>:set\ sts=8\ sts? +" menut Soft\ &Tabstop.2<Tab>:set\ sts=2\ sts? Blødt\ Tabstop.2<Tab>:set\ sts=2\ sts? +" menut Soft\ &Tabstop.3<Tab>:set\ sts=3\ sts? Blødt\ Tabstop.3<Tab>:set\ sts=3\ sts? +" menut Soft\ &Tabstop.4<Tab>:set\ sts=4\ sts? Blødt\ Tabstop.4<Tab>:set\ sts=4\ sts? +" menut Soft\ &Tabstop.5<Tab>:set\ sts=5\ sts? Blødt\ Tabstop.5<Tab>:set\ sts=5\ sts? +" menut Soft\ &Tabstop.6<Tab>:set\ sts=6\ sts? Blødt\ Tabstop.6<Tab>:set\ sts=6\ sts? +" menut Soft\ &Tabstop.8<Tab>:set\ sts=8\ sts? Blødt\ Tabstop.8<Tab>:set\ sts=8\ sts? menut Te&xt\ Width\.\.\. Tekstbredde\.\.\. menut &File\ Format\.\.\. Filformat\.\.\. @@ -168,11 +168,11 @@ menut None Intet " menut arabic arabisk " menut armenian-eastern armensk\ (østlig) " menut armenian-western armensk\ (vestlig) -" menut belarusian-jcuken hviderussisk"\ [belarusian-jcuken]" +" menut belarusian-jcuken hviderussisk\ [belarusian-jcuken] " menut czech tjekkisk " menut greek græsk " menut hebrew hebraisk -" menut hebrewp hebraisk"\ [hebrewp]" +" menut hebrewp hebraisk\ [hebrewp] " menut magyar ungarsk " menut persian persisk " menut serbian serbisk @@ -362,8 +362,10 @@ if has("toolbar") endif let g:menutrans_set_lang_to = "Sæt sprog til" -let g:menutrans_spell_change_ARG_to = 'Ændr "%s" til' -let g:menutrans_spell_add_ARG_to_word_list = 'Tilføj "%s" til ordliste' + +" stavegenvejsmenu pop op ting +let g:menutrans_spell_change_ARG_to = 'Ændr\ "%s"\ til' +let g:menutrans_spell_add_ARG_to_word_list = 'Tilføj\ "%s"\ til\ ordliste' let g:menutrans_spell_ignore_ARG = 'Ignorer "%s"' let &cpo = s:keepcpo diff --git a/runtime/menu.vim b/runtime/menu.vim index b4c59dd92..5e4bd1f11 100644 --- a/runtime/menu.vim +++ b/runtime/menu.vim @@ -356,6 +356,8 @@ func! s:SetupColorSchemes() abort let s:did_setup_color_schemes = 1 let n = globpath(&runtimepath, "colors/*.vim", 1, 1) + let n += globpath(&runtimepath, "pack/*/start/*/colors/*.vim", 1, 1) + let n += globpath(&runtimepath, "pack/*/opt/*/colors/*.vim", 1, 1) " Ignore case for VMS and windows, sort on name let names = sort(map(n, 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1) diff --git a/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim b/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim index 7a6464fc9..fe4455fe2 100644 --- a/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim +++ b/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim @@ -1,15 +1,17 @@ " cfilter.vim: Plugin to filter entries from a quickfix/location list -" Last Change: May 12, 2018 -" Maintainer: Yegappan Lakshmanan (yegappan AT yahoo DOT com) -" Version: 1.0 +" Last Change: Aug 23, 2018 +" Maintainer: Yegappan Lakshmanan (yegappan AT yahoo DOT com) +" Version: 1.1 " " Commands to filter the quickfix list: -" :Cfilter[!] {pat} +" :Cfilter[!] /{pat}/ " Create a new quickfix list from entries matching {pat} in the current " quickfix list. Both the file name and the text of the entries are " matched against {pat}. If ! is supplied, then entries not matching -" {pat} are used. -" :Lfilter[!] {pat} +" {pat} are used. The pattern can be optionally enclosed using one of +" the following characters: ', ", /. If the pattern is empty, then the +" last used search pattern is used. +" :Lfilter[!] /{pat}/ " Same as :Cfilter but operates on the current location list. " if exists("loaded_cfilter") @@ -17,7 +19,7 @@ if exists("loaded_cfilter") endif let loaded_cfilter = 1 -func s:Qf_filter(qf, pat, bang) +func s:Qf_filter(qf, searchpat, bang) if a:qf let Xgetlist = function('getqflist') let Xsetlist = function('setqflist') @@ -28,14 +30,31 @@ func s:Qf_filter(qf, pat, bang) let cmd = ':Lfilter' . a:bang endif + let firstchar = a:searchpat[0] + let lastchar = a:searchpat[-1:] + if firstchar == lastchar && + \ (firstchar == '/' || firstchar == '"' || firstchar == "'") + let pat = a:searchpat[1:-2] + if pat == '' + " Use the last search pattern + let pat = @/ + endif + else + let pat = a:searchpat + endif + + if pat == '' + return + endif + if a:bang == '!' - let cond = 'v:val.text !~# a:pat && bufname(v:val.bufnr) !~# a:pat' + let cond = 'v:val.text !~# pat && bufname(v:val.bufnr) !~# pat' else - let cond = 'v:val.text =~# a:pat || bufname(v:val.bufnr) =~# a:pat' + let cond = 'v:val.text =~# pat || bufname(v:val.bufnr) =~# pat' endif let items = filter(Xgetlist(), cond) - let title = cmd . ' ' . a:pat + let title = cmd . ' /' . pat . '/' call Xsetlist([], ' ', {'title' : title, 'items' : items}) endfunc diff --git a/runtime/syntax/r.vim b/runtime/syntax/r.vim index 45ff498b3..9e25dae36 100644 --- a/runtime/syntax/r.vim +++ b/runtime/syntax/r.vim @@ -5,7 +5,7 @@ " Tom Payne <tom@tompayne.org> " Contributor: Johannes Ranke <jranke@uni-bremen.de> " Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Sat Apr 08, 2017 07:01PM +" Last Change: Wed Aug 01, 2018 10:10PM " Filenames: *.R *.r *.Rhistory *.Rt " " NOTE: The highlighting of R functions might be defined in @@ -43,15 +43,17 @@ endif if exists("g:r_syntax_folding") && g:r_syntax_folding setlocal foldmethod=syntax endif -if !exists("g:r_syntax_hl_roxygen") - let g:r_syntax_hl_roxygen = 1 -endif + +let g:r_syntax_hl_roxygen = get(g:, 'r_syntax_hl_roxygen', 1) syn case match " Comment syn match rCommentTodo contained "\(BUG\|FIXME\|NOTE\|TODO\):" -syn match rComment contains=@Spell,rCommentTodo,rOBlock "#.*" +syn match rTodoParen contained "\(BUG\|FIXME\|NOTE\|TODO\)\s*(.\{-})\s*:" contains=rTodoKeyw,rTodoInfo transparent +syn keyword rTodoKeyw BUG FIXME NOTE TODO contained +syn match rTodoInfo "(\zs.\{-}\ze)" contained +syn match rComment contains=@Spell,rCommentTodo,rTodoParen,rOBlock "#.*" " Roxygen if g:r_syntax_hl_roxygen @@ -65,7 +67,7 @@ if g:r_syntax_hl_roxygen " First we match all roxygen blocks as containing only a title. In case an " empty roxygen line ending the title or a tag is found, this will be - " overriden later by the definitions of rOBlock. + " overridden later by the definitions of rOBlock. syn match rOTitleBlock "\%^\(\s*#\{1,2}' .*\n\)\{1,}" contains=rOCommentKey,rOTitleTag syn match rOTitleBlock "^\s*\n\(\s*#\{1,2}' .*\n\)\{1,}" contains=rOCommentKey,rOTitleTag @@ -91,7 +93,7 @@ if g:r_syntax_hl_roxygen syn match rOTitle "^\s*\n\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" contained contains=rOCommentKey,rOTitleTag syn match rOTitleTag contained "@title" - syn match rOCommentKey "#\{1,2}'" contained + syn match rOCommentKey "^\s*#\{1,2}'" contained syn region rOExamples start="^#\{1,2}' @examples.*"rs=e+1,hs=e+1 end="^\(#\{1,2}' @.*\)\@=" end="^\(#\{1,2}'\)\@!" contained contains=rOTag fold " rOTag list generated from the lists in @@ -256,6 +258,7 @@ if exists("g:r_syntax_folding") syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError fold syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError fold syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError fold + syn region rSection matchgroup=Title start=/^#.*[-=#]\{4,}/ end=/^#.*[-=#]\{4,}/ms=s-2,me=s-1 transparent contains=ALL fold else syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError @@ -282,13 +285,8 @@ endif if g:r_syntax_fun_pattern == 1 syn match rFunction '[0-9a-zA-Z_\.]\+\s*\ze(' else - if !exists("g:R_hi_fun") - let g:R_hi_fun = 1 - endif - if g:R_hi_fun - " Nvim-R: - runtime R/functions.vim - endif + " Nvim-R: + runtime R/functions.vim endif syn match rDollar display contained "\$" @@ -311,7 +309,7 @@ syn keyword rType array category character complex double function integer list " Name of object with spaces if &filetype != "rmd" && &filetype != "rrst" - syn region rNameWSpace start="`" end="`" + syn region rNameWSpace start="`" end="`" contains=rSpaceFun endif if &filetype == "rhelp" @@ -331,7 +329,10 @@ hi def link rAssign Statement hi def link rBoolean Boolean hi def link rBraceError Error hi def link rComment Comment +hi def link rTodoParen Comment +hi def link rTodoInfo SpecialComment hi def link rCommentTodo Todo +hi def link rTodoKeyw Todo hi def link rComplex Number hi def link rConditional Conditional hi def link rConstant Constant @@ -341,6 +342,7 @@ hi def link rDollar SpecialChar hi def link rError Error hi def link rFloat Float hi def link rFunction Function +hi def link rSpaceFun Function hi def link rHelpIdent Identifier hi def link rhPreProc PreProc hi def link rhSection PreCondit diff --git a/runtime/syntax/rmd.vim b/runtime/syntax/rmd.vim index 05435354a..a26389024 100644 --- a/runtime/syntax/rmd.vim +++ b/runtime/syntax/rmd.vim @@ -1,123 +1,118 @@ " markdown Text with R statements " Language: markdown with R code chunks " Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Sat Jan 28, 2017 10:06PM -" -" CONFIGURATION: -" To highlight chunk headers as R code, put in your vimrc (e.g. .config/nvim/init.vim): -" let rmd_syn_hl_chunk = 1 +" Last Change: Sat Aug 25, 2018 03:44PM " " For highlighting pandoc extensions to markdown like citations and TeX and " many other advanced features like folding of markdown sections, it is " recommended to install the vim-pandoc filetype plugin as well as the " vim-pandoc-syntax filetype plugin from https://github.com/vim-pandoc. -" -" TODO: -" - Provide highlighting for rmarkdown parameters in yaml header + if exists("b:current_syntax") finish endif -" load all of pandoc info, e.g. from +" Configuration if not using pandoc syntax: +" Add syntax highlighting of YAML header +let g:rmd_syn_hl_yaml = get(g:, 'rmd_syn_hl_yaml', 1) +" Add syntax highlighting of citation keys +let g:rmd_syn_hl_citations = get(g:, 'rmd_syn_hl_citations', 1) +" Highlight the header of the chunk of R code +let g:rmd_syn_hl_chunk = get(g:, 'g:rmd_syn_hl_chunk', 0) + +" Pandoc-syntax has more features, but it is slower. " https://github.com/vim-pandoc/vim-pandoc-syntax +let g:pandoc#syntax#codeblocks#embeds#langs = get(g:, 'pandoc#syntax#codeblocks#embeds#langs', ['r']) runtime syntax/pandoc.vim if exists("b:current_syntax") - let rmdIsPandoc = 1 - unlet b:current_syntax -else - let rmdIsPandoc = 0 - runtime syntax/markdown.vim - if exists("b:current_syntax") - unlet b:current_syntax - endif - - " load all of the yaml syntax highlighting rules into @yaml - syntax include @yaml syntax/yaml.vim - if exists("b:current_syntax") - unlet b:current_syntax - endif - - " highlight yaml block commonly used for front matter - syntax region rmdYamlBlock matchgroup=rmdYamlBlockDelim start="^---" matchgroup=rmdYamlBlockDelim end="^---" contains=@yaml keepend fold + " Fix recognition of R code + syn region pandocDelimitedCodeBlock_r start=/^```{r\>.*}$/ end=/^```$/ contained containedin=pandocDelimitedCodeBlock contains=@R + syn region rmdrInline matchgroup=rmdInlineDelim start="`r " end="`" contains=@R containedin=pandocLaTeXRegion,yamlFlowString keepend + hi def link rmdInlineDelim Delimiter + let b:current_syntax = "rmd" + finish endif -if !exists("g:rmd_syn_langs") - let g:rmd_syn_langs = ["r"] -else - let s:hasr = 0 - for s:lng in g:rmd_syn_langs - if s:lng == "r" - let s:hasr = 1 - endif - endfor - if s:hasr == 0 - let g:rmd_syn_langs += ["r"] +let s:cpo_save = &cpo +set cpo&vim + +" R chunks will not be highlighted by syntax/markdown because their headers +" follow a non standard pattern: "```{lang" instead of "^```lang". +" Make a copy of g:markdown_fenced_languages to highlight the chunks later: +if exists('g:markdown_fenced_languages') + if !exists('g:rmd_fenced_languages') + let g:rmd_fenced_languages = deepcopy(g:markdown_fenced_languages) + let g:markdown_fenced_languages = [] endif +else + let g:rmd_fenced_languages = ['r'] endif -for s:lng in g:rmd_syn_langs - exe 'syntax include @' . toupper(s:lng) . ' syntax/'. s:lng . '.vim' - if exists("b:current_syntax") - unlet b:current_syntax - endif - exe 'syntax region rmd' . toupper(s:lng) . 'Chunk start="^[ \t]*``` *{\(' . s:lng . '\|r.*engine\s*=\s*["' . "']" . s:lng . "['" . '"]\).*}$" end="^[ \t]*```$" contains=@' . toupper(s:lng) . ',rmd' . toupper(s:lng) . 'ChunkDelim keepend fold' +runtime syntax/markdown.vim - if exists("g:rmd_syn_hl_chunk") && s:lng == "r" - " highlight R code inside chunk header - syntax match rmdRChunkDelim "^[ \t]*```{r" contained - syntax match rmdRChunkDelim "}$" contained +" Now highlight chunks: +for s:type in g:rmd_fenced_languages + if s:type =~ '=' + let s:lng = substitute(s:type, '=.*', '') + let s:nm = substitute(s:type, '.*=', '') else - exe 'syntax match rmd' . toupper(s:lng) . 'ChunkDelim "^[ \t]*```{\(' . s:lng . '\|r.*engine\s*=\s*["' . "']" . s:lng . "['" . '"]\).*}$" contained' + let s:lng = s:type + let s:nm = s:type endif - exe 'syntax match rmd' . toupper(s:lng) . 'ChunkDelim "^[ \t]*```$" contained' -endfor - - -" also match and syntax highlight in-line R code -syntax region rmdrInline matchgroup=rmdInlineDelim start="`r " end="`" contains=@R containedin=pandocLaTeXRegion,yamlFlowString keepend -" I was not able to highlight rmdrInline inside a pandocLaTeXCommand, although -" highlighting works within pandocLaTeXRegion and yamlFlowString. -syntax cluster texMathZoneGroup add=rmdrInline - -" match slidify special marker -syntax match rmdSlidifySpecial "\*\*\*" - - -if rmdIsPandoc == 0 - syn match rmdBlockQuote /^\s*>.*\n\(.*\n\@<!\n\)*/ skipnl - " LaTeX - syntax include @LaTeX syntax/tex.vim - if exists("b:current_syntax") - unlet b:current_syntax + unlet! b:current_syntax + exe 'syn include @Rmd'.s:nm.' syntax/'.s:lng.'.vim' + if g:rmd_syn_hl_chunk + exe 'syn region rmd'.s:nm.'ChunkDelim matchgroup=rmdCodeDelim start="^\s*```\s*{\s*'.s:nm.'\>" matchgroup=rmdCodeDelim end="}$" keepend containedin=rmd'.s:nm.'Chunk contains=@Rmd'.s:nm + exe 'syn region rmd'.s:nm.'Chunk start="^\s*```\s*{\s*'.s:nm.'\>.*$" matchgroup=rmdCodeDelim end="^\s*```\ze\s*$" keepend contains=rmd'.s:nm.'ChunkDelim,@Rmd'.s:nm + else + exe 'syn region rmd'.s:nm.'Chunk matchgroup=rmdCodeDelim start="^\s*```\s*{\s*'.s:nm.'\>.*$" matchgroup=rmdCodeDelim end="^\s*```\ze\s*$" keepend contains=@Rmd'.s:nm endif - " Inline - syntax match rmdLaTeXInlDelim "\$" - syntax match rmdLaTeXInlDelim "\\\$" - syn region texMathZoneX matchgroup=Delimiter start="\$" skip="\\\\\|\\\$" matchgroup=Delimiter end="\$" end="%stopzone\>" contains=@texMathZoneGroup - " Region - syntax match rmdLaTeXRegDelim "\$\$" contained - syntax match rmdLaTeXRegDelim "\$\$latex$" contained - syntax match rmdLaTeXSt "\\[a-zA-Z]\+" - syntax region rmdLaTeXRegion start="^\$\$" skip="\\\$" end="\$\$$" contains=@LaTeX,rmdLaTeXRegDelim keepend - syntax region rmdLaTeXRegion2 start="^\\\[" end="\\\]" contains=@LaTeX,rmdLaTeXRegDelim keepend - hi def link rmdBlockQuote Comment - hi def link rmdLaTeXSt Statement - hi def link rmdLaTeXInlDelim Special - hi def link rmdLaTeXRegDelim Special -endif - -for s:lng in g:rmd_syn_langs - exe 'syn sync match rmd' . toupper(s:lng) . 'SyncChunk grouphere rmd' . toupper(s:lng) . 'Chunk /^[ \t]*``` *{\(' . s:lng . '\|r.*engine\s*=\s*["' . "']" . s:lng . "['" . '"]\)/' + exe 'syn region rmd'.s:nm.'Inline matchgroup=rmdInlineDelim start="`'.s:nm.' " end="`" contains=@Rmd'.s:nm.' keepend' endfor +unlet! s:type + +hi def link rmdInlineDelim Delimiter +hi def link rmdCodeDelim Delimiter + +" You don't need this if either your markdown/syntax.vim already highlights +" the YAML header or you are writing standard markdown +if g:rmd_syn_hl_yaml + " Minimum highlighting of yaml header + syn match rmdYamlFieldTtl /^\s*\zs\w*\ze:/ contained + syn match rmdYamlFieldTtl /^\s*-\s*\zs\w*\ze:/ contained + syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start='"' skip='\\"' end='"' contains=yamlEscape,rmdrInline contained + syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start="'" skip="''" end="'" contains=yamlSingleEscape,rmdrInline contained + syn match yamlEscape contained '\\\%([\\"abefnrtv\^0_ NLP\n]\|x\x\x\|u\x\{4}\|U\x\{8}\)' + syn match yamlSingleEscape contained "''" + syn region pandocYAMLHeader matchgroup=rmdYamlBlockDelim start=/\%(\%^\|\_^\s*\n\)\@<=\_^-\{3}\ze\n.\+/ end=/^\([-.]\)\1\{2}$/ keepend contains=rmdYamlFieldTtl,yamlFlowString + hi def link rmdYamlBlockDelim Delimiter + hi def link rmdYamlFieldTtl Identifier + hi def link yamlFlowString String +endif -hi def link rmdYamlBlockDelim Delim -for s:lng in g:rmd_syn_langs - exe 'hi def link rmd' . toupper(s:lng) . 'ChunkDelim Special' -endfor -hi def link rmdInlineDelim Special -hi def link rmdSlidifySpecial Special +" You don't need this if either your markdown/syntax.vim already highlights +" citations or you are writing standard markdown +if g:rmd_syn_hl_citations + " From vim-pandoc-syntax + " parenthetical citations + syn match pandocPCite /\^\@<!\[[^\[\]]\{-}-\{0,1}@[[:alnum:]_][[:alnum:]à-öø-ÿÀ-ÖØ-ß_:.#$%&\-+?<>~\/]*.\{-}\]/ contains=pandocEmphasis,pandocStrong,pandocLatex,pandocCiteKey,@Spell,pandocAmpersandEscape display + " in-text citations with location + syn match pandocICite /@[[:alnum:]_][[:alnum:]à-öø-ÿÀ-ÖØ-ß_:.#$%&\-+?<>~\/]*\s\[.\{-1,}\]/ contains=pandocCiteKey,@Spell display + " cite keys + syn match pandocCiteKey /\(-\=@[[:alnum:]_][[:alnum:]à-öø-ÿÀ-ÖØ-ß_:.#$%&\-+?<>~\/]*\)/ containedin=pandocPCite,pandocICite contains=@NoSpell display + syn match pandocCiteAnchor /[-@]/ contained containedin=pandocCiteKey display + syn match pandocCiteLocator /[\[\]]/ contained containedin=pandocPCite,pandocICite + hi def link pandocPCite Operator + hi def link pandocICite Operator + hi def link pandocCiteKey Label + hi def link pandocCiteAnchor Operator + hi def link pandocCiteLocator Operator +endif let b:current_syntax = "rmd" +let &cpo = s:cpo_save +unlet s:cpo_save + " vim: ts=8 sw=2 diff --git a/runtime/syntax/rnoweb.vim b/runtime/syntax/rnoweb.vim index 665acc53e..b2ba17d68 100644 --- a/runtime/syntax/rnoweb.vim +++ b/runtime/syntax/rnoweb.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: R noweb Files " Maintainer: Johannes Ranke <jranke@uni-bremen.de> -" Last Change: Sat Feb 06, 2016 06:47AM +" Last Change: Thu Apr 05, 2018 11:06PM " Version: 0.9.1 " Remarks: - This file is inspired by the proposal of " Fernando Henrique Ferraz Pereira da Rosa <feferraz@ime.usp.br> @@ -16,7 +16,7 @@ syn case match " Extension of Tex clusters {{{1 runtime syntax/tex.vim -unlet b:current_syntax +unlet! b:current_syntax syn cluster texMatchGroup add=@rnoweb syn cluster texMathMatchGroup add=rnowebSexpr diff --git a/runtime/syntax/rrst.vim b/runtime/syntax/rrst.vim index b643af328..3a56342cd 100644 --- a/runtime/syntax/rrst.vim +++ b/runtime/syntax/rrst.vim @@ -2,7 +2,7 @@ " Language: reST with R code chunks " Maintainer: Alex Zvoleff, azvoleff@mail.sdsu.edu " Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Tue Jun 28, 2016 08:53AM +" Last Change: Thu Apr 05, 2018 11:06PM " " CONFIGURATION: " To highlight chunk headers as R code, put in your vimrc: @@ -14,7 +14,7 @@ endif " load all of the rst info runtime syntax/rst.vim -unlet b:current_syntax +unlet! b:current_syntax " load all of the r syntax highlighting rules into @R syntax include @R syntax/r.vim diff --git a/runtime/syntax/sudoers.vim b/runtime/syntax/sudoers.vim index 31f5f2b7e..019b0ada3 100644 --- a/runtime/syntax/sudoers.vim +++ b/runtime/syntax/sudoers.vim @@ -1,8 +1,9 @@ " Vim syntax file " Language: sudoers(5) configuration files " Previous Maintainer: Nikolai Weibull <now@bitwi.se> -" Latest Revision: 2018-07-19 +" Latest Revision: 2018-08-18 " Recent Changes: Support for #include and #includedir. +" Added many new options (Samuel D. Leslie) if exists("b:current_syntax") finish @@ -152,77 +153,120 @@ syn match sudoersDefaultTypeGreaterThan contained '>' nextgroup=@sudoersUser s " TODO: could also deal with special characters here syn match sudoersBooleanParameter contained '!' nextgroup=sudoersBooleanParameter skipwhite skipnl syn keyword sudoersBooleanParameter contained skipwhite skipnl + \ always_query_group_plugin \ always_set_home \ authenticate \ closefrom_override + \ compress_io \ env_editor \ env_reset + \ exec_background + \ fast_glob \ fqdn + \ ignore_audit_errors \ ignore_dot + \ ignore_iolog_errors \ ignore_local_sudoers + \ ignore_logfile_errors + \ ignore_unknown_defaults \ insults \ log_host + \ log_input + \ log_output \ log_year \ long_otp_prompt + \ mail_all_cmnds \ mail_always \ mail_badpass \ mail_no_host \ mail_no_perms \ mail_no_user + \ match_group_by_gid + \ netgroup_tuple \ noexec - \ path_info + \ pam_session + \ pam_setcred \ passprompt_override + \ path_info \ preserve_groups + \ pwfeedback \ requiretty \ root_sudo \ rootpw \ runaspw \ set_home \ set_logname + \ set_utmp \ setenv \ shell_noargs \ stay_setuid + \ sudoedit_checkdir + \ sudoedit_fellow + \ syslog_pid \ targetpw \ tty_tickets + \ umask_override + \ use_netgroups + \ use_pty + \ user_command_timeouts + \ utmp_runas \ visiblepw syn keyword sudoersIntegerParameter contained \ nextgroup=sudoersIntegerParameterEquals \ skipwhite skipnl \ closefrom - \ passwd_tries + \ command_timeout \ loglinelen + \ maxseq \ passwd_timeout + \ passwd_tries + \ syslog_maxlen \ timestamp_timeout \ umask syn keyword sudoersStringParameter contained \ nextgroup=sudoersStringParameterEquals \ skipwhite skipnl + \ askpass \ badpass_message \ editor - \ mailsub - \ noexec_file - \ passprompt - \ runas_default - \ syslog_badpri - \ syslog_goodpri - \ sudoers_locale - \ timestampdir - \ timestampowner - \ askpass \ env_file \ exempt_group + \ fdexec + \ group_plugin + \ iolog_dir + \ iolog_file + \ iolog_flush + \ iolog_group + \ iolog_mode + \ iolog_user \ lecture \ lecture_file + \ lecture_status_dir \ listpw \ logfile \ mailerflags \ mailerpath \ mailfrom + \ mailsub \ mailto + \ noexec_file + \ pam_login_service + \ pam_service + \ passprompt + \ restricted_env_file + \ role + \ runas_default \ secure_path + \ sudoers_locale \ syslog + \ syslog_badpri + \ syslog_goodpri + \ timestamp_type + \ timestampdir + \ timestampowner + \ type \ verifypw syn keyword sudoersListParameter contained |