aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/optionstr.c
Commit message (Collapse)AuthorAge
* refactor(change): do API changes to buffer without curbuf switchbfredl2023-08-26
| | | | | | | | | | | | | | | | | | | | | | | Most of the messy things when changing a non-current buffer is not about the buffer, it is about windows. In particular, it is about `curwin`. When editing a non-current buffer which is displayed in some other window in the current tabpage, one such window will be "borrowed" as the curwin. But this means if two or more non-current windows displayed the buffers, one of them will be treated differenty. this is not desirable. In particular, with nvim_buf_set_text, cursor _column_ position was only corrected for one single window. Two new tests are added: the test with just one non-current window passes, but the one with two didn't. Two corresponding such tests were also added for nvim_buf_set_lines. This already worked correctly on master, but make sure this is well-tested for future refactors. Also, nvim_create_buf no longer invokes autocmds just because you happened to use `scratch=true`. No option value was changed, therefore OptionSet must not be fired.
* feat(options)!: remove compatible behaviours for vim 5.0 and earlierLewis Russell2023-07-17
|
* perf(rtp): reduce rtp scans (#24191)Lewis Russell2023-07-13
| | | | | | | | | | | * perf(rtp): reduce rtp scans Problem: Scanning the filesystem is expensive and particularly affects startuptime. Solution: Reduce the amount of redundant directory scans by relying less on glob patterns and handle vim and lua sourcing lower down.
* refactor(option): use `void *` for pointer to option valueFamiu Haque2023-06-20
| | | | | | Option related code uses `char *` for pointer to option value, which is not the best way of representing a type-agnostic pointer. Solution: Make pointers to option value use `void *` instead.
* refactor(options): remove `getoption_T` and introduce `OptVal` (#23850)Famiu Haque2023-06-07
| | | | | | | | Removes the `getoption_T` struct and also introduces the `OptVal` struct to unify the methods of getting/setting different option value types. This is the first of many PRs to reduce code duplication in the Vim option code as well as to make options easier to maintain. It also increases the flexibility and extensibility of options. Which opens the door for things like Array and Dictionary options.
* vim-patch:9.0.1526: condition is always true (#23541)zeertzjq2023-05-08
| | | | | | Problem: Condition is always true. Solution: Remove unnecessary condition. (closes vim/vim#12359) https://github.com/vim/vim/commit/d619d6a9c6fa0e4295c817a88f84f0bab9457bbe
* vim-patch:8.2.4890: inconsistent capitalization in error messageszeertzjq2023-05-05
| | | | | | | | | Problem: Inconsistent capitalization in error messages. Solution: Make capitalization consistent. (Doug Kearns) https://github.com/vim/vim/commit/cf030578b26460643dca4a40e7f2e3bc19c749aa Co-authored-by: Bram Moolenaar <Bram@vim.org>
* refactor: using a different error number for 'mousescroll'zeertzjq2023-05-05
| | | | Because E548 is linked to 'guicursor' in help.
* vim-patch:9.0.1374: function for setting options not used consistentlyLewis Russell2023-04-28
| | | | | | | | Problem: Function for setting options not used consistently. Solution: Use a function for 'encoding' and terminal options. (Yegappan Lakshmanan, closes vim/vim#12099) https://github.com/vim/vim/commit/c727b19e9f1df36e44321d933334c7b4961daa54
* vim-patch:9.0.1369: still some "else if" constructs for setting optionsLewis Russell2023-04-28
| | | | | | | | Problem: Still some "else if" constructs for setting options. Solution: Add a few more functions for handling options. (Yegappan Lakshmanan, closes vim/vim#12090) https://github.com/vim/vim/commit/c6ff21e876af0e3ad59664dd0f69359c4b6e9f1d
* vim-patch:9.0.1359: too many "else if" statements in handling optionsLewis Russell2023-04-28
| | | | | | | | Problem: Too many "else if" statements in handling options. Solution: Add more functions for handling option changes. (Yegappan Lakshmanan, closes vim/vim#12060) https://github.com/vim/vim/commit/5da901bb68717b2baff6e971c1517219b6ee3a67
* vim-patch:9.0.1353: too many "else if" statements to handle option valuesLewis Russell2023-04-28
| | | | | | | | Problem: Too many "else if" statements to handle option values. Solution: Add more functions to handle option value changes. (Yegappan Lakshmanan, closes vim/vim#12058) https://github.com/vim/vim/commit/6d611de58c8e324491415da8e79c6bd3faa3e848
* vim-patch:9.0.1345: too many "else if" statements for handling optionsLewis Russell2023-04-28
| | | | | | | | Problem: Too many "else if" statements for handling options. Solution: Add more functions to handle options. (Yegappan Lakshmanan, closes vim/vim#12051) https://github.com/vim/vim/commit/8ad862a1f9d6f4128de856ccfabbeb7546d33b98
* vim-patch:9.0.1330: handling new value of an option has a long "else if" chainLewis Russell2023-04-28
| | | | | | | Problem: Handling new value of an option has a long "else if" chain. Solution: Use a function pointer. (Yegappan Lakshmanan, closes vim/vim#12015) https://github.com/vim/vim/commit/af93691b53f38784efce0b93fe7644c44a7e382e
* refactor: uncrustifydundargoc2023-04-26
| | | | Notable changes: replace all infinite loops to `while(true)` and remove `int` from `unsigned int`.
* fix(column): rebuild status column when sign column is invalidLuuk van Baal2023-04-19
|
* vim-patch:9.0.1064: code for making 'shortmess' temporarily empty is repeatedzeertzjq2023-04-16
| | | | | | | | | | Problem: Code for making 'shortmess' temporarily empty is repeated. Solution: Add functions for making 'shortmess' empty and restoring it. (Christian Brabandt, closes vim/vim#11709) https://github.com/vim/vim/commit/9aee8ec400fe617f6d82441c46a22d0cef6fa3e6 Co-authored-by: Christian Brabandt <cb@256bit.org>
* refactor: make error message definitions constii142023-04-05
| | | | message.c functions now take const char * as a format. Error message definitions can be made const.
* fix(filetype): avoid recursive FileType autocmds (#22813)Lewis Russell2023-03-29
|
* fix(column): invalidate statuscolumn width when UPD_NOT_VALID (#22723)luukvbaal2023-03-19
|
* fix(spell): properly source spell/LANG.{vim,lua} (#22716)zeertzjq2023-03-18
| | | Using regexp doesn't work here because there are no wildcards.
* refactor(screen): screen.c delenda estbfredl2023-03-14
| | | | | | | | | | | | | drawscreen.c vs screen.c makes absolutely no sense. The screen exists only to draw upon it, therefore helper functions are distributed randomly between screen.c and the file that does the redrawing. In addition screen.c does a lot of drawing on the screen. It made more sense for vim/vim as our grid.c is their screen.c Not sure if we want to dump all the code for option chars into optionstr.c, so keep these in a optionchar.c for now.
* feat(options)!: deprecate paste, remove pastetoggle (#22647)ii142023-03-13
| | | | | we cannot remove 'paste'. It is very common in plugins and configs. 'pastetoggle' can and should be removed though, it's a total waste of everyone's time because it generates bug reports and doesn't work well, and is useless because bracketed-paste works better.
* refactor(redraw): make cursor position redraw use the "redraw later" patternbfredl2023-03-12
|
* perf(statusline): UI elements are always redrawn on K_EVENTLuuk van Baal2023-03-08
| | | | | Problem: 'statusline'-format UI elements are redrawn on each K_EVENT. Solution: Only redraw UI elements when something relevant has changed.
* fix(column): issues with 'statuscolumn' width (#22542)luukvbaal2023-03-07
| | | | | | | | Problem: 'statuscolumn' width can be incorrect when toggling 'number' or setting 'statuscolumn'. Solution: Make sure the width is reset and re-estimated when 'statuscolumn' and 'number' are set. (When 'relativenumber' is set this already happens because it always changes "nrwidth_line_count".)
* vim-patch:9.0.1307: setting 'formatoptions' with :let doesn't check for ↵zeertzjq2023-02-14
| | | | | | | | | | | errors (#22252) Problem: Setting 'formatoptions' with :let doesn't check for errors. Solution: Pass "errbuf" to set_string_option(). (Yegappan Lakshmanan, closes vim/vim#11974, closes vim/vim#11972) https://github.com/vim/vim/commit/32ff96ef018eb1a5bea0953648b4892a6ee71658 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* refactor: reduce scope of locals as per the style guide (#22211)dundargoc2023-02-11
|
* refactor(ui): cleanup 'redrawdebug', introduce "flush" modebfredl2023-02-08
|
* feat(spell): also source `spell/LANG.lua` when setting `spelllang` (#22111)Christian Clason2023-02-06
| | | | | | Problem: only Vimscript files are sourced when setting spelling language Solution: also source Lua files after sourcing Vimscript files Closes #22110
* refactor(optionstr.c): align comments (#22070)zeertzjq2023-02-01
| | | Align comments in did_set_string_option_for() at column 57.
* vim-patch:9.0.1255: changing 'virtualedit' does not have immediate effect ↵zeertzjq2023-01-29
| | | | | | | | | | (#22039) Problem: Changing 'virtualedit' does not have immediate effect. Solution: Correct how is checked for a changed value. (closes vim/vim#11878) https://github.com/vim/vim/commit/8fe5b9c8c1223861cec0484ccc031858ae08d107 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* refactor(options): don't pass negative number to illegal_char() (#21999)zeertzjq2023-01-26
| | | | | | | This only changes the error messages for an unexpected Unicode char in an option to show its first byte instead of some special keycode. The second argument of vim_strchr() usually doesn't matter, but it may be better to consistently cast to uint8_t.
* vim-patch:9.0.1243: :setglobal cannot use script-local function for "expr" ↵zeertzjq2023-01-26
| | | | | | | | option (#21997) Problem: :setglobal cannot use script-local function for "expr" option. Solution: Use the pointer to the option value properly. (closes vim/vim#11883) https://github.com/vim/vim/commit/01d4efe2e87632aa085897d3d64e27585908f977
* refactor(optionstr.c): move handling of formatlistpatLewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_set_exproptLewis Russell2023-01-25
|
* refactor(optionstr.c): remove some redundant parensLewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_option_listflagsLewis Russell2023-01-25
|
* refactor(optionstr.c): add did_set_string_option_forLewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_set_string_option 52Lewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_set_string_option 51Lewis Russell2023-01-25
|
* refactor(optionstr.c): remove some simple did_set_* functions 2Lewis Russell2023-01-25
|
* refactor(optionstr.c): remove some simple did_set_* functionsLewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_set_string_option 50Lewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_set_string_option 49Lewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_set_string_option 48Lewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_set_string_option 47Lewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_set_string_option 46Lewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_set_string_option 45Lewis Russell2023-01-25
|
* refactor(optionstr.c): break up did_set_string_option 44Lewis Russell2023-01-25
|