aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/cmdexpand.c
Commit message (Collapse)AuthorAge
* Merge pull request #25418 from bfredl/no_attr2bfredl2023-09-29
|\ | | | | refactor(message): remove more "attr" variants
| * refactor(message): msg_outtrans_long_len_attr -> msg_outtrans_longbfredl2023-09-29
| |
* | refactor(grid): unify the two put-text-on-the-screen code pathsbfredl2023-09-29
|/ | | | | | | | | | | | | | | | | | | | | | | The screen grid refactors will continue until morale improves. Jokes aside, this is quite a central installment in the series. Before this refactor, there were two fundamentally distinct codepaths for getting some text on the screen: - the win_line() -> grid_put_linebuf() -> ui_line() call chain used for buffer text, with linebuf_char as a temporary scratch buffer - the grid_line_start/grid_line_puts/grid_line_flush() -> ui_line() path used for every thing else: statuslines, messages and the command line. Here the grid->chars[] array itself doubles as a scratch buffer. With this refactor, the later family of functions still exist, however they now as well render to linebuf_char just like win_line() did, and grid_put_linebuf() is called in the end to calculate delta changes. This means we don't need any duplicate logic for delta calculations anymore. Later down the line, it will be possible to share more logic operating on this scratch buffer, like doing 'rightleft' reversal and arabic shaping as a post-processing step.
* refactor(messages): fold msg_outtrans_attr into msg_outtransbfredl2023-09-27
| | | | | problem: there are too many different functions in message.c solution: fold some of the functions into themselves
* refactor(grid): use batched updates for horizontal wildmenubfredl2023-09-26
|
* refactor(grid): properly namespace and separate stateful grid functionsbfredl2023-09-22
| | | | | | | | | | | | | | | | | | | | | | | This is a step in an ongoing refactor where the "grid_puts" and "grid_put_linebuf" code paths will share more of the implementation (in particular for delta calculation, doublewidth and 'arabicshape' handling). But it also makes sense by its own as a cleanup, and is thus committed separately. Before this change many of the low level grid functions grid_puts, grid_fill etc could both be used in a standalone fashion but also as part of a batched line update which would be finally transmitted as a single grid_line call (via ui_line() ). This was initially useful to quickly refactor pre-existing vim code to use batched logic safely. However, this pattern is not really helpful for maintainable and newly written code, where the "grid" and "row" arguments are just needlessly repeated. This simplifies these calls to just use grid and row as specified in the initial grid_line_start(grid, row) call. This also makes the intent clear whether any grid_puts() call is actually part of a batch or not, which is better in the long run when more things get refactored to use effective (properly batched) updates.
* vim-patch:9.0.1774: no support for custom cmdline completion (#24808)zeertzjq2023-08-21
| | | | | | | | | | | | | | | Problem: no support for custom cmdline completion Solution: Add new vimscript functions Add the following two functions: - getcmdcompltype() returns custom and customlist functions - getcompletion() supports both custom and customlist closes: vim/vim#12228 https://github.com/vim/vim/commit/92997dda789ad8061841128cbc99b15ec0374411 Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
* vim-patch:9.0.1735: Rename completion specific findex var (#24769)zeertzjq2023-08-18
| | | | | | | | Problem: Rename completion specific findex var Solution: Move "findex" static variable to xp_selected in expand_T closes: vim/vim#12548 https://github.com/vim/vim/commit/e9ef347c137aca6c2592beb19da45a8aece65e11
* vim-patch:9.0.1714: getcompletion() "cmdline" fails after :autocmd (#24727)zeertzjq2023-08-16
| | | | | | | | Problem: getcompletion() "cmdline" fails after :autocmd Solution: Use set_cmd_context() instead of set_one_cmd_context(). closes: vim/vim#12804 https://github.com/vim/vim/commit/e4c79d36150431ffb97cb8952ec482af2e57f228
* refactor: remove longdundargoc2023-07-03
| | | | | long is 32-bits even on 64-bit windows which makes the type suboptimal for a codebase meant to be cross-platform.
* vim-patch:9.0.1636: expanding a pattern interferes with cmdline completion ↵zeertzjq2023-06-16
| | | | | | | | (#24034) Problem: Expanding a pattern interferes with command line completion. Solution: Set the file index only when appropriate. (closes vim/vim#12519) https://github.com/vim/vim/commit/094dd152fe1d47878ec6c0b3f54b03ffde7f4a2d
* vim-patch:9.0.1520: completion for option name includes all bool options ↵zeertzjq2023-05-07
| | | | | | | | | | | (#23518) Problem: Completion for option name includes all bool options. Solution: Do not recognize the "noinv" prefix. Prefix "no" or "inv" when appropriate. https://github.com/vim/vim/commit/048d9d25214049dfde04c468c14bd1708fb692b8 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:partial:9.0.0359: error message for wrong argument type is not ↵zeertzjq2023-04-25
| | | | | | | | | | | | | specific (#23315) Problem: Error message for wrong argument type is not specific. Solution: Include more information in the error. (Yegappan Lakshmanan, closes vim/vim#11037) https://github.com/vim/vim/commit/8deb2b30c77035bb682ccf80b781455ac1d6038b Skip reduce() and deepcopy() changes because of missing patches. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:9.0.1479: small source file problems; outdated list of distrib. ↵zeertzjq2023-04-23
| | | | | | | | | | files (#23272) Problem: Small source file problems; outdated list of distributed files. Solution: Small updates to source files and list of distributed files. https://github.com/vim/vim/commit/f39d9e9dca443e42920066be3a98fd9780e4ed33 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* feat(ex_cmds)!: remove :behavebfredl2023-04-13
| | | | | | | | | just use the individual options instead. set selection=exclusive set selectmode=mouse,key set mousemodel=popup set keymodel=startsel,stopsel
* refactor: remove redundant const char * castsii142023-04-07
|
* feat(lua): allow `:=expr` as a shorter version of `:lua =expr`bfredl2023-03-22
| | | | | | | | | | | | | | | | existing behavior of := and :[range]= are unchanged. `|` is still allowed with this usage. However, :=p and similar are changed in a way which could be construed as a breaking change. Allowing |ex-flags| for := in the first place was a mistake as any form of := DOES NOT MOVE THE CURSOR. So it would print one line number and then print a completely different line contents after that.
* refactor(completion): don't add and remove '^' for Lua (#22702)zeertzjq2023-03-17
|
* refactor(build): graduate HAVE_LOCALE_H featurebfredl2023-03-03
| | | | | | Merge locale.h into os/lang.h Having a source file with the same name as a system header we use is considered an anti-pattern.
* vim-patch:8.2.0154: reallocating the list of scripts is inefficientzeertzjq2023-02-16
| | | | | | | | | | | Problem: Reallocating the list of scripts is inefficient. Solution: Instead of using a growarray of scriptitem_T, store pointers and allocate each scriptitem_T separately. Also avoids that the growarray pointers change when sourcing a new script. https://github.com/vim/vim/commit/21b9e9773d64de40994f8762173bdd8befa6acf7 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* refactor: reduce scope of locals as per the style guide (#22211)dundargoc2023-02-11
|
* refactor: replace char_u with char (#21901)dundargoc2023-02-11
| | | | | refactor: replace char_u with char Work on https://github.com/neovim/neovim/issues/459
* vim-patch:9.0.1242: code for :runtime completion is not consistentzeertzjq2023-01-26
| | | | | | | Problem: Code for :runtime completion is not consistent. Solution: Make code for cmdline expansion more consistent. (closes vim/vim#11875) https://github.com/vim/vim/commit/b0d45ec67f4976318f199a7929ad3bcf93686fd0
* vim-patch:9.0.1238: :runtime completion can be further improvedzeertzjq2023-01-26
| | | | | | | | Problem: :runtime completion can be further improved. Solution: Also complete the {where} argument values and adjust the completion for that. (closes vim/vim#11874) https://github.com/vim/vim/commit/5c8771bc5a2be123ab8e6325fa60ed524e8efb09
* vim-patch:9.0.1231: completion of :runtime does not handle {where} argumentzeertzjq2023-01-26
| | | | | | | Problem: Completion of :runtime does not handle {where} argument. Solution: Parse the {where} argument. (closes vim/vim#11863) https://github.com/vim/vim/commit/3770f4c9cde7b5fcd10b6fa2e665cd0b69450fb2
* vim-patch:9.0.1227: no cmdline completion for :runtimezeertzjq2023-01-26
| | | | | | | | Problem: No cmdline completion for :runtime. Solution: Add completion for :runtime. (closes vim/vim#11853, closes vim/vim#11447) Improve the resulting matches. https://github.com/vim/vim/commit/a6759381a590b2d395e05b109ca9ccfc356be5a8
* fix(completion): include lua syntaxes in :ownsyntax completion (#21941)zeertzjq2023-01-22
| | | | This just removes DIP_LUA and always executes its branches. Also add tests for cmdline completion for other lua runtime files.
* refactor: replace char_u with char 24 (#21823)dundargoc2023-01-18
| | | | | refactor: replace char_u with char Work on https://github.com/neovim/neovim/issues/459
* refactor: replace char_u with char 23 (#21798)dundargoc2023-01-18
| | | Work on https://github.com/neovim/neovim/issues/459
* refactor: replace char_u with char 22 (#21786)dundargoc2023-01-17
| | | Work on https://github.com/neovim/neovim/issues/459
* vim-patch:8.2.4617: no completion for :scriptnameszeertzjq2023-01-17
| | | | | | | | | | Problem: No completion for :scriptnames. Solution: Implement :scriptnames completion. (Yegappan Lakshmanan, closes vim/vim#10005) https://github.com/vim/vim/commit/454ce6737cadb82886f1fc0eb9e8666cc59ae42b Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4483: command completion makes two rounds to collect matches ↵zeertzjq2023-01-17
| | | | | | | | | | | (#21857) Problem: Command completion makes two rounds to collect matches. Solution: Use a growarray to collect matches. (Yegappan Lakshmanan, closes vim/vim#9860) https://github.com/vim/vim/commit/5de4c4372d4366bc85cb66efb3e373439b9471c5 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4917: fuzzy expansion of option names is not right (#21853)zeertzjq2023-01-17
| | | | | | | | | Problem: Fuzzy expansion of option names is not right. Solution: Pass the fuzzy flag down the call chain. (Christian Brabandt, closes vim/vim#10380, closes vim/vim#10318) https://github.com/vim/vim/commit/cb747899bd99361a299a163f3aa55d5fe7d6f798 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:9.0.0089: fuzzy argument completion doesn't work for shell ↵zeertzjq2023-01-17
| | | | | | | | | | | commands (#21852) Problem: Fuzzy argument completion doesn't work for shell commands. Solution: Check for cmdidx not being CMD_bang. (Yegappan Lakshmanan, closes vim/vim#10769) https://github.com/vim/vim/commit/7db3a8e3298bf7c7c3f74cc9c1add04f29e78d2d Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* fix(completion): correct what modes support fuzzy completionzeertzjq2023-01-17
|
* vim-patch:8.2.4482: no fuzzy cmdline completion for user defined completionzeertzjq2023-01-17
| | | | | | | | | | | | | | | | | Problem: No fuzzy cmdline completion for user defined completion. Solution: Add fuzzy completion for user defined completion. (Yegappan Lakshmanan, closes vim/vim#9858) https://github.com/vim/vim/commit/afd4ae35d66b2e7732eceb5ad9f6b4ece6b7c64c Cherry-pick related docs from Vim runtime. N/A patches for version.c: vim-patch:8.2.4485: compiler warning for uninitialized variable vim-patch:8.2.4732: duplicate code to free fuzzy matches Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4608: getcompletion() does not work when 'wildoptions' has "fuzzy"zeertzjq2023-01-17
| | | | | | | | | | | Problem: getcompletion() does not work properly when 'wildoptions contains "fuzzy". Solution: Do not use addstar(). (Yegappan Lakshmanan, closes vim/vim#9992, closes vim/vim#9986) https://github.com/vim/vim/commit/e7dd0fa2c61fe71f12c72b0dcb7bb6415eb048fb Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4479: no fuzzy completieon for maps and abbreviationszeertzjq2023-01-17
| | | | | | | | | | Problem: No fuzzy completieon for maps and abbreviations. Solution: Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan, closes vim/vim#9856) https://github.com/vim/vim/commit/6caeda2fce4bccac2dd43ca9fee1d32ee96b708d Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4478: crash when using fuzzy completionzeertzjq2023-01-17
| | | | | | | | | Problem: Crash when using fuzzy completion. Solution: Temporary fix: put back regexp. (closes vim/vim#9852, closes vim/vim#9851) https://github.com/vim/vim/commit/00333cb3b341499df8729b9345f0bbad968cda0b Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4477: crash when using fuzzy completionzeertzjq2023-01-17
| | | | | | | | | Problem: Crash when using fuzzy completion. Solution: Temporary fix: put back regexp. (closes vim/vim#9851) https://github.com/vim/vim/commit/29ab6ce9f36660cffaad3c8789e71162e5db5d2f Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:8.2.4475: fuzzy cmdline completion does not work for lower casezeertzjq2023-01-17
| | | | | | | | | | | | Problem: Fuzzy cmdline completion does not work for lower case. Solution: Also use fuzzy completion for lower case input. (Yegappan Lakshmanan, closes vim/vim#9849) https://github.com/vim/vim/commit/4df5b33f206210fec2a0297aea27e7db8b5173c0 Initialize "regmatch" to avoid using uninitialized memory. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4465: fuzzy completion does not order matches properlySean Dewar2023-01-17
| | | | | | | | | | | | | | | | | | | Problem: Fuzzy completion does not order matches properly. Solution: Do not use regular expression match. (Yegappan Lakshmanan, closes vim/vim#9843) https://github.com/vim/vim/commit/5ec633b9b0400519db60253cb5846e50394218b4 Nvim's ExpandGeneric() was refactored to eliminate looping for "round", so the patch has been adapted. fuzzy_match_str() change was already applied earlier. In Test_wildoptions_fuzzy(), test for NvimParenthesis over MatchParen for :syntax list, as the fuzzy matching algorithm prefers the former (even in Vim). Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4463: completion only uses strict matchingSean Dewar2023-01-17
| | | | | | | | | | | | | Problem: Completion only uses strict matching. Solution: Add the "fuzzy" item for 'wildoptions'. (Yegappan Lakshmanan, closes vim/vim#9803) https://github.com/vim/vim/commit/38b85cb4d7216705058708bacbc25ab90cd61595 Use MAX_FUZZY_MATCHES in fuzzy_match_str(). Omit fuzmatch_str_free() as it is only used on allocation failure. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4570: no command line completion for :profile and :profdelzeertzjq2023-01-15
| | | | | | | | | Problem: No command line completion for :profile and :profdel. Solution: Implement completion. (Yegappan Lakshmanan, closes vim/vim#9955) https://github.com/vim/vim/commit/1fdf84e033f8c4eead3b4ccebb1969cfbc7d10db Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4565: no command line completion for :breakadd and :breakdelzeertzjq2023-01-15
| | | | | | | | Problem: No command line completion for :breakadd and :breakdel. Solution: Add completion for :breakadd and :breakdel. (Yegappan Lakshmanan, closes vim/vim#9950) https://github.com/vim/vim/commit/6e2e2cc95b913e33145047e0fade5193da6e4379
* vim-patch:8.2.4579: cannot use page-up and page-down in the cmdline popup menuzeertzjq2023-01-15
| | | | | | | | | | | Problem: Cannot use page-up and page-down in the command line completion popup menu. Solution: Check for to page-up and page-down keys. (Yegappan Lakshmanan, closes vim/vim#9960) https://github.com/vim/vim/commit/5cffa8df7e3c28681b9e5deef6df395784359b6b Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:9.0.0876: code is indented more than needed (#21805)zeertzjq2023-01-15
| | | | | | | | Problem: Code is indented more than needed. Solution: Split ExpandEscape() in two. (Yegappan Lakshmanan, closes vim/vim#11539) https://github.com/vim/vim/commit/68353e5270fca45daffee5b5f882853cdfa40f76 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:9.0.1043: macro has confusing name and is duplicated (#21801)zeertzjq2023-01-15
| | | | | | Problem: Macro has confusing name and is duplicated. Solution: Use one macro with an understandable name. (closes vim/vim#11686) https://github.com/vim/vim/commit/c51a376265708e49a46832816077b6dd27d12c0c
* vim-patch:8.2.4406: expand functions use confusing argument names (#21800)zeertzjq2023-01-14
| | | | | | | | | Problem: Expand functions use confusing argument names. Solution: Rename "file" to "match". Refactor some completion code. Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#9790) https://github.com/vim/vim/commit/24384308635f40b15d399fbd4e60c25d5e21ed8d Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* vim-patch:8.2.4398: some command completion functions are too long (#21799)zeertzjq2023-01-14
| | | | | | | | | Problem: Some command completion functions are too long. Solution: Refactor code into separate functions. Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#9785) https://github.com/vim/vim/commit/b31aec3b9387ed12677dca09069c3ae98c6c7447 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>