]> git.wincent.com - docvim.git/commitdiff
Fix options parsing when no default value is provided
authorGreg Hurrell <greg@hurrell.net>
Wed, 8 Jun 2016 07:40:28 +0000 (00:40 -0700)
committerGreg Hurrell <greg@hurrell.net>
Wed, 8 Jun 2016 07:40:28 +0000 (00:40 -0700)
lib/Docvim/Parse.hs
tests/fixtures/markdown/integration-ferret-plugin.golden
tests/fixtures/markdown/integration-ferret-private.golden
tests/fixtures/parser/integration-ferret-plugin.golden
tests/fixtures/parser/integration-ferret-private.golden
tests/fixtures/vim/integration-ferret-plugin.golden
tests/fixtures/vim/integration-ferret-private.golden
tests/fixtures/vim/options.golden
tests/fixtures/vim/options.vim

index dfc09f93756af06652883ba39a3f40ead6d12033..ea2a770f0c811e0a17a50c8df77851f3075750d8 100644 (file)
@@ -472,8 +472,7 @@ annotation = char '@' *> annotationName
 
     option            = string "option" >> ws >> OptionAnnotation <$> optionName <*> optionType <*> optionDefault
     optionName        = many1 (alphaNum <|> char ':') <* ws <?> "option name"
-    optionType        = many1 alphaNum <* ws <?> "option type"
-    -- BUG: this is not optional, it would seem (see tests/fixtures/vim/options.vim)
+    optionType        = many1 alphaNum <* optional ws <?> "option type"
     optionDefault     = optionMaybe word <?> "option default value"
 
     plugin            = string "plugin" >> ws >> PluginAnnotation <$> pluginName <*> plugInDescription
