Commit Graph

86 Commits

Author SHA1 Message Date
bfredl
af9c1e572d Merge pull request #18489 from dundargoc/refactor/remove-char_u
refactor: replace char_u variables and functions with char
2022-05-13 00:14:46 +02:00
zeertzjq
3a91adabda refactor: rename keymap.{c,h} to keycodes.{c,h} (#18535)
Most code in keymap.h is for keycode definitions, while most code in
keymap.c is for the parsing and conversion of keycodes.

The name "keymap" may also make people think these two files are for
mappings, while in fact keycodes are used even when no mappings are
involved, so "keycodes" should be a better file name than "keymap".
2022-05-12 20:19:29 +08:00
Dundar Goc
85aae12a6d refactor: replace char_u variables and functions with char
Work on https://github.com/neovim/neovim/issues/459
2022-05-11 23:19:57 +02:00
zeertzjq
b6e3a2dbbb vim-patch:8.2.4645: 'shortmess' changed when session does not store options (#17908)
Problem:    'shortmess' changed when session does not store options.
Solution:   Save and restore 'shortmess' if needed. (James Charti,
            closes vim/vim#10037)
fd01280d01
2022-03-31 10:04:12 +08:00
dundargoc
534f5a419d refactor: convert function comments to doxygen format (#17710) 2022-03-24 12:17:21 +01:00
bfredl
3c7e937a89 Merge pull request #17266 from famiu/feat/ui/global-statusline
feat(statusline): add global statusline
2022-03-17 20:16:39 +01:00
Famiu Haque
5ab1229174 feat: add support for global statusline
Ref: #9342

Adds the option to have a single global statusline for the current window at the bottom of the screen instead of a statusline at the bottom of every window. Enabled by setting `laststatus = 3`.

Due to the fact that statuslines at the bottom of windows are removed when global statusline is enabled, horizontal separators are used instead to separate horizontal splits. The horizontal separator character is configurable through the`horiz` item in `'fillchars'`. Separator connector characters are also used to connect the horizontal and vertical separators together, which are also configurable through the `horizup`, `horizdown`, `vertleft`, `vertright` and `verthoriz` items in `fillchars`.

The window separators are highlighted using the `WinSeparator` highlight group, which supersedes `VertSplit` and is linked to `VertSplit` by default in order to maintain backwards compatibility.
2022-03-18 00:21:41 +06:00
zeertzjq
2ea16f7354 vim-patch:8.2.4566: check for existing buffer in session file may not work
Problem:    Check for existing buffer in session file does not work for files
            in the home directory.
Solution:   Use fnamemodify(). (James Cherti, closes vim/vim#9945)  Add a test.
7d42840033
2022-03-15 08:25:39 +08:00
Evgeni Chasnovski
5e1c487d99 vim-patch:8.2.4090: after restoring a session buffer order can be quite different (#17112)
Problem:    After restoring a session buffer order can be quite different.
Solution:   Create buffers first. (Evgeni Chasnovski, closes vim/vim#9520)
26ebf1f036

---------------
As in Vim, this basically reverts 8.1.0829 providing different solution
(see vim/vim#9520).

Regarding Neovim, this basically reverts changes from #15062. Test about
restoring same terminals was a bit too restrictive with using actual
buffer ids, which changed with this patch (now they should be in the
same order as at `mksession` call), so I tweaked it.
2022-01-29 14:08:44 +00:00
zeertzjq
aa5adef969 vim-patch:8.2.4007: session does not restore help buffer properly
Problem:    Session does not restore help buffer properly when "options' is
            missing from 'sessionoptions'.
Solution:   Use a ":help" command to create the help window. (closes vim/vim#9475,
            closes vim/vim#9458, closes vim/vim#9472)
8e7d9db32b
2022-01-07 13:39:52 +08:00
Björn Linse
df54d82b7c refactor(misc1): move out high-level input functions to a new file: input.c
Possibly dialog code is messages.c could be moved here as well.
misc1.c is now empty, so delete it.
2021-12-10 18:15:33 +01:00
dundargoc
725cbe7d41 refactor: saner options for uncrustify (#16204)
* sp_enum_after_assign = force
* sp_brace_typedef = force
* nl_do_brace = remove
* sp_do_brace_open = force
* sp_brace_close_while = force
* sp_before_semi = remove
* sp_before_semi_for = remove
* sp_before_semi_for_empty = remove
* sp_between_semi_for_empty = remove
* sp_after_semi_for_empty = remove
* sp_before_square = remove
* sp_before_squares = remove
* sp_inside_square = remove
* sp_inside_fparens = remove
* sp_inside_fparen = remove
* sp_inside_tparen = remove
* sp_after_tparen_close = remove
* sp_return_paren = force
* pos_bool = lead
* sp_pp_concat = remove
* sp_pp_stringify = remove
* fixup: disable formatting for the INIT section
2021-11-19 14:21:53 -05:00
James McCoy
efa924f66b vim-patch:8.1.0743: giving error messages is not flexible
Problem:    Giving error messages is not flexible.
Solution:   Add semsg().  Change argument from "char_u *" to "char *", also
            for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
            vim/vim#3302)  Also make emsg() accept a "char *" argument.  Get rid of
            an enormous number of type casts.
f9e3e09fdc
2021-11-01 06:41:28 -04:00
zeertzjq
920473d2f2 vim-patch:8.0.1459: cannot handle change of directory
Problem:    Cannot handle change of directory.
Solution:   Add the DirChanged autocommand event. (Andy Massimino,
            closes vim/vim#888)  Avoid changing directory for 'autochdir' too often.
b7407d3fc9

Only add "auto" pattern. "window" and "global" are already implemented.
Skip `Test_dirchanged_auto` using `CheckFunction test_autochdir`.
Part of PR #15952. More information can be found there.

N/A patches for version.c:

vim-patch:8.0.1460: missing file in patch

Problem:    Missing file in patch.
Solution:   Add changes to missing file.
b5cb65ba2b

vim-patch:8.0.1461: missing another file in patch

Problem:    Missing another file in patch.
Solution:   Add changes to missing file.
15833239a4
2021-10-17 22:04:53 +08:00
Dundar Göc
24a1880866 refactor: reduce number of unique char casts 2021-10-13 18:26:18 +02:00
Justin M. Keyes
0d59c01a64 fix(PVS V576): wrong fprintf() format
https://pvs-studio.com/en/docs/warnings/v576/

Before 1bffe66508 this was originally
"%ld" but that looks like a mistake. At least now, w_height_inner and
w_width_inner are just `int`.
2021-09-24 02:29:49 -07:00
dundargoc
30fefee684 refactor: format with uncrustify #15726 2021-09-20 06:53:38 -07:00
Sean Dewar
96a6b9b52d vim-patch:8.1.0829: when 'hidden' is set session creates extra buffers
Problem:    When 'hidden' is set session creates extra buffers.
Solution:   Move :badd commands to the end. (Jason Franklin)
d39e275b57

Adjust some tests in ex_cmds/mksession_spec.lua:

- 'restores same :terminal buf in splits': Buffers aren't always :badded
  in the same order as they're :edited, :balted, etc, so the order of
  buffers in the buffer list may change slightly now that :badd happens
  afterwards.
- 'restores buffers with tab-local CWD': This is explained in a comment.
2021-07-17 16:12:49 +01:00
Jan Edmund Lazo
304c6ce934 fixup! fixup! vim-patch:8.2.2776: :mksession uses current value of 'splitbelow' and 'splitright' (#14398) 2021-06-05 12:49:26 -04:00
Jan Edmund Lazo
68cb51ab0a fixup! vim-patch:8.2.2776: :mksession uses current value of 'splitbelow' and 'splitright' (#14398)
tab_firstwin can be NULL.
2021-06-02 21:45:44 -04:00
Jan Edmund Lazo
8415615b59 vim-patch:8.2.2772: problems when restoring 'runtimepath' from a session file
Problem:    Problems when restoring 'runtimepath' from a session file.
Solution:   Add the "skiprtp" item in 'sessionoptions'.
635bd60804

Allow "terminal" value for sessionoptions even if it's no-opt
because patch v8.0.1592 is not ported yet.

Omit vim9 test, Test_mksession_skiprtp().
2021-05-22 15:40:06 -04:00
Jan Edmund Lazo
8e5439182b fixup! vim-patch:8.1.0734: the hlsearch state is not stored in a session file (#13547) 2021-05-22 15:36:48 -04:00
Jan Edmund Lazo
44a331c36b vim-patch:8.2.2820: session file may divide by zero
Problem:    Session file may divide by zero.
Solution:   Avoid writing difide by zero. (closes vim/vim#8162)
b6c2e9a010

Avoid typecasts if possible.
Use PRIdLINENR, PRId64, to format line numbers.
2021-05-05 22:50:57 -04:00
Jan Edmund Lazo
bb33727922 vim-patch:8.2.2776: :mksession uses current value of 'splitbelow' and 'splitright' (#14398)
Problem:    :mksession uses current value of 'splitbelow' and 'splitright'
            even though "options" is not in 'sessionoptions'. (Maxim Kim)
Solution:   Save and restore the values, instead of setting to the current
            value. (closes vim/vim#8119)
0995c81f2f

Patch v8.2.1682 is not ported.
Replace "goto fail;" with "return FAIL;".
2021-04-22 08:14:42 -04:00
Jan Edmund Lazo
60670c1fd3 vim-patch:8.2.2594: alternate buffer added to session file even when it's hidden
Problem:    Alternate buffer added to session file even when it's hidden.
Solution:   Check the 'buflisted' option. (closes vim/vim#7951)
0756f757ed

N/A patches for version.c:

vim-patch:8.2.2593: list of distributed files is incomplete

Problem:    List of distributed files is incomplete.
Solution:   Add a file and rename another.
0de8e2d6a3
2021-03-13 09:06:57 -05:00
Sean Dewar
4bc82a59b6 vim-patch:8.2.2467: script generated by :mkview changes alternate file
Problem:    Script generated by :mkview changes alternate file.
Solution:   Only write :balt in the session file. (Harish Rajagopal,
            closes vim/vim#7779)
139348f3e8
2021-02-11 19:00:55 +00:00
Sean Dewar
add0cf9a42 vim-patch:8.2.2058: using mkview/loadview changes the jumplist
Problem:    Using mkview/loadview changes the jumplist.
Solution:   Use ":keepjumps".  Don't let ":badd" or ":balt" change the
            jumplist. (closes vim/vim#7371)
3482be6a33

Definition for BufWinEnter autocmd in Test_mkview_loadview_jumplist()
was moved down a few lines until after the views are written, as in
Nvim, :loadview throws if the view file can't be opened.
2021-02-11 19:00:55 +00:00
Sean Dewar
d9dd360d2a vim-patch:8.2.1967: the session file does not restore the alternate file
Problem:    The session file does not restore the alternate file.
Solution:   Add ":balt".  Works like ":badd" and also sets the buffer as the
            alternate file.  Use it in the session file. (closes vim/vim#7269,
            closes vim/vim#6714)
59d8e56e04

Include minimal test_buffer.vim from patch 8.2.0243 for Test_balt().
Add entry for :balt to runtime/doc/index.txt from vim/vim#7819.
2021-02-11 19:00:24 +00:00
Jan Edmund Lazo
f0a8ccff8f vim-patch:8.1.0790: code for creating tabpages in session is too complex
Problem:    Code for creating tabpages in session is too complex.
Solution:   Simplify the code. (Jason Franklin)
57a6bf0567
2020-12-29 22:31:21 -05:00
Jan Edmund Lazo
ca2551bc9b vim-patch:8.1.0149: session is wrong with multiple tabs when :lcd was used
Problem:    The generated sessions file does not restore tabs properly if :lcd
            was used in one of them.
Solution:   Create the tab pages before setting the directory. (Yee Cheng
            Chin, closes vim/vim#3152)
26d4b896a7
2020-12-29 22:31:20 -05:00
Jan Edmund Lazo
5ce328df40 vim-patch:8.1.0734: the hlsearch state is not stored in a session file (#13547)
Problem:    The hlsearch state is not stored in a session file.
Solution:   Add "nohlsearch" if appropriate. (Jason Franklin)
e3c74d249a

Vi default for 'sessionoptions' includes 'options'.
Use 'set sessionoptions&vi' to use Vim's default 'sessionoptions'.
If a test sets 'sessionoptions',
reset 'sessionoptions' at the end of the test.

N/A patches for version.c:

vim-patch:8.2.0119: message test fails on some platforms

Problem:    Message test fails on some platforms. (Elimar Riesebieter)
Solution:   Add type cast to vim_snprintf() argument. (Dominique Pelle)
1470dc35c4

vim-patch:8.2.0234: message test fails on SunOS

Problem:    Message test fails on SunOS.
Solution:   Adjust expectation for printf "%p". (Ozaki Kiichi, closes vim/vim#5595)
d5b9914938

vim-patch:8.2.2149: popupwin test for latin1 sometimes fails

Problem:    Popupwin test for latin1 sometimes fails.
Solution:   Wait for the script to finish.
4c5bdb99ad

vim-patch:8.2.2150: Github actions CI isn't used for all available platforms

Problem:    Github actions CI isn't used for all available platforms.
Solution:   Update the github workflows. (Ozaki Kiichi, closes vim/vim#7433)
8ea05de6aa

vim-patch:8.2.2151: $dir not expanded when configure checks for moonjit

Problem:    $dir not expanded when configure checks for moonjit.
Solution:   Use double quotes instead of single quotes. (closes vim/vim#7478)
a79a8944da

vim-patch:8.2.2153: popupwin test for latin1 still fails sometimes

Problem:    Popupwin test for latin1 still fails sometimes.
Solution:   Wait for the "cat" command to finish.
b125b535bb

vim-patch:8.2.2154: popupwin test for terminal buffer fails sometimes

Problem:    Popupwin test for terminal buffer fails sometimes.
Solution:   Wait for the prompt to appear.
0353f56ddb
2020-12-17 21:13:17 -05:00
Jan Edmund Lazo
4b398413e4 vim-patch:8.2.1936: session sets the local 'scrolloff' value to the global value
Problem:    Session sets the local 'scrolloff' value to the global value.
Solution:   Do not let restoring the global option value change the local
            value.
388908352f
2020-11-01 12:21:52 -05:00
Jan Edmund Lazo
c219d3eec4 defaults: sessionoptions+=unix,slash #12760
Since 1c3ca4f18f, 2c1d12d0be, #7836, the "unix" and "slash" behavior
of 'sessionoptions'/'viewoptions' is always enabled, and the flags are
just ignored. There is no reason for that behavior to be configurable.

Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2020-08-15 19:19:06 -07:00
Jan Edmund Lazo
6f7141dd76 vim-patch:8.2.0584: viminfo file uses obsolete function file_readable()
Problem:    Viminfo file uses obsolete function file_readable().
Solution:   Use filereadable(). (closes vim/vim#5934)
c5f33db888
2020-04-17 19:04:23 -04:00
Justin M. Keyes
a4b9417c78 lint 2020-01-28 00:22:14 -08:00
Justin M. Keyes
75e8562249 refactor: move session functions to ex_session.c 2020-01-28 00:22:14 -08:00