Commit Graph

19287 Commits

Author SHA1 Message Date
sus-domesticus
1027ccac6d fix(clangd): check size of array before applying qsort on it 2024-01-02 23:38:10 +02:00
dundargoc
735aa4c4c8 refactor: remove redundant struct names
A struct can be anonymous if only its typedef is used.
2024-01-02 21:59:12 +01:00
Justin M. Keyes
3f35c69b23 refactor(api): redundant ml_mfp check #26059
buf_ensure_loaded already checks `(buf->b_ml.ml_mfp != NULL)`. #25823

TODO:
- #10070 #13201 All buffer-related API functions except
  `nvim_buf_is_loaded` (and `nvim_buf_is_valid`?) should always call
  `buf_ensure_loaded`. Because the _common case_ is that plugins expect
  the buffer to "just work"—and for the uncomon, performance-sensitive
  case, the script can check `nvim_buf_is_loaded` to avoid implicitly
  loading a buffer.
- Update documentation to clarify the above semantics.
2024-01-02 12:33:41 -08:00
luukvbaal
3299797150 fix(drawline): consider position in linebuf for foldcolumn (#26803) 2024-01-02 17:59:23 +08:00
dundargoc
b49d4e18a6 refactor: remove redundant NOLINT comments 2024-01-01 19:57:44 +01:00
Anatolii Sakhnik
7d17ab5b6f fix(l10n): update Ukrainian translations (#26819) 2024-01-01 12:22:11 +01:00
Jaehwang Jung
3faace1995 docs: clarify on_bytes arguments
based on extmark_splice doc
2024-01-01 12:20:19 +01:00
dundargoc
7cb29a572b build: ensure make clean doesn't remove source files
Adding a file to `OUTPUT` in `add_custom_command` marks that file as
`GENERATED` in cmake, and will thus be removed when running the `clean`
target. As cmake doesn't have a good way to mark that certain files
should not be removed, we instead "lie" to it by omitting the files we
want to keep from `OUTPUT`. This hack only works as long as there aren't
any other files that depend on the generated files we want to keep,
which currently seems to be the case. If this assumption changes in the
future, then we need to separate the parts that are generated and the
parts that are not as to prevent an infinite dependency chain.
2024-01-01 11:04:41 +01:00
zeertzjq
6f6abd8c02 refactor(tui): remove code that is no longer necessary 2023-12-31 04:56:35 +08:00
Paul "LeoNerd" Evans
b4ef913400 Handle mouse buttons 6/7 (often used for horizontal scrolling) 2023-12-31 04:56:35 +08:00
Paul "LeoNerd" Evans
ffe96c6c1c Ignore key_mouse unless it is exactly \e[M because some terminfos relate to different encoding modes (thanks Ninji) 2023-12-31 04:56:35 +08:00
dundargoc
bf0be0f63e build: various improvements
- Use `#pragma once` for `cmake.config/config.h.in`
- Remove unused variable `CACHED_GENERATED_DIR`
- Reorganize and sort variables
- Introduce `STYLUA_DIRS` variable to ensure the `formatlua` and
  `lintlua-stylua` operates on the same files.
- Adjust variable scope to avoid using hacky directory properties.
- Add more necessary runtime files as test dependencies
2023-12-30 14:22:25 +01:00
dundargoc
c89292fcb7 refactor: follow style guide 2023-12-30 12:45:38 +01:00
luukvbaal
dd00b6b442 refactor(drawline): remove maybe_wlv argument for foldcolumn (#26798)
Problem:  fill_foldcolumn() has an optional winlinevars_T argument.
Solution: Increment wlv->off at callsite.
2023-12-30 09:57:57 +08:00
Luuk van Baal
fe2ca7eabf refactor(drawline): avoid writing foldopen before writing foldclosed 2023-12-29 13:27:26 +01:00
zeertzjq
aecbc3f832 vim-patch:9.0.2189: Wrong display with 'briopt=sbr' and 'nobreakindent' (#26785)
Problem:  Wrong display when 'breakindentopt' contains "sbr" and
          'showbreak' and 'nobreakindent' are set.
Solution: Always reset wlv->need_showbreak regardless of the values of
          'breakindent' and 'showbreak', as they aren't checked when
          setting wlv->need_showbreak (zeertzjq)

closes: vim/vim#13785

7e4f62a257
2023-12-29 06:44:14 +08:00
zeertzjq
2b9d3869f8 fix(drawline): don't use temporary "v" variable when not needed (#26777) 2023-12-28 19:26:59 +08:00
xvzc
53a3e6ac87 docs(eval): add parameter type for vim.fn.mode() (#26776) 2023-12-28 19:13:46 +08:00
dundargoc
714b075197 docs: small fixes (#26651)
Co-authored-by: Gregory Anders <greg@gpanders.com>
Co-authored-by: WillLillis <wlillis@umass.edu>
2023-12-28 10:28:48 +08:00
JD
46ceefb52b fix(clipboard): make getreg() accurate for clipboard registers (#26740)
Problem:  getreg("*") / getreg("+") disagree with :registers.
Solution: Avoid falling back to unnamed register if provider fails.
2023-12-28 09:57:13 +08:00
zeertzjq
b3940cf8a1 vim-patch:9.0.2188: cursor wrong after { in single line buffer (#26766)
Problem:  cursor wrong after { in single line buffer
          (Edwin Chan)
Solution: do not place the cursor at the end for a single
          line buffer when moving backwards
          (Gary Johnson)

closes: vim/vim#13780
closes: vim/vim#13783

9e6549d2fb

Co-authored-by: Gary Johnson <garyjohn@spocom.com>
2023-12-28 08:12:20 +08:00
zeertzjq
d82e105727 vim-patch:9.0.2187: Visual not drawn with 'breakindent' when line doesn't fit (#26765)
Problem:  Visual selection isn't drawn with 'breakindent' when the line
          doesn't fit in the window (Jaehwang Jung)
Solution: Adjust wlv->fromcol also for 'breakindent' (zeertzjq)

closes: vim/vim#13767
closes: vim/vim#13768

23627722d3
2023-12-28 07:47:22 +08:00
dundargoc
7f9fc2fbf0 refactor: remove unnecessary HAVE_PATHDEF macro 2023-12-27 12:04:54 +01:00
Raphael
382ea4d402 fix(inccommand): don't preview in Ex mode (#26587) 2023-12-27 15:18:22 +08:00
dundargoc
0f22ea400c ci: disable libintl on mac release
The releases doesn't work on intel mac as libintl isn't available on the system
by default. This makes `:language` not work for the shipped macos releases,
though the reduction in build system complexity most likely outweighs that.
2023-12-26 22:46:10 +01:00
luukvbaal
ec74538044 fix(column): correct width after truncated 'statuscolumn' error (#26737)
Problem:  Default number column has incorrect width after 'statuscolumn'
          is unset due to an error, but was also truncated.
Solution: Reverse 'statuscolumn' error and truncate return branches.
2023-12-26 09:07:58 +08:00
luukvbaal
bbd5c6363c feat(extmarks): add virt_text_repeat_linebreak flag (#26625)
Problem:  Unable to predict which byte-offset to place virtual text to
          make it repeat visually in the wrapped part of a line.
Solution: Add a flag to nvim_buf_set_extmark() that causes virtual
          text to repeat in wrapped lines.
2023-12-26 07:16:03 +08:00
bfredl
e8acbc1ade refactor(cpoptions): remove 'p'
Deleting a cpo flag a day keeps the doctor away

We don't need two different ways to indent LISP code
2023-12-25 14:13:52 +01:00
zeertzjq
ddc8dd187d refactor(drawline): reduce size of wlv.extra[] (#26733)
It's now only used for transchar_hex(), which only needs 11 bytes.
2023-12-25 18:57:55 +08:00
zeertzjq
2877672d70 feat(health): make :checkhealth support more split modifiers (#26731) 2023-12-25 10:21:13 +08:00
Pablo Arias
2ff2785c39 feat(health): checkhealth buffer can show in a split window (#26714)
:checkhealth now respects :vertical and :horizontal.
For example:
  :vertical checkhealth foo bar
will open the healthcheck buffer in a vertical split.
2023-12-25 08:30:56 +08:00
dundargoc
675522af18 build: remove clint checks and style text covered by uncrustify 2023-12-24 20:50:44 +01:00
dundargoc
ab2aad509d refactor: follow style guide 2023-12-24 12:36:59 +01:00
zeertzjq
0b66ab42c7 Merge pull request #26642 from famiu/refactor/options/misc
refactor(options): miscellanous refactors
2023-12-24 14:25:08 +08:00
Famiu Haque
4587912527 refactor(options): do bound checking in validate_num_option() 2023-12-24 11:22:26 +06:00
Famiu Haque
547ccc2681 refactor(options): remove side effects from check_num_option_bounds() 2023-12-24 11:22:25 +06:00
dundargoc
eae6727325 refactor: remove os_errmsg and os_msg functions
Instead replace them with fprintf and printf.
2023-12-23 14:00:09 +01:00
zeertzjq
c16d5729b5 refactor: remove CPO_TO_CPO_FLAGS() (#26718)
Just pass p_cpo to replace_termcodes() directly.
This allows removing option_vars.h from keycodes.h, and also avoids the
mistake of passing 0 as cpo_flags.
2023-12-23 15:53:28 +08:00
zeertzjq
3c667d3e0f fix(mappings): fix mapset() not replacing map with backslash (#26719) 2023-12-23 15:30:44 +08:00
Famiu Haque
8f72987837 refactor(options): use OptIndex for os_idx 2023-12-23 11:09:00 +06:00
Famiu Haque
4d98ec2fa4 refactor(options): move some functions from options.c to option.c 2023-12-23 11:09:00 +06:00
Famiu Haque
1d2af15a95 refactor(options): restructure functions related to key options 2023-12-23 11:09:00 +06:00
zeertzjq
242261d4e7 refactor(IWYU): move evalarg_T to eval_defs.h (#26716) 2023-12-23 08:28:17 +08:00
luukvbaal
e632396bab refactor(drawline): avoid storing info to draw 'statuscolumn' (#26712)
We no longer return to the main loop in win_line() to put column
characters on the screen. Simplify and sync statuscolumn drawing
logic with that of statusline.
2023-12-23 06:31:07 +08:00
Lewis Russell
2b0acacb3c fix(decor): allow adding providers during redraw
Fixes: #26652
2023-12-22 20:27:07 +00:00
Luuk van Baal
35d98888bd refactor(drawline): simplify draw_statuscol() and remove draw_state references 2023-12-22 12:07:15 +01:00
bfredl
d9d9d94343 Merge pull request #26528 from bfredl/nodrawstate
refactor(drawline): remove LineDrawState and wlv->saved_n_extra
2023-12-22 11:49:06 +01:00
Christian Clason
19aba5916a docs(options): add codeblock annotations to options.lua (#26696)
Also consistently remove leading colons in examples

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2023-12-22 10:55:39 +01:00
bfredl
66ac327db2 refactor(drawline): remove LineDrawState and wlv->saved_n_extra
We do not need an enum to keep track of what place in win_line() we
currently are at. We already have a variable which keeps track where
in the code we currently are (and thus what part of the line we are
currently rendering), it is called the _program counter_. When we need
non-linear or self-referential control-flow anyway for a laugh, we
have a mechanism for that, it is called _function calls_.

Do not "save" and "restore" the wlv->n_extra state every time the
columns are to be drawn. This sort of thing needs to go away. Instead of
setting the n_extra variables and then going to the outer while loop,
the text in the columns can be rendered by just simply putting the text
into the cells of the screen line, right away. Even in nvim this can be
tricky sometimes, luckily we can use function calls to abstract this
logic, which means that this handy data structure called the _call
stack_ is handling saving away state temporarily, and restoring it back
when we need it again.

Lastly, but not least, as we now have direct control how signs
are rendered, these can be stored as schar_T[2] and be directly
put on screen as such.
2023-12-22 10:54:28 +01:00
zeertzjq
ba0fa4fa19 refactor(IWYU): add "private" pragma to more generated headers (#26706)
"export" only prevents IWYU from adding these headers if the headers
that export them are included, while "private" ensures that IWYU never
adds these headers.
2023-12-22 13:32:46 +08:00