index 56a5774f9bd7f74cfae9d3ceee08167c93f93662..08a91fb843c46348f22a863b955a79e650d25d26 100644 (file)
@@ -161,6 +161,15 @@ Ferret maps <leader>r (mnemonic: "replace") to <strong>[`<Plug>(FerretAcks)`](#u
 nmap <leader>u <Plug>(FerretAcks)
 ```
 
+<p align="right"><a name="gferretloaded" href="#user-content-gferretloaded"><code>g:FerretLoaded</code></a></p>
+### `g:FerretLoaded` (any, default: none)
+
+To prevent Ferret from being loaded, set <strong>`g:FerretLoaded`</strong> to any value in your <strong>`.vimrc`</strong>. For example:
+
+```
+let g:FerretLoaded=1
+```
+
 <p align="right"><a name="gferretmap" href="#user-content-gferretmap"><code>g:FerretMap</code></a></p>
 ### `g:FerretMap` (boolean, default: 1)
 
index ee320ba76f1ebb92c6e5f9728a44697c18289fb9..4bc15a6fe76c5f41eb090ef8655dee6e6af73645 100644 (file)
@@ -8,3 +8,12 @@ Controls whether to use vim-dispatch (and specifically, <strong>`:Make`</strong>
 ```
 let g:FerretDispatch=0
 ```
+
+<p align="right"><a name="gferrethlsearch" href="#user-content-gferrethlsearch"><code>g:FerretHlsearch</code></a></p>
+### `g:FerretHlsearch` (boolean, default: none)
+
+Controls whether Ferret should attempt to highlight the search pattern when running <strong>`:Ack`</strong> or <strong>`:Lack`</strong>. If left unset, Ferret will respect the current 'hlsearch' setting. To force highlighting on or off irrespective of 'hlsearch', set <strong>`g:FerretHlsearch`</strong> to 1 (on) or 0 (off):
+
+```
+let g:FerretHlsearch=0
+```
index b8a7e2a9b30d2d3cc1d7a97f6eeab814d2a1bdc0..faa8ba3733a3d6aa450e9e9a389c686af749ba5c 100644 (file)
@@ -811,7 +811,7 @@ Project
   , Project
       [ Unit
           [ DocBlock []
-          , GenericStatement "\"\""
+          , DocBlock []
           , GenericStatement
               "if exists('g:FerretLoaded') || &compatible || v:version < 700"
           , GenericStatement "finish"
@@ -2153,6 +2153,42 @@ Project
       [ "\" Instead of <leader>r, use <leader>u."
       , "nmap <leader>u <Plug>(FerretAcks)"
       ]
+  , OptionAnnotation "g:FerretLoaded" "any" Nothing
+  , Paragraph
+      [ Plaintext "To"
+      , Whitespace
+      , Plaintext "prevent"
+      , Whitespace
+      , Plaintext "Ferret"
+      , Whitespace
+      , Plaintext "from"
+      , Whitespace
+      , Plaintext "being"
+      , Whitespace
+      , Plaintext "loaded,"
+      , Whitespace
+      , Plaintext "set"
+      , Whitespace
+      , Link "g:FerretLoaded"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "any"
+      , Whitespace
+      , Plaintext "value"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "your"
+      , Whitespace
+      , Link ".vimrc"
+      , Plaintext "."
+      , Whitespace
+      , Plaintext "For"
+      , Whitespace
+      , Plaintext "example:"
+      ]
+  , Fenced [ "let g:FerretLoaded=1" ]
   , OptionAnnotation "g:FerretMap" "boolean" (Just "1")
   , Paragraph
       [ Plaintext "Controls"
index 41aca138e83a45f2a02dd1f58cd0f1469a63cd26..d5a98868b2aebb34611f4591466ce2c3499831fd 100644 (file)
@@ -247,7 +247,7 @@ Project
               , functionAttributes = [ "abort" ]
               , functionBody =
                   [ GenericStatement "if has('extra_search')"
-                  , GenericStatement "\"\""
+                  , DocBlock []
                   , LetStatement
                       { letLexpr = "l:hlsearch"
                       , letValue = "get(g:, 'FerretHlsearch', &hlsearch)"
@@ -399,4 +399,92 @@ Project
       , Plaintext "0:"
       ]
   , Fenced [ "let g:FerretDispatch=0" ]
+  , OptionAnnotation "g:FerretHlsearch" "boolean" Nothing
+  , Paragraph
+      [ Plaintext "Controls"
+      , Whitespace
+      , Plaintext "whether"
+      , Whitespace
+      , Plaintext "Ferret"
+      , Whitespace
+      , Plaintext "should"
+      , Whitespace
+      , Plaintext "attempt"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "highlight"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "search"
+      , Whitespace
+      , Plaintext "pattern"
+      , Whitespace
+      , Plaintext "when"
+      , Whitespace
+      , Plaintext "running"
+      , Whitespace
+      , Link ":Ack"
+      , Whitespace
+      , Plaintext "or"
+      , Whitespace
+      , Link ":Lack"
+      , Plaintext "."
+      , Whitespace
+      , Plaintext "If"
+      , Whitespace
+      , Plaintext "left"
+      , Whitespace
+      , Plaintext "unset,"
+      , Whitespace
+      , Plaintext "Ferret"
+      , Whitespace
+      , Plaintext "will"
+      , Whitespace
+      , Plaintext "respect"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "current"
+      , Whitespace
+      , Plaintext "'hlsearch'"
+      , Whitespace
+      , Plaintext "setting."
+      , Whitespace
+      , Plaintext "To"
+      , Whitespace
+      , Plaintext "force"
+      , Whitespace
+      , Plaintext "highlighting"
+      , Whitespace
+      , Plaintext "on"
+      , Whitespace
+      , Plaintext "or"
+      , Whitespace
+      , Plaintext "off"
+      , Whitespace
+      , Plaintext "irrespective"
+      , Whitespace
+      , Plaintext "of"
+      , Whitespace
+      , Plaintext "'hlsearch',"
+      , Whitespace
+      , Plaintext "set"
+      , Whitespace
+      , Link "g:FerretHlsearch"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "1"
+      , Whitespace
+      , Plaintext "(on)"
+      , Whitespace
+      , Plaintext "or"
+      , Whitespace
+      , Plaintext "0"
+      , Whitespace
+      , Plaintext "(off):"
+      ]
+  , Fenced [ "let g:FerretHlsearch=0" ]
   ]
index e65b4ccaa7cc7139d4ca495ba457e9fb9f2cc2bf..38a1f607deaf082ebff44a1a62dac1bfe5b322de 100644 (file)
@@ -203,6 +203,15 @@ in your |.vimrc| instead using |:nmap|:
     nmap <leader>u <Plug>(FerretAcks)
 <
 
+                                                                *g:FerretLoaded*
+|g:FerretLoaded|                                             any (default: none)
+
+To prevent Ferret from being loaded, set |g:FerretLoaded| to any value in your
+|.vimrc|. For example:
+>
+    let g:FerretLoaded=1
+<
+
                                                                    *g:FerretMap*
 |g:FerretMap|                                               boolean (default: 1)
 
index 582107a38d445475ca33cbc40eba6d662bd285bd..208f33133e7f64ddc3e72e4cf2faf8e8276d2660 100644 (file)
@@ -10,3 +10,14 @@ used, set to 0:
 >
     let g:FerretDispatch=0
 <
+
+                                                              *g:FerretHlsearch*
+|g:FerretHlsearch|                                       boolean (default: none)
+
+Controls whether Ferret should attempt to highlight the search pattern when
+running |:Ack| or |:Lack|. If left unset, Ferret will respect the current
+'hlsearch' setting. To force highlighting on or off irrespective of
+'hlsearch', set |g:FerretHlsearch| to 1 (on) or 0 (off):
+>
+    let g:FerretHlsearch=0
+<
index 444f638256d0ea63709f2eed2f514c2fd7abe195..c0fdaa0b7c7133ad32d4b5c9d40c1979b142ab97 100644 (file)
@@ -16,4 +16,10 @@ Temperature control.
                                                                          *g:Bar*
 |g:Bar|                                                   string (default: none)
 
-No default on this one.
+No default on this one (explicit "none").
+
+
+                                                                         *g:qux*
+|g:qux|                                                   number (default: none)
+
+No default (implicit).
index bf6c50bd524927d42e7217dc1b7466b83c187f9e..d7320548e8af73edbf19a0ea40e626abc8006946 100644 (file)
@@ -9,4 +9,8 @@
 "
 " @option g:Bar string none
 "
-" No default on this one.
+" No default on this one (explicit "none").
+"
+" @option g:qux number
+"
+" No default (implicit).