summaryrefslogtreecommitdiffstats
path: root/src/proto/cmdexpand.pro
AgeCommit message (Collapse)Author
2023-09-29patch 9.0.1958: cannot complete option valuesv9.0.1958Yee Cheng Chin
Problem: cannot complete option values Solution: Add completion functions for several options Add cmdline tab-completion for setting string options Add tab-completion for setting string options on the cmdline using `:set=` (along with `:set+=` and `:set-=`). The existing tab completion for setting options currently only works when nothing is typed yet, and it only fills in with the existing value, e.g. when the user does `:set diffopt=<Tab>` it will be completed to `set diffopt=internal,filler,closeoff` and nothing else. This isn't too useful as a user usually wants auto-complete to suggest all the possible values, such as 'iblank', or 'algorithm:patience'. For set= and set+=, this adds a new optional callback function for each option that can be invoked when doing completion. This allows for each option to have control over how completion works. For example, in 'diffopt', it will suggest the default enumeration, but if `algorithm:` is selected, it will further suggest different algorithm types like 'meyers' and 'patience'. When using set=, the existing option value will be filled in as the first choice to preserve the existing behavior. When using set+= this won't happen as it doesn't make sense. For flag list options (e.g. 'mouse' and 'guioptions'), completion will take into account existing typed values (and in the case of set+=, the existing option value) to make sure it doesn't suggest duplicates. For set-=, there is a new `ExpandSettingSubtract` function which will handle flag list and comma-separated options smartly, by only suggesting values that currently exist in the option. Note that Vim has some existing code that adds special handling for 'filetype', 'syntax', and misc dir options like 'backupdir'. This change preserves them as they already work, instead of converting to the new callback API for each option. closes: #13182 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-01-22patch 9.0.1231: completion of :runtime does not handle {where} argumentv9.0.1231zeertzjq
Problem: Completion of :runtime does not handle {where} argument. Solution: Parse the {where} argument. (closes #11863)
2022-11-12patch 9.0.0867: wildmenu redrawing code is spread outv9.0.0867Bram Moolenaar
Problem: Wildmenu redrawing code is spread out. Solution: Refactor to move code together. (closes #11528)
2022-06-27patch 8.2.5171: dependencies and proto files are outdatedv8.2.5171Bram Moolenaar
Problem: Dependencies and proto files are outdated. Solution: Update dependencies and proto files. Avoid errors.
2022-05-07patch 8.2.4903: cannot get the current cmdline completion type and positionv8.2.4903Shougo Matsushita
Problem: Cannot get the current cmdline completion type and position. Solution: Add getcmdcompltype() and getcmdscreenpos(). (Shougo Matsushita, closes #10344)
2022-02-24patch 8.2.4463: completion only uses strict matchingv8.2.4463Yegappan Lakshmanan
Problem: Completion only uses strict matching. Solution: Add the "fuzzy" item for 'wildoptions'. (Yegappan Lakshmanan, closes #9803)
2022-02-08patch 8.2.4325: 'wildmenu' only shows few matchesv8.2.4325Yegappan Lakshmanan
Problem: 'wildmenu' only shows few matches. Solution: Add the "pum" option: use a popup menu to show the matches. (Yegappan Lakshmanan et al., closes #9707)
2020-09-04patch 8.2.1587: loop for handling keys for the command line is too longv8.2.1587Bram Moolenaar
Problem: Loop for handling keys for the command line is too long. Solution: Move wild menu handling to separate functions. (Yegappan Lakshmanan, closes #6856)
2020-01-05patch 8.2.0087: crash in command line expansion when out of memoryv8.2.0087Bram Moolenaar
Problem: Crash in command line expansion when out of memory. Solution: Check for NULL pointer. Also make ExpandGeneric() static. (Dominique Pelle, closes #5437)
2019-08-18patch 8.1.1886: command line expansion code is spread outv8.1.1886Bram Moolenaar
Problem: Command line expansion code is spread out. Solution: Move the code to cmdexpand.c. (Yegappan Lakshmanan, closes #4831)